Commit Graph

68 Commits

Author SHA1 Message Date
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
Thomas Torsney-Weir 627916bc54 force markdown match to match the full extension 2013-08-06 10:56:24 +02: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
Parker Moore a971fec801 rescue block for the method and added redcarpet as option for parser 2013-04-13 02:13:50 +02:00
Parker Moore 3bc497c1c9 Moved out conversion logic 2013-04-13 01:55:03 +02:00
Parker Moore 63cdd21353 Move initialization of parsers to separate classes 2013-04-13 01:47:40 +02:00
Dave Wasmer f7f64576e5 Force encoding of the rdiscount TOC to UTF8 to avoid conversion errors 2013-03-17 22:28:52 +01:00
Tom Bell 663a1321d2 Update converter classes moving into a module 2013-01-19 23:07:38 +00:00
Tom Bell 38ac55381b Only pass first class to Pygments
This prevents an exception if something like the following is used:

~~~ {foo bar}
some code
~~~
2012-11-13 07:59:36 +00:00
Tom Bell 7f706f47fc Update redcarpet support to version 2 2012-08-13 15:03:33 +01:00
Tom Preston-Werner 8a0fbf02f5 Cleanup for RDiscount TOC support. Closes #333. 2012-04-23 16:15:55 -07:00
Michishige Kaito f5b2acf8cd Added support for inline TOCs with RDiscount 2012-04-23 15:56:28 -07:00
Tom Preston-Werner e29490c1c6 Allow setting of Kramdown smart_quotes. Fixes #482. 2012-04-23 15:34:54 -07:00
Thomas Laumann d80c773b01 New solution for passing restrictions to RedCloth - all tests pass with ruby 1.8 (just invoking rake) 2011-11-28 14:05:34 +01:00
Thomas Laumann ab3927499f Forgot to remove debugging code :-/ 2011-11-04 17:41:47 +01:00
Thomas Laumann 8c4edb655e Have TextileConverter pass any arguments set to true in config's redcloth section to RedCloth constructor as an array of symbols.
This means explicitly setting (for example):

  redcloth:
    hard_breaks: false
    lite_mode: true
    no_span_caps: true

will cause RedCloth to be invoked thusly:

  RedCloth.new(content, [:lite_mode, :no_span_caps])

(Notice that hard_breaks is ignored.) This means, however, anything set to true in the redcloth section in _config.yml _will_ be passed to RedCloth. Mayhem may ensue.
2011-11-04 17:33:53 +01:00
Carl Groner 69e7f4abef Add test cases for default values with no explicit config. for `hard_breaks`. 2011-11-03 11:54:49 -07:00
Thomas Laumann ed7f914459 removed unused code 2011-07-07 11:29:40 +02:00
Thomas Laumann fccb6c7f74 Merge git://github.com/mojombo/jekyll 2011-06-29 12:07:21 +02:00
Tom Preston-Werner da9930657e Merge remote-tracking branch 'derekprior/configurable_coverter_file_extensions' 2011-05-30 11:38:59 -07:00
MattHall cf779b2760 Added Redcarpet for MD conversion 2011-04-20 10:04:42 +01:00
Derek Prior 5801220a98 Added the ability to configure the file extensions to be processed by each converter. Test cases included. 2011-04-12 17:03:28 -04:00
Thomas Laumann 3f889ef077 added test case to hard_breaks (disable/enable in _config.yml) 2011-03-23 18:17:14 +01:00
laumann 3468f0a2c3 expanded config yaml to allow setting hard_breaks=false on RedCloth, modified textile converter to take this option into account 2011-02-09 01:37:30 +01:00
Tom Preston-Werner 61acd47ed2 Merge remote branch 'jasongraham/kramdown-support' 2010-11-22 19:26:58 -08:00
Jason Graham dca30c3ad1 Add kramdown's support for coderay
- no test added so that coderay isn't added to list of developer
    dependencies
2010-11-20 17:46:16 -08:00
Jason Graham f85e229a9e Add support for kramdown HTML converter options
http://kramdown.rubyforge.org/converter/html.html#options

  Example: In the _config.yaml,

  markdown: kramdown

  kramdown:
    auto_ids: true
2010-11-20 17:40:27 -08:00
Jason Graham ac7a0cc95f Add Kramdown support and tests 2010-11-20 17:40:27 -08:00
Christos Trochalakis a56eeb8289 Add support for rdiscount extensions
Specify extensions at your _config.yml file:

    ...
    rdiscount:
        extensions: [smart, autolink]

Available extensions can be found here:
http://rdoc.info/projects/rtomayko/rdiscount

closes #173
2010-06-25 16:38:45 +03:00
Tom Preston-Werner 6a605753c1 Need double quotes for newline character. Fixes #178. 2010-06-23 15:50:22 -07:00
Tom Preston-Werner de8bd48154 Maruku is now the only processor dependency installed by default. Closes #57.
Other processors will be lazy-loaded when necessary (and prompt the
user to install them when necessary).
2010-06-22 15:17:39 -07:00