kylekatarnls / jade-filter-base
Pug-php 过滤器示例,使用此基础创建并发布您自己的
资助软件包维护!
kylekatarnls
Open Collective
Tidelift
This package is auto-updated.
Last update: 2020-03-06 09:01:23 UTC
README
此存储库现在位于 https://github.com/pug-php/pug-filter-base
pug-filter-base
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 的旧名称也接受代替 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。