veloxia/markup

Laravel 的 Schema 标记。

v1.0 2020-01-18 12:23 UTC

This package is auto-updated.

Last update: 2024-09-18 23:21:47 UTC


README

Latest Version on Packagist Build Status

一些 Schema.org 生成器,用于与 Laravel 一起使用。

安装

通过 Composer 安装

composer require veloxia/markup

Laravel < 5.4

添加到 config/app.php

'providers' => [
    ...
    Veloxia\Markup\MarkupServiceProvider::class,
    ...
];

'aliases' => [
    ...
    'Markup' => Veloxia\Markup\Facades\Markup::class,
    ...
];

Laravel 更新版本

安装完成后,服务提供者应自动可用。否则,请尝试上述步骤。

使用方法

// https://schema.org/FAQPage

// either ...
$markup = \Veloxia\Markup\Markup::make('FAQ');

// ... or ...
$markup = Markup::make('FAQ');

// ... then add some data ...
$markup
    ->question("Sunt in culpa qui officia deserunt?")
    ->answer("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.");

$markup
    ->question("Casus mixtus cum culpa?")
    ->answer("Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.");

// ... and print the results
echo $markup->json();

// with blade you'll need to allow html
// {!! $markup->json() !!}

这将输出类似以下内容

<script type="application/ld+json">
{
    "@context": "https:\/\/schema.org",
    "@type": "FAQPage",
    "mainEntity": [
        {
            "@type": "Question",
            "name": "Sunt in culpa qui officia deserunt?",
            "acceptedAnswer": {
                "@type": "Answer",
                "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
            }
        },
        {
            "@type": "Question",
            "name": "Casus mixtus cum culpa?",
            "acceptedAnswer": {
                "@type": "Answer",
                "text": "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
            }
        }
    ]
}
</script>

也可以批量插入

// Just one Q/A pair at a time ...
$markup->question("Question here", "Answer here")->json();

// ... or a bigger array
$faq = (new \Veloxia\Markup\Generators\FAQ([
    "Question 1" => "Answer A",
    "Question 2" => "Answer B",
]))->json();

测试

composer test

贡献

随时修改 :)

致谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅许可文件