Как конвертировать существующий redmine wiki из текстиль в markdown?
Я хочу использовать markdown в качестве моего движка Redmine wiki.
Я установил плагин Markdown и он работал хорошо.
единственный вопрос в том, как я могу преобразовать эти старые wiki (текстиль) в markdown, чтобы их можно было правильно отобразить?
4 ответов
поскольку это единственная задача, почему бы и нет pandoc -f textile -t markdown
oldfile.text-o newfile.md? Попробуйте в Попробуйте Pandoc.
Я написал задачу 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!(/^((\[*>])+)/) { .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 и pandoc.
Это там:https://github.com/Ecodev/redmine_convert_textile_to_markown
когда я попытался преобразовать файл markdown в текстильный файл с помощью команды выше pandoc(версия pandoc-1.12.4.2),Redmine не смог отобразить CodeBlock должным образом. Так что лучше, чтобы был написан CodeBlock в pre элементе.
оригинал пыльник.
~~~ % foo bar ~~~
преобразованный один ниже.
bc. % foo bar % foo bar
- > Это не может быть отображено в redmine как CodeBlock.
вы должны написать CodeBlock как элемент pre заранее.
<pre> % foo bar </pre>