nickpeirson/sculpin-sitemap-bundle

Sculpin 站点地图插件

0.1.1 2016-10-07 17:18 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:58:30 UTC


README

Software License

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并添加changefreqpriority

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 许可协议。请参阅许可文件获取更多信息。