15

ブログ全体を WordPress から Jekyll に移行しました。あちこちに修正が必要な部分がまだいくつかありますが、現時点ではこの問題に直面しています。Jekyll でサイトマップを生成できません。私は、私のために仕事をすることができるプラグインがいくつかあることを見ました。

サイトに関する情報:

  • Github ページでホストされているサイト
  • サイト全体をハンドコーディング - JB や Octopress を使用していません

必要なことを行う方法についての指針を得ることができれば、それは素晴らしいことです。

注: この質問は、前の質問と同じではありません。を使用するオプションは探していません_site

4

4 に答える 4

14

この記事でJohn Dayが説明したように、サイトのルートに次の内容のファイルを作成できます。sitemap.xml

---
layout: nil
title : "Sitemap"
sitemap_exclude: y
---
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    {% for post in site.posts %}
    <url>
        <loc>{{site.production_url}}{{ post.url | remove: 'index.html' }}</loc>
    </url>
    {% endfor %}

    {% for page in site.pages %}
    {% if page.sitemap_exclude != 'y' %}
    <url>
        <loc>{{site.production_url}}{{ page.url | remove: 'index.html' }}</loc>
    </url>
    {% endif %}
    {% endfor %}
</urlset>

で、サイトの完全なベース URL で名前が_config.yml付けられた変数を定義します (例: )。production_urlhttp://example.com

サイトマップからリンクを除外したい場合sitemap_exclude: yは、ページまたは投稿の前付けに含めます。

より高度な例については、記事「Building a Better Sitemap.xml with Jekyll」を参照してください。

于 2014-07-26T14:03:20.680 に答える
12

サイト ルートに「sitemap.xml」という名前の新しいファイルを作成し、そのページ内で Liquid タグを使用してすべてのページと投稿を反復処理し、必要なデータを抽出することができます。適切な標準に準拠した xml 形式でサイト上のすべてのページをリストするページを生成したいだけだと仮定すると、それは非常に簡単に仕事をするように思えます。

于 2012-11-28T03:23:37.957 に答える
3

私のサイトは github-pages でホストされているため、これに遭遇しました。github ページがこれをサポートするようになりました。

_config.yml に追加するだけでした:

gems:
  - jekyll-sitemap

(必要に応じて Gemfile に追加できますが、私のものは依存関係によって既に含まれていました)

(おもしろい事実: jekyll-redirect-from は github ページでもサポートされています)

于 2014-12-24T18:17:23.393 に答える
2

プラグインを使用しないと、jekyll で完全なサイトマップを自動的に生成することはできません。

できることは、サイトマップを JSON データとして生成する独自の ruby​​ (またはその他) スクリプトを作成し、それを config.yml に挿入することです。そこから、jekyll からそのデータにアクセスして表示できます。

しかし、jekyllだけでそれを行う組み込みの方法はありません。

于 2012-11-25T13:44:32.537 に答える