From cea304998a7586446b18739883436272732321fe Mon Sep 17 00:00:00 2001 From: Justin Obara Date: Mon, 11 Apr 2022 09:18:42 -0400 Subject: [PATCH] feat: generate sitemap.xml (resolves #243) (#244) --- netlify.toml | 9 +++++++++ src/404.en-CA.md | 1 + src/404.fr-CA.md | 1 + src/admin/admin.njk | 1 + src/admin/config.njk | 2 +- src/feed.njk | 1 + src/robots.njk | 9 +++++++++ src/sitemap.njk | 20 ++++++++++++++++++++ src/webmanifest.njk | 1 + 9 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 src/robots.njk create mode 100644 src/sitemap.njk diff --git a/netlify.toml b/netlify.toml index 746e9e48..de823243 100644 --- a/netlify.toml +++ b/netlify.toml @@ -10,6 +10,15 @@ autoLaunch = false framework = "#custom" +[[headers]] + for = "/admin/*" + [headers.values] + X-Robots-Tag = "noindex" + +[[headers]] + for = "**/404.html" + [headers.values] + X-Robots-Tag = "noindex" [[redirects]] from = "/fr/*" diff --git a/src/404.en-CA.md b/src/404.en-CA.md index 4539fa9b..c5b4287f 100644 --- a/src/404.en-CA.md +++ b/src/404.en-CA.md @@ -4,5 +4,6 @@ title: Page Not Found lang: en-CA translationKey: 404 permalink: "{% if lang != config.defaultLanguage %}/{{ config.languages[lang].slug }}{% endif %}/404.html" +eleventyExcludeFromCollections: true --- The page you were looking for does not exist. Go back to the [home page?](/) diff --git a/src/404.fr-CA.md b/src/404.fr-CA.md index aa30d626..ee1514ed 100644 --- a/src/404.fr-CA.md +++ b/src/404.fr-CA.md @@ -4,5 +4,6 @@ title: Page non trouvée lang: fr-CA translationKey: 404 permalink: "{% if lang != config.defaultLanguage %}/{{ config.languages[lang].slug }}{% endif %}/404.html" +eleventyExcludeFromCollections: true --- La page que vous recherchez n'existe pas. Retournez à la [page d'accueil?](/fr/) diff --git a/src/admin/admin.njk b/src/admin/admin.njk index 68fe1c78..77415211 100644 --- a/src/admin/admin.njk +++ b/src/admin/admin.njk @@ -1,5 +1,6 @@ --- permalink: '/admin/index.html' +eleventyExcludeFromCollections: true --- diff --git a/src/admin/config.njk b/src/admin/config.njk index 07b18dba..2062ed8f 100644 --- a/src/admin/config.njk +++ b/src/admin/config.njk @@ -1,5 +1,6 @@ --- permalink: /admin/config.yml +eleventyExcludeFromCollections: true --- backend: name: git-gateway @@ -67,4 +68,3 @@ collections: - { label: "Author Name", name: authorName, widget: string, i18n: true } - { label: "Author Email", name: authorEmail, widget: string, i18n: duplicate } - { label: "Author Website", name: authorWebsite, widget: string, i18n: duplicate } - diff --git a/src/feed.njk b/src/feed.njk index df869641..f8327a9c 100644 --- a/src/feed.njk +++ b/src/feed.njk @@ -4,6 +4,7 @@ pagination: size: 1 alias: language permalink: "{% if language !== config.defaultLanguage %}/{{ config.languages[language].slug }}{% endif %}/feed.xml" +eleventyExcludeFromCollections: true --- {% set collection = "postFeed_" + language %} diff --git a/src/robots.njk b/src/robots.njk new file mode 100644 index 00000000..12b778bb --- /dev/null +++ b/src/robots.njk @@ -0,0 +1,9 @@ +--- +permalink: /robots.txt +eleventyExcludeFromCollections: true +--- +Sitemap: {{ site[config.defaultLanguage].url }}/sitemap.xml + +User-Agent: * +Disallow: /404.html +Disallow: /admin/ diff --git a/src/sitemap.njk b/src/sitemap.njk new file mode 100644 index 00000000..552a09ad --- /dev/null +++ b/src/sitemap.njk @@ -0,0 +1,20 @@ +--- +permalink: /sitemap.xml +eleventyExcludeFromCollections: true +--- + + + {% for page in collections.all %} + {% if page.url -%} + + {{ site[config.defaultLanguage].url }}{{ page.url | url }} + {{ page.date.toISOString() }} + {% for relatedPage in collections.all -%} + {% if page.data.translationKey and page.data.translationKey ===relatedPage.data.translationKey %} + + {%- endif %} + {%- endfor %} + + {%- endif %} + {% endfor %} + diff --git a/src/webmanifest.njk b/src/webmanifest.njk index 65cbfb26..d4bb4b60 100644 --- a/src/webmanifest.njk +++ b/src/webmanifest.njk @@ -1,5 +1,6 @@ --- permalink: /manifest.webmanifest +eleventyExcludeFromCollections: true --- { "icons": [