dek-cz/meta-canonical-control

Nette 控制器,用于管理 HTML 头中的元数据和规范链接。

1.6.2 2022-05-03 10:06 UTC

This package is auto-updated.

Last update: 2024-08-30 01:14:48 UTC


README

Build Status Downloads this Month Latest stable Coverage Status

安装

通过 Composer

$ composer require dek-cz/meta-canonical-control

使用方法

首先在您的配置中注册控制器工厂,并可选择设置默认元数据

services:
    -
        implement: Dekcz\MetaControl\IMetaControlFactory
        setup:
            - setCharset('utf-8')
            - setAuthor('Jon Doe')

在您的演示者中使用控制器工厂

protected function createComponentMeta(): Dekcz\MetaControl\MetaControl
{
    $control = $this->metaControlFactory->create();
    $control->setDescription('Lorem ipsum');
    return $control;
}

并在您的 Latte 模板中渲染它

<html>
<head>
    {control meta}
</head>
<body>
    ...
</body>
</html>

支持的元标签概述

字符集

// <meta charset="utf-8">
$control->setCharset('utf-8');
$control->getCharset(); // 'utf-8'

文档元数据

// <meta name="author" content="John Doe">
$control->setMetadata('author', 'Jon Doe');
$control->getMetadata('author'); // 'Jon Doe'

文档属性

// <meta property="og:title" content="Foo title">
$control->setProperty('og:title', 'Foo title');
$control->getProperty('og:title'); // 'Foo title'

预处理指令

// <meta http-equiv="content-type" content="text/html; charset=UTF-8">
$control->setPragma('content-type', 'text/html; charset=UTF-8');
$control->getPragma('content-type'); // 'text/html; charset=UTF-8'

标准元数据的缩写

作者

// <meta name="author" content="John Doe">
$control->setAuthor('Jon Doe');
$control->getAuthor(); // 'Jon Doe'

描述

// <meta name="description" content="Lorem ipsum">
$control->setDescription('Lorem ipsum');
$control->getDescription(); // 'Lorem ipsum'

关键词

// <meta name="keywords" content="foo, bar, baz">
$control->setKeywords('foo', 'bar');
$control->addKeyword('baz');
$control->getKeywords(); // ['foo', 'bar', 'baz']

机器人

// <meta name="robots" content="noindex, nofollow">
$control->setRobots('noindex, nofollow');
$control->getRobots(); // 'noindex, nofollow'

新功能

规范链接

// <link rel="canonical" href="/test/3">
$control->setCanonical('/test/3');

上一页(分页)

// <link rel="prev" href="test/3/page/1">
$control->setPrev('/test/3/page/1');

下一页(分页)

// <link rel="next" href="/test/3/page/3">
$control->setNext('/test/3/page/3');

设置非唯一的元数据,例如 google-site-verification

// <meta name="google-site-verification" content="123456789abcdefghijklmnopqrstuvwxyzABCDEFGH">\n<meta name="google-site-verification" content="HGFEDCBAzyxwvutsrqponmlkjihgfedcba987654321">\n

$control->setMetadata('google-site-verification', '123456789abcdefghijklmnopqrstuvwxyzABCDEFGH');
$control->setMetadata('google-site-verification', 'HGFEDCBAzyxwvutsrqponmlkjihgfedcba987654321');