moved files in place, edited posts to fix date format (seconds need added to some times, plus add colon to +time), added eleventy ignore file, added .eleventy.js

This commit is contained in:
Robert McGovern 2023-01-23 00:54:11 +00:00
parent 5b16d8f1bd
commit 3d3b18411f
47 changed files with 4845 additions and 59 deletions

353
.eleventy.js Normal file
View File

@ -0,0 +1,353 @@
const fs = require("fs-extra");
const sass = require("sass");
const { promisify } = require("util");
const sassRender = promisify(sass.render);
const postcss = require("postcss");
const autoprefixer = require("autoprefixer");
const markdownIt = require("markdown-it");
const markdownItRenderer = new markdownIt();
const markdownItAnchor = require("markdown-it-anchor");
// const relativeUrl = require("eleventy-filter-relative-url");
const pluginTOC = require("eleventy-plugin-toc");
const moment = require("moment");
const description = require("eleventy-plugin-description");
const pluginRss = require("@11ty/eleventy-plugin-rss");
const UpgradeHelper = require("@11ty/eleventy-upgrade-help");
const xmlFiltersPlugin = require("eleventy-xml-plugin");
// relativeURL
const path = require("path");
const urlFilter = require("@11ty/eleventy/src/Filters/Url");
const indexify = (url) => url.replace(/(\/[^.]*)$/, "$1index.html");
module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(pluginRss);
//Blog excerpts
eleventyConfig.addPlugin(description);
// Eleventy Navigation (https://www.11ty.dev/docs/plugins/navigation/)
eleventyConfig.addPlugin(require("@11ty/eleventy-navigation"));
// Eleventy RSS Feed (https://www.11ty.dev/docs/plugins/rss/)
eleventyConfig.addPlugin(require("@11ty/eleventy-plugin-rss"));
// Filter to generate a Table of Contents from page content
eleventyConfig.addPlugin(pluginTOC, {
tags: ["h2", "h3"],
wrapper: "div",
});
// TODO https://www.npmjs.com/package/eleventy-plugin-meta-generator
// Eleventy Syntax Highlighting (https://www.11ty.dev/docs/plugins/syntaxhighlight/)
eleventyConfig.addPlugin(require("@11ty/eleventy-plugin-syntaxhighlight"));
eleventyConfig.addPlugin(xmlFiltersPlugin);
// Custom Collections
eleventyConfig.addCollection("pages", (collection) =>
collection.getFilteredByGlob("./src/_pages/**/*")
);
eleventyConfig.addCollection("posts", (collection) =>
collection
.getFilteredByGlob("./src/_posts/**/*")
.filter(
(item) => item.data.draft !== true && item.date <= new Date()
)
.reverse()
.map((cur, i, all) => {
cur.data["siblings"] = {
next: all[i - 1],
prev: all[i + 1],
};
return cur;
})
);
eleventyConfig.addCollection("projects", (collection) =>
collection
.getFilteredByGlob("./src/projects/**/*")
.sort((a, b) => a.data.weight - b.data.weight)
);
// eleventyConfig.addCollection("posts", function (collectionApi) {
// return collectionApi.getFilteredByGlob("./src/posts/**/*.md");
// });
eleventyConfig.addCollection("tags", (collection) => {
let tags = new Set();
collection.getAll().forEach((item) => {
if ("tags" in item.data) {
for (const tag of item.data.tags) {
tags.add(tag);
}
}
});
return [...tags];
});
// Filters
// eleventyConfig.addFilter("markdownify", (str) => {
// return markdownItRenderer.renderInline(str);
// });
eleventyConfig.addFilter("markdownify", (string) => {
return md.renderInline(string);
});
eleventyConfig.addNunjucksFilter("markdownify", (str) => md.render(str));
eleventyConfig.addFilter("jsonify", (variable) => JSON.stringify(variable));
eleventyConfig.addFilter("slugify", (str) =>
require("slugify")(str, {
lower: true,
replacement: "-",
remove: /[*+~.·,()''`´%!?¿:@]/g,
})
);
eleventyConfig.addFilter("where", (array, key, value) =>
array.filter((item) => {
const keys = key.split(".");
const reducedKey = keys.reduce((object, key) => object[key], item);
return reducedKey === value ? item : false;
})
);
eleventyConfig.addFilter("date", (date, format = "") =>
require("moment")(date).format(format)
);
eleventyConfig.addFilter("relative_url", relativeURL);
eleventyConfig.addLiquidFilter("toUTCString", (date) => {
const utc = date.toUTCString();
return moment.utc(utc).format("MMMM Do YYYY");
});
eleventyConfig.addFilter("number_of_words", numberOfWords);
// eleventyConfig.addFilter("absolute_url", relativeUrl);
// eleventyConfig.addShortcode("where_exp", function (item, exp) {
// console.log(exp);
// return eval(exp);
// });
eleventyConfig.addFilter("where_exp", function (value) {
// where_exp function
return value.hidden != true;
});
eleventyConfig.addLayoutAlias(
"archive-taxonomy",
"layouts/archive-taxonomy.html"
);
eleventyConfig.addLayoutAlias("archive", "layouts/archive.html");
eleventyConfig.addLayoutAlias("categories", "layouts/categories.html");
eleventyConfig.addLayoutAlias("category", "layouts/category.html");
eleventyConfig.addLayoutAlias("collection", "layouts/collection.html");
eleventyConfig.addLayoutAlias("compress", "layouts/compress.html");
eleventyConfig.addLayoutAlias("default", "layouts/default.html");
eleventyConfig.addLayoutAlias("home", "layouts/home.html");
eleventyConfig.addLayoutAlias("posts", "layouts/posts.html");
eleventyConfig.addLayoutAlias("search", "layouts/search.html");
eleventyConfig.addLayoutAlias("single", "layouts/single.html");
eleventyConfig.addLayoutAlias("splash", "layouts/splash.html");
eleventyConfig.addLayoutAlias("tag", "layouts/tag.html");
eleventyConfig.addLayoutAlias("tags", "layouts/tags.html");
eleventyConfig.addLayoutAlias("gallery", "layouts/gallery");
// Passthrough copy
// don't use .gitignore (allows compiling sass to css into a monitored folder WITHOUT committing it to repo)
eleventyConfig.setUseGitIgnore(false);
//Copy CNAME
eleventyConfig.addPassthroughCopy("src/CNAME");
// Processing configuration
eleventyConfig.addPassthroughCopy("src/favicon.ico");
eleventyConfig.addPassthroughCopy("src/admin");
eleventyConfig.addPassthroughCopy("src/assets");
// eleventyConfig.addPassthroughCopy({ "src/_sass": "assets/css" });
eleventyConfig.addShortcode("post_url", (collection, slug) => {
try {
if (collection.length < 1) {
throw "Collection appears to be empty";
}
if (!Array.isArray(collection)) {
throw "Collection is an invalid type - it must be an array!";
}
if (typeof slug !== "string") {
throw "Slug is an invalid type - it must be a string!";
}
const found = collection.find((p) => p.fileSlug == slug);
if (found === 0 || found === undefined) {
throw `${slug} not found in specified collection.`;
} else {
return found.url;
}
} catch (e) {
console.error(
`RMCG:An error occured while searching for the url to ${slug}. Details:`,
e
);
}
});
// Set section
// Configure BrowserSync to serve the 404 page for missing files
eleventyConfig.setBrowserSyncConfig({
callbacks: {
ready: (_err, browserSync) => {
const content_404 = fs.readFileSync("dist/404.html");
browserSync.addMiddleware("*", (_req, res) => {
// render the 404 content instead of redirecting
res.write(content_404);
res.end();
});
},
},
});
eleventyConfig.setBrowserSyncConfig({
files: "./dist/assets/styles/**/*.css",
});
// Merge Data (https://www.11ty.dev/docs/data-deep-merge/)
eleventyConfig.setDataDeepMerge(true);
eleventyConfig.setFrontMatterParsingOptions({
excerpt: true,
});
eleventyConfig.setLibrary("md", markdownIt().use(markdownItAnchor));
eleventyConfig.setLiquidOptions({
// dynamicPartials: false,
// strictVariables: false,
// strictFilters: false,
jekyllInclude: true,
});
// Markdown Configuration
const md = require("markdown-it")({
html: true,
breaks: true,
linkify: true,
});
eleventyConfig.setLibrary(
"md",
md
.use(require("markdown-it-attrs"))
.use(require("markdown-it-container"), "", {
validate: () => true,
render: (tokens, idx) => {
if (tokens[idx].nesting === 1) {
const classList = tokens[idx].info.trim();
return `<div ${classList && `class="${classList}"`}>`;
} else {
return `</div>`;
}
},
})
.use(require("markdown-it-fontawesome"))
.use(require("markdown-it-footnote"))
);
// override markdown-it-footnote anchor template to use a different unicode character
md.renderer.rules.footnote_anchor = (tokens, idx, options, env, slf) => {
var id = slf.rules.footnote_anchor_name(tokens, idx, options, env, slf);
if (tokens[idx].meta.subId > 0) {
id += ":" + tokens[idx].meta.subId;
}
/* ⇑ with escape code to prevent display as Apple Emoji on iOS */
return (
' <a href="#fnref' +
id +
'" class="footnote-backref">\u21d1\uFE0E</a>'
);
};
//for upgrade sanity
//eleventyConfig.addPlugin(UpgradeHelper);
// eleventyConfig.addWatchTarget("./assets/css/");
// eleventyConfig.addTransform(
// "sass",
// async function sassTransform(content, outputPath) {
// if (outputPath?.endsWith(".css")) {
// const { css } = await sassRender({
// data: content,
// outputStyle: "compressed",
// precision: 3,
// });
// return css;
// }
// return content;
// }
// );
return {
templateFormats: ["html", "liquid", "md"],
pathPrefix: "/",
passthroughFileCopy: true,
dir: {
input: "src",
includes: "_includes",
data: "_data",
output: "dist",
// input: "./", // Equivalent to Jekyll's source property
// output: "./_site", // Equivalent to Jekyll's destination property
},
};
};
function numberOfWords(content) {
return content.split(/\s+/g).length;
}
function relativeURL(url, pathPrefix = undefined) {
if (pathPrefix !== undefined) {
// Fall back on original url filter if pathPrefix is set.
return urlFilter(url, pathPrefix);
}
if (pathPrefix == undefined && this.page == undefined) {
return urlFilter(url, "");
}
// Look up the url of the current rendering page, which is accessible via
// `this`.
//console.log(this); // rmcg
// rmcg - removed ctx from this.ctx.page.url
const currentDir = this.page.url;
const filteredUrl = urlFilter(url, "/");
// Make sure the index.html is expressed.
const indexUrl = indexify(filteredUrl);
// Check that the url doesn't specify a protocol.
const u = new URL(indexUrl, "make-relative://");
if (u.protocol !== "make-relative:") {
// It has a protocol, so just return the filtered URL output.
return filteredUrl;
}
// Return the relative path, or `index.html` if it's the same as the current
// page's directory.
const relativePath = `${
path.relative(currentDir, u.pathname) || "index.html"
}`;
return relativePath;
}

78
.gitignore vendored
View File

@ -9,3 +9,81 @@ _site
.jekyll-metadata .jekyll-metadata
**/*/premdesigns **/*/premdesigns
# ---> Eleventy
#_site
#package-lock.json
css/main.css.map
# dependency directories
node_modules/
# config
.env*
# caches
.cache
.sass-cache/
# eleventy gulp build
/dist
*.log
npm-debug.*
*.scssc
*.swp
Thumbs.db
dist
src/_includes/css
# my chosen output directory.
www
#### From FrontEnd Mentor gitignore. Just to avoid accidentally uploading design files
#
# Avoid accidental upload of the Sketch and Figma design files
#####################################################
## Please do not remove lines 5 and 6 - thanks! 🙂 ##
#####################################################
*.sketch
*.fig
# Avoid accidental XD upload if you convert the design file
###############################################
## Please do not remove line 12 - thanks! 🙂 ##
###############################################
*.xd
.prettierignore
# ---> macOS
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

11
notes.md Normal file
View File

@ -0,0 +1,11 @@
Notes from transitioning blog from Jekyll to 11ty, but still using Jekyll theme Minimal Mistakes.
Just to see if it reduces that cpu usage. Nope.
Removed from site.json
```
"post_template": "post",
"page_template": "page",
"draft_template": "draft"
```

4231
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,14 @@
"description": "Second generation of site using 11ty for building but using Jekyll theme Minimal Mistakes (with mods to make it work)", "description": "Second generation of site using 11ty for building but using Jekyll theme Minimal Mistakes (with mods to make it work)",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "watch:sass": "sass --watch src/_sass/**/*.scss dist/assets/styles/minimal-mistakes.css",
"build:sass": "sass --style=compressed src/_sass/minimal-mistakes.scss dist/assets/styles/minimal-mistakes.css",
"build:mysass": "sass --style=compressed src/assets/css/main.scss dist/assets/css/main.css",
"watch:eleventy": "eleventy --serve",
"build:eleventy": "eleventy",
"start": "npm-run-all build:sass --parallel watch:*",
"build": "npm-run-all build:*",
"debug": "DEBUG=Eleventy:* eleventy"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@ -17,5 +24,29 @@
"jekyll" "jekyll"
], ],
"author": "Robert McGovern et all", "author": "Robert McGovern et all",
"license": "MIT" "license": "MIT",
} "devDependencies": {
"@11ty/eleventy": "^2.0.0-beta.1"
},
"dependencies": {
"@11ty/eleventy-navigation": "^0.3.5",
"@11ty/eleventy-plugin-rss": "^1.2.0",
"@11ty/eleventy-plugin-syntaxhighlight": "^4.2.0",
"@11ty/eleventy-upgrade-help": "^2.0.5",
"autoprefixer": "^10.4.13",
"eleventy-plugin-description": "^0.1.5",
"eleventy-plugin-toc": "^1.1.5",
"eleventy-xml-plugin": "^0.1.0",
"fs-extra": "^11.1.0",
"markdown-it-anchor": "^8.6.6",
"markdown-it-attrs": "^4.1.6",
"markdown-it-container": "^3.0.0",
"markdown-it-fontawesome": "^0.3.0",
"markdown-it-footnote": "^3.0.3",
"markdownify": "^0.1.0",
"moment": "^2.29.4",
"npm-run-all": "^4.1.5",
"postcss": "^8.4.21",
"sass": "^1.57.1"
}
}

33
src/.eleventyignore Normal file
View File

@ -0,0 +1,33 @@
*.sublime-project
*.sublime-workspace
vendor
.asset-cache
.bundle
.jekyll-assets-cache
.sass-cache
assets/js/plugins
assets/js/_main.js
assets/js/vendor
Capfile
CHANGELOG
CHANGELOG.md
config
Gemfile
Gruntfile.js
gulpfile.js
LICENSE
log
node_modules
package.json
package-lock.json
Rakefile
README
README.md
tmp
test
docs
_site
#index.html
#/docs # ignore Minimal Mistakes /docs
#test # ignore Minimal Mistakes /test

View File

@ -360,8 +360,5 @@
"page_ext": "html", "page_ext": "html",
"post_layout": "single", "post_layout": "single",
"page_layout": "page", "page_layout": "page",
"titlecase": true, "titlecase": true
"post_template": "post",
"page_template": "page",
"draft_template": "draft"
} }

View File

@ -1,4 +1,4 @@
--- ---
layout: post layout: single
title: pretty-terminal-configs title: pretty-terminal-configs
--- ---

View File

@ -1,22 +0,0 @@
<article id="comment{{ include.index }}" class="js-comment comment" itemprop="comment" itemscope itemtype="https://schema.org/Comment">
<div class="comment__avatar-wrapper">
<img class="comment__avatar" src="https://www.gravatar.com/avatar/{{ include.email }}?d=mm&s=80" alt="{{ include.name }}">
</div>
<div class="comment__content-wrapper">
<h3 class="comment__author" itemprop="author" itemscope itemtype="https://schema.org/Person">
{% unless include.url == blank %}
<span itemprop="name"><a rel="external nofollow" itemprop="url" href="{{ include.url }}">{{ include.name }}</a></span>
{% else %}
<span itemprop="name">{{ include.name }}</span>
{% endunless %}
</h3>
<p class="comment__date">
{% if include.date %}
{% if include.index %}<a href="#comment{{ include.index }}" itemprop="url">{% endif %}
<time datetime="{{ include.date | date_to_xmlschema }}" itemprop="datePublished">{{ include.date | date: "%B %-d, %Y at %I:%M %p" }}</time>
{% if include.index %}</a>{% endif %}
{% endif %}
</p>
<div itemprop="text">{{ include.message | markdownify }}</div>
</div>
</article>

View File

@ -0,0 +1,42 @@
---
---
<!doctype html>
<!--
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
Free for personal and commercial use under the MIT license
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
-->
<html lang="{{ site.locale | slice: 0,2 | default: "en" }}" class="no-js">
<head>
{% include head.html %}
{% include head/custom.html %}
</head>
<body class="layout--{{ page.layout | default: layout.layout }}{% if page.classes or layout.classes %}{{ page.classes | default: layout.classes | join: ' ' | prepend: ' ' }}{% endif %}">
{% include_cached skip-links.html %}
{% include_cached browser-upgrade.html %}
{% include_cached masthead.html %}
<div class="initial-content">
{{ content }}
</div>
{% if site.search == true %}
<div class="search-content">
{% include_cached search/search_form.html %}
</div>
{% endif %}
<div id="footer" class="page__footer">
<footer>
{% include footer/custom.html %}
{% include_cached footer.html %}
</footer>
</div>
{% include scripts.html %}
</body>
</html>

View File

@ -0,0 +1,30 @@
---
layout: archive
---
{{ content }}
<ul class="taxonomy__index">
{% assign postsInYear = site.posts | where_exp: "item", "item.hidden != true" | group_by_exp: 'post', 'post.date | date: "%Y"' %}
{% for year in postsInYear %}
<li>
<a href="#{{ year.name }}">
<strong>{{ year.name }}</strong> <span class="taxonomy__count">{{ year.items | size }}</span>
</a>
</li>
{% endfor %}
</ul>
{% assign entries_layout = page.entries_layout | default: 'list' %}
{% assign postsByYear = site.posts | where_exp: "item", "item.hidden != true" | group_by_exp: 'post', 'post.date | date: "%Y"' %}
{% for year in postsByYear %}
<section id="{{ year.name }}" class="taxonomy__section">
<h2 class="archive__subtitle">{{ year.name }}</h2>
<div class="entries-{{ entries_layout }}">
{% for post in year.items %}
{% include archive-single.html type=entries_layout %}
{% endfor %}
</div>
<a href="#page-title" class="back-to-top">{{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} &uarr;</a>
</section>
{% endfor %}

View File

@ -36,7 +36,7 @@ layout: default
<aside class="sidebar__right {% if page.toc_sticky %}sticky{% endif %}"> <aside class="sidebar__right {% if page.toc_sticky %}sticky{% endif %}">
<nav class="toc"> <nav class="toc">
<header><h4 class="nav__title"><i class="fas fa-{{ page.toc_icon | default: 'file-alt' }}"></i> {{ page.toc_label | default: site.data.ui-text[site.locale].toc_label | default: "On this page" }}</h4></header> <header><h4 class="nav__title"><i class="fas fa-{{ page.toc_icon | default: 'file-alt' }}"></i> {{ page.toc_label | default: site.data.ui-text[site.locale].toc_label | default: "On this page" }}</h4></header>
{% include toc.html sanitize=true html=content h_min=1 h_max=6 class="toc__menu" skip_no_ids=true %} {% include toc.html sanitize=true html=content h_min=1 h_max=6 class="toc__menu" %}
</nav> </nav>
</aside> </aside>
{% endif %} {% endif %}

View File

@ -5,7 +5,7 @@ author_profile: true
read_time: true read_time: true
share: true share: true
related: true related: true
date: '2019-02-22 00:54:00 +0100' date: 2019-02-22 00:54:00 +01:00
tag: Site tag: Site
--- ---
@ -19,4 +19,4 @@ Why the changes? Well my dedicated server at [Online.net](https://www.online.net
I know that no-one really reads my blog, I post so infrequently and its not exactly riviting content, but getting the site up and running again, plus getting my wiki back up was bugging me :) I know that no-one really reads my blog, I post so infrequently and its not exactly riviting content, but getting the site up and running again, plus getting my wiki back up was bugging me :)
As an aside I lost a little data, basically my wiki which had a lot of server config stuff, because the default install of Dokuwiki puts the data off in */var/lib/dokuwiki/data* and when I was backing up the main dokuwiki directory I apparently didn't have the setting to follow symlinks on. As an aside I lost a little data, basically my wiki which had a lot of server config stuff, because the default install of Dokuwiki puts the data off in */var/lib/dokuwiki/data* and when I was backing up the main dokuwiki directory I apparently didn't have the setting to follow symlinks on.

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 1 … So the adventure (finally) begins title: Day 1 … So the adventure (finally) begins
date: 2019-05-28 21:32:45 +0159 date: 2019-05-28 21:32:45 +01:59
tags: [camino,caminodesantiago,jakobsweg,caminofrances] tags: [camino,caminodesantiago,jakobsweg,caminofrances]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 5 - Unexpectedly Easy title: Day 5 - Unexpectedly Easy
date: 2019-06-01 20:50:46 +0159 date: 2019-06-01 20:50:46 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 6 - Bad Day title: Day 6 - Bad Day
date: 2019-06-02 18:48:22 +0159 date: 2019-06-02 18:48:22 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 7 - Taking a break title: Day 7 - Taking a break
date: 2019-06-03 22:19:16 +0159 date: 2019-06-03 22:19:16 +01:59
category: category:
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 8 - Its my birthday title: Day 8 - Its my birthday
date: 2019-06-04 21:29:37 +0159 date: 2019-06-04 21:29:37 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 9 - TWTFSSMTW title: Day 9 - TWTFSSMTW
date: 2019-06-05 21:04:53 +0159 date: 2019-06-05 21:04:53 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 10 - A Fountain of Wine title: Day 10 - A Fountain of Wine
date: 2019-06-06 21:57:40 +0159 date: 2019-06-06 21:57:40 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 11 - Frustrated title: Day 11 - Frustrated
date: 2019-06-07 23:09:43 +0159 date: 2019-06-07 23:09:43 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 12 - An unexpected port title: Day 12 - An unexpected port
date: 2019-06-08 22:43:16 +0159 date: 2019-06-08 22:43:16 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 13 - A second wind title: Day 13 - A second wind
date: 2019-06-09 22:38:02 +0159 date: 2019-06-09 22:38:02 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 15 - cant think of a subtitle yet title: Day 15 - cant think of a subtitle yet
date: 2019-06-11 23:05:50 +0159 date: 2019-06-11 23:05:50 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 16 - Off to the races title: Day 16 - Off to the races
date: 2019-06-12 22:20:00 +0159 date: 2019-06-12 22:20:00 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 17 title: Day 17
date: 2019-06-13 23:00:00 +0159 date: 2019-06-13 23:00:00 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 18 - drawn to stop title: Day 18 - drawn to stop
date: 2019-06-14 22:56:21 +0159 date: 2019-06-14 22:56:21 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 19 title: Day 19
date: 2019-06-15 18:06:55 +0159 date: 2019-06-15 18:06:55 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -5,7 +5,7 @@ read_time: true
share: true share: true
related: true related: true
title: Day 21 title: Day 21
date: 2019-06-17 22:38:55 +0159 date: 2019-06-17 22:38:55 +01:59
tags: [camino,caminodesantiago,jakobsweg] tags: [camino,caminodesantiago,jakobsweg]
--- ---

View File

@ -6,7 +6,7 @@ tags:
- personal - personal
- site - site
category: personal category: personal
date: 2020-04-17 02:18 +0100 date: 2020-04-17 02:18:00 +01:00
--- ---
Long time, no write. Long time, no write.
@ -74,4 +74,4 @@ I made a start at the beginning of the year using a combination of Duolingo and
# Last but not least ... # Last but not least ...
As a minor aside, the site has had a minor bit of sprucing. Same theme, different colors. I've also put the categories back but I don't really like them. I don't really see them as any different that tags, particularly as I prefer the url to just be **domain/date/title** rather than **domain/category/date/title**, so there will likely be further tweaks to be made. Also I want to look at what collections are and how to post photos on here (from the Camino). As a minor aside, the site has had a minor bit of sprucing. Same theme, different colors. I've also put the categories back but I don't really like them. I don't really see them as any different that tags, particularly as I prefer the url to just be **domain/date/title** rather than **domain/category/date/title**, so there will likely be further tweaks to be made. Also I want to look at what collections are and how to post photos on here (from the Camino).

View File

@ -6,7 +6,7 @@ tags:
- swift - swift
- coding-challenges - coding-challenges
category: coding-challenges category: coding-challenges
date: 2020-04-20 15:28 +0100 date: 2020-04-20 15:28:00 +01:00
--- ---
Second one within 13 hours, good lord, that would never do. Second one within 13 hours, good lord, that would never do.
@ -43,4 +43,4 @@ func challenge2(input: String) -> Bool {
} }
``` ```
(As an aside, to my mind index, reverseIndex and arrayOfCharacters should be highlighted the same color the whole way through the code, not in two different colors. Not sure what I can do about that.) (As an aside, to my mind index, reverseIndex and arrayOfCharacters should be highlighted the same color the whole way through the code, not in two different colors. Not sure what I can do about that.)

View File

@ -6,7 +6,7 @@ tags:
- swift - swift
- coding-challenges - coding-challenges
category: coding-challenges category: coding-challenges
date: 2020-04-20 13:36 +0100 date: 2020-04-20 13:36:00 +01:00
--- ---
As an effort to improve and challenge myself I got a copy of Paul Hudson's [Swift Coding Challenges](https://www.hackingwithswift.com/store/swift-coding-challenges) book and I'm going to work through it and post my thoughts on it and about how I did. I (probably) won't post the answers because that might spoil it for some. As an effort to improve and challenge myself I got a copy of Paul Hudson's [Swift Coding Challenges](https://www.hackingwithswift.com/store/swift-coding-challenges) book and I'm going to work through it and post my thoughts on it and about how I did. I (probably) won't post the answers because that might spoil it for some.
@ -14,4 +14,4 @@ For Challenge 1 I basically had the first answer, however I ... um ... made it m
I was over thinking the challenge and for some reason thinking about actually counting the occurrences of letters. I was over thinking the challenge and for some reason thinking about actually counting the occurrences of letters.
*facepalm* *facepalm*

View File

@ -21,7 +21,7 @@ gallery:
image_path: https://roadmap.sh/roadmaps/devops.png image_path: https://roadmap.sh/roadmaps/devops.png
alt: DevOps Roadmap alt: DevOps Roadmap
title: DevOps Roadmap title: DevOps Roadmap
date: 2020-04-21 00:44 +0100 date: 2020-04-21 00:44:00 +01:00
--- ---
I mentioned in the [goals post]({% post_url 2020-04-17-goals %}), one of the things I am aiming to do is to start learning web development. I mentioned in the [goals post]({% post_url 2020-04-17-goals %}), one of the things I am aiming to do is to start learning web development.

View File

@ -9,7 +9,7 @@ tags:
- caminodesantiago - caminodesantiago
category: camino category: camino
date: 2020-05-27 01:45 +0100 date: 2020-05-27 01:45:00 +01:00
--- ---
A year ago tomorrow I began the most gruelling, yet immensely satisfying, journey of my life. I set off from my home in Buchholz in der Nordheide Germany, to fly to France to walk the Camino de Santiago. A year ago tomorrow I began the most gruelling, yet immensely satisfying, journey of my life. I set off from my home in Buchholz in der Nordheide Germany, to fly to France to walk the Camino de Santiago.
@ -59,4 +59,4 @@ Over the next little while I am going to post photos from my journey, more than
I'll try and add context to them, and a bit about where they where taken. I'll try and add context to them, and a bit about where they where taken.
Anyway, enough for now. I intend, body willing, to locally repeat the Camino distances over the next 2 months. Anyway, enough for now. I intend, body willing, to locally repeat the Camino distances over the next 2 months.

View File

@ -2,6 +2,7 @@
title: What happens when I finish a Frontend Mentor Challenge (or how I build and deploy an 11ty site) title: What happens when I finish a Frontend Mentor Challenge (or how I build and deploy an 11ty site)
tags: [webdev, site, frontendmentor] tags: [webdev, site, frontendmentor]
category: [programming, webdev] category: [programming, webdev]
date: 2022-10-15
--- ---
I've been doing challenges from [Frontend Mentor](https://frontendmentor.io) as a means to practice frontend web development. Specifically working with plain HTML, CSS and JavaScript. I've been doing challenges from [Frontend Mentor](https://frontendmentor.io) as a means to practice frontend web development. Specifically working with plain HTML, CSS and JavaScript.

View File

@ -2,6 +2,7 @@
title: Moving site from Jekyll to ??? title: Moving site from Jekyll to ???
tags: [webdev, site, personal] tags: [webdev, site, personal]
category: [site, webdev, personal] category: [site, webdev, personal]
date: 2023-01-21
--- ---
Goal is that at some point in the not to distant future I will move the blog from [Jekyll](https://jekyllrb.com) & the [Minimal Mistakes Theme](https://mmistakes.github.io/minimal-mistakes/) to something built with [11ty](https://www.11ty.dev/). Goal is that at some point in the not to distant future I will move the blog from [Jekyll](https://jekyllrb.com) & the [Minimal Mistakes Theme](https://mmistakes.github.io/minimal-mistakes/) to something built with [11ty](https://www.11ty.dev/).
@ -12,4 +13,4 @@ I had considered using [Hugo](https://gohugo.io), but that would again be a new
Whatever I end up doing, I do want to have it so that it is a mixture of "proper" blog posts along with short status style updates (like a Microblog). Then people who don't care for those can filter on just the posts, and likewise have 2-3 rss feeds; one for status updates, one for just blog posts, and finally one the has both. Whatever I end up doing, I do want to have it so that it is a mixture of "proper" blog posts along with short status style updates (like a Microblog). Then people who don't care for those can filter on just the posts, and likewise have 2-3 rss feeds; one for status updates, one for just blog posts, and finally one the has both.
Regardless I am going to try and blog more this year. I've some posts I want to do about my setup, and the post-receive hooks I use in [Gitea](https://gitea.io/en-us/)/[Forgejo](https://forgejo.org). As well as thoughts on [Frontend Mentor](https://www.frontendmentor.io/). Regardless I am going to try and blog more this year. I've some posts I want to do about my setup, and the post-receive hooks I use in [Gitea](https://gitea.io/en-us/)/[Forgejo](https://forgejo.org). As well as thoughts on [Frontend Mentor](https://www.frontendmentor.io/).