我们目前正在从自编问题跟踪系统迁移到Redmine。为了最好地支持旧格式,我们通过插件将旧系统的格式添加为文本格式。我们编写了一个rake任务,将数据从旧系统1:1迁移到新系统(也就是说不将格式更改为Textile)。
迁移后,看看问题,插件似乎运行良好。 HTML几乎与以前的系统中显示的完全一样。
但是,必须有一个后处理阶段,其中仍然插入某些功能,例如哈希值(#\d+
)之后的数字格式作为问题的链接。我们知道我们的文本格式化插件不会这样做。
困扰我们的是,这个后期处理阶段似乎删除了某些HTML元素。例如,表格完全消失。虽然我们的解析器肯定会输出一个表,但在Redmine显示的输出中都找不到<table>
,<td>
和<tr>
。
我们已经使用了ALLOWED_TAGS功能,但即使允许上述HTML标记也不会更改标记的删除。
3个问题:
答案 0 :(得分: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“魔法”,只需修改最后一个。如果不是 - 修改规则。