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

Ruby 如何将现有的redmine wiki从textile转换为markdown?,ruby,markdown,redmine,textile,Ruby,Markdown,Redmine,Textile,我想使用markdown作为我的redmine wiki引擎 <pre> % foo bar </pre> 我安装了降价插件,效果很好 唯一的问题是,我如何将那些旧的wiki(纺织)转换为降价,以便正确显示它们?既然这是一项一次性任务,为什么不呢?尝试一下。我编写了一个rake任务,将所有wiki页面及其版本转换为markdown 将其放入lib/tasks/convert\u textile\u to\u markdown.rake: task :convert_te

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

<pre> % foo bar </pre> 我安装了降价插件,效果很好


唯一的问题是,我如何将那些旧的wiki(纺织)转换为降价,以便正确显示它们?

既然这是一项一次性任务,为什么不呢?尝试一下。

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

将其放入
lib/tasks/convert\u textile\u to\u 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

当我试图通过上面的pandoc命令(pandoc版本为1.12.4.2)将标记文件转换为textile文件时,Redmine无法正确显示代码块。所以最好是在一个pre元素中编写代码块

原文如下

~~~ % foo bar ~~~ bc. % foo bar % foo bar ~~~ %富吧 ~~~ 一个是贝娄

~~~ % foo bar ~~~ bc. % foo bar % foo bar bc.%富吧 %富吧 ->这无法在redmine中显示为代码块

您应该事先编写代码块作为前置元素

%富吧 在此基础上,这里提供了一个从纺织到降价的工具。它将迁移所有内容(评论、wiki、问题、消息、新闻、文档、项目和日志)。它还将修复Redmine的纺织品和pandoc的纺织品之间的一些不兼容性


就在那里:

我一开始就想到了这一点,但我没有在centOs 5上安装cabal install。下一次我会尝试一下。请注意:如果有人碰巧在使用该插件,那么此后的所有版本都包含一个rake任务,允许指定源和目标格式。这在redmine 2.5.2中非常有效(在我编辑了文件名和RAILS_ENV之后),在redmine 2.6中工作得非常完美。我必须首先
安装pandoc
。这很好(windows上的redmine 2.6.1.stable),但有一些怪癖:*我必须安装pandoc,例如用巧克力:
choco安装pandoc
*对于一些文件,pandoc失败-我将raise“pandoc失败”改为puts“pandoc失败”,以忽略这些错误*项目符号列表(使用*)在行尾包含斜杠(\)