visuellverstehen / statamic-content-renderer
Statamic 搜索转换器,用于处理 bard 和 replicator 字段。
v1.0.5
2024-06-17 06:49 UTC
Requires
- php: ^8.1
- statamic/cms: ^3.4 || ^4.0 || ^5.0
This package is auto-updated.
Last update: 2024-09-17 07:16:25 UTC
README
Statamic 插件,用于将 bard 和 replicator 字段的内容渲染出来,使其可通过 搜索转换器 进行搜索。
如何安装
从您的项目根目录运行以下命令
composer require visuellverstehen/statamic-content-renderer
如何使用
内容渲染器通过 Renderer()
类提供。要渲染 replicator 或 bard 字段的内容,该类需要一个视图,提供如何显示所有配置的集合的信息,例如:
{{# resources/views/sets.antlers.php #}} {{ my_replicator_field }} {{ partial src="sets/{type}" }} {{ /my_replicator_field }}
这个视图需要传递给渲染类。
use VV\ContentRenderer\Renderer; // ... $renderer = new Renderer(); $renderer->setContent($entry, 'my_replicator_field'); $renderer->setView('sets'); $content = $renderer->render();
渲染器使用视图渲染所有集合(以及 bard 字段的所有内容),对内容进行清理(去除所有 HTML 标签等),并返回一个包含字段中所有文字的字符串。
这可以在 搜索转换器 中使用,以便 Bard 和 replicator 字段的内容可以进行全文搜索
namespace App\SearchTransformers; use VV\ContentRenderer\Renderer; class MyReplicatorFieldTransformer { public function handle($value, $field, $searchable) { $renderer = new Renderer(); $renderer->setContent($searchable, 'my_replicator_field'); $renderer->setView('sets'); return $renderer->render(); } }
保留链接目标
在搜索转换器中使用内容渲染器时,保留渲染输出中的链接目标可能很有用。这使得根据内容中的链接找到条目成为可能。您可以指示渲染器在链接文本后面添加括号内的链接目标
$renderer = (new Renderer())->$withLinkTargets(); // read more <a href="https://visuellverstehen.de">about the author</a> of this package // becomes: read more about the author (https://visuellverstehen.de) of this package
保留 HTML 标签
如果您想保留 HTML 标签并/或以自己的方式修改内容,您可以指示渲染器不要去除它们
$renderer = (new Renderer())->withHtmlTags();
注意:如果您选择保留 HTML 标签,则上述的 withLinkTargets
选项将被忽略。
自定义处理器
如果您需要在传递给渲染过程之前修改内容,您可以可选地添加一个自定义处理器函数
$renderer = new Renderer(); $renderer->setContent($searchable, 'bard_content'); // … $renderer->process(function ($content) { // modify content return $content; });
这允许您例如删除某些集合或以任何其他方式修改内容。
关于我们
许可
MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。