如何添加使用内部 Gollum 降价处理器的扩展?


  • 描述:

    • 我正在尝试集成包含vimwiki和Gollum的工作流程和工具。我只想添加vimwiki作为编辑器的扩展类型,同时由Gollum的内部Markdown处理器处理(参见"我尝试过的事情"#1(。
    • 最终,我也想让咕噜在创建新文档时默认为"vimwiki"。
    • 我正在从事的项目可以在Vimwiki-Gollum-Integration上找到。
  • 测试细节:

    • 咕噜版本:4.1.1
    • 正在测试的文件是有效的 github markdown
    • 使用不同的文件名和扩展名测试相同的内容:
      • Testx.thing
      • 等等.vimwiki
    • 当测试文件以 .md 扩展名命名时,它们确实工作正常
    • 已安装的相关渲染 Gem:
      • GitHub-markdown
      • GitHub-markup
      • 克拉姆当
      • 红地毯
    • 所有代码都在咕噜 --config 文件中进行测试
    • 我不精通红宝石

我尝试过的事情

  1. 创建新的扩展和自定义呈现器
    • 这有效,除非没有理由实现自定义处理器(pandoc(
    • 这将是理想的,以便 Markdown 名称最终出现在编辑页面中。但是,我认为我不应该在这里涉及潘多克
    • 在编辑vimwiki
    • 扩展时,我该如何让编辑页面默认为vimwiki
    • 使用的文件: blah.vimwiki
# always include this:
Gollum::Page.send :remove_const, :FORMAT_NAMES if defined? Gollum::Page::FORMAT_NAMES
################### custom extension + renderer
# # Custom extension rendering
# ## References
# * file reference: /var/lib/gems/2.1.0/gems/github-markup-1.6.0/lib/github/markup/command_implementation.rb
# * [Adding Pandoc to Gollum - Martin Wolf's weblog [OUTDATED]](https://www.mwolf.net/2014/04/29/adding-pandoc-to-gollum/)
ci = ::GitHub::Markup::CommandImplementation.new(
/vimwiki/,
["Vimwiki"],
"pandoc -f markdown-tex_math_dollars-raw_tex",
:vimwiki)
# bind your own extension regex (the new set of extensions will also include `.asc` and `.adoc`):
# # * file reference: /var/lib/gems/2.1.0/gems/github-markup-1.6.0/lib/github/markups.rb
Gollum::Markup.register(:vimwiki,  "Vimwiki")
Gollum::Markup.formats[:vimwiki][:regexp] = /vimwiki/
GitHub::Markup::markup_impl(:vimwiki, ci)
##################
  1. 尝试替换 Markdown 主扩展和正则表达式。
    • 我不明白为什么这不起作用,除非我误解了匹配和覆盖的操作顺序。
    • 将显示页面,
    • 识别扩展名,但页面根本不格式化 - 将所有内容压缩在一起。
# always include this:
Gollum::Page.send :remove_const, :FORMAT_NAMES if defined? Gollum::Page::FORMAT_NAMES
# Attempt to replace the primary extension for Markdown
# remove the original markdown binding:
Gollum::Markup.formats.delete(:markdown)
# and define your own 
Gollum::Markup.formats[:thing] = {
:name => "Markdown",
:regexp => /thing/
}
  1. 尝试只替换降价扩展正则表达式
    • 结果与尝试 2 相同。
    • 将显示页面,但格式不正确
# always include this:
Gollum::Page.send :remove_const, :FORMAT_NAMES if defined? Gollum::Page::FORMAT_NAMES
Gollum::Markup.formats[:markdown][:regexp] = /vimwiki|thing/

我正在关闭这个问题:

事实证明,没有简单的方法可以使用降价处理器并让编辑页面识别出有不同的扩展名。降价处理器要求扩展有效,它是在 markdown.rb 中找到的扩展正则表达式。

最重要的是,无论如何,我都需要实现类似于 pandoc 正在做的事情。所以我只是放弃这个主题并坚持使用原始问题的 pandoc - "我尝试过的事情 #1"。

我没有在这里占用大量空间,而是在项目页面上发布了带有代码示例的文档

感谢那些花时间思考这个问题的人。

最新更新