syonix / changelog-viewer
此包提供了对变更日志文件的优美展示
Requires
- cebe/markdown: ^1.2.1
- doctrine/collections: ^2.1.4
- jenssegers/date: dev-master
Requires (Dev)
- phpunit/phpunit: ^10.4.2
README
此包提供了一种展示变更日志的好方法。
非常感谢Grav CMS允许我使用他们的设计来制作变更日志模态框。我自己也在使用Grav,并且已经用Grav替换了几个WordPress页面。去看看吧!
安装
使用Composer
调用composer require syonix/changelog-viewer
。
手动安装
下载项目文件并将它们上传到您的web服务器。包含类自动加载器/vendor/autoload.php
或配置您自己的自动加载器。
使用方法
要渲染显示,只需调用一个工厂函数,如下所示
use \Syonix\ChangelogViewer\Factory\ViewerFactory; ViewerFactory::createMarkdownHtmlViewer(__DIR__ . '/../CHANGELOG.md')->build();
处理器
处理器是库的组件,用于读取变更日志文件。目前实现的是MarkdownProcessor
,但您可以添加任何自己的,只要它实现了Processor\Processor
接口。
MarkdownProcessor
MarkdownProcessor
接收Markdown文件的路径,并返回一个包含Version
实例的ArrayCollection
。Markdown文件必须遵循以下方案
# Change Log All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
此标题是可选的,但遵循Keep A Changelog的建议。
## [v0.1.0](https://github.com/Syonix/changelog-viewer/releases/tag/v0.1.0) - 2016-01-23 [See full Changelog](https://github.com/Syonix/monolog-viewer/compare/v4.0.1...v4.0.2)
这是版本标题。它包含版本字符串(遵循语义化版本控制)和可以下载此版本的链接。
### New - Initial release - Modular concept to support different sources and outputs
接下来是标签“新”、“变更”和“修复”。新
用于新功能,变更
用于改进的现有功能,修复
用于已修复的错误。在每一个标签下,都有一个属于此标签(分类)的变化列表。
可以通过设置自定义正则表达式来覆盖此格式
$processor = new MarkdownProcessor($path) ->setRegex(array( 'version' => '/^## \[(v.+)\]\((.+)\) - ([\d-]+)/', 'changes_url' => '/^\[See full Changelog\]\((.+)\)/', 'label' => '/^### (.+)/', 'change' => '/^- (.+)/', )); (new HtmlFormatter($processor))->build();
格式化器
格式化器用于显示变更日志。目前只有HtmlFormatter
,它将变更日志输出为HTML,但您可以实现任何其他格式化器。
HtmlFormatter
HtmlFormatter
打印出漂亮的HTML。您有几种选择
(new HtmlFormatter($processor)) ->title('Changelog') ->modal() ->frame(true) ->styles(true) ->scripts(true) ->downloadLinks(true) ->output();
本地化
如果您的变更日志文件是用其他语言编写的,您可以使用LabelTranslator
,这样解析器就能识别标签。请参考德语示例的结构
{ "new": "neu", "improved": "verbessert", "fixed": "behoben", "See full Changelog": "Vollständigen Changelog anzeigen" }
演示
在克隆或下载项目后,您可以通过在演示目录中运行php -S localhost:8081
来快速启动演示。然后只需打开您的浏览器并访问localhost:8081
。