tkmr-jekyll 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/History.txt +127 -0
  2. data/README.textile +41 -0
  3. data/Rakefile +91 -0
  4. data/VERSION.yml +4 -0
  5. data/bin/jekyll +150 -0
  6. data/lib/jekyll.rb +85 -0
  7. data/lib/jekyll/albino.rb +122 -0
  8. data/lib/jekyll/converters/csv.rb +26 -0
  9. data/lib/jekyll/converters/mephisto.rb +79 -0
  10. data/lib/jekyll/converters/mt.rb +59 -0
  11. data/lib/jekyll/converters/textpattern.rb +50 -0
  12. data/lib/jekyll/converters/typo.rb +49 -0
  13. data/lib/jekyll/converters/wordpress.rb +54 -0
  14. data/lib/jekyll/convertible.rb +82 -0
  15. data/lib/jekyll/core_ext.rb +22 -0
  16. data/lib/jekyll/filters.rb +47 -0
  17. data/lib/jekyll/layout.rb +36 -0
  18. data/lib/jekyll/page.rb +70 -0
  19. data/lib/jekyll/pager.rb +45 -0
  20. data/lib/jekyll/post.rb +243 -0
  21. data/lib/jekyll/site.rb +265 -0
  22. data/lib/jekyll/tags/eval_assign.rb +25 -0
  23. data/lib/jekyll/tags/highlight.rb +56 -0
  24. data/lib/jekyll/tags/include.rb +31 -0
  25. data/test/helper.rb +27 -0
  26. data/test/source/_includes/sig.markdown +3 -0
  27. data/test/source/_layouts/default.html +27 -0
  28. data/test/source/_layouts/simple.html +1 -0
  29. data/test/source/_posts/2008-02-02-not-published.textile +8 -0
  30. data/test/source/_posts/2008-02-02-published.textile +8 -0
  31. data/test/source/_posts/2008-10-18-foo-bar.textile +8 -0
  32. data/test/source/_posts/2008-11-21-complex.textile +8 -0
  33. data/test/source/_posts/2008-12-03-permalinked-post.textile +9 -0
  34. data/test/source/_posts/2008-12-13-include.markdown +8 -0
  35. data/test/source/_posts/2009-01-27-array-categories.textile +10 -0
  36. data/test/source/_posts/2009-01-27-categories.textile +7 -0
  37. data/test/source/_posts/2009-01-27-category.textile +7 -0
  38. data/test/source/_posts/2009-03-12-hash-#1.markdown +6 -0
  39. data/test/source/category/_posts/2008-9-23-categories.textile +6 -0
  40. data/test/source/css/screen.css +76 -0
  41. data/test/source/foo/_posts/bar/2008-12-12-topical-post.textile +8 -0
  42. data/test/source/index.html +22 -0
  43. data/test/source/z_category/_posts/2008-9-23-categories.textile +6 -0
  44. data/test/suite.rb +9 -0
  45. data/test/test_filters.rb +49 -0
  46. data/test/test_generated_site.rb +38 -0
  47. data/test/test_post.rb +269 -0
  48. data/test/test_site.rb +65 -0
  49. data/test/test_tags.rb +116 -0
  50. metadata +167 -0
