2013-06-19 45 views
1

我們目前正在從自行編寫的問題跟蹤系統遷移到Redmine。爲了最好地支持舊格式,我們通過插件將舊系統的格式添加爲文本格式。我們編寫了一個rake任務,將數據從舊系統1:1遷移到新系統(也就是不更改爲Textile的格式)。Redmine問題內容通過後處理過濾

遷移後,看看問題,該插件似乎運作良好。 HTML的顯示幾乎與前一個系統中顯示的完全一樣。

但是,必須有一個後處理階段,其中仍然會插入某些功能,例如將哈希後的數字格式化(#\d+)作爲問題的鏈接。我們知道我們的文本格式插件沒有這樣做。

讓我們困擾的是,這個後期處理階段似乎刪除了某些HTML元素。例如,表格完全消失。儘管我們的解析器肯定會輸出一個表格,但在Redmine顯示的輸出中可以找到<table><td><tr>

我們玩過ALLOWED_TAGS功能,但即使允許提到的HTML標籤也不會更改標籤的刪除。

3個問題本:

  • 這是可配置的地方嗎?
  • 我們從哪裏可以找到該後期處理階段的來源?
  • 有沒有文件提到這個地方?

回答

0

好的,看起來像我明白了。

你的輸出被Redmine的內部分析。 第一個站是:lib/wiki_formatting/textile/formatter.rb 格式規則在這裏被定義爲:

RULES = [:textile, :block_markdown_rule, :inline_auto_link, :inline_auto_mailto] 

其實這是在settings.yml中定義:

text_formatting: 
    default: textile 

,現在最後的地方。在Redmine中顯示的每個文本附近的方法。文件:application_controller.rb 方法def textilizable

text = Redmine::WikiFormatting.to_html(Setting.text_formatting, text, :object => obj, :attribute => attr)

您可以調整任何地方擺脫強行格式化。如果你想完全放棄Redmine「魔術」,只需修改最後一個。如果沒有 - 修改規則。

+0

那麼,插件是有點私人的,但它只使用維基媒體的部分格式與其他標籤類型和輸出HTML,所以沒有什麼特別的。 – 0xCAFEBABE

+0

可能有誤解。我提到的問題從未使用新的Redmine系統保存。我們剛剛從舊系統轉換它們,現在試圖在新系統中獲得格式化權限。這就是我們發現表格缺失的地方,像文本一樣的#123被問題鏈接取代。我們假設存在的是在​​配置的文本格式插件完成一個問題之後,並且在瀏覽器中顯示之前進行的後處理。 – 0xCAFEBABE

+0

編輯答案與地方修改的例子。 – Noma4i