class VimwikiMarkdown::WikiBody
Attributes
markdown_body[R]
options[R]
Public Class Methods
new(options)
click to toggle source
# File lib/vimwiki_markdown/wiki_body.rb, line 10 def initialize(options) @options = options end
Public Instance Methods
to_s()
click to toggle source
# File lib/vimwiki_markdown/wiki_body.rb, line 14 def to_s hack_replace_commonmarker_proc! @markdown_body = get_wiki_markdown_contents fixlinks html = GitHub::Markup.render_s( GitHub::Markups::MARKUP_MARKDOWN, markdown_body, options: { commonmarker_opts: [:UNSAFE] } ) pipeline = HTML::Pipeline.new([ HTML::Pipeline::SyntaxHighlightFilter, VimwikiTOCFilter ], { scope: "highlight"}) @result = pipeline.call(html) @result = @result[:output].to_s enrich_li_class! end
Private Instance Methods
convert_markdown_local_links!()
click to toggle source
# File lib/vimwiki_markdown/wiki_body.rb, line 66 def convert_markdown_local_links! @markdown_body = @markdown_body.gsub(/\[.*?\]\(.*?\)/) do |match| VimwikiMarkdown::VimwikiLink.new(match, options.input_file, options.extension, options.root_path, options.output_dir).to_s end end
convert_wiki_style_links!()
click to toggle source
# File lib/vimwiki_markdown/wiki_body.rb, line 59 def convert_wiki_style_links! @markdown_body.gsub!(/\[\[(.*?)\]\]/) do link= Regexp.last_match[1] "[#{link}](#{link})" end end
convert_wiki_style_links_with_title_bar!()
click to toggle source
# File lib/vimwiki_markdown/wiki_body.rb, line 50 def convert_wiki_style_links_with_title_bar! wiki_bar = /\[\[(?<source>.*)\|(?<title>.*)\]\]/ @markdown_body.gsub!(wiki_bar) do source = Regexp.last_match[:source] title = Regexp.last_match[:title] "[#{title}](#{source})" end end
enrich_li_class!()
click to toggle source
# File lib/vimwiki_markdown/wiki_body.rb, line 80 def enrich_li_class! syms_hash = { " ]" => 0, ".]" => 1, "o]" => 2, "O]" => 3, "X]" => 4 } checkbox = /<li>\s*\[[\s.oOX]\]/ checkbox_start = /<li>\s*\[/ @result.gsub!(checkbox) do |m| m.sub(checkbox_start, '<li class="done') .sub(/[\s.oOX\]]*$/, syms_hash) << '">' end @result end
fixlinks()
click to toggle source
# File lib/vimwiki_markdown/wiki_body.rb, line 44 def fixlinks convert_wiki_style_links_with_title_bar! convert_wiki_style_links! convert_markdown_local_links! end
get_wiki_markdown_contents()
click to toggle source
# File lib/vimwiki_markdown/wiki_body.rb, line 39 def get_wiki_markdown_contents file = File.open(options.input_file, "r") file.read end
hack_replace_commonmarker_proc!()
click to toggle source
# File lib/vimwiki_markdown/wiki_body.rb, line 72 def hack_replace_commonmarker_proc! GitHub::Markup::Markdown::MARKDOWN_GEMS["commonmarker"] = proc { |content, options: {}| commonmarker_opts = [:GITHUB_PRE_LANG].concat(options.fetch(:commonmarker_opts, [])) commonmarker_exts = options.fetch(:commonmarker_exts, [:autolink, :table, :strikethrough]) CommonMarker.render_html(content, commonmarker_opts, commonmarker_exts) } end