codeslinger-jekyll 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +86 -0
- data/Manifest.txt +40 -0
- data/README.textile +459 -0
- data/Rakefile +29 -0
- data/bin/jekyll +132 -0
- data/jekyll.gemspec +51 -0
- data/lib/jekyll/albino.rb +116 -0
- data/lib/jekyll/converters/csv.rb +26 -0
- data/lib/jekyll/converters/mephisto.rb +79 -0
- data/lib/jekyll/converters/mt.rb +59 -0
- data/lib/jekyll/converters/textpattern.rb +50 -0
- data/lib/jekyll/converters/typo.rb +49 -0
- data/lib/jekyll/converters/wordpress.rb +54 -0
- data/lib/jekyll/convertible.rb +71 -0
- data/lib/jekyll/core_ext.rb +22 -0
- data/lib/jekyll/filters.rb +39 -0
- data/lib/jekyll/layout.rb +33 -0
- data/lib/jekyll/page.rb +64 -0
- data/lib/jekyll/post.rb +174 -0
- data/lib/jekyll/site.rb +161 -0
- data/lib/jekyll/tags/highlight.rb +41 -0
- data/lib/jekyll/tags/include.rb +31 -0
- data/lib/jekyll.rb +64 -0
- data/test/helper.rb +13 -0
- data/test/source/_includes/sig.markdown +3 -0
- data/test/source/_layouts/default.html +27 -0
- data/test/source/_layouts/simple.html +1 -0
- data/test/source/_posts/2008-10-18-foo-bar.textile +8 -0
- data/test/source/_posts/2008-11-21-complex.textile +8 -0
- data/test/source/_posts/2008-12-03-permalinked-post.textile +9 -0
- data/test/source/_posts/2008-12-13-include.markdown +8 -0
- data/test/source/css/screen.css +76 -0
- data/test/source/index.html +22 -0
- data/test/suite.rb +9 -0
- data/test/test_filters.rb +37 -0
- data/test/test_generated_site.rb +21 -0
- data/test/test_jekyll.rb +0 -0
- data/test/test_post.rb +107 -0
- data/test/test_site.rb +30 -0
- data/test/test_tags.rb +31 -0
- metadata +162 -0
@@ -0,0 +1,76 @@
|
|
1
|
+
/*****************************************************************************/
|
2
|
+
/*
|
3
|
+
/* Common
|
4
|
+
/*
|
5
|
+
/*****************************************************************************/
|
6
|
+
|
7
|
+
/* Global Reset */
|
8
|
+
|
9
|
+
* {
|
10
|
+
margin: 0;
|
11
|
+
padding: 0;
|
12
|
+
}
|
13
|
+
|
14
|
+
html, body {
|
15
|
+
height: 100%;
|
16
|
+
}
|
17
|
+
|
18
|
+
body {
|
19
|
+
background-color: white;
|
20
|
+
font: 13.34px helvetica, arial, clean, sans-serif;
|
21
|
+
*font-size: small;
|
22
|
+
text-align: center;
|
23
|
+
}
|
24
|
+
|
25
|
+
h1, h2, h3, h4, h5, h6 {
|
26
|
+
font-size: 100%;
|
27
|
+
}
|
28
|
+
|
29
|
+
h1 {
|
30
|
+
margin-bottom: 1em;
|
31
|
+
}
|
32
|
+
|
33
|
+
p {
|
34
|
+
margin: 1em 0;
|
35
|
+
}
|
36
|
+
|
37
|
+
a {
|
38
|
+
color: #00a;
|
39
|
+
}
|
40
|
+
|
41
|
+
a:hover {
|
42
|
+
color: black;
|
43
|
+
}
|
44
|
+
|
45
|
+
a:visited {
|
46
|
+
color: #a0a;
|
47
|
+
}
|
48
|
+
|
49
|
+
table {
|
50
|
+
font-size: inherit;
|
51
|
+
font: 100%;
|
52
|
+
}
|
53
|
+
|
54
|
+
/*****************************************************************************/
|
55
|
+
/*
|
56
|
+
/* Site
|
57
|
+
/*
|
58
|
+
/*****************************************************************************/
|
59
|
+
|
60
|
+
.site {
|
61
|
+
font-size: 110%;
|
62
|
+
text-align: justify;
|
63
|
+
width: 40em;
|
64
|
+
margin: 3em auto 2em auto;
|
65
|
+
line-height: 1.5em;
|
66
|
+
}
|
67
|
+
|
68
|
+
.title {
|
69
|
+
color: #a00;
|
70
|
+
font-weight: bold;
|
71
|
+
margin-bottom: 2em;
|
72
|
+
}
|
73
|
+
|
74
|
+
.site .meta {
|
75
|
+
color: #aaa;
|
76
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: Tom Preston-Werner
|
4
|
+
---
|
5
|
+
|
6
|
+
h1. Welcome to my site
|
7
|
+
|
8
|
+
h2. Please read our {{ site.posts | size }} Posts
|
9
|
+
|
10
|
+
<ul>
|
11
|
+
{% for post in site.posts %}
|
12
|
+
<li>{{ post.date }} <a href="{{ post.url }}">{{ post.title }}</a></li>
|
13
|
+
{% endfor %}
|
14
|
+
</ul>
|
15
|
+
|
16
|
+
{% assign first_post = site.posts.first %}
|
17
|
+
<div id="first_post">
|
18
|
+
<h1>{{ first_post.title }}</h1>
|
19
|
+
<div>
|
20
|
+
{{ first_post.content }}
|
21
|
+
</div>
|
22
|
+
</div>
|
data/test/suite.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
3
|
+
class TestFilters < Test::Unit::TestCase
|
4
|
+
|
5
|
+
class JekyllFilter
|
6
|
+
include Jekyll::Filters
|
7
|
+
end
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@filter = JekyllFilter.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_array_to_sentence_string_with_no_args
|
14
|
+
assert_equal "", @filter.array_to_sentence_string([])
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_array_to_sentence_string_with_one_arg
|
18
|
+
assert_equal "1", @filter.array_to_sentence_string([1])
|
19
|
+
assert_equal "chunky", @filter.array_to_sentence_string(["chunky"])
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_array_to_sentence_string_with_two_args
|
23
|
+
assert_equal "1 and 2", @filter.array_to_sentence_string([1, 2])
|
24
|
+
assert_equal "chunky and bacon", @filter.array_to_sentence_string(["chunky", "bacon"])
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_array_to_sentence_string_with_multiple_args
|
28
|
+
assert_equal "1, 2, 3, and 4", @filter.array_to_sentence_string([1, 2, 3, 4])
|
29
|
+
assert_equal "chunky, bacon, bits, and pieces", @filter.array_to_sentence_string(["chunky", "bacon", "bits", "pieces"])
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_xml_escape_with_ampersands
|
33
|
+
assert_equal "AT&T", @filter.xml_escape("AT&T")
|
34
|
+
assert_equal "<code>command &lt;filename&gt;</code>", @filter.xml_escape("<code>command <filename></code>")
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
3
|
+
class TestGeneratedSite < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
clear_dest
|
6
|
+
source = File.join(File.dirname(__FILE__), *%w[source])
|
7
|
+
@s = Site.new(source, dest_dir)
|
8
|
+
@s.process
|
9
|
+
@index = File.read(File.join(dest_dir, 'index.html'))
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_site_posts_in_index
|
13
|
+
# confirm that {{ site.posts }} is working
|
14
|
+
assert @index.include?("#{@s.posts.size} Posts")
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_post_content_in_index
|
18
|
+
# confirm that the {{ post.content }} is rendered OK
|
19
|
+
assert @index.include?('<p>This <em>is</em> cool</p>')
|
20
|
+
end
|
21
|
+
end
|
data/test/test_jekyll.rb
ADDED
File without changes
|
data/test/test_post.rb
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
3
|
+
class TestPost < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_valid
|
9
|
+
assert Post.valid?("2008-10-19-foo-bar.textile")
|
10
|
+
assert Post.valid?("foo/bar/2008-10-19-foo-bar.textile")
|
11
|
+
|
12
|
+
assert !Post.valid?("lol2008-10-19-foo-bar.textile")
|
13
|
+
assert !Post.valid?("blah")
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_process
|
17
|
+
p = Post.allocate
|
18
|
+
p.process("2008-10-19-foo-bar.textile")
|
19
|
+
|
20
|
+
assert_equal Time.parse("2008-10-19"), p.date
|
21
|
+
assert_equal "foo-bar", p.slug
|
22
|
+
assert_equal ".textile", p.ext
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_url
|
26
|
+
p = Post.allocate
|
27
|
+
p.categories = []
|
28
|
+
p.process("2008-10-19-foo-bar.textile")
|
29
|
+
|
30
|
+
assert_equal "/2008/10/19/foo-bar.html", p.url
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_permalink
|
34
|
+
p = Post.allocate
|
35
|
+
p.process("2008-12-03-permalinked-post.textile")
|
36
|
+
p.read_yaml(File.join(File.dirname(__FILE__), *%w[source _posts]), "2008-12-03-permalinked-post.textile")
|
37
|
+
|
38
|
+
assert_equal "my_category/permalinked-post", p.permalink
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_dir_respects_permalink
|
42
|
+
p = Post.allocate
|
43
|
+
p.process("2008-12-03-permalinked-post.textile")
|
44
|
+
p.read_yaml(File.join(File.dirname(__FILE__), *%w[source _posts]), "2008-12-03-permalinked-post.textile")
|
45
|
+
|
46
|
+
assert_equal "my_category/", p.dir
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_url_respects_permalink
|
50
|
+
p = Post.allocate
|
51
|
+
p.process("2008-12-03-permalinked-post.textile")
|
52
|
+
p.read_yaml(File.join(File.dirname(__FILE__), *%w[source _posts]), "2008-12-03-permalinked-post.textile")
|
53
|
+
|
54
|
+
assert_equal "my_category/permalinked-post", p.url
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_read_yaml
|
58
|
+
p = Post.allocate
|
59
|
+
p.read_yaml(File.join(File.dirname(__FILE__), *%w[source _posts]), "2008-10-18-foo-bar.textile")
|
60
|
+
|
61
|
+
assert_equal({"title" => "Foo Bar", "layout" => "default"}, p.data)
|
62
|
+
assert_equal "\nh1. {{ page.title }}\n\nBest *post* ever", p.content
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_transform
|
66
|
+
p = Post.allocate
|
67
|
+
p.process("2008-10-18-foo-bar.textile")
|
68
|
+
p.read_yaml(File.join(File.dirname(__FILE__), *%w[source _posts]), "2008-10-18-foo-bar.textile")
|
69
|
+
p.transform
|
70
|
+
|
71
|
+
assert_equal "<h1>{{ page.title }}</h1>\n<p>Best <strong>post</strong> ever</p>", p.content
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_render
|
75
|
+
p = Post.new(File.join(File.dirname(__FILE__), *%w[source]), '', "2008-10-18-foo-bar.textile")
|
76
|
+
layouts = {"default" => Layout.new(File.join(File.dirname(__FILE__), *%w[source _layouts]), "simple.html")}
|
77
|
+
p.render(layouts, {"site" => {"posts" => []}})
|
78
|
+
|
79
|
+
assert_equal "<<< <h1>Foo Bar</h1>\n<p>Best <strong>post</strong> ever</p> >>>", p.output
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_write
|
83
|
+
clear_dest
|
84
|
+
|
85
|
+
p = Post.new(File.join(File.dirname(__FILE__), *%w[source]), '', "2008-10-18-foo-bar.textile")
|
86
|
+
layouts = {"default" => Layout.new(File.join(File.dirname(__FILE__), *%w[source _layouts]), "simple.html")}
|
87
|
+
p.render(layouts, {"site" => {"posts" => []}})
|
88
|
+
p.write(dest_dir)
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_data
|
92
|
+
p = Post.new(File.join(File.dirname(__FILE__), *%w[source]), '', "2008-11-21-complex.textile")
|
93
|
+
layouts = {"default" => Layout.new(File.join(File.dirname(__FILE__), *%w[source _layouts]), "simple.html")}
|
94
|
+
p.render(layouts, {"site" => {"posts" => []}})
|
95
|
+
|
96
|
+
assert_equal "<<< <p>url: /2008/11/21/complex.html<br />\ndate: #{Time.parse("2008-11-21")}<br />\nid: /2008/11/21/complex</p> >>>", p.output
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_include
|
100
|
+
Jekyll.source = File.join(File.dirname(__FILE__), *%w[source])
|
101
|
+
p = Post.new(File.join(File.dirname(__FILE__), *%w[source]), '', "2008-12-13-include.markdown")
|
102
|
+
layouts = {"default" => Layout.new(File.join(File.dirname(__FILE__), *%w[source _layouts]), "simple.html")}
|
103
|
+
p.render(layouts, {"site" => {"posts" => []}})
|
104
|
+
|
105
|
+
assert_equal "<<< <hr />\n<p>Tom Preston-Werner github.com/mojombo</p>\n\n<p>This <em>is</em> cool</p> >>>", p.output
|
106
|
+
end
|
107
|
+
end
|
data/test/test_site.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
3
|
+
class TestSite < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
source = File.join(File.dirname(__FILE__), *%w[source])
|
6
|
+
@s = Site.new(source, dest_dir)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_site_init
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_read_layouts
|
14
|
+
@s.read_layouts
|
15
|
+
|
16
|
+
assert_equal ["default", "simple"].sort, @s.layouts.keys.sort
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_read_posts
|
20
|
+
@s.read_posts('')
|
21
|
+
|
22
|
+
assert_equal 4, @s.posts.size
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_write_posts
|
26
|
+
clear_dest
|
27
|
+
|
28
|
+
@s.process
|
29
|
+
end
|
30
|
+
end
|
data/test/test_tags.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/helper'
|
2
|
+
|
3
|
+
class TestTags < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@content = <<CONTENT
|
7
|
+
---
|
8
|
+
layout: post
|
9
|
+
title: This is a test
|
10
|
+
|
11
|
+
---
|
12
|
+
This document results in a markdown error with maruku
|
13
|
+
{% highlight ruby %}
|
14
|
+
puts "hi"
|
15
|
+
|
16
|
+
puts "bye"
|
17
|
+
{% endhighlight %}
|
18
|
+
|
19
|
+
CONTENT
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_markdown_with_pygments_line_handling
|
23
|
+
Jekyll.pygments = true
|
24
|
+
Jekyll.content_type = :markdown
|
25
|
+
|
26
|
+
result = Liquid::Template.parse(@content).render({}, [Jekyll::Filters])
|
27
|
+
result = Jekyll.markdown_proc.call(result)
|
28
|
+
assert_no_match(/markdown\-html\-error/,result)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: codeslinger-jekyll
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tom Preston-Werner
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-01-21 00:00:00 -08:00
|
13
|
+
default_executable: jekyll
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: RedCloth
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
23
|
+
version:
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: liquid
|
26
|
+
version_requirement:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: "0"
|
32
|
+
version:
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: classifier
|
35
|
+
version_requirement:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: "0"
|
41
|
+
version:
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: maruku
|
44
|
+
version_requirement:
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: "0"
|
50
|
+
version:
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: directory_watcher
|
53
|
+
version_requirement:
|
54
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: "0"
|
59
|
+
version:
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: open4
|
62
|
+
version_requirement:
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: "0"
|
68
|
+
version:
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: hoe
|
71
|
+
version_requirement:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.8.0
|
77
|
+
version:
|
78
|
+
description:
|
79
|
+
email:
|
80
|
+
- tom@mojombo.com
|
81
|
+
executables:
|
82
|
+
- jekyll
|
83
|
+
extensions: []
|
84
|
+
|
85
|
+
extra_rdoc_files:
|
86
|
+
- History.txt
|
87
|
+
- Manifest.txt
|
88
|
+
files:
|
89
|
+
- History.txt
|
90
|
+
- Manifest.txt
|
91
|
+
- README.textile
|
92
|
+
- Rakefile
|
93
|
+
- bin/jekyll
|
94
|
+
- jekyll.gemspec
|
95
|
+
- lib/jekyll.rb
|
96
|
+
- lib/jekyll/albino.rb
|
97
|
+
- lib/jekyll/converters/csv.rb
|
98
|
+
- lib/jekyll/converters/mephisto.rb
|
99
|
+
- lib/jekyll/converters/mt.rb
|
100
|
+
- lib/jekyll/converters/textpattern.rb
|
101
|
+
- lib/jekyll/converters/typo.rb
|
102
|
+
- lib/jekyll/converters/wordpress.rb
|
103
|
+
- lib/jekyll/convertible.rb
|
104
|
+
- lib/jekyll/core_ext.rb
|
105
|
+
- lib/jekyll/filters.rb
|
106
|
+
- lib/jekyll/layout.rb
|
107
|
+
- lib/jekyll/page.rb
|
108
|
+
- lib/jekyll/post.rb
|
109
|
+
- lib/jekyll/site.rb
|
110
|
+
- lib/jekyll/tags/highlight.rb
|
111
|
+
- lib/jekyll/tags/include.rb
|
112
|
+
- test/helper.rb
|
113
|
+
- test/source/_includes/sig.markdown
|
114
|
+
- test/source/_layouts/default.html
|
115
|
+
- test/source/_layouts/simple.html
|
116
|
+
- test/source/_posts/2008-10-18-foo-bar.textile
|
117
|
+
- test/source/_posts/2008-11-21-complex.textile
|
118
|
+
- test/source/_posts/2008-12-03-permalinked-post.textile
|
119
|
+
- test/source/_posts/2008-12-13-include.markdown
|
120
|
+
- test/source/css/screen.css
|
121
|
+
- test/source/index.html
|
122
|
+
- test/suite.rb
|
123
|
+
- test/test_filters.rb
|
124
|
+
- test/test_generated_site.rb
|
125
|
+
- test/test_jekyll.rb
|
126
|
+
- test/test_post.rb
|
127
|
+
- test/test_site.rb
|
128
|
+
- test/test_tags.rb
|
129
|
+
has_rdoc: true
|
130
|
+
homepage:
|
131
|
+
post_install_message:
|
132
|
+
rdoc_options:
|
133
|
+
- --main
|
134
|
+
- README.txt
|
135
|
+
require_paths:
|
136
|
+
- lib
|
137
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- - ">="
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: "0"
|
142
|
+
version:
|
143
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: "0"
|
148
|
+
version:
|
149
|
+
requirements: []
|
150
|
+
|
151
|
+
rubyforge_project: jekyll
|
152
|
+
rubygems_version: 1.2.0
|
153
|
+
signing_key:
|
154
|
+
specification_version: 2
|
155
|
+
summary: Jekyll is a simple, blog aware, static site generator.
|
156
|
+
test_files:
|
157
|
+
- test/test_filters.rb
|
158
|
+
- test/test_generated_site.rb
|
159
|
+
- test/test_jekyll.rb
|
160
|
+
- test/test_post.rb
|
161
|
+
- test/test_site.rb
|
162
|
+
- test/test_tags.rb
|