Compare commits

..

No commits in common. "693b690bef6649a57fef132322dabf50c068955c" and "1625f36ba4bc4b99653e432e385f9656e4d33bce" have entirely different histories.

11 changed files with 34 additions and 121 deletions

View file

@ -36,15 +36,6 @@ module.exports = config => {
return [...collection.getFilteredByGlob('./src/posts/*.md')].reverse(); return [...collection.getFilteredByGlob('./src/posts/*.md')].reverse();
}); });
// Return all the tags used in a collection
config.addFilter("getAllTags", collection => {
let tagSet = new Set();
for(let item of collection) {
(item.data.tags || []).forEach(tag => tagSet.add(tag));
}
return Array.from(tagSet);
});
return { return {
markdownTemplateEngine: 'njk', markdownTemplateEngine: 'njk',
dataTemplateEngine: 'njk', dataTemplateEngine: 'njk',

View file

@ -3,15 +3,6 @@
"SkipLink": "Skip to content", "SkipLink": "Skip to content",
"ToggleTheme": "Toggle theme", "ToggleTheme": "Toggle theme",
"TopLink": "Back to top", "TopLink": "Back to top",
"Listing": {
"Tags": {
"Title": "Tagged",
"More": {
"See": "See",
"All": "all tags"
}
}
},
"Footer": { "Footer": {
"lastDeployment": "Dernier déploiement le", "lastDeployment": "Dernier déploiement le",
"createdWith": "Built with" "createdWith": "Built with"

View file

@ -7,14 +7,6 @@
{ {
"text": "About", "text": "About",
"url": "/about/" "url": "/about/"
},
{
"text": "Blog",
"url": "/blog/"
},
{
"text": "Demo",
"url": "/tags/demo/"
} }
] ]
} }

View file

@ -12,7 +12,7 @@
{% if tags %} {% if tags %}
{% for tag in tags %} {% for tag in tags %}
<li> <li>
<a href="/tags/{{ tag | slug }}/">{{ tag | title }}</a> <a href="/tag/{{ tag | slug }}/">{{ tag | title }}</a>
</li> </li>
{% endfor %} {% endfor %}
{% endif %} {% endif %}

View file

@ -1,6 +1,6 @@
<section class="projects"> <section class="projects">
<ol reversed class="postlist"> <ol reversed class="postlist">
{%- asyncEach blog in postslist -%} {%- asyncEach blog in collections.blog -%}
<li> <li>
<h2><a href="{{ blog.url }}">{{ blog.data.title }}</a></h2> <h2><a href="{{ blog.url }}">{{ blog.data.title }}</a></h2>
<ul class="list-inline"> <ul class="list-inline">
@ -8,7 +8,7 @@
{%- if blog.data.tags -%} {%- if blog.data.tags -%}
{%- for tag in blog.data.tags -%} {%- for tag in blog.data.tags -%}
<li> <li>
<a href="/tags/{{ tag | slug }}/">{{ tag | title }}</a> <a href="/tag/{{ tag | slug }}/">{{ tag | title }}</a>
</li> </li>
{%- endfor -%} {%- endfor -%}
{%- endif -%} {%- endif -%}

View file

@ -2,10 +2,9 @@
title: 'Blog' title: 'Blog'
layout: 'list' layout: 'list'
--- ---
# {{ title }} # Blog
The latest articles from around the studio, demonstrating our design The latest articles from around the studio, demonstrating our design
thinking, strategy and expertise. thinking, strategy and expertise.
{% set postslist = collections.blog %}
{% include "partials/post-list.html" %} {% include "partials/post-list.html" %}

View file

@ -7,5 +7,4 @@ metaDesc: 'A made up agency site that you build if you take Learn Eleventy From
layout: 'home' layout: 'home'
--- ---
{% set postslist = collections.blog %}
{% include "partials/post-list.html" %} {% include "partials/post-list.html" %}

View file

