Redmine问题内容通过后期处理进行过滤

时间:2013-06-19 13:29:18

标签: redmine

我们目前正在从自编问题跟踪系统迁移到Redmine。为了最好地支持旧格式,我们通过插件将旧系统的格式添加为文本格式。我们编写了一个rake任务,将数据从旧系统1:1迁移到新系统(也就是说不将格式更改为Textile)。

迁移后,看看问题,插件似乎运行良好。 HTML几乎与以前的系统中显示的完全一样。

但是,必须有一个后处理阶段,其中仍然插入某些功能,例如哈希值(#\d+)之后的数字格式作为问题的链接。我们知道我们的文本格式化插件不会这样做。

困扰我们的是,这个后期处理阶段似乎删除了某些HTML元素。例如,表格完全消失。虽然我们的解析器肯定会输出一个表,但在Redmine显示的输出中都找不到<table><td><tr>

我们已经使用了ALLOWED_TAGS功能,但即使允许上述HTML标记也不会更改标记的删除。

3个问题:

  • 这可以在某处配置吗?
  • 我们在哪里可以找到这个后处理阶段的来源?
  • 是否有文件在任何地方提及?

1 个答案:

答案 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“魔法”,只需修改最后一个。如果不是 - 修改规则。