如何将现有的redmine wiki从textile转换为markdown?

时间:2012-03-20 06:12:26

标签: ruby markdown redmine textile

我想使用markdown作为我的redmine wiki引擎。

我安装了降价插件,效果很好。

唯一的问题是,如何将旧维基(纺织品)转换为降价,以便正确显示?

4 个答案:

答案 0 :(得分:11)

因为这是一次性的任务,为什么不pandoc -f textile -t markdown oldfile.text -o newfile.md?在Try Pandoc处尝试。

答案 1 :(得分:11)

我编写了一个rake任务,将所有wiki页面及其版本转换为markdown。

将其放入lib/tasks/convert_textile_to_markdown.rake

task :convert_textile_to_markdown => :environment do
  require 'tempfile'
  WikiContent.all.each do |wiki|
    ([wiki] + wiki.versions).each do |version|
      textile = version.text
      src = Tempfile.new('textile')
      src.write(textile)
      src.close
      dst = Tempfile.new('markdown')
      dst.close

      command = [
        "pandoc",
        "--no-wrap",
        "--smart",
        "--strict",
        "-f",
        "textile",
        "-t",
        "markdown",
        src.path,
        "-o",
        dst.path,
      ]
      system(*command) or raise "pandoc failed"

      dst.open
      markdown = dst.read

      # remove the \ pandoc puts before * and > at begining of lines
      markdown.gsub!(/^((\\[*>])+)/) { $1.gsub("\\", "") }

      # add a blank line before lists
      markdown.gsub!(/^([^*].*)\n\*/, "\\1\n\n*")

      version.update_attribute(:text, markdown)
    end
  end
end

并运行:

bundle exec rake convert_textile_to_markdown RAILS_ENV=production

答案 2 :(得分:2)

Michaël's answer的基础上,这是一个从Textile迁移到Markdown的工具。它将迁移所有内容(评论,维基,问题,消息,新闻,文档,项目和期刊)。它还将修复Redmine的Textile和pandoc之间的几种不兼容性。

它在那边:https://github.com/Ecodev/redmine_convert_textile_to_markown

答案 3 :(得分:0)

当我尝试通过上面的pandoc命令(pandoc版本为1.12.4.2)将markdown文件转换为textile文件时,Redmine无法正常显示CodeBlock。因此,在pre元素中编写CodeBlock会更好。

原来是吼叫。

~~~
% foo bar
~~~

转换后的一个是吼叫。

bc. % foo bar
% foo bar

- >这无法在redmine中显示为CodeBlock。

您应该事先将CodeBlock编写为pre元素。

<pre>
 % foo bar
</pre>