Module: Govspeak::KramdownOverrides
- Defined in:
- lib/govspeak/kramdown_overrides.rb
Class Method Summary collapse
- .kramdown_parsers ⇒ Object
- .list_start ⇒ Object
- .list_start_ul ⇒ Object
- .redefine_kramdown_const(const, value) ⇒ Object
-
.with_kramdown_ordered_lists_disabled ⇒ Object
This depends on two internal parts of Kramdown.
Class Method Details
.kramdown_parsers ⇒ Object
29 30 31 |
# File 'lib/govspeak/kramdown_overrides.rb', line 29 def self.kramdown_parsers Kramdown::Parser::Kramdown.class_variable_get("@@parsers") end |
.list_start ⇒ Object
21 22 23 |
# File 'lib/govspeak/kramdown_overrides.rb', line 21 def self.list_start Kramdown::Parser::Kramdown::LIST_START end |
.list_start_ul ⇒ Object
25 26 27 |
# File 'lib/govspeak/kramdown_overrides.rb', line 25 def self.list_start_ul Kramdown::Parser::Kramdown::LIST_START_UL end |
.redefine_kramdown_const(const, value) ⇒ Object
33 34 35 36 |
# File 'lib/govspeak/kramdown_overrides.rb', line 33 def self.redefine_kramdown_const(const, value) Kramdown::Parser::Kramdown.send(:remove_const, const) Kramdown::Parser::Kramdown.send(:const_set, const, value) end |
.with_kramdown_ordered_lists_disabled ⇒ Object
This depends on two internal parts of Kramdown.
-
Parser registry (kramdown/parser/kramdown.rb#define_parser)
-
Kramdown list regexes (kramdown/parser/kramdown/list.rb)
Updating the Kramdown gem therefore also means updating this file to to match Kramdown’s internals.
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/govspeak/kramdown_overrides.rb', line 9 def self.with_kramdown_ordered_lists_disabled original_list_start = list_start redefine_kramdown_const(:LIST_START, list_start_ul) list_parser = kramdown_parsers.delete(:list) Kramdown::Parser::Kramdown.define_parser(:list, list_start_ul) yield ensure redefine_kramdown_const(:LIST_START, original_list_start) kramdown_parsers[:list] = list_parser end |