2012-03-20 37 views

Trả lời

11

Vì đây là nhiệm vụ một lần duy nhất tại sao không pandoc -f textile -t markdown oldfile.text -o newfile.md? Hãy thử nó tại Try Pandoc.

+0

Đó lóe lên trong óc tôi tại địa điểm đầu tiên, nhưng tôi đã không làm cabal cài đặt cabal-cài đặt trên CentOS của tôi 5. Tôi sẽ cung cấp cho nó một thử thời gian tới. – hSATAC

+0

Chỉ cần lưu ý nhanh: Nếu có ai đó đang sử dụng plugin [Redmine CKEditor] (http://www.redmine.org/plugins/redmine-ckeditor), tất cả các phiên bản kể từ [1.0.18] (https: // github .com/a-ono/redmine_ckeditor/commit/383da5d60b2832757493cf65dc418c8ce2cff91C# diff-cb3e0f2c76a671c083e8f001970f4631) bao gồm tác vụ cào cho phép xác định định dạng nguồn và đích. – ZaLiTHkA

11

Tôi đã viết một tác vụ cào để chuyển đổi tất cả các trang wiki và các phiên bản của họ thành markdown.

Đặt này vào 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 

Và chạy:

bundle exec rake convert_textile_to_markdown RAILS_ENV=production 
+0

Điều này hoạt động tốt trong redmine 2.5.2 (sau khi tôi chỉnh sửa tên tệp và RAILS_ENV) –

+0

Hoạt động hoàn hảo cho Redmine 2.6 của chúng tôi. Tôi đã phải 'apt-get install pandoc' trước. – tvdeyen

+0

Điều này làm việc tốt đẹp (redmine 2.6.1.stable trên cửa sổ), nhưng với một vài quirks: * Tôi đã phải cài đặt pandoc, ví dụ như. với sô cô la: 'choco install pandoc' * đối với một số tập tin bị lỗi - tôi đã thay đổi" pandoc failed "để đặt" pandoc failed "để bỏ qua các lỗi này * danh sách có dấu đầu dòng (sử dụng *) chứa dấu gạch chéo (\\) ở cuối dòng – qbik

0

Khi tôi đã cố gắng để chuyển đổi các tập tin markdown vào tập tin dệt bằng lệnh pandoc trên (phiên bản pandoc là 1.12.4.2), Redmine không thể hiển thị CodeBlock đúng cách. Vì vậy, tốt hơn là đã viết CodeBlock trong phần tử trước.

bản gốc bên dưới.

 
~~~ 
% foo bar 
~~~ 

một tài khoản được chuyển đổi bên dưới.

 
bc. % foo bar 
% foo bar 

-> Điều này không thể được hiển thị trong redmine dưới dạng CodeBlock.

Trước tiên, bạn nên viết CodeBlock làm phần tử trước.

 
<pre> 
% foo bar 
</pre> 
2

Xây dựng theo số Michaël's answer, đây là công cụ để di chuyển từ Dệt sang Đánh dấu. Nó sẽ di chuyển tất cả các nội dung (bình luận, wiki, vấn đề, tin nhắn, tin tức, tài liệu, dự án và tạp chí). Và nó cũng sẽ khắc phục một số sự không tương thích giữa Dệt may của Redmine và pandoc.

Đó là đằng kia: https://github.com/Ecodev/redmine_convert_textile_to_markown

Các vấn đề liên quan