diff --git a/digest-feed.njk b/digest-feed.njk new file mode 100644 index 0000000..6505876 --- /dev/null +++ b/digest-feed.njk @@ -0,0 +1,31 @@ +--- +eleventyExcludeFromCollections: true +eleventyImport: + collections: + - weeklyDigests +permalink: /digest/feed.xml +--- + + + + {{ site.name }} — Weekly Digest + {{ site.url }}/digest/ + Weekly summary of all posts on {{ site.name }}. One update per week. + {{ site.locale | default('en') }} + + + {%- set latestDigests = collections.weeklyDigests | head(20) %} + {%- if latestDigests.length %} + {{ latestDigests[0].endDate | dateToRfc822 }} + {%- endif %} + {%- for digest in latestDigests %} + + {{ digest.label }} ({{ digest.startDate | dateDisplay }} – {{ digest.endDate | dateDisplay }}) + {{ site.url }}/digest/{{ digest.slug }}/ + {{ site.url }}/digest/{{ digest.slug }}/ + {{ digest.endDate | dateToRfc822 }} + {{ digest | digestToHtml(site.url) | escape }} + + {%- endfor %} + + diff --git a/digest-index.njk b/digest-index.njk new file mode 100644 index 0000000..5854034 --- /dev/null +++ b/digest-index.njk @@ -0,0 +1,83 @@ +--- +layout: layouts/base.njk +title: Weekly Digest +withSidebar: true +eleventyExcludeFromCollections: true +eleventyImport: + collections: + - weeklyDigests +pagination: + data: collections.weeklyDigests + size: 20 + alias: paginatedDigests +permalink: "digest/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}" +--- +
+

Weekly Digest

+

+ A weekly summary of all posts. Subscribe via RSS for one update per week. +

+ + {% if paginatedDigests.length > 0 %} + + + {% if pagination.pages.length > 1 %} + + {% endif %} + + {% else %} +

No digests yet. Posts will be grouped into weekly digests automatically.

+ {% endif %} +
diff --git a/digest.njk b/digest.njk new file mode 100644 index 0000000..ddfcc4d --- /dev/null +++ b/digest.njk @@ -0,0 +1,168 @@ +--- +layout: layouts/base.njk +withSidebar: true +eleventyExcludeFromCollections: true +eleventyImport: + collections: + - weeklyDigests +pagination: + data: collections.weeklyDigests + size: 1 + alias: digest +eleventyComputed: + title: "{{ digest.label }}" +permalink: "digest/{{ digest.slug }}/" +--- +
+

+ {{ digest.label }} +

+

+ {{ digest.startDate | dateDisplay }} – {{ digest.endDate | dateDisplay }} + ({{ digest.posts.length }} post{% if digest.posts.length != 1 %}s{% endif %}) +

+ + {# Type display order #} + {% set typeOrder = [ + { key: "articles", label: "Articles" }, + { key: "notes", label: "Notes" }, + { key: "photos", label: "Photos" }, + { key: "bookmarks", label: "Bookmarks" }, + { key: "likes", label: "Likes" }, + { key: "reposts", label: "Reposts" } + ] %} + + {% for typeInfo in typeOrder %} + {% set typePosts = digest.byType[typeInfo.key] %} + {% if typePosts and typePosts.length %} +
+

+ {{ typeInfo.label }} + ({{ typePosts.length }}) +

+ +
+ {% endif %} + {% endfor %} + + {# Previous/Next digest navigation #} + {% set allDigests = collections.weeklyDigests %} + {% set currentIndex = -1 %} + {% for d in allDigests %} + {% if d.slug == digest.slug %} + {% set currentIndex = loop.index0 %} + {% endif %} + {% endfor %} + + +