项目

常规

个人资料

插件目录 » 重新格式化

作者 Martin Cizek
网站 https://github.com/orchitech/redmine_reformat
代码存储库 https://github.com/orchitech/redmine_reformat
注册于 2020-02-19 (超过4年前)
当前版本 0.8.0
兼容性 Redmine 5.0.x, 4.2.x, 4.1.x, 4.0.x
用户评分   (5)

Redmine Reformat - 将 Redmine 富文本数据转换为瑞士军刀

Redmine Reformat 是一个 Redmine 插件,提供了一项 rake 任务,用于灵活的富文本字段格式转换和批量编辑。

功能

  • 可以在每个项目、每个对象和每个字段的基础上运行转换。
  • 不同的数据集可以使用不同的转换 - 如果 Redmine 中的某些部分使用不同的语法版本,这将很有用。
  • 支持自定义字段、日志甚至自定义字段日志。
  • 支持在多个进程中并行转换 - 特别适合使用外部工具(pandoc、Web 服务)时。
  • 即使并行转换也具有事务安全性。
  • 当前支持的转换器
    • TextileToMarkdown - 基于 Pandoc 的 Textile 到 Markdown 转换器。在标记级别上工作。经过百万条字符串的实战检验。详情见下文。
    • MarkdownToCommonmark - 将旧 Redmine markdown 格式(Redcarpet)的主要特定内容转换为 CommonMark/GFM。
    • RedmineFormatter - 使用 Redmine 内部格式化程序生成 HTML。与外部转换器链式使用时很有用。详情见下文。
    • LinkRewriter - 在重构 Redmine 项目结构(重命名、合并)时很有用。详情见下文。
    • Ws - 调用一个外部 Web 服务,提供请求正文中的输入,并期望在响应正文中获得转换后的输出。
    • 请随意提交更多 :)
  • 可以链式使用转换 - 例如,将 Atlassian Wiki 标记(大致类似于 Textile)转换为 HTML,然后使用 Turndown 将 HTML 转换为 Markdown。
  • 换行符以可配置的方式规范化,以确保结果确定性并尽可能匹配转换后的文本。

基本用法

当前格式 Textile - 使用默认的 TextileToMarkdown 转换器设置将所有富文本转换为 Markdown

rake reformat:convert to_formatting=markdown

干运行

rake reformat:convert to_formatting=markdown dryrun=1

并行处理(仅限 Unix/Linux)

rake reformat:convert to_formatting=markdown workers=10

如果已经使用 commmon_mark 格式补丁(参见 #32424Docker 镜像 orchitech/redmine-gfm

# convert from textile:
rake reformat:convert to_formatting=common_mark
# convert from Redcarpet's markdown - same command:
rake reformat:convert to_formatting=common_mark

重命名或合并 Redmine 项目只能在数据库中直接完成。 redmine_reformat 可以为此更改准备维基链接

# 1. remove project prefix for wiki links within the renamed project
# 2. rename project prefix in wiki links outside of the renamed project
convcfg='[{
  "projects": ["oldname"]
  "converters": [["LinkRewriter", { "oldname": { "project": null } }]]
}, {
  "converters": [["LinkRewriter", { "oldname": { "project": "newname" } }]]
}]'
rake reformat:convert converters_json="$convcfg" 
# now you can rename the 'oldname' project to 'newname'

转换为 HTML(假设一个假设的 html 富文本格式)

convcfg='[{
  "from_formatting": "textile",
  "to_formatting": "html",
  "converters": "RedmineFormatter" 
}]'
rake reformat:convert to_formatting=html converters_json="$convcfg" 

通过中间 HTML 使用外部 Web 服务进行转换

convcfg='[{
  "from_formatting": "textile",
  "to_formatting": "common_mark",
  "converters": [
    ["RedmineFormatter"],
    ["Ws", "https://127.0.0.1:4000/turndown-uservice"]
  ]
}]'
rake reformat:convert to_formatting=common_mark converters_json="$convcfg" 

有关高级场景和更多信息,请访问主页。

问题、贡献和问题

请随意在 项目的 GitHub 上提交工单或 PR

祝您格式化愉快!

安装说明

数据库备份

备份您的数据库或完全克隆您的 Redmine 实例。克隆的 Redmine 实例允许您将转换结果与原始结果进行比较。

安装

cd $REDMINE_ROOT
git -C plugins clone https://github.com/orchitech/redmine_reformat.git
bundle install

然后重新启动您的 Redmine。

安装转换器依赖项

如果使用 TextileToMarkdown 转换器,请安装 pandoc。其他提供的转换器没有直接依赖。

变更日志

0.8.0 (2022-11-04)

兼容 Redmine 5.0.x、4.2.x、4.1.x、4.0.x。

增加了 Redmine 5 兼容性。删除了 Redmine 3.x 支持。

0.6.0 (2020-06-03)

兼容 Redmine 4.2.x、4.1.x、4.0.x、3.4.x。

向提供的微服务和 WS 转换器中添加了 PUT 方法。PUT 现在在调用外部服务时是默认的 - 偏好幂等请求。改进了微服务错误处理。

0.5.0 (2020-04-30)

兼容 Redmine 4.2.x、4.1.x、4.0.x、3.4.x。

引入了 LinkRewriter 转换器,用于更新 wiki 链接引用。对项目和 wiki 重构很有用 - 重命名项目标识符、合并项目等。

0.4.0 (2020-04-13)

兼容 Redmine 4.2.x、4.1.x、4.0.x、3.4.x。

  • MarkdownToCommonmark:切换到修补版(修复)的 cmark-gfm 库以获取 Markdown 节点的正确 sourcepos。
  • 使 force_crlfmatch_trailing_nl 可由用户配置。
  • 更新了默认转换器配置,以便直接处理 markdown -> common_mark 转换。

0.3.0 (2020-04-06)

兼容 Redmine 4.2.x、4.1.x、4.0.x、3.4.x。

引入了 MarkdownToCommonmark 转换器,以帮助用户进行 markdowncommon_mark 格式迁移。见#32424

0.2.0 (2020-03-28)

兼容 Redmine 4.2.x、4.1.x、4.0.x、3.4.x、3.3.x。

  • 引入了 rake reformat:microservice 以简化某些集成测试。
  • 将 Redmine 格式转换的 Rake 作业重命名为 rake reformat:convert

0.1.1 (2020-02-25)

兼容 Redmine 4.2.x、4.1.x、4.0.x、3.4.x、3.3.x。

转换器配置中的 from_formattingto_fromatting 可以指定为数组,这样单个转换器规范就可以匹配更多格式。

0.1.0 (2020-02-19)

兼容 Redmine 4.2.x、4.1.x、4.0.x、3.4.x、3.3.x。

用户评分

 Jan S 在一年前评价

 Milan Brabec 大约三年前评价

优秀的插件,任务完成得很好,还要感谢作者对此插件的支持!

 Jihyeon Gim 在四年多前评价

 Sandra Tatarevicova 在四年多前评价

 Lucie Nevludová 在四年多前评价