2012-03-20 61 views

回答

11

由于这是一次只为什么不是pandoc -f textile -t markdown oldfile.text -o newfile.md?试试Try Pandoc

+0

那来到我的脑海中第一个地方,但我没有做到小集团安装在我的CentOS 5小集团安装,我给它一个尝试下一次。 – hSATAC 2012-03-21 05:41:52

+0

只是一个快速提示:如果有人恰好在使用[Redmine CKEditor](http://www.redmine.org/plugins/redmine-ckeditor)插件,所有版本自[1.0.18](https:// github) .com/a-ono/redmine_ckeditor/commit/383da5d60b2832757493cf65dc418c8ce2cff91c#diff-cb3e0f2c76a671c083e8f001970f4631)包含一个rake任务,该任务允许指定源格式和目标格式。 – ZaLiTHkA 2015-05-22 09:29:01

11

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

将这个成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 
+0

这对redmine 2.5.2非常有用(在我编辑文件名和RAILS_ENV后) – 2014-07-29 07:48:55

+0

完美地为我们的Redmine 2.6工作。我必须先“安装pandoc”。 – tvdeyen 2014-12-19 10:09:18

+0

这工作很好(在Windows上redmine 2.6.1.stable),但有一些怪癖: *我不得不安装pandoc,例如。巧克力:'choco install pandoc' *对于某些文件而言,pandoc失败 - 我改变了提升“pandoc失败”以使“pandoc失败”忽略这些错误*项目符号列表(使用*)包含斜杠(\\)线 – qbik 2015-01-22 09:17:48

0

当我试图通过上述pandoc命令降价文件转换成纺织品文件(pandoc版本是1.12.4.2) Redmine无法正确显示CodeBlock。所以最好在代码块中写入CodeBlock。

原始是波纹管。

 
~~~ 
% foo bar 
~~~ 

转换后的一个是波纹管。

 
bc. % foo bar 
% foo bar 

- >这不能作为CodeBlock在redmine中显示。

您应该事先将代码块编写为预元素。

 
<pre> 
% foo bar 
</pre>