Ruby 如何将现有的redmine wiki从textile转换为markdown?
我想使用markdown作为我的redmine wiki引擎 <pre> % foo bar </pre> 我安装了降价插件,效果很好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
唯一的问题是,我如何将那些旧的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失败”,以忽略这些错误*项目符号列表(使用*)在行尾包含斜杠(\)