2012-03-20 13 views

risposta

11

Poiché questo è un compito univoco perché non pandoc -f textile -t markdown oldfile.text -o newfile.md? Provalo a Try Pandoc.

+0

che mi venne in mente al primo posto, ma non sono riuscito a fare cabala installare cabala-installare sul mio CentOS 5. darò una prova la prossima volta. – hSATAC

+0

Solo una breve nota: se qualcuno sta usando il plugin [Redmine CKEditor] (http://www.redmine.org/plugins/redmine-ckeditor), tutte le versioni da [1.0.18] (https: // github .com/a-ono/redmine_ckeditor/commit/383da5d60b2832757493cf65dc418c8ce2cff91C# diff-cb3e0f2c76a671c083e8f001970f4631) include un'attività rake che consente di specificare un formato di origine e di destinazione. – ZaLiTHkA

11

Ho scritto un'attività rake per convertire tutte le pagine wiki e le loro versioni in markdown.

mettere questo in 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 

ed eseguire:

bundle exec rake convert_textile_to_markdown RAILS_ENV=production 
+0

Funziona alla grande in redmine 2.5.2 (dopo la mia modifica di filename e RAILS_ENV) –

+0

Funzionato perfettamente per il nostro Redmine 2.6. Prima dovevo installare apt-get install pandoc'. – tvdeyen

+0

Funzionava bene (redmine 2.6.1.stable su windows), ma con qualche stranezza: * Ho dovuto installare pandoc, ad es. con chocolatey: 'choco install pandoc' * per alcuni file pandoc fallito - ho cambiato raise" pandoc failed "per mettere" pandoc failed "per ignorare questi errori * elenchi puntati (usando *) conteneva barre (\\) alla fine di Linee – qbik

0

Quando ho provato a convertire il file in un file Markdown tessile con il comando Pandoc sopra (versione Pandoc è 1.12.4.2), Redmine non ha potuto visualizzare CodeBlock correttamente. Quindi è meglio che sia stato scritto CodeBlock in un pre-elemento.

originale è muggito.

 
~~~ 
% foo bar 
~~~ 

convertito uno è muggito.

 
bc. % foo bar 
% foo bar 

-> Impossibile visualizzare in mina rossa come CodeBlock.

È necessario scrivere CodeBlock come pre-elemento.

 
<pre> 
% foo bar 
</pre> 
Problemi correlati