spinto-jekyll 0.11.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. data/Gemfile +2 -0
  2. data/History.txt +321 -0
  3. data/LICENSE +21 -0
  4. data/README.textile +41 -0
  5. data/Rakefile +166 -0
  6. data/bin/jekyll +289 -0
  7. data/cucumber.yml +1 -0
  8. data/features/create_sites.feature +112 -0
  9. data/features/embed_filters.feature +60 -0
  10. data/features/markdown.feature +30 -0
  11. data/features/pagination.feature +27 -0
  12. data/features/permalinks.feature +65 -0
  13. data/features/post_data.feature +153 -0
  14. data/features/site_configuration.feature +145 -0
  15. data/features/site_data.feature +82 -0
  16. data/features/step_definitions/jekyll_steps.rb +145 -0
  17. data/features/support/env.rb +19 -0
  18. data/lib/jekyll.rb +136 -0
  19. data/lib/jekyll/converter.rb +50 -0
  20. data/lib/jekyll/converters/identity.rb +22 -0
  21. data/lib/jekyll/converters/markdown.rb +125 -0
  22. data/lib/jekyll/converters/textile.rb +50 -0
  23. data/lib/jekyll/convertible.rb +112 -0
  24. data/lib/jekyll/core_ext.rb +52 -0
  25. data/lib/jekyll/errors.rb +6 -0
  26. data/lib/jekyll/filters.rb +118 -0
  27. data/lib/jekyll/generator.rb +7 -0
  28. data/lib/jekyll/generators/pagination.rb +113 -0
  29. data/lib/jekyll/layout.rb +44 -0
  30. data/lib/jekyll/migrators/csv.rb +26 -0
  31. data/lib/jekyll/migrators/drupal.rb +103 -0
  32. data/lib/jekyll/migrators/enki.rb +49 -0
  33. data/lib/jekyll/migrators/joomla.rb +53 -0
  34. data/lib/jekyll/migrators/marley.rb +52 -0
  35. data/lib/jekyll/migrators/mephisto.rb +84 -0
  36. data/lib/jekyll/migrators/mt.rb +86 -0
  37. data/lib/jekyll/migrators/posterous.rb +67 -0
  38. data/lib/jekyll/migrators/rss.rb +47 -0
  39. data/lib/jekyll/migrators/textpattern.rb +58 -0
  40. data/lib/jekyll/migrators/tumblr.rb +195 -0
  41. data/lib/jekyll/migrators/typo.rb +51 -0
  42. data/lib/jekyll/migrators/wordpress.rb +294 -0
  43. data/lib/jekyll/migrators/wordpressdotcom.rb +70 -0
  44. data/lib/jekyll/page.rb +155 -0
  45. data/lib/jekyll/plugin.rb +77 -0
  46. data/lib/jekyll/post.rb +257 -0
  47. data/lib/jekyll/site.rb +337 -0
  48. data/lib/jekyll/static_file.rb +72 -0
  49. data/lib/jekyll/tags/highlight.rb +76 -0
  50. data/lib/jekyll/tags/include.rb +37 -0
  51. data/lib/jekyll/tags/post_url.rb +38 -0
  52. data/lib/spinto-jekyll.rb +3 -0
  53. data/spinto-jekyll.gemspec +155 -0
  54. data/test/helper.rb +34 -0
  55. data/test/source/.htaccess +8 -0
  56. data/test/source/_includes/sig.markdown +3 -0
  57. data/test/source/_layouts/default.html +27 -0
  58. data/test/source/_layouts/simple.html +1 -0
  59. data/test/source/_posts/2008-02-02-not-published.textile +8 -0
  60. data/test/source/_posts/2008-02-02-published.textile +8 -0
  61. data/test/source/_posts/2008-10-18-foo-bar.textile +8 -0
  62. data/test/source/_posts/2008-11-21-complex.textile +8 -0
  63. data/test/source/_posts/2008-12-03-permalinked-post.textile +9 -0
  64. data/test/source/_posts/2008-12-13-include.markdown +8 -0
  65. data/test/source/_posts/2009-01-27-array-categories.textile +10 -0
  66. data/test/source/_posts/2009-01-27-categories.textile +7 -0
  67. data/test/source/_posts/2009-01-27-category.textile +7 -0
  68. data/test/source/_posts/2009-01-27-empty-categories.textile +7 -0
  69. data/test/source/_posts/2009-01-27-empty-category.textile +7 -0
  70. data/test/source/_posts/2009-03-12-hash-#1.markdown +6 -0
  71. data/test/source/_posts/2009-05-18-empty-tag.textile +6 -0
  72. data/test/source/_posts/2009-05-18-empty-tags.textile +6 -0
  73. data/test/source/_posts/2009-05-18-tag.textile +6 -0
  74. data/test/source/_posts/2009-05-18-tags.textile +9 -0
  75. data/test/source/_posts/2009-06-22-empty-yaml.textile +3 -0
  76. data/test/source/_posts/2009-06-22-no-yaml.textile +1 -0
  77. data/test/source/_posts/2010-01-08-triple-dash.markdown +5 -0
  78. data/test/source/_posts/2010-01-09-date-override.textile +7 -0
  79. data/test/source/_posts/2010-01-09-time-override.textile +7 -0
  80. data/test/source/_posts/2010-01-09-timezone-override.textile +7 -0
  81. data/test/source/_posts/2010-01-16-override-data.textile +4 -0
  82. data/test/source/_posts/2011-04-12-md-extension.md +7 -0
  83. data/test/source/_posts/2011-04-12-text-extension.text +0 -0
  84. data/test/source/about.html +6 -0
  85. data/test/source/category/_posts/2008-9-23-categories.textile +6 -0
  86. data/test/source/contacts.html +5 -0
  87. data/test/source/css/screen.css +76 -0
  88. data/test/source/deal.with.dots.html +7 -0
  89. data/test/source/foo/_posts/bar/2008-12-12-topical-post.textile +8 -0
  90. data/test/source/index.html +22 -0
  91. data/test/source/sitemap.xml +32 -0
  92. data/test/source/win/_posts/2009-05-24-yaml-linebreak.markdown +7 -0
  93. data/test/source/z_category/_posts/2008-9-23-categories.textile +6 -0
  94. data/test/suite.rb +11 -0
  95. data/test/test_configuration.rb +29 -0
  96. data/test/test_core_ext.rb +66 -0
  97. data/test/test_filters.rb +62 -0
  98. data/test/test_generated_site.rb +72 -0
  99. data/test/test_kramdown.rb +23 -0
  100. data/test/test_page.rb +117 -0
  101. data/test/test_pager.rb +113 -0
  102. data/test/test_post.rb +456 -0
  103. data/test/test_rdiscount.rb +18 -0
  104. data/test/test_redcarpet.rb +21 -0
  105. data/test/test_redcloth.rb +86 -0
  106. data/test/test_site.rb +220 -0
  107. data/test/test_tags.rb +201 -0
  108. metadata +336 -0
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
data/History.txt ADDED
@@ -0,0 +1,321 @@
1
+ == HEAD
2
+ * Minor Enhancements
3
+ * Add ability to explicitly specify included files (#261)
4
+ * Add --default-mimetype option (#279)
5
+ * Allow setting of RedCloth options (#284)
6
+ * Add post_url Liquid tag for internal post linking (#369)
7
+ * Allow multiple plugin dirs to be specified (#438)
8
+ * Bug Fixes
9
+ * Allow some special characters in highlight names
10
+ * URL escape category names in URL generation (#360)
11
+ * Fix error with limit_posts (#442)
12
+ * Properly select dotfile during directory scan (#363, #431, #377)
13
+
14
+ == 0.11.2 / 2011-12-27
15
+ * Bug Fixes
16
+ * Fix gemspec
17
+
18
+ == 0.11.1 / 2011-12-27
19
+ * Bug Fixes
20
+ * Fix extra blank line in highlight blocks (#409)
21
+ * Update dependencies
22
+
23
+ == 0.11.0 / 2011-07-10
24
+ * Major Enhancements
25
+ * Add command line importer functionality (#253)
26
+ * Add Redcarpet Markdown support (#318)
27
+ * Make markdown/textile extensions configurable (#312)
28
+ * Add `markdownify` filter
29
+ * Minor Enhancements
30
+ * Switch to Albino gem
31
+ * Bundler support
32
+ * Use English library to avoid hoops (#292)
33
+ * Add Posterous importer (#254)
34
+ * Fixes for Wordpress importer (#274, #252, #271)
35
+ * Better error message for invalid post date (#291)
36
+ * Print formatted fatal exceptions to stdout on build failure
37
+ * Add Tumblr importer (#323)
38
+ * Add Enki importer (#320)
39
+ * Bug Fixes
40
+ * Secure additional path exploits
41
+
42
+ == 0.10.0 / 2010-12-16
43
+ * Bug Fixes
44
+ * Add --no-server option.
45
+
46
+ == 0.9.0 / 2010-12-15
47
+ * Minor Enhancements
48
+ * Use OptionParser's [no-] functionality for better boolean parsing.
49
+ * Add Drupal migrator (#245)
50
+ * Complain about YAML and Liquid errors (#249)
51
+ * Remove orphaned files during regeneration (#247)
52
+ * Add Marley migrator (#28)
53
+
54
+ == 0.8.0 / 2010-11-22
55
+ * Minor Enhancements
56
+ * Add wordpress.com importer (#207)
57
+ * Add --limit-posts cli option (#212)
58
+ * Add uri_escape filter (#234)
59
+ * Add --base-url cli option (#235)
60
+ * Improve MT migrator (#238)
61
+ * Add kramdown support (#239)
62
+ * Bug Fixes
63
+ * Fixed filename basename generation (#208)
64
+ * Set mode to UTF8 on Sequel connections (#237)
65
+ * Prevent _includes dir from being a symlink
66
+
67
+ == 0.7.0 / 2010-08-24
68
+ * Minor Enhancements
69
+ * Add support for rdiscount extensions (#173)
70
+ * Bug Fixes
71
+ * Highlight should not be able to render local files
72
+ * The site configuration may not always provide a 'time' setting (#184)
73
+
74
+ == 0.6.2 / 2010-06-25
75
+ * Bug Fixes
76
+ * Fix Rakefile 'release' task (tag pushing was missing origin)
77
+ * Ensure that RedCloth is loaded when textilize filter is used (#183)
78
+ * Expand source, destination, and plugin paths (#180)
79
+ * Fix page.url to include full relative path (#181)
80
+
81
+ == 0.6.1 / 2010-06-24
82
+ * Bug Fixes
83
+ * Fix Markdown Pygments prefix and suffix (#178)
84
+
85
+ == 0.6.0 / 2010-06-23
86
+ * Major Enhancements
87
+ * Proper plugin system (#19, #100)
88
+ * Add safe mode so unsafe converters/generators can be added
89
+ * Maruku is now the only processor dependency installed by default.
90
+ Other processors will be lazy-loaded when necessary (and prompt the
91
+ user to install them when necessary) (#57)
92
+ * Minor Enhancements
93
+ * Inclusion/exclusion of future dated posts (#59)
94
+ * Generation for a specific time (#59)
95
+ * Allocate site.time on render not per site_payload invocation (#59)
96
+ * Pages now present in the site payload and can be used through the
97
+ site.pages and site.html_pages variables
98
+ * Generate phase added to site#process and pagination is now a generator
99
+ * Switch to RakeGem for build/test process
100
+ * Only regenerate static files when they have changed (#142)
101
+ * Allow arbitrary options to Pygments (#31)
102
+ * Allow URL to be set via command line option (#147)
103
+ * Bug Fixes
104
+ * Render highlighted code for non markdown/textile pages (#116)
105
+ * Fix highlighting on Ruby 1.9 (#65)
106
+ * Fix extension munging when pretty permalinks are enabled (#64)
107
+ * Stop sorting categories (#33)
108
+ * Preserve generated attributes over front matter (#119)
109
+ * Fix source directory binding using Dir.pwd (#75)
110
+
111
+ == 0.5.7 / 2010-01-12
112
+ * Minor Enhancements
113
+ * Allow overriding of post date in the front matter (#62, #38)
114
+ * Bug Fixes
115
+ * Categories isn't always an array (#73)
116
+ * Empty tags causes error in read_posts (#84)
117
+ * Fix pagination to adhere to read/render/write paradigm
118
+ * Test Enhancement
119
+ * cucumber features no longer use site.posts.first where a better
120
+ alternative is available
121
+
122
+ == 0.5.6 / 2010-01-08
123
+ * Bug Fixes
124
+ * Require redcloth >= 4.2.1 in tests (#92)
125
+ * Don't break on triple dashes in yaml frontmatter (#93)
126
+ * Minor Enhancements
127
+ * Allow .mkd as markdown extension
128
+ * Use $stdout/err instead of constants (#99)
129
+ * Properly wrap code blocks (#91)
130
+ * Add javascript mime type for webrick (#98)
131
+
132
+ == 0.5.5 / 2010-01-08
133
+ * Bug Fixes
134
+ * Fix pagination % 0 bug (#78)
135
+ * Ensure all posts are processed first (#71)
136
+
137
+ == NOTE
138
+ * After this point I will no longer be giving credit in the history;
139
+ that is what the commit log is for.
140
+
141
+ == 0.5.4 / 2009-08-23
142
+ * Bug Fixes
143
+ * Do not allow symlinks (security vulnerability)
144
+
145
+ == 0.5.3 / 2009-07-14
146
+ * Bug Fixes
147
+ * Solving the permalink bug where non-html files wouldn't work
148
+ [github.com/jeffrydegrande]
149
+
150
+ == 0.5.2 / 2009-06-24
151
+ * Enhancements
152
+ * Added --paginate option to the executable along with a paginator object
153
+ for the payload [github.com/calavera]
154
+ * Upgraded RedCloth to 4.2.1, which makes <notextile> tags work once
155
+ again.
156
+ * Configuration options set in config.yml are now available through the
157
+ site payload [github.com/vilcans]
158
+ * Posts can now have an empty YAML front matter or none at all
159
+ [github.com/bahuvrihi]
160
+ * Bug Fixes
161
+ * Fixing Ruby 1.9 issue that requires to_s on the err object
162
+ [github.com/Chrononaut]
163
+ * Fixes for pagination and ordering posts on the same day [github.com/ujh]
164
+ * Made pages respect permalinks style and permalinks in yml front matter
165
+ [github.com/eugenebolshakov]
166
+ * Index.html file should always have index.html permalink
167
+ [github.com/eugenebolshakov]
168
+ * Added trailing slash to pretty permalink style so Apache is happy
169
+ [github.com/eugenebolshakov]
170
+ * Bad markdown processor in config fails sooner and with better message
171
+ [github.com/gcnovus]
172
+ * Allow CRLFs in yaml frontmatter [github.com/juretta]
173
+ * Added Date#xmlschema for Ruby versions < 1.9
174
+
175
+ == 0.5.1 / 2009-05-06
176
+ * Major Enhancements
177
+ * Next/previous posts in site payload [github.com/pantulis,
178
+ github.com/tomo]
179
+ * Permalink templating system
180
+ * Moved most of the README out to the GitHub wiki
181
+ * Exclude option in configuration so specified files won't be brought over
182
+ with generated site [github.com/duritong]
183
+ * Bug Fixes
184
+ * Making sure config.yaml references are all gone, using only config.yml
185
+ * Fixed syntax highlighting breaking for UTF-8 code [github.com/henrik]
186
+ * Worked around RDiscount bug that prevents Markdown from getting parsed
187
+ after highlight [github.com/henrik]
188
+ * CGI escaped post titles [github.com/Chrononaut]
189
+
190
+ == 0.5.0 / 2009-04-07
191
+ * Minor Enhancements
192
+ * Ability to set post categories via YAML [github.com/qrush]
193
+ * Ability to set prevent a post from publishing via YAML
194
+ [github.com/qrush]
195
+ * Add textilize filter [github.com/willcodeforfoo]
196
+ * Add 'pretty' permalink style for wordpress-like urls
197
+ [github.com/dysinger]
198
+ * Made it possible to enter categories from YAML as an array
199
+ [github.com/Chrononaut]
200
+ * Ignore Emacs autosave files [github.com/Chrononaut]
201
+ * Bug Fixes
202
+ * Use block syntax of popen4 to ensure that subprocesses are properly
203
+ disposed [github.com/jqr]
204
+ * Close open4 streams to prevent zombies [github.com/rtomayko]
205
+ * Only query required fields from the WP Database [github.com/ariejan]
206
+ * Prevent _posts from being copied to the destination directory
207
+ [github.com/bdimcheff]
208
+ * Refactors
209
+ * Factored the filtering code into a method [github.com/Chrononaut]
210
+ * Fix tests and convert to Shoulda [github.com/qrush,
211
+ github.com/technicalpickles]
212
+ * Add Cucumber acceptance test suite [github.com/qrush,
213
+ github.com/technicalpickles]
214
+
215
+ == 0.4.1
216
+ * Minor Enhancements
217
+ * Changed date format on wordpress converter (zeropadding)
218
+ [github.com/dysinger]
219
+ * Bug Fixes
220
+ * Add jekyll binary as executable to gemspec [github.com/dysinger]
221
+
222
+ == 0.4.0 / 2009-02-03
223
+ * Major Enhancements
224
+ * Switch to Jeweler for packaging tasks
225
+ * Minor Enhancements
226
+ * Type importer [github.com/codeslinger]
227
+ * site.topics accessor [github.com/baz]
228
+ * Add array_to_sentence_string filter [github.com/mchung]
229
+ * Add a converter for textpattern [github.com/PerfectlyNormal]
230
+ * Add a working Mephisto / MySQL converter [github.com/ivey]
231
+ * Allowing .htaccess files to be copied over into the generated site
232
+ [github.com/briandoll]
233
+ * Add option to not put file date in permalink URL [github.com/mreid]
234
+ * Add line number capabilities to highlight blocks [github.com/jcon]
235
+ * Bug Fixes
236
+ * Fix permalink behavior [github.com/cavalle]
237
+ * Fixed an issue with pygments, markdown, and newlines
238
+ [github.com/zpinter]
239
+ * Ampersands need to be escaped [github.com/pufuwozu, github.com/ap]
240
+ * Test and fix the site.categories hash [github.com/zzot]
241
+ * Fix site payload available to files [github.com/matrix9180]
242
+
243
+ == 0.3.0 / 2008-12-24
244
+ * Major Enhancements
245
+ * Added --server option to start a simple WEBrick server on destination
246
+ directory [github.com/johnreilly and github.com/mchung]
247
+ * Minor Enhancements
248
+ * Added post categories based on directories containing _posts
249
+ [github.com/mreid]
250
+ * Added post topics based on directories underneath _posts
251
+ * Added new date filter that shows the full month name [github.com/mreid]
252
+ * Merge Post's YAML front matter into its to_liquid payload
253
+ [github.com/remi]
254
+ * Restrict includes to regular files underneath _includes
255
+ * Bug Fixes
256
+ * Change YAML delimiter matcher so as to not chew up 2nd level markdown
257
+ headers [github.com/mreid]
258
+ * Fix bug that meant page data (such as the date) was not available in
259
+ templates [github.com/mreid]
260
+ * Properly reject directories in _layouts
261
+
262
+ == 0.2.1 / 2008-12-15
263
+ * Major Changes
264
+ * Use Maruku (pure Ruby) for Markdown by default [github.com/mreid]
265
+ * Allow use of RDiscount with --rdiscount flag
266
+ * Minor Enhancements
267
+ * Don't load directory_watcher unless it's needed [github.com/pjhyett]
268
+
269
+ == 0.2.0 / 2008-12-14
270
+ * Major Changes
271
+ * related_posts is now found in site.related_posts
272
+
273
+ == 0.1.6 / 2008-12-13
274
+ * Major Features
275
+ * Include files in _includes with {% include x.textile %}
276
+
277
+ == 0.1.5 / 2008-12-12
278
+ * Major Features
279
+ * Code highlighting with Pygments if --pygments is specified
280
+ * Disable true LSI by default, enable with --lsi
281
+ * Minor Enhancements
282
+ * Output informative message if RDiscount is not available
283
+ [github.com/JackDanger]
284
+ * Bug Fixes
285
+ * Prevent Jekyll from picking up the output directory as a source
286
+ [github.com/JackDanger]
287
+ * Skip related_posts when there is only one post [github.com/JackDanger]
288
+
289
+ == 0.1.4 / 2008-12-08
290
+ * Bug Fixes
291
+ * DATA does not work properly with rubygems
292
+
293
+ == 0.1.3 / 2008-12-06
294
+ * Major Features
295
+ * Markdown support [github.com/vanpelt]
296
+ * Mephisto and CSV converters [github.com/vanpelt]
297
+ * Code hilighting [github.com/vanpelt]
298
+ * Autobuild
299
+ * Bug Fixes
300
+ * Accept both \r\n and \n in YAML header [github.com/vanpelt]
301
+
302
+ == 0.1.2 / 2008-11-22
303
+ * Major Features
304
+ * Add a real "related posts" implementation using Classifier
305
+ * Command Line Changes
306
+ * Allow cli to be called with 0, 1, or 2 args intuiting dir paths
307
+ if they are omitted
308
+
309
+ == 0.1.1 / 2008-11-22
310
+ * Minor Additions
311
+ * Posts now support introspectional data e.g. {{ page.url }}
312
+
313
+ == 0.1.0 / 2008-11-05
314
+ * First release
315
+ * Converts posts written in Textile
316
+ * Converts regular site pages
317
+ * Simple copy of binary files
318
+
319
+ == 0.0.0 / 2008-10-19
320
+ * Birthday!
321
+
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ (The MIT License)
2
+
3
+ Copyright (c) 2008 Tom Preston-Werner
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the 'Software'), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.textile ADDED
@@ -0,0 +1,41 @@
1
+ h1. Jekyll
2
+
3
+ By Tom Preston-Werner, Nick Quaranto, and many awesome contributors!
4
+
5
+ Jekyll is a simple, blog aware, static site generator. It takes a template directory (representing the raw form of a website), runs it through Textile or Markdown and Liquid converters, and spits out a complete, static website suitable for serving with Apache or your favorite web server. This is also the engine behind "GitHub Pages":http://pages.github.com, which you can use to host your project's page or blog right here from GitHub.
6
+
7
+ h2. Getting Started
8
+
9
+ * "Install":http://wiki.github.com/mojombo/jekyll/install the gem
10
+ * Read up about its "Usage":http://wiki.github.com/mojombo/jekyll/usage and "Configuration":http://wiki.github.com/mojombo/jekyll/configuration
11
+ * Take a gander at some existing "Sites":http://wiki.github.com/mojombo/jekyll/sites
12
+ * Fork and "Contribute":http://wiki.github.com/mojombo/jekyll/contribute your own modifications
13
+ * Have questions? Post them on the "Mailing List":http://groups.google.com/group/jekyll-rb
14
+
15
+ h2. Diving In
16
+
17
+ * "Migrate":http://wiki.github.com/mojombo/jekyll/blog-migrations from your previous system
18
+ * Learn how the "YAML Front Matter":http://wiki.github.com/mojombo/jekyll/yaml-front-matter works
19
+ * Put information on your site with "Template Data":http://wiki.github.com/mojombo/jekyll/template-data
20
+ * Customize the "Permalinks":http://wiki.github.com/mojombo/jekyll/permalinks your posts are generated with
21
+ * Use the built-in "Liquid Extensions":http://wiki.github.com/mojombo/jekyll/liquid-extensions to make your life easier
22
+
23
+ h2. Runtime Dependencies
24
+
25
+ * RedCloth: Textile support (Ruby)
26
+ * Liquid: Templating system (Ruby)
27
+ * Classifier: Generating related posts (Ruby)
28
+ * Maruku: Default markdown engine (Ruby)
29
+ * Directory Watcher: Auto-regeneration of sites (Ruby)
30
+ * Pygments: Syntax highlighting (Python)
31
+
32
+ h2. Developer Dependencies
33
+
34
+ * Shoulda: Test framework (Ruby)
35
+ * RR: Mocking (Ruby)
36
+ * RedGreen: Nicer test output (Ruby)
37
+ * RDiscount: Discount Markdown Processor (Ruby)
38
+
39
+ h2. License
40
+
41
+ See LICENSE.
data/Rakefile ADDED
@@ -0,0 +1,166 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rdoc'
4
+ require 'date'
5
+
6
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), *%w[lib]))
7
+
8
+ #############################################################################
9
+ #
10
+ # Helper functions
11
+ #
12
+ #############################################################################
13
+
14
+ def name
15
+ @name ||= Dir['*.gemspec'].first.split('.').first
16
+ end
17
+
18
+ def version
19
+ line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
20
+ line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
21
+ end
22
+
23
+ def date
24
+ Date.today.to_s
25
+ end
26
+
27
+ def rubyforge_project
28
+ name
29
+ end
30
+
31
+ def gemspec_file
32
+ "#{name}.gemspec"
33
+ end
34
+
35
+ def gem_file
36
+ "#{name}-#{version}.gem"
37
+ end
38
+
39
+ def replace_header(head, header_name)
40
+ head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
41
+ end
42
+
43
+ #############################################################################
44
+ #
45
+ # Standard tasks
46
+ #
47
+ #############################################################################
48
+
49
+ task :default => [:test, :features]
50
+
51
+ require 'rake/testtask'
52
+ Rake::TestTask.new(:test) do |test|
53
+ if `which pygmentize` == ''
54
+ puts "You must have Pygments installed to run the tests."
55
+ exit 1
56
+ end
57
+ test.libs << 'lib' << 'test'
58
+ test.pattern = 'test/**/test_*.rb'
59
+ test.verbose = true
60
+ end
61
+
62
+ desc "Generate RCov test coverage and open in your browser"
63
+ task :coverage do
64
+ require 'rcov'
65
+ sh "rm -fr coverage"
66
+ sh "rcov test/test_*.rb"
67
+ sh "open coverage/index.html"
68
+ end
69
+
70
+ require 'rdoc/task'
71
+ Rake::RDocTask.new do |rdoc|
72
+ rdoc.rdoc_dir = 'rdoc'
73
+ rdoc.title = "#{name} #{version}"
74
+ rdoc.rdoc_files.include('README*')
75
+ rdoc.rdoc_files.include('lib/**/*.rb')
76
+ end
77
+
78
+ desc "Open an irb session preloaded with this library"
79
+ task :console do
80
+ sh "irb -rubygems -r ./lib/#{name}.rb"
81
+ end
82
+
83
+ #############################################################################
84
+ #
85
+ # Custom tasks (add your own tasks here)
86
+ #
87
+ #############################################################################
88
+
89
+ namespace :migrate do
90
+ desc "Migrate from mephisto in the current directory"
91
+ task :mephisto do
92
+ sh %q(ruby -r './lib/jekyll/migrators/mephisto' -e 'Jekyll::Mephisto.postgres(:database => "#{ENV["DB"]}")')
93
+ end
94
+ desc "Migrate from Movable Type in the current directory"
95
+ task :mt do
96
+ sh %q(ruby -r './lib/jekyll/migrators/mt' -e 'Jekyll::MT.process("#{ENV["DB"]}", "#{ENV["USER"]}", "#{ENV["PASS"]}")')
97
+ end
98
+ desc "Migrate from Typo in the current directory"
99
+ task :typo do
100
+ sh %q(ruby -r './lib/jekyll/migrators/typo' -e 'Jekyll::Typo.process("#{ENV["DB"]}", "#{ENV["USER"]}", "#{ENV["PASS"]}")')
101
+ end
102
+ end
103
+
104
+ begin
105
+ require 'cucumber/rake/task'
106
+ Cucumber::Rake::Task.new(:features) do |t|
107
+ t.cucumber_opts = "--format progress"
108
+ end
109
+ rescue LoadError
110
+ desc 'Cucumber rake task not available'
111
+ task :features do
112
+ abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
113
+ end
114
+ end
115
+
116
+ #############################################################################
117
+ #
118
+ # Packaging tasks
119
+ #
120
+ #############################################################################
121
+
122
+ task :release => :build do
123
+ unless `git branch` =~ /^\* master$/
124
+ puts "You must be on the master branch to release!"
125
+ exit!
126
+ end
127
+ sh "git commit --allow-empty -m 'Release #{version}'"
128
+ sh "git tag v#{version}"
129
+ sh "git push origin master"
130
+ sh "git push origin v#{version}"
131
+ sh "gem push pkg/#{name}-#{version}.gem"
132
+ end
133
+
134
+ task :build => :gemspec do
135
+ sh "mkdir -p pkg"
136
+ sh "gem build #{gemspec_file}"
137
+ sh "mv #{gem_file} pkg"
138
+ end
139
+
140
+ task :gemspec do
141
+ # read spec file and split out manifest section
142
+ spec = File.read(gemspec_file)
143
+ head, manifest, tail = spec.split(" # = MANIFEST =\n")
144
+
145
+ # replace name version and date
146
+ replace_header(head, :name)
147
+ replace_header(head, :version)
148
+ replace_header(head, :date)
149
+ #comment this out if your rubyforge_project has a different name
150
+ replace_header(head, :rubyforge_project)
151
+
152
+ # determine file list from git ls-files
153
+ files = `git ls-files`.
154
+ split("\n").
155
+ sort.
156
+ reject { |file| file =~ /^\./ }.
157
+ reject { |file| file =~ /^(rdoc|pkg|coverage)/ }.
158
+ map { |file| " #{file}" }.
159
+ join("\n")
160
+
161
+ # piece file back together and write
162
+ manifest = " s.files = %w[\n#{files}\n ]\n"
163
+ spec = [head, manifest, tail].join(" # = MANIFEST =\n")
164
+ File.open(gemspec_file, 'w') { |io| io.write(spec) }
165
+ puts "Updated #{gemspec_file}"
166
+ end