visuellverstehen/statamic-content-renderer

Statamic 搜索转换器,用于处理 bard 和 replicator 字段。

v1.0.5 2024-06-17 06:49 UTC

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)。请参阅 许可证文件 了解更多信息。