cypher-jekyll 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,18 @@
1
+ require 'fileutils'
2
+ require 'rr'
3
+ require 'test/unit'
4
+
5
+ World do
6
+ include Test::Unit::Assertions
7
+ end
8
+
9
+ TEST_DIR = File.join('/', 'tmp', 'jekyll')
10
+ JEKYLL_PATH = File.join(ENV['PWD'], 'bin', 'jekyll')
11
+
12
+ def run_jekyll(opts = {})
13
+ if opts[:bg]
14
+ bg = '&'
15
+ end
16
+
17
+ system "#{JEKYLL_PATH} >> /dev/null"
18
+ end
@@ -0,0 +1,120 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{jekyll}
5
+ s.version = "0.5.3"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Tom Preston-Werner", "Henrik Nyh", "Markus Prinz"]
9
+ s.date = %q{2009-07-11}
10
+ s.default_executable = %q{jekyll}
11
+ s.description = %q{Jekyll is a simple, blog aware, static site generator.}
12
+ s.email = %q{tom@mojombo.com}
13
+ s.executables = ["jekyll"]
14
+ s.extra_rdoc_files = [
15
+ "README.textile"
16
+ ]
17
+ s.files = [
18
+ ".gitignore",
19
+ "History.txt",
20
+ "README.textile",
21
+ "Rakefile",
22
+ "TODO",
23
+ "VERSION.yml",
24
+ "bin/jekyll",
25
+ "features/create_sites.feature",
26
+ "features/embed_filters.feature",
27
+ "features/permalinks.feature",
28
+ "features/post_data.feature",
29
+ "features/site_configuration.feature",
30
+ "features/site_data.feature",
31
+ "features/step_definitions/jekyll_steps.rb",
32
+ "features/support/env.rb",
33
+ "jekyll.gemspec",
34
+ "lib/jekyll.rb",
35
+ "lib/jekyll/albino.rb",
36
+ "lib/jekyll/converters/csv.rb",
37
+ "lib/jekyll/converters/mephisto.rb",
38
+ "lib/jekyll/converters/mt.rb",
39
+ "lib/jekyll/converters/textpattern.rb",
40
+ "lib/jekyll/converters/typo.rb",
41
+ "lib/jekyll/converters/wordpress.rb",
42
+ "lib/jekyll/convertible.rb",
43
+ "lib/jekyll/core_ext.rb",
44
+ "lib/jekyll/filters.rb",
45
+ "lib/jekyll/haml_helpers.rb",
46
+ "lib/jekyll/layout.rb",
47
+ "lib/jekyll/page.rb",
48
+ "lib/jekyll/post.rb",
49
+ "lib/jekyll/site.rb",
50
+ "lib/jekyll/tags/highlight.rb",
51
+ "lib/jekyll/tags/include.rb",
52
+ "test/helper.rb",
53
+ "test/source/_includes/sig.markdown",
54
+ "test/source/_layouts/default.html",
55
+ "test/source/_layouts/simple.html",
56
+ "test/source/_posts/2008-02-02-not-published.textile",
57
+ "test/source/_posts/2008-02-02-published.textile",
58
+ "test/source/_posts/2008-10-18-foo-bar.textile",
59
+ "test/source/_posts/2008-11-21-complex.textile",
60
+ "test/source/_posts/2008-12-03-permalinked-post.textile",
61
+ "test/source/_posts/2008-12-13-include.markdown",
62
+ "test/source/_posts/2009-01-27-array-categories.textile",
63
+ "test/source/_posts/2009-01-27-categories.textile",
64
+ "test/source/_posts/2009-01-27-category.textile",
65
+ "test/source/category/_posts/2008-9-23-categories.textile",
66
+ "test/source/css/screen.css",
67
+ "test/source/foo/_posts/bar/2008-12-12-topical-post.textile",
68
+ "test/source/index.html",
69
+ "test/source/z_category/_posts/2008-9-23-categories.textile",
70
+ "test/suite.rb",
71
+ "test/test_filters.rb",
72
+ "test/test_generated_site.rb",
73
+ "test/test_post.rb",
74
+ "test/test_site.rb",
75
+ "test/test_tags.rb"
76
+ ]
77
+ s.homepage = %q{http://github.com/mojombo/jekyll}
78
+ s.rdoc_options = ["--charset=UTF-8"]
79
+ s.require_paths = ["lib"]
80
+ s.rubyforge_project = %q{jekyll}
81
+ s.rubygems_version = %q{1.3.4}
82
+ s.summary = %q{Jekyll is a simple, blog aware, static site generator.}
83
+ s.test_files = [
84
+ "test/helper.rb",
85
+ "test/suite.rb",
86
+ "test/test_filters.rb",
87
+ "test/test_generated_site.rb",
88
+ "test/test_post.rb",
89
+ "test/test_site.rb",
90
+ "test/test_tags.rb"
91
+ ]
92
+
93
+ if s.respond_to? :specification_version then
94
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
95
+ s.specification_version = 3
96
+
97
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
98
+ s.add_runtime_dependency(%q<RedCloth>, [">= 4.0.4"])
99
+ s.add_runtime_dependency(%q<liquid>, [">= 1.9.0"])
100
+ s.add_runtime_dependency(%q<classifier>, [">= 1.3.1"])
101
+ s.add_runtime_dependency(%q<maruku>, [">= 0.5.9"])
102
+ s.add_runtime_dependency(%q<directory_watcher>, [">= 1.1.1"])
103
+ s.add_runtime_dependency(%q<open4>, [">= 0.9.6"])
104
+ else
105
+ s.add_dependency(%q<RedCloth>, [">= 4.0.4"])
106
+ s.add_dependency(%q<liquid>, [">= 1.9.0"])
107
+ s.add_dependency(%q<classifier>, [">= 1.3.1"])
108
+ s.add_dependency(%q<maruku>, [">= 0.5.9"])
109
+ s.add_dependency(%q<directory_watcher>, [">= 1.1.1"])
110
+ s.add_dependency(%q<open4>, [">= 0.9.6"])
111
+ end
112
+ else
113
+ s.add_dependency(%q<RedCloth>, [">= 4.0.4"])
114
+ s.add_dependency(%q<liquid>, [">= 1.9.0"])
115
+ s.add_dependency(%q<classifier>, [">= 1.3.1"])
116
+ s.add_dependency(%q<maruku>, [">= 0.5.9"])
117
+ s.add_dependency(%q<directory_watcher>, [">= 1.1.1"])
118
+ s.add_dependency(%q<open4>, [">= 0.9.6"])
119
+ end
120
+ end
@@ -22,11 +22,7 @@ module Jekyll
22
22
  end
23
23
 
24
24
  def xml_escape(input)
25
- CGI.escapeHTML(input)
26
- end
27
-
28
- def cgi_escape(input)
29
- CGI::escape(input)
25
+ input.gsub("&", "&amp;").gsub("<", "&lt;").gsub(">", "&gt;")
30
26
  end
31
27
 
32
28
  def number_of_words(input)
@@ -136,7 +136,7 @@ module Jekyll
136
136
  "year" => date.strftime("%Y"),
137
137
  "month" => date.strftime("%m"),
138
138
  "day" => date.strftime("%d"),
139
- "title" => CGI.escape(slug),
139
+ "title" => slug,
140
140
  "categories" => categories.sort.join('/')
141
141
  }.inject(template) { |result, token|
142
142
  result.gsub(/:#{token.first}/, token.last)
@@ -233,8 +233,7 @@ module Jekyll
233
233
  def write(dest)
234
234
  FileUtils.mkdir_p(File.join(dest, dir))
235
235
 
236
- # The url needs to be unescaped in order to preserve the correct filename
237
- path = File.join(dest, CGI.unescape(self.url))
236
+ path = File.join(dest, self.generated_path)
238
237
 
239
238
  if template[/\.html$/].nil?
240
239
  FileUtils.mkdir_p(path)
@@ -1,8 +1,8 @@
1
1
  module Jekyll
2
2
 
3
3
  class Site
4
- attr_accessor :config, :layouts, :posts, :categories, :exclude, :collated_posts, :tags
5
- attr_accessor :source, :dest, :lsi, :pygments, :permalink_style, :pygments_cache
4
+ attr_accessor :config, :layouts, :posts, :collated_posts, :categories, :tags
5
+ attr_accessor :source, :dest, :lsi, :pygments, :pygments_cache, :permalink_style,
6
6
  :sass, :post_defaults
7
7
 
8
8
  # Initialize the site
@@ -18,7 +18,6 @@ module Jekyll
18
18
  self.pygments = config['pygments']
19
19
  self.pygments_cache = config['pygments_cache']
20
20
  self.permalink_style = config['permalink'].to_sym
21
- self.exclude = config['exclude'] || []
22
21
  self.post_defaults = config['post_defaults'] || {}
23
22
 
24
23
  self.reset
@@ -51,12 +50,13 @@ module Jekyll
51
50
  begin
52
51
  require 'haml'
53
52
  require 'jekyll/haml_helpers'
54
- helpers = File.join(source, '_helpers.rb')
55
- require helpers if File.exist?(helpers)
56
53
  puts 'Enabled Haml'
57
54
  rescue LoadError
58
55
  puts 'You must have the haml gem installed first'
59
56
  end
57
+ # Load helpers if available
58
+ helpers = File.join(source, '_helpers.rb')
59
+ require helpers if File.exist?(helpers)
60
60
  end
61
61
 
62
62
  if self.pygments_cache
@@ -75,6 +75,7 @@ module Jekyll
75
75
  RDiscount.new(content).to_html
76
76
  end
77
77
 
78
+ puts 'Using rdiscount for Markdown'
78
79
  rescue LoadError
79
80
  puts 'You must have the rdiscount gem installed first'
80
81
  end
@@ -290,9 +291,11 @@ module Jekyll
290
291
  def filter_entries(entries)
291
292
  entries = entries.reject do |e|
292
293
  unless ['_posts', '.htaccess'].include?(e)
293
- ['.', '_', '#'].include?(e[0..0]) || e[-1..-1] == '~' || self.exclude.include?(e)
294
+ # Reject backup/hidden
295
+ ['.', '_', '#'].include?(e[0..0]) or e[-1..-1] == '~'
294
296
  end
295
297
  end
296
298
  end
299
+
297
300
  end
298
301
  end
@@ -1,6 +1,3 @@
1
- require 'rubygems'
2
- gem 'RedCloth', '= 4.1.0'
3
-
4
1
  require File.join(File.dirname(__FILE__), *%w[.. lib jekyll])
5
2
 
6
3
  require 'test/unit'
@@ -37,13 +37,5 @@ class TestFilters < Test::Unit::TestCase
37
37
  assert_equal "AT&amp;T", @filter.xml_escape("AT&T")
38
38
  assert_equal "&lt;code&gt;command &amp;lt;filename&amp;gt;&lt;/code&gt;", @filter.xml_escape("<code>command &lt;filename&gt;</code>")
39
39
  end
40
-
41
- should "escape space as plus" do
42
- assert_equal "my+things", @filter.cgi_escape("my things")
43
- end
44
-
45
- should "escape special characters" do
46
- assert_equal "hey%21", @filter.cgi_escape("hey!")
47
- end
48
40
  end
49
41
  end
@@ -52,13 +52,6 @@ class TestPost < Test::Unit::TestCase
52
52
  assert_equal "/2008/10/19/foo-bar.html", @post.url
53
53
  end
54
54
 
55
- should "CGI escape urls" do
56
- @post.categories = []
57
- @post.process("2009-03-12-hash-#1.markdown")
58
- assert_equal "/2009/03/12/hash-%231.html", @post.url
59
- assert_equal "/2009/03/12/hash-#1", @post.id
60
- end
61
-
62
55
  should "respect permalink in yaml front matter" do
63
56
  file = "2008-12-03-permalinked-post.textile"
64
57
  @post.process(file)
@@ -53,13 +53,5 @@ class TestSite < Test::Unit::TestCase
53
53
  assert_equal %w[foo.markdown bar.markdown baz.markdown], @site.filter_entries(ent1)
54
54
  assert_equal ent2, @site.filter_entries(ent2)
55
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
56
  end
65
57
  end
@@ -2,29 +2,13 @@ require File.dirname(__FILE__) + '/helper'
2
2
 
3
3
  class TestTags < Test::Unit::TestCase
4
4
 
5
- def create_post(content, override = {}, markdown = true)
5
+ def create_post(code)
6
6
  stub(Jekyll).configuration do
7
- Jekyll::DEFAULTS.merge({'pygments' => true}).merge(override)
7
+ Jekyll::DEFAULTS.merge({'pygments' => true})
8
8
  end
9
9
  site = Site.new(Jekyll.configuration)
10
10
  info = { :filters => [Jekyll::Filters], :registers => { :site => site } }
11
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
12
  content = <<CONTENT
29
13
  ---
30
14
  title: This is a test
@@ -36,12 +20,14 @@ This document results in a markdown error with maruku
36
20
  #{code}
37
21
  {% endhighlight %}
38
22
  CONTENT
39
- create_post(content, override)
23
+
24
+ @result = Liquid::Template.parse(content).render({}, info)
25
+ @result = site.markdown(@result)
40
26
  end
41
27
 
42
28
  context "post content has highlight tag" do
43
29
  setup do
44
- fill_post("test")
30
+ create_post("test")
45
31
  end
46
32
 
47
33
  should "not cause a markdown error" do
@@ -55,62 +41,11 @@ CONTENT
55
41
 
56
42
  context "post content has highlight tag with UTF character" do
57
43
  setup do
58
- fill_post("Æ")
44
+ create_post("Æ")
59
45
  end
60
46
 
61
47
  should "render markdown with pygments line handling" do
62
48
  assert_match %{<pre>Æ\n</pre>}, @result
63
49
  end
64
50
  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
51
  end
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cypher-jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Preston-Werner
8
8
  - Henrik Nyh
9
+ - Markus Prinz
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
13
 
13
- date: 2009-04-27 00:00:00 -07:00
14
+ date: 2009-07-11 00:00:00 -07:00
14
15
  default_executable: jekyll
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
@@ -19,9 +20,9 @@ dependencies:
19
20
  version_requirement:
20
21
  version_requirements: !ruby/object:Gem::Requirement
21
22
  requirements:
22
- - - "="
23
+ - - ">="
23
24
  - !ruby/object:Gem::Version
24
- version: 4.1.0
25
+ version: 4.0.4
25
26
  version:
26
27
  - !ruby/object:Gem::Dependency
27
28
  name: liquid
@@ -82,11 +83,22 @@ extensions: []
82
83
  extra_rdoc_files:
83
84
  - README.textile
84
85
  files:
86
+ - .gitignore
85
87
  - History.txt
86
88
  - README.textile
87
89
  - Rakefile
90
+ - TODO
88
91
  - VERSION.yml
89
92
  - bin/jekyll
93
+ - features/create_sites.feature
94
+ - features/embed_filters.feature
95
+ - features/permalinks.feature
96
+ - features/post_data.feature
97
+ - features/site_configuration.feature
98
+ - features/site_data.feature
99
+ - features/step_definitions/jekyll_steps.rb
100
+ - features/support/env.rb
101
+ - jekyll.gemspec
90
102
  - lib/jekyll.rb
91
103
  - lib/jekyll/albino.rb
92
104
  - lib/jekyll/converters/csv.rb
@@ -118,7 +130,6 @@ files:
118
130
  - test/source/_posts/2009-01-27-array-categories.textile
119
131
  - test/source/_posts/2009-01-27-categories.textile
120
132
  - test/source/_posts/2009-01-27-category.textile
121
- - test/source/_posts/2009-03-12-hash-#1.markdown
122
133
  - test/source/category/_posts/2008-9-23-categories.textile
123
134
  - test/source/css/screen.css
124
135
  - test/source/foo/_posts/bar/2008-12-12-topical-post.textile
@@ -130,7 +141,7 @@ files:
130
141
  - test/test_post.rb
131
142
  - test/test_site.rb
132
143
  - test/test_tags.rb
133
- has_rdoc: true
144
+ has_rdoc: false
134
145
  homepage: http://github.com/mojombo/jekyll
135
146
  post_install_message:
136
147
  rdoc_options:
@@ -154,7 +165,7 @@ requirements: []
154
165
  rubyforge_project: jekyll
155
166
  rubygems_version: 1.2.0
156
167
  signing_key:
157
- specification_version: 2
168
+ specification_version: 3
158
169
  summary: Jekyll is a simple, blog aware, static site generator.
159
170
  test_files:
160
171
  - test/helper.rb