Compare commits
No commits in common. "abe389fa77f5cb48b60aecc5e4fcf420cf0de899" and "12f273f54e8ae06e6c20392a3a7f09d4d96fc45e" have entirely different histories.
abe389fa77
...
12f273f54e
504
.eleventy.js
|
@ -1,504 +0,0 @@
|
||||||
const siteURL = "https://tarasis.net";
|
|
||||||
|
|
||||||
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");
|
|
||||||
const yaml = require("js-yaml");
|
|
||||||
const syntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight");
|
|
||||||
|
|
||||||
|
|
||||||
const inspect = require("node:util").inspect;
|
|
||||||
|
|
||||||
// relativeURL
|
|
||||||
const path = require("path");
|
|
||||||
const urlFilter = require("@11ty/eleventy/src/Filters/Url");
|
|
||||||
const indexify = (url) => url.replace(/(\/[^.]*)$/, "$1index.html");
|
|
||||||
|
|
||||||
module.exports = function (eleventyConfig) {
|
|
||||||
let pathPrefix = "/";
|
|
||||||
|
|
||||||
eleventyConfig.addDataExtension("yaml", contents => yaml.load(contents));
|
|
||||||
eleventyConfig.addDataExtension("yml", contents => yaml.load(contents));
|
|
||||||
|
|
||||||
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(syntaxHighlight, {
|
|
||||||
|
|
||||||
alwaysWrapLineHighlights: true,
|
|
||||||
// Change which Eleventy template formats use syntax highlighters
|
|
||||||
// templateFormats: ["*"], // default
|
|
||||||
|
|
||||||
// Use only a subset of template types (11ty.js added in v4.0.0)
|
|
||||||
// templateFormats: ["liquid", "njk", "md", "11ty.js"],
|
|
||||||
|
|
||||||
// init callback lets you customize Prism
|
|
||||||
// init: function({ Prism }) {
|
|
||||||
// Prism.languages.myCustomLanguage = /* */;
|
|
||||||
// },
|
|
||||||
|
|
||||||
// Added in 3.1.1, add HTML attributes to the <pre> or <code> tags
|
|
||||||
preAttributes: {
|
|
||||||
tabindex: 0,
|
|
||||||
|
|
||||||
// Added in 4.1.0 you can use callback functions too
|
|
||||||
"data-language": function({ language, content, options }) {
|
|
||||||
return language;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
codeAttributes: {},
|
|
||||||
});
|
|
||||||
|
|
||||||
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("drafts", (collection) =>
|
|
||||||
collection
|
|
||||||
.getFilteredByGlob("./src/_drafts/**/*")
|
|
||||||
.sort((a, b) => a.data.weight - b.data.weight)
|
|
||||||
) ;
|
|
||||||
|
|
||||||
|
|
||||||
eleventyConfig.addCollection("tags", (collection) => {
|
|
||||||
let tags = new Set();
|
|
||||||
|
|
||||||
collection.getAll().forEach((item) => {
|
|
||||||
if ("tags" in item.data) {
|
|
||||||
if (item.data.tags != undefined) {
|
|
||||||
for (const tag of item.data.tags) {
|
|
||||||
tags.add(tag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return [...tags];
|
|
||||||
});
|
|
||||||
|
|
||||||
eleventyConfig.addCollection("categories", (collection) => {
|
|
||||||
let categories = new Set();
|
|
||||||
|
|
||||||
collection.getAll().forEach((item) => {
|
|
||||||
if ("category" in item.data) {
|
|
||||||
if (item.data.category != undefined) {
|
|
||||||
for (const category of item.data.category) {
|
|
||||||
categories.add(category);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return [...categories];
|
|
||||||
});
|
|
||||||
|
|
||||||
// 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.addLiquidFilter("toUTCString", (date) => {
|
|
||||||
const utc = date.toUTCString();
|
|
||||||
return moment.utc(utc).format("MMMM Do YYYY");
|
|
||||||
});
|
|
||||||
|
|
||||||
eleventyConfig.addFilter("number_of_words", numberOfWords);
|
|
||||||
|
|
||||||
// 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.addFilter("inspect", function (obj = {}) {
|
|
||||||
return inspect(obj, {sorted: true});
|
|
||||||
});
|
|
||||||
|
|
||||||
eleventyConfig.addFilter('group_by', groupBy)
|
|
||||||
|
|
||||||
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");
|
|
||||||
eleventyConfig.addLayoutAlias("drafts", "layouts/drafts");
|
|
||||||
|
|
||||||
// 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;
|
|
||||||
// }
|
|
||||||
// );
|
|
||||||
|
|
||||||
eleventyConfig.addFilter("relative_url", relativeURLALT);
|
|
||||||
eleventyConfig.addFilter("absolute_url", absoluteUrl);
|
|
||||||
|
|
||||||
return {
|
|
||||||
templateFormats: ["html", "liquid", "md", "njk"],
|
|
||||||
|
|
||||||
pathPrefix,
|
|
||||||
|
|
||||||
environment: "production",
|
|
||||||
|
|
||||||
// absolute_url: "https://tarasis.net/",
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Just `{{ '/something' | url }}` will return the relative path to
|
|
||||||
* `/something/index.html`.
|
|
||||||
*
|
|
||||||
* `{{ '/something.with.dots' | url }}` will return the relative path to
|
|
||||||
* `/something.with.dots`.
|
|
||||||
*
|
|
||||||
* @param {string} url the URL to transform
|
|
||||||
* @param {string} [pathPrefix] optional path prefix to force an absolute URL
|
|
||||||
* @returns {string} resulting URL
|
|
||||||
*/
|
|
||||||
function relativeURLALT(url, pathPrefix = undefined) {
|
|
||||||
pathPrefix = "/";
|
|
||||||
// console.log(url);
|
|
||||||
// console.log(pathPrefix);
|
|
||||||
// console.log(this.page);
|
|
||||||
if (pathPrefix !== undefined) {
|
|
||||||
// Fall back on original url filter if pathPrefix is set.
|
|
||||||
return urlFilter(url, pathPrefix);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pathPrefix == undefined && this.page == undefined) {
|
|
||||||
// console.log("dropping out");
|
|
||||||
return urlFilter(url, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Look up the url of the current rendering page, which is accessible via
|
|
||||||
// `this`.
|
|
||||||
console.log(this);
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
function absoluteUrl(url) {
|
|
||||||
if (url !== undefined) {
|
|
||||||
return siteURL + url
|
|
||||||
} else {
|
|
||||||
return siteURL
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function groupBy(array, key) {
|
|
||||||
const get = entry => key.split('.').reduce((acc, key) => acc[key], entry)
|
|
||||||
|
|
||||||
const map = array.reduce((acc, entry) => {
|
|
||||||
const value = get(entry)
|
|
||||||
|
|
||||||
if (typeof acc[value] === 'undefined') {
|
|
||||||
acc[value] = []
|
|
||||||
}
|
|
||||||
|
|
||||||
acc[value].push(entry)
|
|
||||||
return acc
|
|
||||||
}, {})
|
|
||||||
|
|
||||||
return Object.keys(map).reduce(
|
|
||||||
(acc, key) => [...acc, { name: key, items: map[key] }],
|
|
||||||
[]
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
|
@ -9,81 +9,3 @@ _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
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
# main links
|
# main links
|
||||||
main:
|
main:
|
||||||
# - title: "Posts"
|
# - title: ""
|
||||||
# url: /year-archive/
|
# url: /docs/quick-start-guide/
|
||||||
|
- title: "Posts"
|
||||||
|
url: /year-archive/
|
||||||
- title: "Tags"
|
- title: "Tags"
|
||||||
url: /tags/
|
url: /tags/
|
||||||
- title: "Categories"
|
- title: "Categories"
|
|
@ -6,7 +6,6 @@ share: true
|
||||||
related: true
|
related: true
|
||||||
title: 'An End of Sorts'
|
title: 'An End of Sorts'
|
||||||
tag: [Life, Work]
|
tag: [Life, Work]
|
||||||
eleventyExcludeFromCollections: true
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Lets be clear up front: ITS MY **FAULT**.
|
Lets be clear up front: ITS MY **FAULT**.
|
|
@ -0,0 +1,58 @@
|
||||||
|
---
|
||||||
|
title: A short look back on my Camino de Santiago journey
|
||||||
|
|
||||||
|
tags:
|
||||||
|
- life
|
||||||
|
- camino
|
||||||
|
- caminodesantiago
|
||||||
|
category: camino
|
||||||
|
---
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Ostensibly the point of the walk was to find myself, to seek out something that had been missing in me for a long time. But it was also about trying to make a decision about what I was doing and my relationship with my wife.
|
||||||
|
|
||||||
|
I kinda failed at the latter point. I found while walking that often my brain zoned out and I wasn't thinking about what I should have been. I did however find something that (mostly) made me feel good.
|
||||||
|
|
||||||
|
My original intention was to take time along the way to stop for an extra day here and there to see places that I was walking through, but it never really happened. I kind of regret that, although the point of the walk was not to be a tourist.
|
||||||
|
|
||||||
|
I had fully intended to go back on the Camino this year (2020), but the unthinkable happened and the world entered a state of lock down that for now has no end in sight. The intention was to walk (mostly) different routes this time, because there are a heck of a lot of them.
|
||||||
|
|
||||||
|
I didn't want to end when I did, I wasn't ready to back and quite honestly, I'm still not ready to.
|
||||||
|
|
||||||
|
## Some Stats, Dates, and Figures
|
||||||
|
|
||||||
|
- I walked 2 camino's. The Camino Frances & Camino Portuguese (Porto; More Costal Route + Espiritual Variente)
|
||||||
|
- I flew from Hamburg to France on the 28th of May 2019
|
||||||
|
- I started the Camino de Santiago, leaving Saint-Jean-Pied-de-Port on the 31st of May 2019
|
||||||
|
- I finished the Camino on the 8th July 2019, when I arrived in Santiago de Compostela
|
||||||
|
- I left the next day for Finisterre
|
||||||
|
- I arrived in Finisterre on the 11th of July 2019
|
||||||
|
- I start the Camino Portuguese on the 18th July 2019
|
||||||
|
- I arrived in Santiago de Compostela on the 31st of July 2019
|
||||||
|
- I flew back to Hamburg from Porto on the 6th of August 2019 (walking 14km to the airport from Porto)
|
||||||
|
|
||||||
|
- I took 3 rest days (3rd, 8th and 23rd of June). The first 2 where not because I actually needed to rest, but because I had the wrong shoes and they where messing my feet up. (which gave me a couple of nasty blisters)
|
||||||
|
- I bought a new pair of shoes on the evening of the 7th of June, which I then used the rest of the way.
|
||||||
|
- I sent roughly 2kg of stuff home on the 8th of June, stuff I thought I needed but didn't
|
||||||
|
|
||||||
|
Originally I was track my steps / distances using a Fitbit HR and my iPhone 6S. However because of issues charging the HR (connector area broke), I gave up using it on July 6th.
|
||||||
|
|
||||||
|
In total I walked at least 1643km. This was a combination of the daily Camino walks, plus any extra after I arrived at my destination.
|
||||||
|
|
||||||
|
| Section | Stage Distance Walked | Total walked that stage |
|
||||||
|
| ------- | -------- | ------- |
|
||||||
|
| Camino Frances | 793.04km | 972.3km |
|
||||||
|
| Santiago to Finisterre | 96.16km | 105.9km |
|
||||||
|
| Camino Portuguese | 299.14km | 402.9km |
|
||||||
|
| **Totals:** | **1,188.34km** | **1,481.1km** |
|
||||||
|
|
||||||
|
The remaining 160km was days walking around Finisterre, Muxia, Santiago and Porto.
|
||||||
|
|
||||||
|
## Photos
|
||||||
|
|
||||||
|
Over the next little while I am going to post photos from my journey, more than I did at the time on Instagram (which had a limit of 10 per post).
|
||||||
|
|
||||||
|
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.
|
|
@ -2,8 +2,6 @@
|
||||||
title: Cash Register Challenge on freeCodeCamp
|
title: Cash Register Challenge on freeCodeCamp
|
||||||
tags: [webdev, javascript, freecodecamp]
|
tags: [webdev, javascript, freecodecamp]
|
||||||
category: programming
|
category: programming
|
||||||
eleventyExcludeFromCollections: true
|
|
||||||
layout: single
|
|
||||||
---
|
---
|
||||||
|
|
||||||
I've been (slowly) working through the JavaScript module on [freeCodeCamp](https://freecodecamp.org) for a while now, and have recently been doing the certificate challenges. The last of which is the "Cash Register" challenge where you are to write a function that takes a price, a payment amount and an array that contains the cash in the drawer.
|
I've been (slowly) working through the JavaScript module on [freeCodeCamp](https://freecodecamp.org) for a while now, and have recently been doing the certificate challenges. The last of which is the "Cash Register" challenge where you are to write a function that takes a price, a payment amount and an array that contains the cash in the drawer.
|
|
@ -2,7 +2,6 @@
|
||||||
title: CSS Properties, or I have a problem.
|
title: CSS Properties, or I have a problem.
|
||||||
tags: [webdev, css]
|
tags: [webdev, css]
|
||||||
category: programming
|
category: programming
|
||||||
eleventyExcludeFromCollections: true
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
title: What happens when I finish a Frontend Mentor Challenge
|
title: What happens when I finish a Frontend Mentor Challenge
|
||||||
tags: [webdev, site, frontendmentor]
|
tags: [webdev, site, frontendmentor]
|
||||||
category: [programming, webdev]
|
category: [programming, webdev]
|
||||||
eleventyExcludeFromCollections: true
|
|
||||||
---
|
---
|
||||||
|
|
||||||
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.
|
|
@ -2,8 +2,6 @@
|
||||||
title: Filtering
|
title: Filtering
|
||||||
tags: [webdev, javascript]
|
tags: [webdev, javascript]
|
||||||
category: programming
|
category: programming
|
||||||
eleventyExcludeFromCollections: true
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
I was watching the video [How To Create A Search Bar In JavaScript](https://www.youtube.com/watch?v=TlP5WIxVirU) by [Web Dev Simplified](https://www.youtube.com/channel/UCFbNIlppjAuEX4znoulh0Cw) to learn how to do a search bar in JavaScript.
|
I was watching the video [How To Create A Search Bar In JavaScript](https://www.youtube.com/watch?v=TlP5WIxVirU) by [Web Dev Simplified](https://www.youtube.com/channel/UCFbNIlppjAuEX4znoulh0Cw) to learn how to do a search bar in JavaScript.
|
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: pretty-terminal-configs
|
||||||
|
---
|
|
@ -6,7 +6,6 @@ share: true
|
||||||
related: true
|
related: true
|
||||||
title: 'Superheroes'
|
title: 'Superheroes'
|
||||||
tag: [Movies, TV, Comics]
|
tag: [Movies, TV, Comics]
|
||||||
eleventyExcludeFromCollections: true
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Test
|
Test
|
|
@ -6,7 +6,6 @@ tags:
|
||||||
- swift
|
- swift
|
||||||
- coding-challenges
|
- coding-challenges
|
||||||
category: coding-challenges
|
category: coding-challenges
|
||||||
eleventyExcludeFromCollections: true
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Challenge 3
|
# Challenge 3
|
|
@ -7,7 +7,6 @@ related: true
|
||||||
title: SwiftUI
|
title: SwiftUI
|
||||||
tags: [swiftui,programming,ios, swift]
|
tags: [swiftui,programming,ios, swift]
|
||||||
category: Programming
|
category: Programming
|
||||||
eleventyExcludeFromCollections: true
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Its been a long while since I sat and did programming, but between a life situation and the new technology from Apple for creating user interfaces (SwiftUI), I've been inspired to pickup again an idea I've been kicking around for 10 years.
|
Its been a long while since I sat and did programming, but between a life situation and the new technology from Apple for creating user interfaces (SwiftUI), I've been inspired to pickup again an idea I've been kicking around for 10 years.
|
|
@ -4,8 +4,6 @@ title: terminal-colors
|
||||||
tags:
|
tags:
|
||||||
- programming
|
- programming
|
||||||
category: programming
|
category: programming
|
||||||
eleventyExcludeFromCollections: true
|
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
title: Writeup
|
title: Writeup
|
||||||
tags: [camino,caminodesantiago,jakobsweg,life]
|
tags: [camino,caminodesantiago,jakobsweg,life]
|
||||||
category: personal
|
category: personal
|
||||||
eleventyExcludeFromCollections: true
|
|
||||||
---
|
---
|
||||||
Its been a long while since I posted. I fell behind on my Camino posts, although I continued to take notes for a while, before I ended up giving up on those too.
|
Its been a long while since I posted. I fell behind on my Camino posts, although I continued to take notes for a while, before I ended up giving up on those too.
|
||||||
|
|
|
@ -35,18 +35,18 @@ layout: default
|
||||||
{% if page.toc %}
|
{% if page.toc %}
|
||||||
<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: 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" %}
|
{% include toc.html sanitize=true html=content h_min=1 h_max=6 class="toc__menu" %}
|
||||||
</nav>
|
</nav>
|
||||||
</aside>
|
</aside>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ content }}
|
{{ content }}
|
||||||
{% if page.link %}<div><a href="{{ page.link }}" class="btn btn--primary">{{ ui-text[site.locale].ext_link_label | default: "Direct Link" }}</a></div>{% endif %}
|
{% if page.link %}<div><a href="{{ page.link }}" class="btn btn--primary">{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}</a></div>{% endif %}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<footer class="page__meta">
|
<footer class="page__meta">
|
||||||
{% if ui-text[site.locale].meta_label %}
|
{% if site.data.ui-text[site.locale].meta_label %}
|
||||||
<h4 class="page__meta-title">{{ ui-text[site.locale].meta_label }}</h4>
|
<h4 class="page__meta-title">{{ site.data.ui-text[site.locale].meta_label }}</h4>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% include page__taxonomy.html %}
|
{% include page__taxonomy.html %}
|
||||||
{% include page__date.html %}
|
{% include page__date.html %}
|
||||||
|
@ -65,7 +65,7 @@ layout: default
|
||||||
{% comment %}<!-- only show related on a post page when `related: true` -->{% endcomment %}
|
{% comment %}<!-- only show related on a post page when `related: true` -->{% endcomment %}
|
||||||
{% if page.id and page.related and site.related_posts.size > 0 %}
|
{% if page.id and page.related and site.related_posts.size > 0 %}
|
||||||
<div class="page__related">
|
<div class="page__related">
|
||||||
<h4 class="page__related-title">{{ ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
|
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
|
||||||
<div class="grid__wrapper">
|
<div class="grid__wrapper">
|
||||||
{% for post in site.related_posts limit:4 %}
|
{% for post in site.related_posts limit:4 %}
|
||||||
{% include archive-single.html type="grid" %}
|
{% include archive-single.html type="grid" %}
|
||||||
|
@ -75,7 +75,7 @@ layout: default
|
||||||
{% comment %}<!-- otherwise show recent posts if no related when `related: true` -->{% endcomment %}
|
{% comment %}<!-- otherwise show recent posts if no related when `related: true` -->{% endcomment %}
|
||||||
{% elsif page.id and page.related %}
|
{% elsif page.id and page.related %}
|
||||||
<div class="page__related">
|
<div class="page__related">
|
||||||
<h4 class="page__related-title">{{ ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
|
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
|
||||||
<div class="grid__wrapper">
|
<div class="grid__wrapper">
|
||||||
{% for post in site.posts limit:4 %}
|
{% for post in site.posts limit:4 %}
|
||||||
{% if post.id == page.id %}
|
{% if post.id == page.id %}
|
|
@ -2,7 +2,6 @@
|
||||||
title: "Page Not Found"
|
title: "Page Not Found"
|
||||||
excerpt: "Page not found. Your pixels are in another canvas."
|
excerpt: "Page not found. Your pixels are in another canvas."
|
||||||
sitemap: false
|
sitemap: false
|
||||||
layout: default
|
|
||||||
permalink: /404.html
|
permalink: /404.html
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:00
|
date: '2019-02-22 00:54:00 +0100'
|
||||||
tag: Site
|
tag: Site
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-05-28 21:32:45 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg,caminofrances]
|
tags: [camino,caminodesantiago,jakobsweg,caminofrances]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-01 20:50:46 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-02 18:48:22 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-03 22:19:16 +0159
|
||||||
category:
|
category:
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
|
@ -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 +01:59
|
date: 2019-06-04 21:29:37 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-05 21:04:53 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-06 21:57:40 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-07 23:09:43 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-08 22:43:16 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-09 22:38:02 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -5,7 +5,7 @@ read_time: true
|
||||||
share: true
|
share: true
|
||||||
related: true
|
related: true
|
||||||
title: Day 15 - can’t think of a subtitle yet
|
title: Day 15 - can’t think of a subtitle yet
|
||||||
date: 2019-06-11 23:05:50 +01:59
|
date: 2019-06-11 23:05:50 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-12 22:20:00 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-13 23:00:00 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-14 22:56:21 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-15 18:06:55 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -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 +01:59
|
date: 2019-06-17 22:38:55 +0159
|
||||||
tags: [camino,caminodesantiago,jakobsweg]
|
tags: [camino,caminodesantiago,jakobsweg]
|
||||||
---
|
---
|
||||||
|
|
|
@ -6,7 +6,7 @@ tags:
|
||||||
- personal
|
- personal
|
||||||
- site
|
- site
|
||||||
category: personal
|
category: personal
|
||||||
date: 2020-04-17 02:18:00 +01:00
|
date: 2020-04-17 02:18 +0100
|
||||||
---
|
---
|
||||||
Long time, no write.
|
Long time, no write.
|
||||||
|
|
|
@ -6,7 +6,7 @@ tags:
|
||||||
- swift
|
- swift
|
||||||
- coding-challenges
|
- coding-challenges
|
||||||
category: coding-challenges
|
category: coding-challenges
|
||||||
date: 2020-04-20 15:28:00 +01:00
|
date: 2020-04-20 15:28 +0100
|
||||||
---
|
---
|
||||||
Second one within 13 hours, good lord, that would never do.
|
Second one within 13 hours, good lord, that would never do.
|
||||||
|
|
||||||
|
@ -42,4 +42,5 @@ func challenge2(input: String) -> Bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
(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.)
|
|
@ -6,7 +6,7 @@ tags:
|
||||||
- swift
|
- swift
|
||||||
- coding-challenges
|
- coding-challenges
|
||||||
category: coding-challenges
|
category: coding-challenges
|
||||||
date: 2020-04-20 13:36:00 +01:00
|
date: 2020-04-20 13:36 +0100
|
||||||
---
|
---
|
||||||
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.
|
||||||
|
|
|
@ -21,9 +21,9 @@ 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:00 +01:00
|
date: 2020-04-21 00:44 +0100
|
||||||
---
|
---
|
||||||
I mentioned in the [goals post]({% post_url collections.posts, "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.
|
||||||
|
|
||||||
I was well aware that what falls under the banner of web development is massive, I just hadn't realised quite how large it was.
|
I was well aware that what falls under the banner of web development is massive, I just hadn't realised quite how large it was.
|
||||||
|
|
|
@ -9,7 +9,7 @@ tags:
|
||||||
- caminodesantiago
|
- caminodesantiago
|
||||||
category: camino
|
category: camino
|
||||||
|
|
||||||
date: 2020-05-27 01:45:00 +01:00
|
date: 2020-05-27 01:45 +0100
|
||||||
---
|
---
|
||||||
|
|
||||||
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.
|
|
@ -2,7 +2,6 @@
|
||||||
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.
|
|
@ -2,9 +2,6 @@
|
||||||
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
|
|
||||||
last_modified: 2023-01-22 13:11
|
|
||||||
excerpt: 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/).
|
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/).
|
|
@ -1,6 +1,5 @@
|
||||||
---
|
---
|
||||||
# made a liquid file so theme is correctly compiled into import below
|
# Only the main Sass file needs front matter (the dashes are enough)
|
||||||
permalink: /assets/css/tocompile.scss
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@charset "utf-8";
|
@charset "utf-8";
|
||||||
|
@ -27,7 +26,6 @@ $warning-color: #d67f05 !default;
|
||||||
$danger-color: #ff0000 !default;
|
$danger-color: #ff0000 !default;
|
||||||
$info-color: #3b9cba !default;
|
$info-color: #3b9cba !default;
|
||||||
|
|
||||||
// section not needed under 11ty
|
|
||||||
/* neon syntax highlighting (base16) */
|
/* neon syntax highlighting (base16) */
|
||||||
$base00: #1a191a;
|
$base00: #1a191a;
|
||||||
$base01: #e0e0e0;
|
$base01: #e0e0e0;
|
||||||
|
@ -57,7 +55,6 @@ $base0f: #926e5c;
|
||||||
// base16-classic-dark
|
// base16-classic-dark
|
||||||
// base16-brewer
|
// base16-brewer
|
||||||
|
|
||||||
// section not needed under 11ty
|
|
||||||
// Hacking the syntax highlighting
|
// Hacking the syntax highlighting
|
||||||
.nb {
|
.nb {
|
||||||
/* Name.Builtin */
|
/* Name.Builtin */
|
||||||
|
@ -94,7 +91,7 @@ $base0f: #926e5c;
|
||||||
|
|
||||||
// Scroll to top
|
// Scroll to top
|
||||||
#scroll-to-top {
|
#scroll-to-top {
|
||||||
background: rgb(215, 210, 210);
|
background: black;
|
||||||
display:block;
|
display:block;
|
||||||
position:fixed;
|
position:fixed;
|
||||||
font-size:25px;
|
font-size:25px;
|
||||||
|
@ -126,7 +123,7 @@ $base0f: #926e5c;
|
||||||
}
|
}
|
||||||
#scroll-to-top span {
|
#scroll-to-top span {
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
color:#dee3ee
|
color:#1a1d24
|
||||||
}
|
}
|
||||||
#scroll-to-top span:hover .up-arrow,
|
#scroll-to-top span:hover .up-arrow,
|
||||||
#scroll-to-top span:active .up-arrow {
|
#scroll-to-top span:active .up-arrow {
|
||||||
|
@ -141,12 +138,8 @@ pre {
|
||||||
color: #1bb6be !important
|
color: #1bb6be !important
|
||||||
}
|
}
|
||||||
|
|
||||||
$github-color: #fff !default;
|
|
||||||
|
|
||||||
//@import "progress.css"; // for progress bar
|
//@import "progress.css"; // for progress bar
|
||||||
//@import "minimal-mistakes/skins/{{ site.minimal_mistakes_skin | default: 'default' }}"; // skin
|
@import "minimal-mistakes/skins/{{ site.minimal_mistakes_skin | default: 'default' }}"; // skin
|
||||||
@import "minimal-mistakes/skins/_{{ site.minimal_mistakes_skin | default: 'default' }}.scss"; // skin
|
|
||||||
@import "minimal-mistakes"; // main partials
|
@import "minimal-mistakes"; // main partials
|
||||||
//@import "assets/css/override-notices.scss"
|
//@import "assets/css/override-notices.scss"
|
||||||
@import "override-notices.scss";
|
@import "override-notices.scss"
|
||||||
|
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 2.4 MiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 876 B After Width: | Height: | Size: 876 B |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 403 KiB After Width: | Height: | Size: 403 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 608 KiB After Width: | Height: | Size: 608 KiB |
742
diff-index
|
@ -1,742 +0,0 @@
|
||||||
0a1
|
|
||||||
>
|
|
||||||
13d13
|
|
||||||
<
|
|
||||||
19a20,21
|
|
||||||
> <meta property="article:author" content="Robert McGovern">
|
|
||||||
>
|
|
||||||
22c24
|
|
||||||
< <meta property="og:type" content="website">
|
|
||||||
---
|
|
||||||
> <meta property="og:type" content="article">
|
|
||||||
26c28
|
|
||||||
< <meta property="og:url" content="http://localhost:4000/">
|
|
||||||
---
|
|
||||||
> <meta property="og:url" content="index.html">
|
|
||||||
33c35
|
|
||||||
< <meta property="og:image" content="http://localhost:4000/assets/images/bio-photo.jpg">
|
|
||||||
---
|
|
||||||
> <meta property="og:image" content="index.html">
|
|
||||||
40c42
|
|
||||||
< <meta name="twitter:url" content="http://localhost:4000/">
|
|
||||||
---
|
|
||||||
> <meta name="twitter:url" content="index.html">
|
|
||||||
43,46c45,46
|
|
||||||
< <meta name="twitter:card" content="summary">
|
|
||||||
<
|
|
||||||
< <meta name="twitter:image" content="http://localhost:4000/assets/images/bio-photo.jpg">
|
|
||||||
<
|
|
||||||
---
|
|
||||||
> <meta name="twitter:card" content="summary_large_image">
|
|
||||||
> <meta name="twitter:image" content="index.html">
|
|
||||||
52a53
|
|
||||||
> <meta property="article:published_time" content="2020-03-05T11:10:24+00:00">
|
|
||||||
56a58
|
|
||||||
>
|
|
||||||
62c64
|
|
||||||
< <link rel="canonical" href="http://localhost:4000/">
|
|
||||||
---
|
|
||||||
> <link rel="canonical" href="index.html">
|
|
||||||
66d67
|
|
||||||
< <link rel="next" href="http://localhost:4000/page2/">
|
|
||||||
68d68
|
|
||||||
<
|
|
||||||
75c75
|
|
||||||
< "url": "http://localhost:4000/"
|
|
||||||
---
|
|
||||||
> "url": "index.html"
|
|
||||||
90c90
|
|
||||||
< <link href="/feed.xml" type="application/atom+xml" rel="alternate" title="TDN: RMCG Feed">
|
|
||||||
---
|
|
||||||
> <link href="feed.xml" type="application/atom+xml" rel="alternate" title="TDN: RMCG Feed">
|
|
||||||
101c101
|
|
||||||
< <link rel="stylesheet" href="/assets/css/main.css">
|
|
||||||
---
|
|
||||||
> <link rel="stylesheet" href="assets/css/main.css">
|
|
||||||
107c107
|
|
||||||
< <script src="/assets/js/progress.js"></script>
|
|
||||||
---
|
|
||||||
> <script src="assets/js/progress.js"></script>
|
|
||||||
109c109
|
|
||||||
< <script src="/assets/js/scroll-to-top.js"></script>
|
|
||||||
---
|
|
||||||
> <script src="assets/js/scroll-to-top.js"></script>
|
|
||||||
118c118
|
|
||||||
< <body class="layout--home">
|
|
||||||
---
|
|
||||||
> <body class="layout--">
|
|
||||||
138c138
|
|
||||||
< <a class="site-logo" href="/"><img src="/assets/images/apple-touch-icon.png" alt="TDN: RMCG"></a>
|
|
||||||
---
|
|
||||||
> <a class="site-logo" href="index.html"><img src="assets/images/apple-touch-icon.png" alt="TDN: RMCG"></a>
|
|
||||||
140c140
|
|
||||||
< <a class="site-title" href="/">
|
|
||||||
---
|
|
||||||
> <a class="site-title" href="index.html">
|
|
||||||
144,152c144
|
|
||||||
< <ul class="visible-links"><li class="masthead__menu-item">
|
|
||||||
< <a href="/year-archive/">Posts</a>
|
|
||||||
< </li><li class="masthead__menu-item">
|
|
||||||
< <a href="/tags/">Tags</a>
|
|
||||||
< </li><li class="masthead__menu-item">
|
|
||||||
< <a href="/categories/">Categories</a>
|
|
||||||
< </li><li class="masthead__menu-item">
|
|
||||||
< <a href="/about/">About</a>
|
|
||||||
< </li></ul>
|
|
||||||
---
|
|
||||||
> <ul class="visible-links"></ul>
|
|
||||||
174a167
|
|
||||||
>
|
|
||||||
177,178d169
|
|
||||||
< <div class="sidebar sticky">
|
|
||||||
<
|
|
||||||
181,331d171
|
|
||||||
< <div itemscope itemtype="https://schema.org/Person">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="author__avatar">
|
|
||||||
<
|
|
||||||
< <img src="/assets/images/bio-photo.jpg" alt="Robert McGovern" itemprop="image">
|
|
||||||
<
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="author__content">
|
|
||||||
<
|
|
||||||
< <h3 class="author__name" itemprop="name">Robert McGovern</h3>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="author__bio" itemprop="description">
|
|
||||||
< <p>Wannabe field researcher for the Hitchhikers Guide to the Galaxy</p>
|
|
||||||
<
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
< <div class="author__urls-wrapper">
|
|
||||||
< <button class="btn btn--inverse">Follow</button>
|
|
||||||
< <ul class="author__urls social-icons">
|
|
||||||
<
|
|
||||||
< <li itemprop="homeLocation" itemscope itemtype="https://schema.org/Place">
|
|
||||||
< <i class="fas fa-fw fa-map-marker-alt" aria-hidden="true"></i> <span itemprop="name">ZZ9 Plural Z Alpha</span>
|
|
||||||
< </li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://tarasis.net" rel="nofollow noopener noreferrer"><i class="fas fa-fw fa-link" aria-hidden="true"></i><span class="label">Website</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="mailto:rob@tarasis.net" rel="nofollow noopener noreferrer"><i class="fas fa-fw fa-envelope-square" aria-hidden="true"></i><span class="label">Email</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://www.linkedin.com/in/robertmcgovern/" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span class="label">Linkedin</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://github.com/tarasis" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">Github</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://twitter.com/tarasis" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-twitter-square" aria-hidden="true"></i><span class="label">Twitter</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://www.facebook.com/tarasis" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span class="label">Facebook</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://instagram.com/tarasis" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-instagram" aria-hidden="true"></i><span class="label">Instagram</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://www.flickr.com/photos/tarasis/" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-flickr" aria-hidden="true"></i><span class="label">Flickr</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://www.youtube.com/user/tarasis" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-youtube" aria-hidden="true"></i><span class="label">Youtube</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://soundcloud.com/tarasis" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-soundcloud" aria-hidden="true"></i><span class="label">Soundcloud</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://www.last.fm/user/tarasis" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-lastfm" aria-hidden="true"></i><span class="label">Last.FM</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://www.reddit.com/user/tarasis" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-reddit" aria-hidden="true"></i><span class="label">Reddit</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="https://www.pinterest.com/tarasis/" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-pinterest" aria-hidden="true"></i><span class="label">Pinterest</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <!--
|
|
||||||
< <li>
|
|
||||||
< <a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
|
||||||
< <i class="fas fa-fw" aria-hidden="true"></i> Custom Social Profile Link
|
|
||||||
< </a>
|
|
||||||
< </li>
|
|
||||||
< -->
|
|
||||||
< </ul>
|
|
||||||
< </div>
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
338d177
|
|
||||||
< <h3 class="archive__subtitle">Recent posts</h3>
|
|
||||||
340a180
|
|
||||||
> <h3 class="archive__subtitle">Recent Posts</h3>
|
|
||||||
343d182
|
|
||||||
< <div class="entries-list">
|
|
||||||
345d183
|
|
||||||
<
|
|
||||||
349,384c187
|
|
||||||
< <div class="list__item">
|
|
||||||
< <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
|
||||||
<
|
|
||||||
< <h2 class="archive__item-title no_toc" itemprop="headline">
|
|
||||||
<
|
|
||||||
< <a href="/2022/10/15/frontend-mentor-challenge-deployment/" rel="permalink">What happens when I finish a Frontend Mentor Challenge (or how I build and deploy an 11ty site)
|
|
||||||
< </a>
|
|
||||||
<
|
|
||||||
< </h2>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="page__meta">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <span class="page__meta-readtime">
|
|
||||||
< <i class="far fa-clock" aria-hidden="true"></i>
|
|
||||||
<
|
|
||||||
< 4 minute read
|
|
||||||
<
|
|
||||||
< </span>
|
|
||||||
<
|
|
||||||
< </p>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="archive__item-excerpt" itemprop="description">I’ve been doing challenges from Frontend Mentor as a means to practice frontend web development. Specifically working with plain HTML, CSS and JavaScript.
|
|
||||||
<
|
|
||||||
< R...</p>
|
|
||||||
< </article>
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
---
|
|
||||||
> <div class="entries-list">
|
|
||||||
386,421d188
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="list__item">
|
|
||||||
< <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
|
||||||
<
|
|
||||||
< <h2 class="archive__item-title no_toc" itemprop="headline">
|
|
||||||
<
|
|
||||||
< <a href="/2020/05/27/camino-de-santiago/" rel="permalink">A short look back on my Camino de Santiago journey
|
|
||||||
< </a>
|
|
||||||
<
|
|
||||||
< </h2>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="page__meta">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <span class="page__meta-readtime">
|
|
||||||
< <i class="far fa-clock" aria-hidden="true"></i>
|
|
||||||
<
|
|
||||||
< 3 minute read
|
|
||||||
<
|
|
||||||
< </span>
|
|
||||||
<
|
|
||||||
< </p>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="archive__item-excerpt" itemprop="description">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...</p>
|
|
||||||
< </article>
|
|
||||||
424,425d190
|
|
||||||
<
|
|
||||||
<
|
|
||||||
429,812d193
|
|
||||||
< <div class="list__item">
|
|
||||||
< <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
|
||||||
<
|
|
||||||
< <h2 class="archive__item-title no_toc" itemprop="headline">
|
|
||||||
<
|
|
||||||
< <a href="/2020/04/21/learning-web-development/" rel="permalink">Learning Web Development
|
|
||||||
< </a>
|
|
||||||
<
|
|
||||||
< </h2>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="page__meta">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <span class="page__meta-readtime">
|
|
||||||
< <i class="far fa-clock" aria-hidden="true"></i>
|
|
||||||
<
|
|
||||||
< 2 minute read
|
|
||||||
<
|
|
||||||
< </span>
|
|
||||||
<
|
|
||||||
< </p>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="archive__item-excerpt" itemprop="description">I mentioned in the goals post, one of the things I am aiming to do is to start learning web development.
|
|
||||||
<
|
|
||||||
< I was well aware that what falls under the banner o...</p>
|
|
||||||
< </article>
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="list__item">
|
|
||||||
< <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
|
||||||
<
|
|
||||||
< <h2 class="archive__item-title no_toc" itemprop="headline">
|
|
||||||
<
|
|
||||||
< <a href="/2020/04/20/swift-coding-challenge-2/" rel="permalink">Swift Coding Challenges: Challenge 2
|
|
||||||
< </a>
|
|
||||||
<
|
|
||||||
< </h2>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="page__meta">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <span class="page__meta-readtime">
|
|
||||||
< <i class="far fa-clock" aria-hidden="true"></i>
|
|
||||||
<
|
|
||||||
< 1 minute read
|
|
||||||
<
|
|
||||||
< </span>
|
|
||||||
<
|
|
||||||
< </p>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="archive__item-excerpt" itemprop="description">Second one within 13 hours, good lord, that would never do.
|
|
||||||
<
|
|
||||||
< So this challenge was to test if a string matched against the reverse of itself. Basically a pal...</p>
|
|
||||||
< </article>
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="list__item">
|
|
||||||
< <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
|
||||||
<
|
|
||||||
< <h2 class="archive__item-title no_toc" itemprop="headline">
|
|
||||||
<
|
|
||||||
< <a href="/2020/04/20/swift-coding-challenges/" rel="permalink">Swift Coding Challenges: Challenge 1
|
|
||||||
< </a>
|
|
||||||
<
|
|
||||||
< </h2>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="page__meta">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <span class="page__meta-readtime">
|
|
||||||
< <i class="far fa-clock" aria-hidden="true"></i>
|
|
||||||
<
|
|
||||||
< less than 1 minute read
|
|
||||||
<
|
|
||||||
< </span>
|
|
||||||
<
|
|
||||||
< </p>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="archive__item-excerpt" itemprop="description">As an effort to improve and challenge myself I got a copy of Paul Hudson’s Swift Coding Challenges book and I’m going to work through it and post my thoughts...</p>
|
|
||||||
< </article>
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="list__item">
|
|
||||||
< <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
|
||||||
<
|
|
||||||
< <h2 class="archive__item-title no_toc" itemprop="headline">
|
|
||||||
<
|
|
||||||
< <a href="/2020/04/17/goals/" rel="permalink">Goals
|
|
||||||
< </a>
|
|
||||||
<
|
|
||||||
< </h2>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="page__meta">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <span class="page__meta-readtime">
|
|
||||||
< <i class="far fa-clock" aria-hidden="true"></i>
|
|
||||||
<
|
|
||||||
< 6 minute read
|
|
||||||
<
|
|
||||||
< </span>
|
|
||||||
<
|
|
||||||
< </p>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="archive__item-excerpt" itemprop="description">Long time, no write.
|
|
||||||
<
|
|
||||||
< A lot has changed in my life, not least of which is that I am no longer a stay at home dad or living in Germany. For now I am back home...</p>
|
|
||||||
< </article>
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="list__item">
|
|
||||||
< <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
|
||||||
<
|
|
||||||
< <h2 class="archive__item-title no_toc" itemprop="headline">
|
|
||||||
<
|
|
||||||
< <a href="/2019/06/17/Day21/" rel="permalink">Day 21
|
|
||||||
< </a>
|
|
||||||
<
|
|
||||||
< </h2>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="page__meta">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <span class="page__meta-readtime">
|
|
||||||
< <i class="far fa-clock" aria-hidden="true"></i>
|
|
||||||
<
|
|
||||||
< 2 minute read
|
|
||||||
<
|
|
||||||
< </span>
|
|
||||||
<
|
|
||||||
< </p>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="archive__item-excerpt" itemprop="description">Day 21 of trip
|
|
||||||
<
|
|
||||||
< Day Frómista to Carrión de los Condes. 18.88km according to app. 19.18km with Phone GPS (minor detour). Was walking quickly. Which Fitbit doe...</p>
|
|
||||||
< </article>
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="list__item">
|
|
||||||
< <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
|
||||||
<
|
|
||||||
< <h2 class="archive__item-title no_toc" itemprop="headline">
|
|
||||||
<
|
|
||||||
< <a href="/2019/06/15/Day19/" rel="permalink">Day 19
|
|
||||||
< </a>
|
|
||||||
<
|
|
||||||
< </h2>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="page__meta">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <span class="page__meta-readtime">
|
|
||||||
< <i class="far fa-clock" aria-hidden="true"></i>
|
|
||||||
<
|
|
||||||
< 3 minute read
|
|
||||||
<
|
|
||||||
< </span>
|
|
||||||
<
|
|
||||||
< </p>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="archive__item-excerpt" itemprop="description">Day 19 of trip
|
|
||||||
<
|
|
||||||
< Day 16 of walk.
|
|
||||||
<
|
|
||||||
< Today was Hornillos del Camino to Castrojeriz (19.47km)
|
|
||||||
<
|
|
||||||
< Weather: cool, grey and minimal sun (nice to walk in)
|
|
||||||
<
|
|
||||||
< Terrain: lig...</p>
|
|
||||||
< </article>
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="list__item">
|
|
||||||
< <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
|
||||||
<
|
|
||||||
< <h2 class="archive__item-title no_toc" itemprop="headline">
|
|
||||||
<
|
|
||||||
< <a href="/2019/06/14/Day-2018/" rel="permalink">Day 18 - drawn to stop
|
|
||||||
< </a>
|
|
||||||
<
|
|
||||||
< </h2>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="page__meta">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <span class="page__meta-readtime">
|
|
||||||
< <i class="far fa-clock" aria-hidden="true"></i>
|
|
||||||
<
|
|
||||||
< 4 minute read
|
|
||||||
<
|
|
||||||
< </span>
|
|
||||||
<
|
|
||||||
< </p>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="archive__item-excerpt" itemprop="description">Day 18
|
|
||||||
<
|
|
||||||
< Burgos to Hornillos del Camino ~22km
|
|
||||||
<
|
|
||||||
< Weather was pleasant but cool
|
|
||||||
<
|
|
||||||
< Terrain most flat, gravel & roads
|
|
||||||
<
|
|
||||||
< Woke up at 3am freezing and no blanket to...</p>
|
|
||||||
< </article>
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <div class="list__item">
|
|
||||||
< <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
|
||||||
<
|
|
||||||
< <h2 class="archive__item-title no_toc" itemprop="headline">
|
|
||||||
<
|
|
||||||
< <a href="/2019/06/13/Day-2017/" rel="permalink">Day 17
|
|
||||||
< </a>
|
|
||||||
<
|
|
||||||
< </h2>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="page__meta">
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <span class="page__meta-readtime">
|
|
||||||
< <i class="far fa-clock" aria-hidden="true"></i>
|
|
||||||
<
|
|
||||||
< 3 minute read
|
|
||||||
<
|
|
||||||
< </span>
|
|
||||||
<
|
|
||||||
< </p>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <p class="archive__item-excerpt" itemprop="description">Day 17
|
|
||||||
<
|
|
||||||
< So it’s day 17 of the trip and day 14 of the Camino (day 12 if you take out 2 rest days)
|
|
||||||
<
|
|
||||||
< Woke at 6 pretty impressed that I didn’t hear the 2 women i...</p>
|
|
||||||
< </article>
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< </div>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <nav class="pagination">
|
|
||||||
<
|
|
||||||
< <ul>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="#" class="disabled"><span aria-hidden="true">Previous</span></a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="#" class="disabled current">1</a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="/page2/">2</a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="/page3/">3</a></li>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
< <li><a href="/page2/">Next</a></li>
|
|
||||||
<
|
|
||||||
< </ul>
|
|
||||||
< </nav>
|
|
||||||
<
|
|
||||||
<
|
|
||||||
<
|
|
||||||
841,842d221
|
|
||||||
< <li><strong>Follow:</strong></li>
|
|
||||||
<
|
|
||||||
869c248
|
|
||||||
< <li><a href="/feed.xml"><i class="fas fa-fw fa-rss-square" aria-hidden="true"></i> Feed</a></li>
|
|
||||||
---
|
|
||||||
> <li><a href="feed.xml"><i class="fas fa-fw fa-rss-square" aria-hidden="true"></i> Feed</a></li>
|
|
||||||
874c253
|
|
||||||
< <div class="page__footer-copyright">© 2023 Robert McGovern. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
|
||||||
---
|
|
||||||
> <div class="page__footer-copyright">© %2023 Robert McGovern. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
|
||||||
880c259
|
|
||||||
< <script src="/assets/js/main.min.js"></script>
|
|
||||||
---
|
|
||||||
> <script src="assets/js/main.min.js"></script>
|
|
||||||
884a264
|
|
||||||
>
|
|
||||||
886,889c266,268
|
|
||||||
< <script src="/assets/js/lunr/lunr.min.js"></script>
|
|
||||||
< <script src="/assets/js/lunr/lunr-store.js"></script>
|
|
||||||
< <script src="/assets/js/lunr/lunr-en.js"></script>
|
|
||||||
<
|
|
||||||
---
|
|
||||||
> <script src="assets/js/lunr/lunr.min.js"></script>
|
|
||||||
> <script src="assets/js/lunr/lunr-store.js"></script>
|
|
||||||
> <script src="assets/js/lunr/lunr-en.js"></script>
|
|
|
@ -1,60 +0,0 @@
|
||||||
// Credits 🙇 for original ideas to:
|
|
||||||
// Fork of https://github.com/vimtor/eleventy-plugin-external-links
|
|
||||||
// css.gg SVG icon https://github.com/astrit/css.gg/blob/master/icons/svg/external.svg
|
|
||||||
|
|
||||||
const { parse, HTMLElement } = require("node-html-parser");
|
|
||||||
const { extname } = require("path");
|
|
||||||
|
|
||||||
module.exports = eleventyConfig => {
|
|
||||||
const options = {
|
|
||||||
name: "external-links",
|
|
||||||
regex: new RegExp("^(([a-z]+:)|(//))", "i"),
|
|
||||||
target: "_blank",
|
|
||||||
rel: "noopener noreferrer nofollow",
|
|
||||||
extensions: [".html"],
|
|
||||||
};
|
|
||||||
|
|
||||||
eleventyConfig.addTransform(options.name, (content, outputPath) => {
|
|
||||||
if (outputPath && options.extensions.includes(extname(outputPath))) {
|
|
||||||
const root = parse(content);
|
|
||||||
const links = root.querySelectorAll("a");
|
|
||||||
links
|
|
||||||
.filter(link => {
|
|
||||||
const href = link.getAttribute("href");
|
|
||||||
return (
|
|
||||||
href &&
|
|
||||||
options.regex.test(href) &&
|
|
||||||
!link.getAttribute("rel") &&
|
|
||||||
!link.getAttribute("target")
|
|
||||||
);
|
|
||||||
})
|
|
||||||
.forEach(link => {
|
|
||||||
link.setAttribute("target", options.target);
|
|
||||||
link.setAttribute("rel", options.rel);
|
|
||||||
|
|
||||||
const srText = new HTMLElement("span", { class: "sr-only" });
|
|
||||||
srText.textContent = "(opens in a new window)";
|
|
||||||
|
|
||||||
const icon = new HTMLElement(
|
|
||||||
"svg",
|
|
||||||
{},
|
|
||||||
`viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"`
|
|
||||||
);
|
|
||||||
icon.set_content(`
|
|
||||||
<path
|
|
||||||
d="M15.6396 7.02527H12.0181V5.02527H19.0181V12.0253H17.0181V8.47528L12.1042 13.3892L10.6899 11.975L15.6396 7.02527Z"
|
|
||||||
fill="currentColor"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M10.9819 6.97473H4.98193V18.9747H16.9819V12.9747H14.9819V16.9747H6.98193V8.97473H10.9819V6.97473Z"
|
|
||||||
fill="currentColor"
|
|
||||||
/>`);
|
|
||||||
link.appendChild(srText);
|
|
||||||
link.appendChild(icon);
|
|
||||||
});
|
|
||||||
|
|
||||||
return root.toString();
|
|
||||||
}
|
|
||||||
return content;
|
|
||||||
});
|
|
||||||
};
|
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 876 B After Width: | Height: | Size: 876 B |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |