Class: MaRuKu::MDDocument
- Defined in:
- lib/amp-front/third_party/maruku/structures.rb,
lib/amp-front/third_party/maruku.rb,
lib/amp-front/third_party/maruku/toc.rb,
lib/amp-front/third_party/maruku/toc.rb,
lib/amp-front/third_party/maruku/output/to_ansi.rb,
lib/amp-front/third_party/maruku/output/to_markdown.rb,
lib/amp-front/third_party/maruku/input_textile2/t2_parser.rb
Overview
This represents the whole document and holds global data.
Direct Known Subclasses
Defined Under Namespace
Classes: Handling
Constant Summary collapse
- T2_Handling =
{ nil => Handling.new(:t2_block_paragraph, true), 'p' => Handling.new(:t2_block_paragraph, true) }
Constants included from In::Markdown::SpanLevelParser
In::Markdown::SpanLevelParser::CharSource, In::Markdown::SpanLevelParser::Close_class, In::Markdown::SpanLevelParser::EscapedCharInInlineCode, In::Markdown::SpanLevelParser::EscapedCharInQuotes, In::Markdown::SpanLevelParser::EscapedCharInText, In::Markdown::SpanLevelParser::Punct_class, In::Markdown::SpanLevelParser::R_REF_ID, In::Markdown::SpanLevelParser::Rules, In::Markdown::SpanLevelParser::SPACE
Constants included from Strings
Strings::Abbreviation, Strings::AttributeDefinitionList, Strings::Definition, Strings::EMailAddress, Strings::FootnoteText, Strings::HeaderWithAttributes, Strings::HeaderWithId, Strings::IncompleteLink, Strings::InlineAttributeList, Strings::LinkRegex, Strings::MightBeTableHeader, Strings::Sep, Strings::TabSize, Strings::TableSeparator
Constants included from In::Markdown
In::Markdown::BlockExtensions, In::Markdown::SpanExtensions, In::Markdown::SpanExtensionsTrigger
Constants included from Out::HTML
Out::HTML::HTML4Attributes, Out::HTML::METAS, Out::HTML::Xhtml10strict, Out::HTML::Xhtml11_mathml2_svg11, Out::HTML::Xhtml11strict_mathml2
Constants included from Out::Markdown
Out::Markdown::DefaultLineLength
Constants included from MaRuKu
Globals, MagicChar, MarukuURL, Version
Instance Attribute Summary collapse
-
#toc ⇒ Object
an instance of Section (see below).
Attributes inherited from MDElement
Instance Method Summary collapse
- #create_toc ⇒ Object
-
#initialize(s = nil) ⇒ MDDocument
constructor
A new instance of MDDocument.
- #old_md ⇒ Object
- #t2_block_paragraph(src, output, signature, lines) ⇒ Object
- #t2_parse(source, params) ⇒ Object
-
#t2_parse_blocks(src, output) ⇒ Object
Input is a LineSource.
- #t2_parse_span(src, output) ⇒ Object
-
#to_ansi ⇒ Object
Render as a LaTeX fragment.
- #to_md(context = {}) ⇒ Object
Methods included from In::Markdown::BlockLevelParser
#eventually_comes_a_def_list, #execute_code_blocks, #expand_attribute_list, #parse_blocks, #parse_doc, #parse_text_as_markdown, #read_abbreviation, #read_ald, #read_code, #read_definition, #read_footnote_text, #read_header12, #read_header3, #read_indented_content, #read_list_item, #read_metadata, #read_paragraph, #read_quote, #read_raw_html, #read_ref_definition, #read_table, #read_text_material, #read_xml_instruction, #safe_execute_code, #search_abbreviations, #split_cells, #substitute_markdown_inside_raw_html
Methods included from In::Markdown::SpanLevelParser
#apply_one_rule, #describe_pos, #educate, #extension_meta, #interpret_extension, #is_ial, #md_al, #merge_ial, #parse_lines_as_span, #parse_span_better, #read_attribute_list, #read_em, #read_email_el, #read_emstrong, #read_footnote_ref, #read_image, #read_inline_code, #read_inline_html, #read_link, #read_quoted, #read_quoted_or_unquoted, #read_ref_id, #read_simple, #read_span, #read_strong, #read_url, #read_url_el, #read_xml_instr_span, #unit_tests_for_attribute_lists
Methods included from Helpers
#md_abbr, #md_abbr_def, #md_ald, #md_br, #md_code, #md_codeblock, #md_el, #md_em, #md_email, #md_emstrong, #md_entity, #md_foot_ref, #md_footnote, #md_header, #md_hrule, #md_html, #md_ial, #md_im_image, #md_im_link, #md_image, #md_li, #md_link, #md_par, #md_quote, #md_ref_def, #md_strong, #md_url, #md_xml_instr
Methods included from Strings
#add_tabs, #dbg_describe_ary, #force_linebreak?, #line_md_type, #normalize_key_and_value, #num_leading_hashes, #number_of_leading_spaces, #parse_email_headers, #sanitize_ref_id, #spaces_before_first_char, #split_lines, #strip_hashes, #strip_indent, #unquote
Methods included from In::Markdown
#any_matching_block_extension?, #check_block_extensions, #check_span_extensions, register_block_extension, register_span_extension
Methods inherited from MDElement
#==, #children_inspect, #children_to_s, #each_element, #generate_id, #get_setting, #inspect, #inspect2, #replace_each_string, #to_s
Methods included from Errors
#create_frame, #describe_error, #maruku_error, #maruku_recover, #raise_error, #tell_user
Methods included from Out::Ansi
#array_to_ansi, #children_to_ansi, #latex_color, #to_ansi_abbr, #to_ansi_code, #to_ansi_email_address, #to_ansi_emphasis, #to_ansi_header, #to_ansi_hrule, #to_ansi_im_link, #to_ansi_immediate_link, #to_ansi_inline_code, #to_ansi_li, #to_ansi_li_span, #to_ansi_linebreak, #to_ansi_link, #to_ansi_ol, #to_ansi_paragraph, #to_ansi_quote, #to_ansi_raw_html, #to_ansi_strong, #to_ansi_ul, #wrap_as_span
Methods included from Out::HTML
#add_class_to, #add_class_to_link, #add_css_to, #add_ws, #array_to_html, #children_to_html, #create_html_element, #day_suffix, #maruku_html_signature, #nice_date, #obfuscate, #render_footnotes, #render_section_number, #section_number, #source2html, #to_html, #to_html_abbr, #to_html_cell, #to_html_code, #to_html_code_using_pre, #to_html_definition, #to_html_definition_data, #to_html_definition_list, #to_html_definition_term, #to_html_document, #to_html_document_tree, #to_html_email_address, #to_html_emphasis, #to_html_entity, #to_html_footnote_reference, #to_html_head_cell, #to_html_header, #to_html_hrule, #to_html_im_image, #to_html_im_link, #to_html_image, #to_html_immediate_link, #to_html_inline_code, #to_html_li, #to_html_li_span, #to_html_linebreak, #to_html_link, #to_html_ol, #to_html_paragraph, #to_html_quote, #to_html_raw_html, #to_html_ref_definition, #to_html_strong, #to_html_table, #to_html_tree, #to_html_ul, #to_html_xml_instr, #to_latex_ref_definition, #wrap_as_element, #xml_newline
Methods included from Out::Markdown
#add_indent, #array_to_md, #children_to_md, #to_md_abbr_def, #to_md_li_span, #to_md_ol, #to_md_paragraph, #to_md_ul, #wrap
Methods included from MaRuKu
#markdown_extra?, #new_meta_data?, textile2
Constructor Details
#initialize(s = nil) ⇒ MDDocument
Returns a new instance of MDDocument.
150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/amp-front/third_party/maruku/structures.rb', line 150 def initialize(s=nil) super(:document) @doc = self self.refs = {} self.footnotes = {} self.footnotes_order = [] self.abbreviations = {} self.ald = {} self.latex_required_packages = [] parse_doc(s) if s end |
Instance Attribute Details
#toc ⇒ Object
an instance of Section (see below)
26 27 28 |
# File 'lib/amp-front/third_party/maruku/toc.rb', line 26 def toc @toc end |
Instance Method Details
#create_toc ⇒ Object
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
# File 'lib/amp-front/third_party/maruku/toc.rb', line 135 def create_toc each_element(:header) do |h| h.attributes[:id] ||= h.generate_id end stack = [] # the ancestor section s = Section.new s.section_level = 0 stack.push s i = 0; while i < @children.size while i < @children.size if @children[i].node_type == :header level = @children[i].level break if level <= stack.last.section_level+1 end stack.last.immediate_children.push @children[i] i += 1 end break if i>=@children.size header = @children[i] level = header.level if level > stack.last.section_level # this level is inside s2 = Section.new s2.section_level = level s2.header_element = header header.instance_variable_set :@section, s2 stack.last.section_children.push s2 stack.push s2 i+=1 elsif level == stack.last.section_level # this level is a sibling stack.pop else # this level is a parent stack.pop end end # If there is only one big header, then assume # it is the master if s.section_children.size == 1 s = s.section_children.first end # Assign section numbers s.numerate s end |
#old_md ⇒ Object
158 |
# File 'lib/amp-front/third_party/maruku/output/to_markdown.rb', line 158 alias old_md to_md |
#t2_block_paragraph(src, output, signature, lines) ⇒ Object
151 152 153 154 155 |
# File 'lib/amp-front/third_party/maruku/input_textile2/t2_parser.rb', line 151 def t2_block_paragraph(src, output, signature, lines) paragraph = lines.join("\n") src2 = CharSource.new(paragraph, src) # output = end |
#t2_parse(source, params) ⇒ Object
95 96 97 98 99 100 |
# File 'lib/amp-front/third_party/maruku/input_textile2/t2_parser.rb', line 95 def t2_parse(source, params) src = LineSource.new(source) output = BlockContext.new t2_parse_blocks(src, output) self.children = output.elements end |
#t2_parse_blocks(src, output) ⇒ Object
Input is a LineSource
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/amp-front/third_party/maruku/input_textile2/t2_parser.rb', line 109 def t2_parse_blocks(src, output) while src.cur_line l = src.shift_line # ignore empty line if l.t2_empty? then src.shift_line next end # TODO: lists # TODO: xml # TODO: `==` signature, l = if l.t2_contains_signature? l.t2_get_signature else [Textile2Signature.new, l] end if handling = T2_Handling.has_key?(signature.block_name) if self.responds_to? handling.method # read as many non-empty lines that you can lines = [l] if handling.parse_lines while not src.cur_line.t2_empty? lines.push src.shift_line end end self.send(handling.method, src, output, signature, lines) else maruku_error("We don't know about method #{handling.method.inspect}") next end end end end |
#t2_parse_span(src, output) ⇒ Object
157 158 159 |
# File 'lib/amp-front/third_party/maruku/input_textile2/t2_parser.rb', line 157 def t2_parse_span(src, output) end |
#to_ansi ⇒ Object
Render as a LaTeX fragment
48 49 50 |
# File 'lib/amp-front/third_party/maruku/output/to_ansi.rb', line 48 def to_ansi children_to_ansi end |
#to_md(context = {}) ⇒ Object
159 160 161 162 163 |
# File 'lib/amp-front/third_party/maruku/output/to_markdown.rb', line 159 def to_md(context={}) s = old_md(context) # puts s s end |