delphivm 0.7.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +20 -0
- data/README.md +15 -0
- data/Thorfile.thor +24 -0
- data/bin/delphivm.rb +28 -0
- data/delphi_PROJECTICON.ico +0 -0
- data/delphivm.gemspec +25 -0
- data/dvmimports.org/.gitignore +10 -0
- data/dvmimports.org/404.html +1 -0
- data/dvmimports.org/Rakefile +294 -0
- data/dvmimports.org/_config.yml +124 -0
- data/dvmimports.org/_includes/JB/analytics +12 -0
- data/dvmimports.org/_includes/JB/analytics-providers/getclicky +12 -0
- data/dvmimports.org/_includes/JB/analytics-providers/google +11 -0
- data/dvmimports.org/_includes/JB/categories_list +37 -0
- data/dvmimports.org/_includes/JB/comments +16 -0
- data/dvmimports.org/_includes/JB/comments-providers/disqus +13 -0
- data/dvmimports.org/_includes/JB/comments-providers/facebook +9 -0
- data/dvmimports.org/_includes/JB/comments-providers/intensedebate +6 -0
- data/dvmimports.org/_includes/JB/comments-providers/livefyre +6 -0
- data/dvmimports.org/_includes/JB/liquid_raw +32 -0
- data/dvmimports.org/_includes/JB/pages_list +37 -0
- data/dvmimports.org/_includes/JB/posts_collate +55 -0
- data/dvmimports.org/_includes/JB/setup +22 -0
- data/dvmimports.org/_includes/JB/sharing +8 -0
- data/dvmimports.org/_includes/JB/tags_list +33 -0
- data/dvmimports.org/_includes/themes/twitter/default.html +59 -0
- data/dvmimports.org/_includes/themes/twitter/page.html +9 -0
- data/dvmimports.org/_includes/themes/twitter/post.html +40 -0
- data/dvmimports.org/_includes/themes/twitter/settings.yml +2 -0
- data/dvmimports.org/_layouts/default.html +6 -0
- data/dvmimports.org/_layouts/page.html +5 -0
- data/dvmimports.org/_layouts/post.html +5 -0
- data/dvmimports.org/_plugins/debug.rb +38 -0
- data/dvmimports.org/_plugins/gallery.rb +41 -0
- data/dvmimports.org/archive.html +10 -0
- data/dvmimports.org/assets/themes/twitter/css/1.4.0/bootstrap.css +356 -0
- data/dvmimports.org/assets/themes/twitter/css/style.css +71 -0
- data/dvmimports.org/atom.xml +28 -0
- data/dvmimports.org/categories.html +22 -0
- data/dvmimports.org/download.md +16 -0
- data/dvmimports.org/index.md +21 -0
- data/dvmimports.org/pages.html +13 -0
- data/dvmimports.org/sitemap.txt +8 -0
- data/dvmimports.org/tags.html +21 -0
- data/lib/delphivm/dsl.rb +93 -0
- data/lib/delphivm/ide_services.rb +152 -0
- data/lib/delphivm/version.rb +7 -0
- data/lib/delphivm.rb +167 -0
- data/lib/extensions.rb +37 -0
- data/lib/tasks/ide.thor +38 -0
- data/lib/tasks/project.thor +73 -0
- data/lib/tasks/vendor.thor +73 -0
- data/vendor/imports.dvm +11 -0
- metadata +128 -0
@@ -0,0 +1,13 @@
|
|
1
|
+
<div id="disqus_thread"></div>
|
2
|
+
<script type="text/javascript">
|
3
|
+
{% if site.safe == false %}var disqus_developer = 1;{% endif %}
|
4
|
+
var disqus_shortname = '{{ site.JB.comments.disqus.short_name }}'; // required: replace example with your forum shortname
|
5
|
+
/* * * DON'T EDIT BELOW THIS LINE * * */
|
6
|
+
(function() {
|
7
|
+
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
8
|
+
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
|
9
|
+
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
10
|
+
})();
|
11
|
+
</script>
|
12
|
+
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
13
|
+
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<div id="fb-root"></div>
|
2
|
+
<script>(function(d, s, id) {
|
3
|
+
var js, fjs = d.getElementsByTagName(s)[0];
|
4
|
+
if (d.getElementById(id)) return;
|
5
|
+
js = d.createElement(s); js.id = id;
|
6
|
+
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId={{ site.JB.comments.facebook.appid }}";
|
7
|
+
fjs.parentNode.insertBefore(js, fjs);
|
8
|
+
}(document, 'script', 'facebook-jssdk'));</script>
|
9
|
+
<div class="fb-comments" data-href="{{ site.production_url }}" data-num-posts="{{ site.JB.comments.facebook.num_posts }}" data-width="{{ site.JB.comments.facebook.width }}" data-colorscheme="{{ site.JB.comments.facebook.colorscheme }}"></div>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
{% comment%}<!--
|
2
|
+
The liquid_raw helper is a way to display raw liquid code, as opposed to parsing it.
|
3
|
+
Normally you'd use Liquid's built in 'raw' tag.
|
4
|
+
The problem is GitHub Jekyll does not support the current Liquid release.
|
5
|
+
GitHub Jekyll supports the deprecated 'literal' tag.
|
6
|
+
Using one will break the other if you plan to deploy to GitHub pages.
|
7
|
+
see: https://github.com/mojombo/jekyll/issues/425
|
8
|
+
|
9
|
+
Since I don't want to mess with Liquid versions, I'll just rewrite the way I
|
10
|
+
intend to give liquid examples. It's not an elegant by any means:
|
11
|
+
|
12
|
+
Usage:
|
13
|
+
1) Define a 'text' variable with the block of liquid code you intend to display.
|
14
|
+
2) Pass the text variable to include JB/liquid_raw
|
15
|
+
|
16
|
+
example:
|
17
|
+
{% capture text %}|.% for tag in tags_list %.|
|
18
|
+
<li><a href="|.{ site.var.tags_path }.||.{ tag[0] }.|-ref">|.{ tag[0] }.| <span>|.{tag[1].size}.|</span></a></li>
|
19
|
+
|.% endfor %.|
|
20
|
+
|
21
|
+
|.% assign tags_list = null %.|{% endcapture %}
|
22
|
+
{% include JB/liquid_raw %}
|
23
|
+
|
24
|
+
As seen here, you must use "|." and ".|" as opening and closing brackets.
|
25
|
+
-->{% endcomment%}
|
26
|
+
|
27
|
+
{% if site.JB.liquid_raw.provider == "custom" %}
|
28
|
+
{% include custom/liquid_raw %}
|
29
|
+
{% else %}
|
30
|
+
<pre><code>{{text | replace:"|.", "{" | replace:".|", "}" | replace:">", ">" | replace:"<", "<" }}</code></pre>
|
31
|
+
{% endif %}
|
32
|
+
{% assign text = nil %}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
{% comment %}<!--
|
2
|
+
The pages_list include is a listing helper.
|
3
|
+
Usage:
|
4
|
+
1) assign the 'pages_list' variable to a valid array of pages or posts.
|
5
|
+
2) include JB/pages_list
|
6
|
+
example:
|
7
|
+
<ul>
|
8
|
+
{% assign pages_list = site.pages %}
|
9
|
+
{% include JB/pages_list %}
|
10
|
+
</ul>
|
11
|
+
|
12
|
+
Grouping: (optional):
|
13
|
+
assign the 'group' variable to constrain the list to only pages/posts
|
14
|
+
in the given group. Note you must define the group manually in the page/post
|
15
|
+
meta-data to use this feature.
|
16
|
+
Grouping is mainly helpful for non-post pages.
|
17
|
+
If you want to group posts, it's easier/better to tag them, then pass the tagged posts array.
|
18
|
+
i.e. site.tags.cool_tag (this returns an array of posts tagged: cool_tag)
|
19
|
+
|
20
|
+
This helper can be seen in use at: ../_layouts/default.html
|
21
|
+
-->{% endcomment %}
|
22
|
+
|
23
|
+
{% if site.JB.pages_list.provider == "custom" %}
|
24
|
+
{% include custom/pages_list %}
|
25
|
+
{% else %}
|
26
|
+
{% for node in pages_list %}
|
27
|
+
{% if group == null or group == node.group %}
|
28
|
+
{% if page.url == node.url %}
|
29
|
+
<li class="active"><a href="{{ BASE_PATH }}{{node.url}}" class="active">{{node.title}}</a></li>
|
30
|
+
{% else %}
|
31
|
+
<li><a href="{{ BASE_PATH }}{{node.url}}">{{node.title}}</a></li>
|
32
|
+
{% endif %}
|
33
|
+
{% endif %}
|
34
|
+
{% endfor %}
|
35
|
+
{% endif %}
|
36
|
+
{% assign pages_list = nil %}
|
37
|
+
{% assign group = nil %}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
{% comment %}<!--
|
2
|
+
Collate_posts helper. Collated posts by year and month.
|
3
|
+
Usage:
|
4
|
+
1) assign the 'posts_collate' variable to a valid array of posts.
|
5
|
+
2) include JB/posts_collate
|
6
|
+
example:
|
7
|
+
{% assign posts_collate = site.posts %}
|
8
|
+
{% include JB/posts_collate %}
|
9
|
+
|
10
|
+
Ordering:
|
11
|
+
Posts are displayed in reverse chronological order.
|
12
|
+
For normal chronological order:
|
13
|
+
1) Change the for loop to this:
|
14
|
+
=> 'for post in site.posts reversed'
|
15
|
+
2) Next make sure to change 'post.previous.date' to:
|
16
|
+
=> 'post.next.date'
|
17
|
+
|
18
|
+
-->{% endcomment %}
|
19
|
+
|
20
|
+
{% if site.JB.posts_collate.provider == "custom" %}
|
21
|
+
{% include custom/posts_collate %}
|
22
|
+
{% else %}
|
23
|
+
{% for post in posts_collate %}
|
24
|
+
{% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %}
|
25
|
+
{% capture this_month %}{{ post.date | date: "%B" }}{% endcapture %}
|
26
|
+
{% capture next_year %}{{ post.previous.date | date: "%Y" }}{% endcapture %}
|
27
|
+
{% capture next_month %}{{ post.previous.date | date: "%B" }}{% endcapture %}
|
28
|
+
|
29
|
+
{% if forloop.first %}
|
30
|
+
<h2>{{this_year}}</h2>
|
31
|
+
<h3>{{this_month}}</h3>
|
32
|
+
<ul>
|
33
|
+
{% endif %}
|
34
|
+
|
35
|
+
<li><span>{{ post.date | date: "%B %e, %Y" }}</span> » <a href="{{ BASE_PATH }}{{ post.url }}">{{ post.title }}</a></li>
|
36
|
+
|
37
|
+
{% if forloop.last %}
|
38
|
+
</ul>
|
39
|
+
{% else %}
|
40
|
+
{% if this_year != next_year %}
|
41
|
+
</ul>
|
42
|
+
<h2>{{next_year}}</h2>
|
43
|
+
<h3>{{next_month}}</h3>
|
44
|
+
<ul>
|
45
|
+
{% else %}
|
46
|
+
{% if this_month != next_month %}
|
47
|
+
</ul>
|
48
|
+
<h3>{{next_month}}</h3>
|
49
|
+
<ul>
|
50
|
+
{% endif %}
|
51
|
+
{% endif %}
|
52
|
+
{% endif %}
|
53
|
+
{% endfor %}
|
54
|
+
{% endif %}
|
55
|
+
{% assign posts_collate = nil %}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{% capture jbcache %}
|
2
|
+
<!--
|
3
|
+
- Dynamically set liquid variables for working with URLs/paths
|
4
|
+
-->
|
5
|
+
{% if site.JB.setup.provider == "custom" %}
|
6
|
+
{% include custom/setup %}
|
7
|
+
{% else %}
|
8
|
+
{% if site.safe and site.JB.BASE_PATH and site.JB.BASE_PATH != '' %}
|
9
|
+
{% assign BASE_PATH = site.JB.BASE_PATH %}
|
10
|
+
{% assign HOME_PATH = site.JB.BASE_PATH %}
|
11
|
+
{% else %}
|
12
|
+
{% assign BASE_PATH = nil %}
|
13
|
+
{% assign HOME_PATH = "/" %}
|
14
|
+
{% endif %}
|
15
|
+
|
16
|
+
{% if site.JB.ASSET_PATH %}
|
17
|
+
{% assign ASSET_PATH = site.JB.ASSET_PATH %}
|
18
|
+
{% else %}
|
19
|
+
{% capture ASSET_PATH %}{{ BASE_PATH }}/assets/themes/{{ page.theme.name }}{% endcapture %}
|
20
|
+
{% endif %}
|
21
|
+
{% endif %}
|
22
|
+
{% endcapture %}{% assign jbcache = nil %}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
{% comment %}<!--
|
2
|
+
The tags_list include is a listing helper for tags.
|
3
|
+
Usage:
|
4
|
+
1) assign the 'tags_list' variable to a valid array of tags.
|
5
|
+
2) include JB/tags_list
|
6
|
+
example:
|
7
|
+
<ul>
|
8
|
+
{% assign tags_list = site.tags %}
|
9
|
+
{% include JB/tags_list %}
|
10
|
+
</ul>
|
11
|
+
|
12
|
+
Notes:
|
13
|
+
Tags can be either a Hash of tag objects (hashes) or an Array of tag-names (strings).
|
14
|
+
The encapsulating 'if' statement checks whether tags_list is a Hash or Array.
|
15
|
+
site.tags is a Hash while page.tags is an array.
|
16
|
+
|
17
|
+
This helper can be seen in use at: ../_layouts/default.html
|
18
|
+
-->{% endcomment %}
|
19
|
+
|
20
|
+
{% if site.JB.tags_list.provider == "custom" %}
|
21
|
+
{% include custom/tags_list %}
|
22
|
+
{% else %}
|
23
|
+
{% if tags_list.first[0] == null %}
|
24
|
+
{% for tag in tags_list %}
|
25
|
+
<li><a href="{{ BASE_PATH }}{{ site.JB.tags_path }}#{{ tag }}-ref">{{ tag }} <span>{{ site.tags[tag].size }}</span></a></li>
|
26
|
+
{% endfor %}
|
27
|
+
{% else %}
|
28
|
+
{% for tag in tags_list %}
|
29
|
+
<li><a href="{{ BASE_PATH }}{{ site.JB.tags_path }}#{{ tag[0] }}-ref">{{ tag[0] }} <span>{{ tag[1].size }}</span></a></li>
|
30
|
+
{% endfor %}
|
31
|
+
{% endif %}
|
32
|
+
{% endif %}
|
33
|
+
{% assign tags_list = nil %}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>{{ page.title }}</title>
|
6
|
+
{% if page.description %}<meta name="description" content="{{ page.description }}">{% endif %}
|
7
|
+
<meta name="author" content="{{ site.author.name }}">
|
8
|
+
|
9
|
+
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
|
10
|
+
<!--[if lt IE 9]>
|
11
|
+
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
12
|
+
<![endif]-->
|
13
|
+
|
14
|
+
<!-- Le styles -->
|
15
|
+
<link href="{{ ASSET_PATH }}/css/1.4.0/bootstrap.css" rel="stylesheet">
|
16
|
+
<link href="{{ ASSET_PATH }}/css/style.css?body=1" rel="stylesheet" type="text/css" media="all">
|
17
|
+
|
18
|
+
<!-- Le fav and touch icons -->
|
19
|
+
<!-- Update these with your own images
|
20
|
+
<link rel="shortcut icon" href="images/favicon.ico">
|
21
|
+
<link rel="apple-touch-icon" href="images/apple-touch-icon.png">
|
22
|
+
<link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
|
23
|
+
<link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
|
24
|
+
-->
|
25
|
+
</head>
|
26
|
+
|
27
|
+
<body>
|
28
|
+
|
29
|
+
<div class="topbar">
|
30
|
+
<div class="fill">
|
31
|
+
<div class="container">
|
32
|
+
<a class="brand" href="{{ HOME_PATH }}">{{ site.title }}</a>
|
33
|
+
<ul class="nav">
|
34
|
+
{% assign pages_list = site.pages %}
|
35
|
+
{% assign group = 'navigation' %}
|
36
|
+
{% include JB/pages_list %}
|
37
|
+
</ul>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<div class="container">
|
43
|
+
|
44
|
+
<div class="content">
|
45
|
+
{{ content }}
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<footer>
|
49
|
+
<p>© {{ site.author.name }} 2012
|
50
|
+
with help from <a href="http://jekyllbootstrap.com" target="_blank" title="The Definitive Jekyll Blogging Framework">Jekyll Bootstrap</a>
|
51
|
+
and <a href="http://twitter.github.com/bootstrap/" target="_blank">Twitter Bootstrap</a>
|
52
|
+
</p>
|
53
|
+
</footer>
|
54
|
+
|
55
|
+
</div> <!-- /container -->
|
56
|
+
|
57
|
+
{% include JB/analytics %}
|
58
|
+
</body>
|
59
|
+
</html>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<div class="page-header">
|
2
|
+
<h1>{{ page.title }}</h1>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="row">
|
6
|
+
<div class="span10">
|
7
|
+
{{ content }}
|
8
|
+
<hr>
|
9
|
+
<div class="pagination">
|
10
|
+
<ul>
|
11
|
+
{% if page.previous %}
|
12
|
+
<li class="prev"><a href="{{ BASE_PATH }}{{ page.previous.url }}" title="{{ page.previous.title }}">← Previous</a></li>
|
13
|
+
{% else %}
|
14
|
+
<li class="prev disabled"><a>← Previous</a></li>
|
15
|
+
{% endif %}
|
16
|
+
<li><a href="{{ BASE_PATH }}{{ site.JB.archive_path }}">Archive</a></li>
|
17
|
+
{% if page.next %}
|
18
|
+
<li class="next"><a href="{{ BASE_PATH }}{{ page.next.url }}" title="{{ page.next.title }}">Next →</a></li>
|
19
|
+
{% else %}
|
20
|
+
<li class="next disabled"><a>Next →</a>
|
21
|
+
{% endif %}
|
22
|
+
</ul>
|
23
|
+
</div>
|
24
|
+
<hr>
|
25
|
+
{% include JB/comments %}
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="span4">
|
29
|
+
<h4>Published</h4>
|
30
|
+
<div class="date"><span>{{ page.date | date_to_long_string }}</span></div>
|
31
|
+
|
32
|
+
{% unless page.tags == empty %}
|
33
|
+
<h4>Tags</h4>
|
34
|
+
<ul class="tag_box">
|
35
|
+
{% assign tags_list = page.tags %}
|
36
|
+
{% include JB/tags_list %}
|
37
|
+
</ul>
|
38
|
+
{% endunless %}
|
39
|
+
</div>
|
40
|
+
</div>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# A simple way to inspect liquid template variables.
|
2
|
+
# Usage:
|
3
|
+
# Can be used anywhere liquid syntax is parsed (templates, includes, posts/pages)
|
4
|
+
# {{ site | debug }}
|
5
|
+
# {{ site.posts | debug }}
|
6
|
+
#
|
7
|
+
require 'pp'
|
8
|
+
module Jekyll
|
9
|
+
# Need to overwrite the inspect method here because the original
|
10
|
+
# uses < > to encapsulate the psuedo post/page objects in which case
|
11
|
+
# the output is taken for HTML tags and hidden from view.
|
12
|
+
#
|
13
|
+
class Post
|
14
|
+
def inspect
|
15
|
+
"#Jekyll:Post @id=#{self.id.inspect}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class Page
|
20
|
+
def inspect
|
21
|
+
"#Jekyll:Page @name=#{self.name.inspect}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end # Jekyll
|
26
|
+
|
27
|
+
module Jekyll
|
28
|
+
module DebugFilter
|
29
|
+
|
30
|
+
def debug(obj, stdout=false)
|
31
|
+
puts obj.pretty_inspect if stdout
|
32
|
+
"<pre>#{obj.class}\n#{obj.pretty_inspect}</pre>"
|
33
|
+
end
|
34
|
+
|
35
|
+
end # DebugFilter
|
36
|
+
end # Jekyll
|
37
|
+
|
38
|
+
Liquid::Template.register_filter(Jekyll::DebugFilter)
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#
|
2
|
+
# http://baldowl.github.com/2011/04/13/rough-gallery-plugin-for-jekyll.html
|
3
|
+
# Basic: add a `gallery` attribute to the YAML header of any page with value
|
4
|
+
# being the extension of your images. Every image with that extension stored
|
5
|
+
# inside the page's directory (and every one of its subdirectories) will be
|
6
|
+
# added to the `gallery_items` attribute of that same page (alphabetically
|
7
|
+
# sorted).
|
8
|
+
|
9
|
+
module Jekyll
|
10
|
+
class Gallery < Generator
|
11
|
+
safe true
|
12
|
+
|
13
|
+
def generate site
|
14
|
+
site.pages.each do |page|
|
15
|
+
gallery(site, page) if page.data['gallery']
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def gallery site, page
|
20
|
+
base = page.instance_variable_get :@dir
|
21
|
+
# search = File.join '**', "*.#{page.data['gallery']}"
|
22
|
+
search = "#{page.data['gallery']}"
|
23
|
+
items = Dir.chdir(base[1..-1] || '.') do
|
24
|
+
Dir.glob(search).sort.map {|item| File.join base, item}
|
25
|
+
end
|
26
|
+
page.data = page.data.deep_merge 'gallery_items' => items
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
module Jekyll
|
32
|
+
module AssetFilter
|
33
|
+
def download_entry(input)
|
34
|
+
info = File.basename(input, '.zip').split('-')[0..-1]
|
35
|
+
info << '*' if info.size < 4
|
36
|
+
"%1s | %2s | %3s | %4s" % info
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
Liquid::Template.register_filter(Jekyll::AssetFilter)
|