pug-php / pug-filter-base
Pug-php 过滤器的示例,使用此基础来创建和发布您自己的
资助包维护!
kylekatarnls
Open Collective
Tidelift
Requires
- php: >=5.3
- pug-php/pug: >=1.11
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: >=4.8 <6.0
Replaces
This package is auto-updated.
Last update: 2024-08-24 00:06:38 UTC
README
Pug-php 过滤器的示例,使用此基础来创建和发布您自己的
如何创建和发布您自己的过滤器
安装 composer: https://getcomposer.org.cn/download/
然后基于此包创建一个项目
composer create-project pug-php/pug-filter-base yourfilter
cd yourfilter
将 yourfilter 替换为您想要的目录名称,composer 将创建它并在其中安装 pug-filter-base。
如果您的过滤器需要其他一些包来工作,请使用 composer 添加它们,例如
composer require kylekatarnls/sbp
注意:默认情况下,composer.json 文件设置为 "minimum-stability": "stable",但某些包没有稳定版本。要安装它们,将其设置为 dev
"minimum-stability": "dev",
composer require neemzy/stylus
然后将 src/Pug/Filter/Base.php 重命名为 src/Pug/Filter/YourFilter.php 例如,要创建一个调用为 :foo
的过滤器,文件名为 Foo.php,:foo-bar-baz
,FooBarBaz.php 等等。
然后在此文件内将类名设置为相同的名称,并编辑 __invoke 方法,您得到 Pug 结构树的过滤器节点和 Pug 编译器,您可以处理每一行以迭代 $node->block->nodes 或使用 $this->getNodeString($node, $compiler)
获取所有文本。这里开始有趣的部分,执行任何想要的动作然后返回一个字符串,它将被渲染在 HTML 中。
测试您的过滤器
请勿发布没有测试的过滤器。在 examples 目录中给我们一个或多个示例,以了解如何通过创建具有 .pug 扩展名的文件来使用您的过滤器,然后创建另一个具有相同名称但具有 .html 扩展名的文件以显示结果。(替换或删除基本示例。)
现在您可以使用 phpunit 检查一切是否按预期工作,在项目根目录执行
./vendor/bin/phpunit
如果您的过滤器按预期渲染所有示例,您将获得 100% 和 OK,否则您将看到预期结果和渲染的 pug 之间的差异。
配置它
要发布您的过滤器,您需要在 https://packagist.org.cn 上有一个账户。如果您还没有,请创建一个。您选择的用户名将作为过滤器作者出现在 http://pug-filters.selfbuild.fr/。
现在您可以在 composer.json 中设置您的包名称。它必须遵循此语法:username/pug-filter-filtername
或 username/pug-php-filter-filtername
(jade,pug 的旧名称也接受)其中 username 是您的 packagist 用户名,filtername 是过滤器名称,如它将在 pug 模板中被调用,所以如果您在 https://packagist.org.cn 上注册为 dark-vador 并创建一个包,您将在模板中用 :foo-bar-baz
调用它,那么您的 composer.json 应包含
{ "name": "dark-vador/pug-filter-foo-bar-baz", ... }
然后在描述字段中解释您的过滤器做什么。
编写文档
用有关如何安装的信息替换项目的 README.md,例如
composer require pug-php/pug-filter-sbp
发布它
现在您可以将您的过滤器托管在任何 Git、Svn 或 Hg 服务器上。
我们鼓励您使用 https://github.com,因为 http://pug-filters.selfbuild.fr/ 对其进行了优化。您可以按照以下说明进行操作:https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
您可以在 GitHub 中将 Packagist 添加为服务,方法是在设置中进入 > Webhooks & services > 添加服务 > Packagist,输入您的用户名和令牌。每次您在 GitHub 中创建发布或推送标签时,它都会在 Packagist 以及 http://pug-filters.selfbuild.fr/ 上发布一个版本。这可能需要一分钟左右的时间。
最后一步,请访问 https://packagist.org.cn/packages/submit 并输入您仓库的 URL。