data/test/test_site.rb ADDED
@@ -0,0 +1,65 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+
3
+ class TestSite < Test::Unit::TestCase
4
+ context "creating sites" do
5
+ setup do
6
+ stub(Jekyll).configuration do
7
+ Jekyll::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir})
8
+ end
9
+ @site = Site.new(Jekyll.configuration)
10
+ end
11
+
12
+ should "reset data before processing" do
13
+ clear_dest
14
+ @site.process
15
+ before_posts = @site.posts.length
16
+ before_layouts = @site.layouts.length
17
+ before_categories = @site.categories.length
18
+
19
+ @site.process
20
+ assert_equal before_posts, @site.posts.length
21
+ assert_equal before_layouts, @site.layouts.length
22
+ assert_equal before_categories, @site.categories.length
23
+ end
24
+
25
+ should "read layouts" do
26
+ @site.read_layouts
27
+ assert_equal ["default", "simple"].sort, @site.layouts.keys.sort
28
+ end
29
+
30
+ should "read posts" do
31
+ @site.read_posts('')
32
+ posts = Dir[source_dir('_posts', '*')]
33
+ assert_equal posts.size - 1, @site.posts.size
34
+ end
35
+
36
+ should "deploy payload" do
37
+ clear_dest
38
+ @site.process
39
+
40
+ posts = Dir[source_dir("**", "_posts", "*")]
41
+ categories = %w(bar baz category foo z_category publish_test).sort
42
+
43
+ assert_equal posts.size - 1, @site.posts.size
44
+ assert_equal categories, @site.categories.keys.sort
45
+ assert_equal 4, @site.categories['foo'].size
46
+ end
47
+
48
+ should "filter entries" do
49
+ ent1 = %w[foo.markdown bar.markdown baz.markdown #baz.markdown#
50
+ .baz.markdow foo.markdown~]
51
+ ent2 = %w[.htaccess _posts bla.bla]
52
+
53
+ assert_equal %w[foo.markdown bar.markdown baz.markdown], @site.filter_entries(ent1)
54
+ assert_equal ent2, @site.filter_entries(ent2)
55
+ end
56
+
57
+ should "filter entries with exclude" do
58
+ excludes = %w[README TODO]
59
+ includes = %w[index.html site.css]
60
+
61
+ @site.exclude = excludes
62
+ assert_equal includes, @site.filter_entries(excludes + includes)
63
+ end
64
+ end
65
+ end
data/test/test_tags.rb ADDED
@@ -0,0 +1,116 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+
3
+ class TestTags < Test::Unit::TestCase
4
+
5
+ def create_post(content, override = {}, markdown = true)
6
+ stub(Jekyll).configuration do
7
+ Jekyll::DEFAULTS.merge({'pygments' => true}).merge(override)
8
+ end
9
+ site = Site.new(Jekyll.configuration)
10
+ info = { :filters => [Jekyll::Filters], :registers => { :site => site } }
11
+
12
+ if markdown
13
+ payload = {"content_type" => "markdown"}
14
+ else
15
+ payload = {"content_type" => "textile"}
16
+ end
17
+
18
+ @result = Liquid::Template.parse(content).render(payload, info)
19
+
20
+ if markdown
21
+ @result = site.markdown(@result)
22
+ else
23
+ @result = site.textile(@result)
24
+ end
25
+ end
26
+
27
+ def fill_post(code, override = {})
28
+ content = <<CONTENT
29
+ ---
30
+ title: This is a test
31
+ ---
32
+
33
+ This document results in a markdown error with maruku
34
+
35
+ {% highlight text %}
36
+ #{code}
37
+ {% endhighlight %}
38
+ CONTENT
39
+ create_post(content, override)
40
+ end
41
+
42
+ context "post content has highlight tag" do
43
+ setup do
44
+ fill_post("test")
45
+ end
46
+
47
+ should "not cause a markdown error" do
48
+ assert_no_match /markdown\-html\-error/, @result
49
+ end
50
+
51
+ should "render markdown with pygments line handling" do
52
+ assert_match %{<pre>test\n</pre>}, @result
53
+ end
54
+ end
55
+
56
+ context "post content has highlight tag with UTF character" do
57
+ setup do
58
+ fill_post("Æ")
59
+ end
60
+
61
+ should "render markdown with pygments line handling" do
62
+ assert_match %{<pre>Æ\n</pre>}, @result
63
+ end
64
+ end
65
+
66
+ context "simple post with markdown and pre tags" do
67
+ setup do
68
+ @content = <<CONTENT
69
+ ---
70
+ title: Maruku vs. RDiscount
71
+ ---
72
+
73
+ _FIGHT!_
74
+
75
+ {% highlight ruby %}
76
+ puts "3..2..1.."
77
+ {% endhighlight %}
78
+
79
+ *FINISH HIM*
80
+ CONTENT
81
+ end
82
+
83
+ context "using Textile" do
84
+ setup do
85
+ create_post(@content, {}, false)
86
+ end
87
+
88
+ # Broken in RedCloth 4.1.9
89
+ should "not textilize highlight block" do
90
+ assert_no_match %r{3\.\.2\.\.1\.\.&quot;</span><br />}, @result
91
+ end
92
+ end
93
+
94
+ context "using Maruku" do
95
+ setup do
96
+ create_post(@content)
97
+ end
98
+
99
+ should "parse correctly" do
100
+ assert_match %r{<em>FIGHT!</em>}, @result
101
+ assert_match %r{<em>FINISH HIM</em>}, @result
102
+ end
103
+ end
104
+
105
+ context "using RDiscount" do
106
+ setup do
107
+ create_post(@content, 'markdown' => 'rdiscount')
108
+ end
109
+
110
+ should "parse correctly" do
111
+ assert_match %r{<em>FIGHT!</em>}, @result
112
+ assert_match %r{<em>FINISH HIM</em>}, @result
113
+ end
114
+ end
115
+ end
116
+ end
metadata ADDED
@@ -0,0 +1,167 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tkmr-jekyll
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
5
+ platform: ruby
6
+ authors:
7
+ - Tom Preston-Werner
8
+ - Tatsuya Takamura
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-05-06 00:00:00 -07:00
14
+ default_executable: jekyll
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: RedCloth
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - "="
23
+ - !ruby/object:Gem::Version
24
+ version: 4.1.0
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: liquid
28
+ type: :runtime
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.9.0
35
+ version:
36
+ - !ruby/object:Gem::Dependency
37
+ name: classifier
38
+ type: :runtime
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 1.3.1
45
+ version:
46
+ - !ruby/object:Gem::Dependency
47
+ name: maruku
48
+ type: :runtime
49
+ version_requirement:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 0.5.9
55
+ version:
56
+ - !ruby/object:Gem::Dependency
57
+ name: directory_watcher
58
+ type: :runtime
59
+ version_requirement:
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 1.1.1
65
+ version:
66
+ - !ruby/object:Gem::Dependency
67
+ name: open4
68
+ type: :runtime
69
+ version_requirement:
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 0.9.6
75
+ version:
76
+ description: Jekyll is a simple, blog aware, static site generator.
77
+ email: tom@mojombo.com
78
+ executables:
79
+ - jekyll
80
+ extensions: []
81
+
82
+ extra_rdoc_files:
83
+ - README.textile
84
+ files:
85
+ - History.txt
86
+ - README.textile
87
+ - Rakefile
88
+ - VERSION.yml
89
+ - bin/jekyll
90
+ - lib/jekyll.rb
91
+ - lib/jekyll/albino.rb
92
+ - lib/jekyll/converters/csv.rb
93
+ - lib/jekyll/converters/mephisto.rb
94
+ - lib/jekyll/converters/mt.rb
95
+ - lib/jekyll/converters/textpattern.rb
96
+ - lib/jekyll/converters/typo.rb
97
+ - lib/jekyll/converters/wordpress.rb
98
+ - lib/jekyll/convertible.rb
99
+ - lib/jekyll/core_ext.rb
100
+ - lib/jekyll/filters.rb
101
+ - lib/jekyll/layout.rb
102
+ - lib/jekyll/page.rb
103
+ - lib/jekyll/pager.rb
104
+ - lib/jekyll/post.rb
105
+ - lib/jekyll/site.rb
106
+ - lib/jekyll/tags/highlight.rb
107
+ - lib/jekyll/tags/include.rb
108
+ - lib/jekyll/tags/eval_assign.rb
109
+ - test/helper.rb
110
+ - test/source/_includes/sig.markdown
111
+ - test/source/_layouts/default.html
112
+ - test/source/_layouts/simple.html
113
+ - test/source/_posts/2008-02-02-not-published.textile
114
+ - test/source/_posts/2008-02-02-published.textile
115
+ - test/source/_posts/2008-10-18-foo-bar.textile
116
+ - test/source/_posts/2008-11-21-complex.textile
117
+ - test/source/_posts/2008-12-03-permalinked-post.textile
118
+ - test/source/_posts/2008-12-13-include.markdown
119
+ - test/source/_posts/2009-01-27-array-categories.textile
120
+ - test/source/_posts/2009-01-27-categories.textile
121
+ - test/source/_posts/2009-01-27-category.textile
122
+ - test/source/_posts/2009-03-12-hash-#1.markdown
123
+ - test/source/category/_posts/2008-9-23-categories.textile
124
+ - test/source/css/screen.css
125
+ - test/source/foo/_posts/bar/2008-12-12-topical-post.textile
126
+ - test/source/index.html
127
+ - test/source/z_category/_posts/2008-9-23-categories.textile
128
+ - test/suite.rb
129
+ - test/test_filters.rb
130
+ - test/test_generated_site.rb
131
+ - test/test_post.rb
132
+ - test/test_site.rb
133
+ - test/test_tags.rb
134
+ has_rdoc: true
135
+ homepage: http://github.com/mojombo/jekyll
136
+ post_install_message:
137
+ rdoc_options:
138
+ - --charset=UTF-8
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: "0"
146
+ version:
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: "0"
152
+ version:
153
+ requirements: []
154
+
155
+ rubyforge_project: jekyll
156
+ rubygems_version: 1.2.0
157
+ signing_key:
158
+ specification_version: 2
159
+ summary: Jekyll is a simple, blog aware, static site generator.
160
+ test_files:
161
+ - test/helper.rb
162
+ - test/suite.rb
163
+ - test/test_filters.rb
164
+ - test/test_generated_site.rb
165
+ - test/test_post.rb
166
+ - test/test_site.rb
167
+ - test/test_tags.rb