syonix/changelog-viewer

此包提供了对变更日志文件的优美展示

v1.0.0 2024-09-05 10:42 UTC

This package is auto-updated.

Last update: 2024-09-05 10:43:29 UTC


README

Build Status Total Downloads Latest Stable Version SensioLabsInsight

此包提供了一种展示变更日志的好方法。

Changelog Viewer Screenshot

非常感谢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