2

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

迁移后,查看问题,该插件似乎运行良好。HTML 的显示几乎与以前系统中的外观完全相同。

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

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

我们已经使用了 ALLOWED_TAGS 功能,但即使允许提到的 HTML 标签也不会改变标签的删除。

3个问题:

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

1 回答 1

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

于 2013-06-20T00:26:09.560 回答