dek-cz / meta-canonical-control
Nette 控制器,用于管理 HTML 头中的元数据和规范链接。
1.6.2
2022-05-03 10:06 UTC
Requires
- php: >=7.4.0
- nette/application: ^3.0@dev
Requires (Dev)
- ninjify/qa: ^0.12.1
- php-coveralls/php-coveralls: ^2.4
- phpstan/phpstan: ^0.12.69
- phpstan/phpstan-nette: ^0.12.14
- phpstan/phpstan-strict-rules: ^0.12.9
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: ^9.5
- spaze/phpstan-disallowed-calls: ^1.1
README
安装
通过 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');