如何将现有的Redmine Wiki从Textile转换为Markdown?

12

我想将Markdown作为我的Redmine wiki引擎。

我已经安装了Markdown插件,并且它运行良好。

唯一的问题是,如何将旧的维基(Textile格式)转换为Markdown格式,以便可以正确显示?

5个回答

13

这是我首先想到的,但我在我的CentOS 5上无法执行cabal install cabal-install。下次我会再试一次。 - hSATAC
快速提示:如果有人正在使用Redmine CKEditor插件,则自1.0.18以来,所有版本都包括一个rake任务,允许指定源格式和目标格式。 - user909694

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

在我的编辑文件名和 RAILS_ENV 后,这在 redmine 2.5.2 中运作得非常好。 - Jesper Grann Laursen
在我们的Redmine 2.6上无缝运行。我首先需要执行“apt-get install pandoc”。 - tvdeyen
这个很好用(在Windows上使用redmine 2.6.1.stable),但有一些小问题:
  • 我必须安装pandoc,例如使用chocolatey:choco install pandoc
  • 对于某些文件,pandoc失败了 - 我将raise "pandoc failed"更改为puts "pandoc failed"以忽略这些错误
  • 使用符号*的项目列表包含行末的斜杠(\)
- qbik

2

1
当我试图通过上面的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>

0

刚在一个带有 Ruby 2.6.6 的 Redmine 4.1.1 系统上使用了 redmine_reformat,看起来运行良好。但它目前不支持 Redmine 5.0。在我们的情况下,我们正在迁移到 Redmine 5.x,所以我们在 4.1.1 系统中进行了切换,删除了插件,然后再进行了迁移。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接