nickpeirson / sculpin-sitemap-bundle
Sculpin 站点地图插件
Requires
- php: >=5.5.0
Requires (Dev)
- sculpin/sculpin: >=2.0.0
This package is not auto-updated.
Last update: 2024-09-14 19:58:30 UTC
README
Sculpin 插件,用于添加站点地图数据提供者。
站点地图生成器将遍历所有Sculpin源,这些源不是通过文件引用内部使用的。这是为了防止资源被包含。
已知限制
- 我在我的Sculpin网站上没有使用任何内容类型,因此此插件未与内容类型进行测试。你可能不知道,它可能直接使用,但未经过测试,所以请小心。
- 如上所述,只有Sculpin没有内部使用文件引用的源才会被包含。如果你想要包含在站点地图中的任何内容被跳过了,则可以通过手动将其添加到你的站点地图模板中作为解决方案。
安装
- 将以下内容添加到你的
sculpin.json
文件中
{ "require": { "nickpeirson/sculpin-sitemap-bundle": "~0.1.1" } }
- 运行
sculpin update
。 - 将插件添加到你的内核
app/SculpinKernel.php
<?php use Sculpin\Bundle\SculpinBundle\HttpKernel\AbstractKernel; class SculpinKernel extends AbstractKernel { protected function getAdditionalSculpinBundles() { return [ 'Nickpeirson\Sculpin\Bundle\SitemapBundle\SculpinSitemapBundle' ]; } }
用法
该插件提供了一个名为sitemap
的Sculpin数据提供者。要使用它,将以下内容添加到你的YAML前端元数据中
use:
-sitemap
这将使data.sitemap
可用于你的模板。
data.sitemap
将根据上述限制填充每个页面的条目。每个条目将有一个loc
字段,该字段设置为Sculpin分配给源的相对URL,以及一个lastmod
字段,该字段基于文件的最后修改时间或站点地图构建的时间(如果未提供修改时间)。
生成器当前硬编码为如果存在,则使用page.canonical
覆盖loc
字段。这是为了确保只添加规范URL到站点地图。在未来,我打算通过映射使其可配置(见下文了解更多信息)。
你还可以在data.sitemap
中为给定的源添加新参数并覆盖默认参数,通过在源的YAML前端元数据中定义站点地图参数,例如以下将覆盖lastmod
并添加changefreq
和priority
sitemap: lastmod: 2016-01-01 changefreq: monthly priority: 0.8
你还可以通过在页面的sitemap
参数中添加任何真值作为_exclude
键来排除文件从站点地图中,例如
sitemap: _exclude: 1
data.sitemap
的主要用途是在XML站点地图模板中使用,但如果你适当注释了站点地图数据,也可以用于生成HTML站点地图。
还值得注意,sitemap
数据是按loc
字段键入的,因此如果你有多个产生相同loc
的源,最后一个将出现在数据中。
示例sitemap.xml
文件
---
permalink: none
use:
- sitemap
---
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{% for url in data.sitemap %}
<url>
<loc>{{ site.url }}{{ url.loc }}</loc>
<lastmod>{{ url.lastmod }}</lastmod>
{% if url.changefreq %}
<changefreq>{{ url.changefreq }}</changefreq>
{% endif %}
{% if url.priority %}
<priority>{{ url.priority }}</priority>
{% endif %}
</url>
{% endfor %}
</urlset>
贡献
欢迎接收PR
路线图
- 添加配置以允许将源数据字段添加到站点地图。这将允许重复使用现有数据,而不是需要将数据重复在源
sitemap
数据中,例如标题。 - 进一步使用现有源数据,允许从源数据到
sitemap
的映射。这将允许通过现有数据覆盖站点地图字段,例如将page.canonical_url
映射到url
以覆盖data.sitemap
中的条目。
许可证
MIT 许可协议。请参阅许可文件获取更多信息。