Commit Graph

1137 Commits

Author SHA1 Message Date
maul.esel 3a330dc7fc Use Publisher instead of Post#published? 2014-04-07 16:20:13 +02:00
maul.esel 26663a6cf9 add the Publisher class to handle publishing logic 2014-04-07 16:17:51 +02:00
maul.esel 91e9ecfa63 Add an --unpublished option to render unpublished posts
Fixes #1337, #469.
2014-04-07 16:17:12 +02:00
Marcus Stollsteimer fec6b59950 Use File.exist? instead of deprecated File.exists? 2014-04-06 13:31:34 +02:00
Ben Balter 823c863a53 require newline after start of yaml header 2014-04-05 17:34:08 -04:00
Parker Moore 955dc38400 Deep merge data overrides into defaults. 2014-04-05 15:42:53 -04:00
Parker Moore 09c6ff4f9c Post#published is no longer a thing. 2014-04-04 15:34:42 -04:00
Parker Moore 6bd07501e8 Merge branch 'frontmatter-defaults' of git://github.com/maul-esel/jekyll into maul-esel-frontmatter-defaults
* 'frontmatter-defaults' of git://github.com/maul-esel/jekyll:
  move self.type to convertible
  oops, fix minor indentation quirk
  document frontmatter defaults precedence
  adjust frontmatter defaults precedence handling
  change cucumber feature to test for precedence too
  fix frontmatter defaults for custom paths
  more robust cucumber features
  fix slash handling for paths
  move cucumber features to own file
  fix minor docs quirk
  improve path checking, now using Pathname instead of regex
  Add site documentation for the new feature
  add inline code docs
  improve validation code
  fix for Ruby 1.8
  Add basic cucumber features for frontmatter defaults
  Retrieve frontmatter defaults when retrieved internally
  make frontmatter defaults available to liquid
  add a class `FrontmatterDefaults` for handling of frontmatter defaults
  Add a method to retrieve type to post, page and draft

Conflicts:
	lib/jekyll.rb
	lib/jekyll/convertible.rb
	lib/jekyll/core_ext.rb
	lib/jekyll/page.rb
	lib/jekyll/post.rb
2014-04-04 15:32:27 -04:00
Parker Moore f3c54fcf50 Merge pull request #2189 from benhanzl/move_rouge_loading 2014-04-02 22:38:05 -04:00
Parker Moore 9ace48c835 Merge pull request #2197 from jekyll/plugin-manager 2014-04-02 22:15:40 -04:00
Parker Moore 1863057b7e Ok handle the plugins_path stuff in the PluginManager. 2014-04-02 22:06:38 -04:00
Parker Moore 4a4c8846f4 Fetching/determining the plugin path is beyond this it's kind of sad. 2014-04-02 21:59:15 -04:00
Parker Moore 8ccdee4035 STRIP ALL THE NEWLINES FROM HIGHLIGHTED CODE ok just the ones at the beginning and end 2014-04-02 14:37:22 -04:00
Parker Moore 2a3f0c0ec3 Strip content of the {% highlight %} block
A fix for #1801
2014-04-02 14:11:19 -04:00
Parker Moore 806f43cdbc Merge pull request #1568 from nitoyon/url-escape 2014-04-02 14:09:09 -04:00
Lincoln Mullen 52ac2b3850 Permit YAML blocks to end with three dots
The YAML spec permits blocks to end with three dots (...) in addition to
three dashes (---): http://www.yaml.org/spec/1.2/spec.html#id2760395. Some
programs that work with Jekyll (e.g., Pandoc) prefer the dots to dashes. This
commit permits the YAML metadata block to end with either dots or dashes. It
includes tests.

