ceus-media / hydrogen-source-indexer
创建Hydrogen模块源索引的工具。
Requires
- php: ^8.1
- ceus-media/common: ^1.0 | 1.0.x-dev
- ceus-media/hydrogen-framework: ^1.0 | 1.0.x-dev
Requires (Dev)
- php-parallel-lint/php-parallel-lint: ^1.3 | dev-master
- phpstan/phpstan: ^1
- phpstan/phpstan-strict-rules: ^1
- phpunit/phpunit: ^9.5 | ^10
- rector/rector: *
README
简而言之:这是一个用于为模块集合创建JSON索引文件的工具,可用于Hydrogen框架。
简介
在Hydrogen框架的世界中,有可以从一个或多个模块源安装的模块。模块源是一组由公司或个人产生的、收集或维护的Hydrogen模块。
可以使用Hymn工具安装模块。为了能够扫描现有模块,项目需要有一个注册了源的hymn配置文件。这些源需要通过composer在项目中安装。
由于某些库是包含更多模块的集合,如果源有一个索引,索引过程可以更快。此工具可以通过将所有必要信息收集到一个JSON文件中来创建此类索引。
用法
假设你有
- 一个使用Hydrogen框架的项目
- 使用composer安装了框架
- 使用composer安装了默认模块源Hydrogen Modules (可选)
- 开发了自己的模块,这些模块应该是可重用的
- 决定创建自己的模块源
- 已将您的模块集合收集在VCS存储库(GitHub、GitLab等)中
- 在模块源存储库中创建了一个composer文件
- 通过Packagist使您的模块库可用 (可选)
安装
以dev模式检出您的存储库到工作目录
composer create-project my-vendor/my-hydrogen-module-source
现在,您的模块已安装到当前目录中。
cd my-hydrogen-module-source
ls -lA
现在,将模块源索引器作为包以dev模式添加
composer require ceus-media/hydrogen-source-indexer(:dev-main)
创建
要创建JSON索引,您可以这样做
php vendor/ceus-media/hydrogen-source-index/index.php json
这将在目录中创建index.json。
此外,您可以通过以下方式创建HTML索引(index.html):
php vendor/ceus-media/hydrogen-source-index/index.php html
您可以将这两个文件添加到存储库中。虽然JSON文件可以被Hymn使用,但HTML索引用于可用性,可以在浏览器中查看以了解源中的模块概述。
集成
在安装过程中,您通过索引器包扩展了您的composer文件,以dev模式安装。为了缩短索引器的执行时间,您可以通过以下方式扩展您的make文件(Makefile):
dev-index-json: @php vendor/ceus-media/hydrogen-source-indexer/index.php json dev-index-json-humanreadable: @php vendor/ceus-media/hydrogen-source-indexer/index.php json-dev dev-index-html: @php vendor/ceus-media/hydrogen-source-indexer/index.php html
当然,您可以根据自己的风格更改目标名称。
定制
设置
索引器附带一个空的属性文件(src/.index.ini),它可以存储有关您的模块源的主要信息。将该文件复制到模块源库的根目录,并根据您的需要更新几行。
示例
id = "CeusMedia_PublicModules" title = "Hydrogen Modules" url = "https://github.com/CeusMedia/HydrogenModules" description = "Collection of public (free and open) modules for <a href="https://github.com/CeusMedia/HydrogenFramework">Hydrogen Framework</a>"
这些信息将用作索引格式的标题。
HTML
索引器还附带一个HTML模板文件(src/.index.html),它将被用于创建HTML索引。它包含占位符,这些占位符将被设置和生成的模块列表替换。
将该文件复制到模块源库的根目录,并根据您的需要更新几行。
这样做是推荐的,因为默认模板中链接了一些来自Ceus Media CDN服务器的CSS和JavaScript资源。如果您在这里使用自己的资源,您的索引将不依赖于Ceus Media资源。
贡献
你喜欢这个索引器,正在用它来处理你的资源,并且有一个更好的HTML模板要提交吗?或者更好的是,对渲染类进行一些改进?请随意通过fork这个仓库并创建一个pull request来贡献你的改进。 谢谢!