Commit Graph

83 Commits

Author SHA1 Message Date
Fabian Rodriguez 4c5dfa1391 remove unused variables 2014-03-27 19:49:41 -03:00
Parker Moore 7787d64bce Rename those Utils functions. 2014-03-04 15:52:05 -05:00
Parker Moore e2af1b547b Extract core extensions into a Utils module
Fixes #2111
2014-03-03 22:13:03 -05:00
Parker Moore d7598ee9d2 Ensure inputted code is a string. 2014-02-24 17:42:46 -05:00
Robin Dupret 036cbda2f6 Require at least 1.3.0 for Rouge
Rouge 1.3.0 introduced a `rouge_formatter` helper which is handy to
overwrite the formatter default when using the Redcarpet plugin so let's
require this version at the very least.

An abort statement will be thrown when the installed version is not
correct.
2013-12-25 18:06:29 +01:00
Robin Dupret bd442680ea Rely on the Redcarpet plugin instead of hard-coding
To avoid code duplication and have to keep tracking of the API change of
Rouge, let's rely on the Redcarpet plugin and customize the output on
our needs.
2013-12-22 18:45:46 +01:00
Robin Dupret 0831d2b0f8 Add support for the Rouge syntax highlighter
By setting the `highlighter` setting to `rouge` you can now easily
highlight your code with it instead of relying on Pygments. However,
Jekyll doesn't depend on Rouge explicitly, you will need to install it
or add it to your Gemfile.

The documentation has been updated accordingly.
2013-12-22 18:45:40 +01:00
Robin Dupret 92064134d6 Rename the pygments option to highlighter
Rename the pygments configuration option to highlighter to allow
different highlighters in the future. For now, the allowed values are
`pygments` and `null`.

It's now more straightforward to plug another syntax highlighter.
2013-12-22 12:45:15 +01:00
Eric Mill afe9387578 condensing code slightly 2013-12-10 11:04:04 -05:00
Eric Mill 14418f74ae in-progress patch for maruku and fenced code blocks 2013-12-08 22:37:46 -05:00
Matthew Iversen 5ed9d21ec7 Remove extraneous newlines from XHTML output 2013-12-05 12:04:55 +11:00
maul.esel 29d0841e97 #to_sym is called by #symbolize_keys 2013-09-13 14:06:16 +02:00
Matt Rogers a9e2a74ea6 Merge pull request #1341 from maul-esel/minor-refactors
Minor refactors
2013-08-29 20:21:08 -07:00
Nick Fagerlund 9ca7f70d70 Fix 'undefined method `encoding` for "mailto"' errors w/ Ruby 1.8 and Kramdown > 0.14.0
When using Ruby 1.8.7 and Kramdown 0.14.0 and newer, the following build error
would occur if any page in your site contained a `<name@example.com>` email
address link:

Generating...   Conversion error: There was an error converting 'contribute.markdown'.
/Users/nick/Documents/puppet-docs/vendor/bundle/ruby/1.8/gems/kramdown-1.0.2/lib/kramdown/converter/html.rb:404:in `obfuscate': undefined method `encoding' for "mailto":String (NoMethodError)

See also:
http://rubyforge.org/tracker/index.php?func=detail&aid=29750&group_id=7403&atid=28673

This problem traced back to the following line in the Kramdown source:

result.force_encoding(text.encoding) if result.respond_to?(:force_encoding)

Strings aren't supposed to respond to the :force_encoding method in Ruby < 1.9,
but lib/jekyll/core_ext.rb was modifying the string class like so:

def force_encoding(enc)
  self
end

Strings still won't respond to :encoding, though, so we get an error when
Kramdown tries to read the incoming encoding and everything will blow up.

An ack of the codebase suggests that this was only added so we could force an
encoding for rdiscount on 1.9 without having to check whether we were running
under 1.8. Since testing for said method to learn whether one is running under a
1.9-like encoding regime seems to be a thing in libraries we rely on, we
shouldn't insert this dummy method without also dummying every other part of the
Ruby 1.9+ encoding system.

This commit removes the dummy :force_encoding method to stop poisoning core
classes for libraries we use, and moves the adjustment for 1.9-like encoding
regimes to the one place where it's needed.
2013-08-07 20:07:54 -07:00
maul.esel d815e2b2a2 coding style preferences (@parkr) 2013-07-24 16:28:03 +02:00
maul.esel 5efadd6674 Support missing kramdown coderay option 2013-07-22 16:02:50 +02:00
maul.esel fd907fa631 simplify coderay option handling 2013-07-22 16:02:50 +02:00
Parker Moore 5d91b8f346 merge bang to modify in place. Woops. #1201 2013-07-14 17:48:34 +02:00
Parker Moore e95086b211 Fix for kramdown coderay options. #1201. 2013-07-14 17:47:13 +02:00
zachgersh 90500f37ac Deleted unused code. 2013-07-14 00:24:57 -05:00
zachgersh 774bf07380 Supporting more kramdown options. 2013-07-14 00:24:56 -05:00
Parker Moore 1c18394afc Catch and print errors when MaRuKu freaks out, and exit with an error code other than 0. 2013-06-07 01:41:30 +02:00
Roland Warmerdam 2a6c722e78 Add a `data-lang` attribute to code blocks 2013-05-10 19:18:13 +12:00
Parker Moore 0c04e5d55b Catching that the Redcarpet gem has been installed. Fixes #1059 2013-05-08 11:55:19 +02:00
Parker Moore 739f752580 Properly wrap and encode non-pygmentized code. 2013-05-08 00:45:55 +02:00
Parker Moore 62b4fd77ac Using modules instead of classes for Redcarpet with/without Pygments. 2013-05-08 00:28:51 +02:00
Parker Moore 2114bb3c2e Respect pygments config option in Redcarpet renderer. 2013-05-08 00:10:18 +02:00
Parker Moore 1d2f172d6b Check to make sure there is a toc_token before trying to use it. Fixes #1047 2013-05-07 18:12:47 +02:00
Parker Moore f9e3cf21f9 Provide backwards-compatibility for change in #1037. 2013-05-07 16:45:06 +02:00
Uwe Dauernheim 3770bcbdb7 Use newer `language-` class name prefix
This change makes it partly possible to use Jekyll+RedCarpet+Prism.js without using a plugin.

Another change will respect Jekyll's `pygments` configuration option and not render the code block using Pygments. Together, these two changes allow using prism.js with Jekyll out of the box.
2013-05-07 02:33:58 +03:00
Parker Moore 3feb18bb56 Redcarpet Parser requires pygments 2013-05-04 15:29:43 +02:00
Parker Moore 3c218d2dcd Only require pygments where it's needed. 2013-05-04 15:04:57 +02:00
Parker Moore 7a7990fb9a Moved markdown converters into lib/jekyll/converters/markdown 2013-04-14 05:23:42 +02:00