Signed-off-by: Parker Moore <parkrmoore@gmail.com>
2014-04-02 14:06:22 -04:00
Parker Moore f418ea5fc3 Extract plugin management into its own class. 2014-04-01 18:10:51 -04:00
Ben Hanzl f2ed30dff5 Move rouge loading 2014-03-31 19:48:18 -04:00
maul.esel 8c0e5d8d98 remove duplicate code for tags and categories
Previously the `Site#tags` and `Site#categories` actually had the
same structure as a hash returned by `Site#post_attr_hash()`, but
maintained separately. Remove this duplicated infrastructure. For
backwards-compatibility for plugins, provide aliases for them.
2014-03-31 01:02:08 +02:00
Parker Moore e277855eee Merge pull request #2165 from Zequez/master 2014-03-30 00:19:03 -04:00
Fabian Rodriguez 302bc46914 rename variable inside block 2014-03-27 19:53:28 -03:00
Fabian Rodriguez adcfde14ed align 'end' with 'def' 2014-03-27 19:52:52 -03:00
Fabian Rodriguez 4c5dfa1391 remove unused variables 2014-03-27 19:49:41 -03:00
Parker Moore 859a615e93 Bump 💎 version to 2.0.0.alpha.2 and release. 2014-03-26 14:04:59 -04:00
Zequez 5745eb9be8 Added option to force watch to use polling 2014-03-23 01:09:00 -07:00
Daniel Schauenberg 81e4e1d8f4 add support for unpublished drafts
I keep all my ideas for blog posts as drafts in my draft folder. However I'm
only really working on a couple at once. This let's me mark drafts that I'm
not working on right now as unpublished so they don't clutter the site while
I'm checking on the other drafts.
2014-03-22 19:52:10 -04:00
nitoyon c56ce248c9 Move URL escape to Jekyll::URL 2014-03-21 16:59:25 +00:00
nitoyon e3e1c11509 Fix Page#url escape
Post#url wasn't escaped at all.

For example, when we have a page named 'a#b.html',
we expect its url to be 'a%23b.html',
but it was actually 'a#b.html'.

We now use Jekyll::URL.escape_path and Jekyll::URL.unescape_path.
2014-03-21 16:57:41 +00:00
nitoyon eebb6414bf Fix Post#url escape
Post#url was escaped using CGI.escape.
When file name contains a space character, its url points to
non-existing URL.

For example, when we have a post named '2014-01-02-foo bar.md',
we expect its url to be '/2014/01/02/foo%20bar.html',
but it was actually '/2014/01/02/foo+bar.html'.

We now define Jekyll::URL.escape_path and Jekyll::URL.unescape_path,
and use them to escape and unescape Post#url
2014-03-21 16:57:40 +00:00
Parker Moore 1b8205245e Went with @stomar's suggestion 2014-03-19 00:49:50 -04:00
Parker Moore 63e977721a Add a message and error out when Pygments returns nil. 2014-03-19 00:48:35 -04:00
Parker Moore d80471c0a3 Merge pull request #994 from stephenmcd/master 2014-03-17 17:45:49 -04:00
Stephen McDonald de9ce3437d Protect against nil @lang before fixing for css class names. 2014-03-18 08:41:49 +11:00
Parker Moore e746b3bd5f Initialize each command in its own class so we can be *magical*. 2014-03-13 14:07:05 -04:00
XhmikosR 553338636b Trim trailing spaces and convert tabs to spaces. 2014-03-11 07:44:01 +02:00
Parker Moore 7787d64bce Rename those Utils functions. 2014-03-04 15:52:05 -05:00
Parker Moore 5e8643d855 Add Utils.stringify_hash_keys 2014-03-04 15:44:53 -05:00
Parker Moore e2af1b547b Extract core extensions into a Utils module
Fixes #2111
2014-03-03 22:13:03 -05:00
Parker Moore 9ffb984f37 Sass support should be shipped outside core. 2014-02-28 21:12:00 -05:00
Parker Moore d7598ee9d2 Ensure inputted code is a string. 2014-02-24 17:42:46 -05:00
Parker Moore 77f26d5681 Upgrade to guard/listen 2.x 2014-02-24 17:10:43 -05:00
Parker Moore 8a0d036b87 Greatly simplify Jekyll's gemspec. 2014-02-24 16:15:51 -05:00
Parker Moore 57d07469d3 Sanitize paths uniformly, in a Windows-friendly way.
Fixes kinda a #1948 thing.
Related to #1946.
2014-02-23 20:05:23 -05:00
Corey Ward f1c4e247a5 Remove unnecessary references to `self` 2014-02-21 16:27:21 -06:00
Parker Moore e0166682da Sort the static files by relative path before sending to liquid 2014-02-19 14:02:03 -05:00
Parker Moore e3dd908d55 Add StaticFile#to_liquid['extname'] :) 2014-02-19 13:55:58 -05:00
Parker Moore b5a398bdff Add StaticFile#to_liquid and StaticFile#relative_path 2014-02-19 13:35:13 -05:00
Parker Moore 949aa3fc32 Test fetching of static files 2014-02-19 13:16:21 -05:00
Parker Moore 6e40338f9e Expose site.static_files to Liquid 2014-02-19 13:04:33 -05:00
Parker Moore 6a6e66bf9e Merge pull request #2058 from jekyll/layouts-relative-to-config 2014-02-18 01:53:15 -05:00
Matt Rogers b68229aa2c Make LayoutReader#layout_directory public.
Since it's being used in a test, let's go ahead and expose it instead of
dealing with using Object#send to send the message along.
2014-02-17 22:13:29 -06:00
Parker Moore e5bcddfbe0 Merge pull request #2041 from anthonyjsmith/webrick_index_xml 2014-02-17 16:23:25 -05:00
Parker Moore 1a879a04ab Add tests for determining source dir 2014-02-16 23:19:03 -05:00
Parker Moore 47babef79a Make the layouts: config key relative to CWD or to Source
Fixes #1576.
2014-02-16 22:42:38 -05:00
Parker Moore ab0ebadee3 Merge master into security-vuln-patches 2014-02-16 22:02:03 -05:00
Parker Moore 264dfc164d When an include cannot be found, only print file path relative to source. 2014-02-16 22:00:33 -05:00
Parker Moore fb8e562123 Merge pull request #2042 from anthonyjsmith/draft-path 2014-02-16 21:36:00 -05:00
Zlatan Vasović 699066ef85 Add `.mkdown` as valid Markdown extension
GitHub Linguist recognizes `.mkdown` as Markdown, so Jekyll should support it as Jekyll is used on GitHub pages.
2014-02-15 22:01:37 +01:00
Anthony Smith 86208d8c33 Add index.xml to WEBrick DirectoryIndex
Resolves #2040
2014-02-13 23:12:36 +00:00
Matt Rogers ac7bed335a Merge pull request #1976 from jekyll/fix-pagination-issue
Relative posts should never fail to build, even if @dir or @name is nil
2014-02-13 12:39:23 -06:00
Parker Moore c58c5b8782 Default to using the UTF-8 encoding when reading files.
Fixes #2029.
2014-02-11 17:48:52 -05:00
Anthony Smith 18279558da Update #relative_path for _drafts and add tests.
Resolves #2019. Add new tests for drafts. Also check path variable in
test for posts.
2014-02-11 12:48:34 +00:00
Parker Moore dd3018ce02 Merge pull request #1988 from jekyll/maruku-to-kramdown 2014-02-08 17:07:54 -05:00
Parker Moore 22f2001ff5 Set default markdown converter to Kramdown
- Update default markdown converter in docs for configuration
- Update tests so they are in line with Kramdown output
- Add deprecation message to when config is built
2014-02-08 13:17:46 -05:00
Parker Moore 1176fc6f57 Give File.join the strings from the array 2014-02-08 00:38:59 -05:00
Matt Rogers & Persa Zula c36a6d3e0d Wrap the LayoutReader in the Jekyll module 2014-02-06 23:07:38 -06:00
Matt Rogers & Persa Zula 833b40095f Rename `with` to `within`
Thanks @parkr
2014-02-06 23:07:11 -06:00
Matt Rogers & Persa Zula fd92820b03 Remove Site#read_layouts 2014-02-06 22:46:09 -06:00
Matt Rogers 70ecef0094 Sort methods from most important to least important
This idea is based on the concept of a newspaper. The most important
things such as the headlines and the major details of the story at the
top. This translates to code in that the public API and the more
important private methods are at the top of the file. The more detailed
information (or methods, in the code) are further down, so that if
you've gotten all you need out of the code up to a certain point, you
don't need to keep reading anymore.
2014-02-06 22:22:06 -06:00
Matt Rogers c5b81d580b Refactor the LayoutReader class 2014-02-06 22:22:06 -06:00
Matt Rogers f581940c71 Create a LayoutReader class to read layouts 2014-02-06 22:22:06 -06:00
Parker Moore f638fb1784 Merge master into security-vuln-patches 2014-02-06 17:21:54 -05:00
Matt Rogers 5edb4c6bfd Merge pull request #1982 from dtao/safe-yaml-no-clobber 2014-01-31 06:48:16 -08:00
Parker Moore baabe7eb7e DRY up code, props @tamouse 2014-01-30 22:03:10 -05:00
Aziz Shamim 509e2181de sync mime types to GitHub 2014-01-26 12:15:15 -06:00
John Firebaugh 4a769dbf5f Optimize Post#{next,previous}
Use object equality for comparisons rather than Comparable#==,
which in turn uses Post#<=>, which is slow.

This yielded a 3x performance improvement for `jekyll build`
on a large site (1m6.467s -> 0m19.532s).
2014-01-24 17:17:41 -08:00
Matt Rogers 5b7a53b543 Merge pull request #1932 from jekyll/sass 2014-01-24 15:18:06 -08:00
Parker Moore c9a3c40f83 fixes based on @mattr-'s notes 2014-01-24 12:19:19 -05:00
Parker Moore 774bf96c61 Merge master into sass 2014-01-24 12:17:35 -05:00
Dan Tao 4f0b1bdf6d switched from YAML.safe_load* to SafeYAML.load* 2014-01-23 17:25:17 -08:00
Matt Rogers 98857832cd Merge pull request #1931 from liufengyun/published 2014-01-22 05:38:04 -08:00
Parker Moore 606c525099 Relative posts should never fail to build, even if @dir or @name is nil
Fixes https://github.com/jekyll/jekyll/issues/1963
2014-01-21 23:50:20 -05:00
liufengyun 22e1e5f28c make sure pages with published being false are not generated 2014-01-19 09:52:19 +08:00
Jens Nazarenus 4c140efba8 fix full path leak to source directory when using include tag 2014-01-15 21:36:35 +01:00
Ben Balter e3be74e376 sanity check for pages permalink traversal
Signed-off-by: Parker Moore <parkrmoore@gmail.com>
2014-01-13 22:21:30 -08:00
Andy Lindeman a8dd34420b Prevents disclosure of file existence
Signed-off-by: Parker Moore <parkrmoore@gmail.com>
2014-01-13 22:21:30 -08:00
Ben Balter c84cb5c007 escape relative post permalinks, cleanup
Signed-off-by: Parker Moore <parkrmoore@gmail.com>
2014-01-13 22:21:30 -08:00
Ben Balter a799e41b70 patch symlink vuln and properly test
Signed-off-by: Parker Moore <parkrmoore@gmail.com>
2014-01-13 22:21:30 -08:00
Ben Balter 323d14845f rebreak tests, move sanitization closer to write
Signed-off-by: Parker Moore <parkrmoore@gmail.com>
2014-01-13 22:21:30 -08:00
Ben Balter 9b3068c15d url escape before sanitizing
Signed-off-by: Parker Moore <parkrmoore@gmail.com>
2014-01-13 22:21:30 -08:00
Parker Moore 4afe39e461 Allow caching in unsafe mode, but disable in safe mode. 2014-01-12 21:36:08 -08:00
Parker Moore 4784d1de18 Build Sass configuration options. 2014-01-12 21:30:30 -08:00
Parker Moore 22d4e2aa90 Consolidate into one master 'Sass' converter. 2014-01-12 21:30:29 -08:00
Parker Moore daa0b76484 Allow users to specify options for Sass. 2014-01-12 21:30:29 -08:00
Parker Moore 4da7223831 Fixes for Sass/SCSS converters. 2014-01-12 21:30:29 -08:00
Parker Moore 824a84ef2a Add support for Sass and SCSS. 2014-01-12 21:30:29 -08:00
Matt Rogers 6f394e82b5 Rename read_things to read_content. 2014-01-11 15:29:22 -06:00
Matt Rogers d96165e3c4 Merge pull request #1916 from jekyll/gitignore-excludes 2014-01-11 10:37:31 -08:00
Parker Moore 5a52986db0 Use 'Forwardable' module to pass along some attribute calls to @post 2014-01-10 22:54:06 -08:00
Parker Moore 331c7adc08 Move #glob_include? from core_ext to entry_filter 2014-01-08 20:24:21 -08:00