@ -7,71 +7,6 @@ tags: ['Tips And Tricks', 'Demo']
For decades, South Florida schoolchildren and adults fascinated by far-off galaxies, earthly ecosystems, the properties of light and sound and other wonders of science had only a quaint, antiquated museum here in which to explore their interests. "Now, with the long-delayed opening of a vast new science museum downtown set for Monday, visitors will be able to stand underneath a suspended, 500,000-gallon aquarium tank and gaze at hammerhead and tiger sharks, mahi mahi, devil rays and other creatures through a 60,000-pound oculus, a lens that will give the impression of seeing the fish from the bottom of a huge cocktail glass." For decades, South Florida schoolchildren and adults fascinated by far-off galaxies, earthly ecosystems, the properties of light and sound and other wonders of science had only a quaint, antiquated museum here in which to explore their interests. "Now, with the long-delayed opening of a vast new science museum downtown set for Monday, visitors will be able to stand underneath a suspended, 500,000-gallon aquarium tank and gaze at hammerhead and tiger sharks, mahi mahi, devil rays and other creatures through a 60,000-pound oculus, a lens that will give the impression of seeing the fish from the bottom of a huge cocktail glass."
```javascript
const storageKey = 'theme-preference'
const onClick = () => {
// flip current value
theme.value = theme.value === 'light'
? 'dark'
: 'light';
document
.querySelector('.theme-toggle')
.classList.toggle('theme-toggle--toggled');
setPreference()
}
const getColorPreference = () => {
if (localStorage.getItem(storageKey))
return localStorage.getItem(storageKey)
else
return window.matchMedia('(prefers-color-scheme: dark)').matches
? 'dark'
: 'light'
}
const setPreference = () => {
localStorage.setItem(storageKey, theme.value)
reflectPreference()
}
const reflectPreference = () => {
document.firstElementChild
.setAttribute('data-theme', theme.value)
document
.querySelector('#theme-toggle')
?.setAttribute('aria-label', theme.value)
}
const theme = {
value: getColorPreference(),
}
// set early so no page flashes / CSS is made aware
reflectPreference()
window.onload = () => {
// set on load so screen readers can see latest value on the button
reflectPreference()
// now this script can find and listen for clicks on the control
document
.querySelector('.theme-toggle')
.addEventListener('click', onClick)
}
// sync with system changes
window
.matchMedia('(prefers-color-scheme: dark)')
.addEventListener('change', ({matches:isDark}) => {
theme.value = isDark ? 'dark' : 'light'
setPreference()
})
```
<figure> <figure>
<img src="https://via.placeholder.com/900x600" alt="Placeholder" width=900 height=600> <img src="https://via.placeholder.com/900x600" alt="Placeholder" width=900 height=600>
<figcaption> <figcaption>

View file

@ -15,8 +15,9 @@
body { body {
min-height: 100vh; min-height: 100vh;
display: grid; display: flex;
grid-template-rows: auto 1fr auto; flex-direction: column;
justify-content: space-between;
> header { > header {
display: flex; display: flex;

View file

@ -1,13 +0,0 @@
---
title: Tags
permalink: /tags/
layout: list
---
<h1 class="full-bleed">{{ title }}</h1>
<ul>
{% for tag in collections.all | getAllTags %}
{% set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
<li><a href="{{ tagUrl }}" class="post-tag">{{ tag }}</a></li>
{% endfor %}
</ul>

View file

@ -1,17 +1,35 @@
--- ---
eleventyComputed: title: 'Tag Archive'
title: "{{ Term.Site.Listing.Tags.Title }} “{{ tag }}”" layout: 'list'
permalink: '/tags/{{ tag | slug }}/'
pagination: pagination:
data: collections data: collections
size: 1 size: 1
alias: tag alias: tag
layout: 'list' permalink: '/tag/{{ tag | slug }}/'
--- ---
<h1 class="full-bleed">{{ Term.Site.Listing.Tags.Title }} “{{ tag }}”</h1> <h1>Tagged “{{ tag }}”</h1>
{% set postslist = collections[ tag ] %} <section class="projects">
{% include "partials/post-list.html" %} <ol reversed class="postlist">
{% set taglist = collections[ tag ] %}
<p>{{ Term.Site.Listing.Tags.More.See }} <a href="/tags/">{{ Term.Site.Listing.Tags.More.All }}</a>.</p> {% for blog in taglist | reverse %}
<li>
<h2><a href="{{ blog.url }}">{{ blog.data.title }}</a></h2>
<ul class="list-inline">
<li><time datetime="{{ blog.date | getDatetime }}">{{ blog.date | toFullDate }}</time></li>
{%- if blog.data.tags -%}
{%- for tag in blog.data.tags -%}
<li>
<a href="/tag/{{ tag | slug }}/">{{ tag | title }}</a>
</li>
{%- endfor -%}
{%- endif -%}
</ul>
{%- if blog.data.leading -%}
<p>{{ blog.data.leading }}</p>
{%- endif -%}
</li>
{%- endfor -%}
</ol>
</section>