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:
		
							parent
							
								
									5b16d8f1bd
								
							
						
					
					
						commit
						3d3b18411f
					
				|  | @ -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; | ||||||
|  | } | ||||||
|  | @ -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 | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  | @ -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" | ||||||
|  | ``` | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										35
									
								
								package.json
								
								
								
								
							
							
						
						
									
										35
									
								
								package.json
								
								
								
								
							|  | @ -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" | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | @ -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 | ||||||
|  | 
 | ||||||
|  | @ -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" |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| --- | --- | ||||||
| layout: post | layout: single | ||||||
| title: pretty-terminal-configs | title: pretty-terminal-configs | ||||||
| --- | --- | ||||||
|  |  | ||||||
|  | @ -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> |  | ||||||
|  | @ -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> | ||||||
|  | @ -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' }} ↑</a> | ||||||
|  |   </section> | ||||||
|  | {% endfor %} | ||||||
|  | @ -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 %} | ||||||
|  | @ -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 | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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] | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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] | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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] | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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] | ||||||
| --- | --- | ||||||
|  |  | ||||||
|  | @ -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] | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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] | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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] | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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] | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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] | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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] | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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 +0159 | date: 2019-06-11 23:05:50 +01:59 | ||||||
| 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 +0159 | date: 2019-06-12 22:20:00 +01:59 | ||||||
| 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 +0159 | date: 2019-06-13 23:00:00 +01:59 | ||||||
| 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 +0159 | date: 2019-06-14 22:56:21 +01:59 | ||||||
| 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 +0159 | date: 2019-06-15 18:06:55 +01:59 | ||||||
| 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 +0159 | date: 2019-06-17 22:38:55 +01:59 | ||||||
| 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 +0100 | date: 2020-04-17 02:18:00 +01:00 | ||||||
| --- | --- | ||||||
| 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 +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. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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. | ||||||
|  |  | ||||||
|  | @ -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. | ||||||
|  |  | ||||||
|  | @ -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/). | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue