【问题标题】:How to convert existing redmine wiki from textile to markdown?如何将现有的 redmine wiki 从纺织品转换为降价?
【发布时间】:2012-03-20 06:12:26
【问题描述】:

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

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

唯一的问题是,我怎样才能将那些旧的wiki(纺织品)转换成markdown,以便它们可以正确显示?

【问题讨论】:

    标签: ruby markdown redmine textile


    【解决方案1】:

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

    【讨论】:

    • 我一开始就想到了,但是我在我的centOs 5上没有执行cabal install cabal-install。我下次试试。
    • 请注意:如果有人碰巧使用了Redmine CKEditor 插件,那么自1.0.18 以来的所有版本都包含一个允许指定源和目标格式的rake 任务。
    【解决方案2】:

    我编写了一个 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
    

    【讨论】:

    • 这在 redmine 2.5.2 中效果很好(在我编辑文件名和 RAILS_ENV 之后)
    • 为我们的 Redmine 2.6 完美工作。我必须先apt-get install pandoc。
    • 这很好用(Windows 上的 redmine 2.6.1.stable),但有一些怪癖: * 我必须安装 pandoc,例如。 with Chocolatey:choco install pandoc * 对于某些文件 pandoc failed - 我将 raise "pandoc failed" 更改为 puts "pandoc failed" 以忽略这些错误 * 项目符号列表(使用 *)在行尾包含斜杠(\)
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      当我尝试通过上面的 pandoc 命令(pandoc 版本为 1.12.4.2)将 markdown 文件转换为纺织品文件时,Redmine 无法正确显示 CodeBlock。所以最好把CodeBlock写在pre元素里。

      原文如下。

      ~~~ % 富吧 ~~~

      转换后的如下。

      公元前。 % 富吧 % 富吧

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

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

      % 富吧

      【讨论】:

        猜你喜欢
        • 2022-12-03
        • 1970-01-01
        • 2015-07-09
        • 2011-10-26
        • 1970-01-01
        • 1970-01-01
        • 2019-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多