diff --git a/.eleventy.js b/.eleventy.js index 66d4aa5..14c56ff 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -1,3 +1,5 @@ +const siteURL = "https://tarasis.net"; + const fs = require("fs-extra"); const sass = require("sass"); const { promisify } = require("util"); @@ -14,6 +16,9 @@ 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; @@ -25,6 +30,9 @@ 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); @@ -39,7 +47,32 @@ module.exports = function (eleventyConfig) { }); // 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(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
or 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);
@@ -74,13 +107,22 @@ module.exports = function (eleventyConfig) {
// 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) {
- for (const tag of item.data.tags) {
- tags.add(tag);
+ if (item.data.tags != undefined) {
+ for (const tag of item.data.tags) {
+ tags.add(tag);
+ }
}
}
});
@@ -88,6 +130,22 @@ module.exports = function (eleventyConfig) {
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) => {
@@ -123,7 +181,6 @@ module.exports = function (eleventyConfig) {
require("moment")(date).format(format)
);
- // eleventyConfig.addFilter("absolute_url", relativeURL);
eleventyConfig.addLiquidFilter("toUTCString", (date) => {
const utc = date.toUTCString();
return moment.utc(utc).format("MMMM Do YYYY");
@@ -131,8 +188,6 @@ module.exports = function (eleventyConfig) {
eleventyConfig.addFilter("number_of_words", numberOfWords);
- // eleventyConfig.addFilter("absolute_url", relativeUrl);
-
// eleventyConfig.addShortcode("where_exp", function (item, exp) {
// console.log(exp);
// return eval(exp);
@@ -146,6 +201,8 @@ module.exports = function (eleventyConfig) {
return inspect(obj, {sorted: true});
});
+ eleventyConfig.addFilter('group_by', groupBy)
+
eleventyConfig.addLayoutAlias(
"archive-taxonomy",
"layouts/archive-taxonomy.html"
@@ -164,6 +221,7 @@ module.exports = function (eleventyConfig) {
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)
@@ -303,13 +361,16 @@ module.exports = function (eleventyConfig) {
// );
eleventyConfig.addFilter("relative_url", relativeURLALT);
- eleventyConfig.addFilter("absolute_url", relativeURLALT);
+ eleventyConfig.addFilter("absolute_url", absoluteUrl);
return {
templateFormats: ["html", "liquid", "md", "njk"],
pathPrefix,
+ environment: "production",
+
+ // absolute_url: "https://tarasis.net/",
passthroughFileCopy: true,
dir: {
@@ -412,3 +473,32 @@ function relativeURLALT(url, pathPrefix = undefined) {
}`;
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] }],
+ []
+ )
+ }
+
diff --git a/eleventy-external-links-transform.js b/eleventy-external-links-transform.js
new file mode 100644
index 0000000..b6ea3b6
--- /dev/null
+++ b/eleventy-external-links-transform.js
@@ -0,0 +1,60 @@
+// 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(`
+
+ `);
+ link.appendChild(srText);
+ link.appendChild(icon);
+ });
+
+ return root.toString();
+ }
+ return content;
+ });
+};
diff --git a/itemdata.txt b/itemdata.txt
new file mode 100644
index 0000000..3c4b422
--- /dev/null
+++ b/itemdata.txt
@@ -0,0 +1,1316 @@
+{
+ authors: {
+ robert_mcgovern: {
+ name: 'Robert McGovern',
+ web: 'https://tarasis.net',
+ email: 'rob@tarasis.net',
+ bio: '',
+ avatar: 'bio-photo-2.jpg',
+ twitter: 'tarasis'
+ }
+ },
+ navigation: { main: [ [Object], [Object], [Object], [Object] ] },
+ site: {
+ theme: 'minimal-mistakes-jekyll',
+ minimal_mistakes_skin: 'neon',
+ locale: 'en-US',
+ title: 'TDN: RMCG',
+ title_separator: '-',
+ name: 'Robert McGovern',
+ description: 'Random Things',
+ url: 'https://tarasis.net',
+ baseurl: '',
+ repository: null,
+ teaser: null,
+ logo: '/assets/images/apple-touch-icon.png',
+ masthead_title: '',
+ subtitle: 'π¨βπ» πΆββοΈ π π€―',
+ breadcrumbs: false,
+ breadcrumb_home_label: 'Home',
+ breadcrumb_separator: '>',
+ words_per_minute: 200,
+ head_scripts: [ '/assets/js/progress.js', '/assets/js/scroll-to-top.js' ],
+ comments: {
+ provider: 'disqus',
+ disqus: [Object],
+ discourse: [Object],
+ facebook: [Object],
+ utterances: [Object]
+ },
+ staticman: {
+ allowedFields: [Array],
+ branch: null,
+ commitMessage: 'New comment by {fields.name}',
+ filename: 'comment-{@timestamp}',
+ format: 'yml',
+ moderation: true,
+ path: '_data/comments/{options.slug}',
+ requiredFields: [Array],
+ transforms: [Object],
+ generatedFields: [Object],
+ endpoint: null
+ },
+ atom_feed: { path: null },
+ search: true,
+ search_full_content: true,
+ search_provider: 'lunr',
+ algolia: {
+ application_id: 'F5FF4IDLYX',
+ index_name: 'tarasis-blog',
+ search_only_api_key: 'ed656902b5bdd356f885bf9d99635fc1',
+ powered_by: true
+ },
+ google_site_verification: null,
+ bing_site_verification: null,
+ yandex_site_verification: null,
+ twitter: { username: 'tarasis' },
+ facebook: { username: 'tarasis', app_id: null, publisher: null },
+ og_image: '/assets/images/bio-photo.jpg',
+ social: { type: null, name: null, links: null },
+ analytics: { provider: false, google: [Object] },
+ author: {
+ name: 'Robert McGovern',
+ avatar: '/assets/images/bio-photo.jpg',
+ bio: 'Wannabe field researcher for the Hitchhikers Guide to the Galaxy',
+ location: 'ZZ9 Plural Z Alpha',
+ links: [Array]
+ },
+ footer: { links: [Array] },
+ include: [ '.htaccess', '_pages' ],
+ exclude: [
+ '*.sublime-project', '*.sublime-workspace',
+ 'vendor', '.asset-cache',
+ '.bundle', '.jekyll-assets-cache',
+ '.jekyll-cache', '.sass-cache',
+ 'assets/js/plugins', 'assets/js/_main.js',
+ 'assets/js/vendor', 'Capfile',
+ 'CHANGELOG', 'config',
+ 'Gemfile', 'Gruntfile.js',
+ 'gulpfile.js', 'LICENSE',
+ 'log', 'node_modules',
+ 'package.json', 'Rakefile',
+ 'README', 'tmp'
+ ],
+ keep_files: [ '.git', '.svn' ],
+ encoding: 'utf-8',
+ markdown_ext: 'markdown,mkdown,mkdn,mkd,md',
+ strict_front_matter: true,
+ liquid: { error_mode: 'strict' },
+ markdown: 'kramdown',
+ highlighter: 'rouge',
+ lsi: false,
+ excerpt_separator: '',
+ incremental: false,
+ kramdown: {
+ input: 'GFM',
+ hard_wrap: false,
+ auto_ids: true,
+ footnote_nr: 1,
+ entity_output: 'as_char',
+ toc_levels: '1..6',
+ smart_quotes: 'lsquo,rsquo,ldquo,rdquo',
+ enable_coderay: false
+ },
+ sass: { sass_dir: '_sass', style: 'compressed' },
+ permalink: '/:year/:month/:day/:title/',
+ paginate: 10,
+ paginate_path: '/page:num/',
+ timezone: null,
+ plugins: [
+ 'jekyll-archives',
+ 'jekyll-paginate',
+ 'jekyll-sitemap',
+ 'jekyll-gist',
+ 'jekyll-feed',
+ 'jemoji',
+ 'jekyll-include-cache',
+ 'jekyll-gist'
+ ],
+ whitelist: [
+ 'jekyll-archives',
+ 'jekyll-paginate',
+ 'jekyll-sitemap',
+ 'jekyll-gist',
+ 'jekyll-feed',
+ 'jemoji',
+ 'jekyll-include-cache',
+ 'jekyll-gist'
+ ],
+ category_archive: { type: 'liquid', path: '/categories/' },
+ tag_archive: { type: 'liquid', path: '/tags/' },
+ compress_html: { clippings: 'all', ignore: [Object] },
+ collections: { recipes: [Object], pets: [Object], portfolio: [Object] },
+ defaults: { posts: [Object], pages: [Object], recipies: [Object] },
+ post_ext: 'markdown',
+ page_ext: 'html',
+ post_layout: 'single',
+ page_layout: 'page',
+ titlecase: true
+ },
+ eleventy: {
+ version: '2.0.0',
+ generator: 'Eleventy v2.0.0',
+ env: {
+ source: 'cli',
+ config: '/Users/tarasis/Programming/Websites/tarasis.net/.eleventy.js',
+ root: '/Users/tarasis/Programming/Websites/tarasis.net',
+ isServerless: false
+ }
+ },
+ pkg: {
+ name: 'tarasis.net',
+ version: '2.0.0',
+ description: 'Second generation of site using 11ty for building but using Jekyll theme Minimal Mistakes (with mods to make it work)',
+ main: 'index.js',
+ scripts: {
+ '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: {
+ type: 'git',
+ url: 'forgejo@git.tarasis.net:tarasis/tarasis.net.git'
+ },
+ keywords: [ 'website', 'blog', '11ty', 'jekyll' ],
+ author: 'Robert McGovern et all',
+ 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',
+ const: '^1.0.0',
+ 'eleventy-load': '^0.3.1',
+ 'eleventy-load-css': '^0.3.0',
+ 'eleventy-load-file': '^0.1.0',
+ 'eleventy-load-html': '^0.1.1',
+ 'eleventy-load-sass': '^0.1.2',
+ 'eleventy-plugin-description': '^0.1.5',
+ 'eleventy-plugin-toc': '^1.1.5',
+ 'eleventy-xml-plugin': '^0.1.0',
+ 'fs-extra': '^11.1.0',
+ 'js-yaml': '^4.1.0',
+ 'markdown-it': '^13.0.1',
+ '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',
+ slugify: '^1.6.5'
+ }
+ },
+ layout: 'single',
+ permalink: "/{{ page.date | date: 'Y/M/D' }}/{{ page.fileSlug }}/",
+ author_profile: true,
+ read_time: true,
+ share: true,
+ related: true,
+ title: 'Day 7 - Taking a break',
+ date: 2019-06-03T20:20:16.000Z,
+ category: null,
+ tags: [ 'camino', 'caminodesantiago', 'jakobsweg' ],
+ page: {
+ date: 2019-06-03T20:20:16.000Z,
+ inputPath: './src/_posts/2019-06-03-Day7.md',
+ fileSlug: 'Day7',
+ filePathStem: '/_posts/Day7',
+ outputFileExtension: 'html',
+ templateSyntax: 'liquid,md',
+ url: '/2019/6/3/Day7/',
+ outputPath: 'dist/2019/6/3/Day7/index.html'
+ },
+ collections: {
+ all: [
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object],
+ [Object], [Object], [Object], [Object]
+ ],
+ life: [ [Object], [Object], [Object], [Object] ],
+ camino: [
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object]
+ ],
+ caminodesantiago: [
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object]
+ ],
+ webdev: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
+ javascript: [ [Object], [Object] ],
+ freecodecamp: [ [Object] ],
+ css: [ [Object], [Object] ],
+ site: [ [Object], [Object], [Object], [Object] ],
+ frontendmentor: [ [Object], [Object] ],
+ programming: [ [Object], [Object], [Object], [Object], [Object] ],
+ ios: [ [Object], [Object], [Object], [Object] ],
+ swift: [ [Object], [Object], [Object], [Object] ],
+ 'coding-challenges': [ [Object], [Object], [Object] ],
+ jakobsweg: [
+ [Object], [Object],
+ [Object], [Object],
+ [Object], [Object],
+ [Object], [Object],
+ [Object], [Object],
+ [Object], [Object],
+ [Object], [Object],
+ [Object], [Object],
+ [Object]
+ ],
+ caminofrances: [ [Object] ],
+ personal: [ [Object], [Object] ],
+ webdevelopment: [ [Object] ],
+ learning: [ [Object] ],
+ html: [ [Object] ],
+ swiftui: [ [Object] ],
+ pages: [
+ [Object], [Object],
+ [Object], [Object],
+ [Object], [Object],
+ [Object], [Object],
+ [Object], [Object]
+ ],
+ posts: [
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object],
+ [Object], [Object], [Object]
+ ],
+ projects: [],
+ tags: [
+ 'life', 'camino',
+ 'caminodesantiago', 'webdev',
+ 'javascript', 'freecodecamp',
+ 'css', 'site',
+ 'frontendmentor', 'programming',
+ 'ios', 'swift',
+ 'coding-challenges', 'jakobsweg',
+ 'caminofrances', 'personal',
+ 'webdevelopment', 'learning',
+ 'html', 'swiftui'
+ ]
+ },
+ siblings: {
+ next: {
+ template: [Template],
+ data: [Object],
+ page: [Object],
+ inputPath: './src/_posts/2019-06-04-Day%208.md',
+ fileSlug: 'Day%208',
+ filePathStem: '/_posts/Day%208',
+ date: 2019-06-04T19:30:37.000Z,
+ outputPath: 'dist/2019/6/4/Day%208/index.html',
+ url: '/2019/6/4/Day%208/',
+ templateContent: [Getter/Setter],
+ content: [Getter]
+ },
+ prev: {
+ template: [Template],
+ data: [Object],
+ page: [Object],
+ inputPath: './src/_posts/2019-06-02-day6.md',
+ fileSlug: 'day6',
+ filePathStem: '/_posts/day6',
+ date: 2019-06-02T16:49:22.000Z,
+ outputPath: 'dist/2019/6/2/day6/index.html',
+ url: '/2019/6/2/day6/',
+ templateContent: [Getter/Setter],
+ content: [Getter]
+ }
+ }
+
+----
+
+{
+ template: Template {
+ _config: TemplateConfig {
+ userConfig: [UserConfig],
+ overrides: {},
+ projectConfigPaths: [Array],
+ customRootConfig: null,
+ rootConfig: [Object],
+ hasConfigMerged: true,
+ logger: [ConsoleLogger],
+ _usesGraph: [GlobalDependencyMap],
+ config: [Object],
+ verbose: true
+ },
+ inputPath: './src/_drafts/swiftui.md',
+ inputDir: 'src',
+ parsed: {
+ root: '',
+ dir: './src/_drafts',
+ base: 'swiftui.md',
+ ext: '.md',
+ name: 'swiftui'
+ },
+ extraOutputSubdirectory: '',
+ outputDir: 'dist',
+ _extensionMap: EleventyExtensionMap {
+ eleventyConfig: [TemplateConfig],
+ _config: [Object],
+ formatKeys: [Array],
+ unfilteredFormatKeys: [Array],
+ _extensionToKeyMap: [Object],
+ validTemplateLanguageKeys: [Array],
+ passthroughCopyKeys: [],
+ _spiderJsDepsCache: {},
+ _engineManager: [TemplateEngineManager]
+ },
+ linters: [],
+ transforms: [],
+ templateData: TemplateData {
+ eleventyConfig: [TemplateConfig],
+ config: [Object],
+ benchmarks: [Object],
+ inputDirNeedsCheck: false,
+ inputDir: 'src',
+ dataDir: 'src/_data',
+ rawImports: [Object],
+ globalData: [Promise],
+ templateDirectoryData: [Object],
+ _fsExistsCache: [FSExistsCache],
+ initialGlobalData: [TemplateDataInitialGlobalData],
+ _extensionMap: [EleventyExtensionMap],
+ _env: [Object],
+ fileSystemSearch: [FileSystemSearch],
+ configApiGlobalData: [Promise],
+ pathCache: [Array]
+ },
+ isVerbose: true,
+ isDryRun: false,
+ writeCount: 0,
+ fileSlug: TemplateFileSlug {
+ inputPath: '_drafts/swiftui.md',
+ cleanInputPath: '_drafts/swiftui.md',
+ dirs: [Array],
+ parsed: [Object],
+ filenameNoExt: 'swiftui'
+ },
+ fileSlugStr: 'swiftui',
+ filePathStem: '/_drafts/swiftui',
+ outputFormat: 'fs',
+ behavior: TemplateBehavior {
+ render: true,
+ write: true,
+ outputFormat: 'fs',
+ config: [Object]
+ },
+ serverlessUrls: null,
+ _logger: ConsoleLogger { _isVerbose: true, outputStream: [Readable] },
+ _templateRender: TemplateRender {
+ _config: [Object],
+ engineNameOrPath: './src/_drafts/swiftui.md',
+ inputDir: 'src',
+ includesDir: 'src/_includes',
+ parseMarkdownWith: 'liquid',
+ parseHtmlWith: 'liquid',
+ _extensionMap: [EleventyExtensionMap],
+ _engineName: 'md',
+ _engine: [Markdown],
+ useMarkdown: true
+ },
+ inputContent: Promise {
+ '---\n' +
+ 'layout: single\n' +
+ 'author_profile: true\n' +
+ 'read_time: true\n' +
+ 'share: true\n' +
+ 'related: true\n' +
+ 'title: SwiftUI\n' +
+ 'tags: [swiftui,programming,ios, swift]\n' +
+ 'category: Programming\n' +
+ '---\n' +
+ '\n' +
+ "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.\n" +
+ '\n' +
+ '\n' +
+ '\n' +
+ 'SwiftUI simplifies designing interfaces\n' +
+ 'Provides a fast means of iterating design\n' +
+ 'Able to quickly see results\n' +
+ 'Easy to mock in data\n' +
+ '\n' +
+ 'Buggy.\n' +
+ 'Filled 3 bugs so far.\n' +
+ '\n' +
+ 'Swift:\n' +
+ '\n' +
+ '{% highlight swift %}\n' +
+ ' override public func touchesBegan(_ touches: Set, with event: UIEvent?) {\n' +
+ ' super.touchesBegan(touches, with: event)\n' +
+ ' currentTouchPosition = touches.first?.location(in: self)\n' +
+ '\n' +
+ ' NSObject.cancelPreviousPerformRequests(withTarget: self)\n' +
+ ' }\n' +
+ '{% endhighlight %}\n' +
+ '\n' +
+ 'Swift:\n' +
+ '\n' +
+ '```swift\n' +
+ 'def print_hi(name)\n' +
+ ' puts "Hi, #{name}"\n' +
+ 'end\n' +
+ "print_hi('Tom')\n" +
+ "#=> prints 'Hi, Tom' to STDOUT.\n" +
+ '```\n' +
+ '\n' +
+ 'Bash: \n' +
+ '```bash\n' +
+ '\n' +
+ '#!/usr/bin/env bash\n' +
+ 'set -e # halt script on error\n' +
+ '\n' +
+ 'echo\n' +
+ 'echo "------------------------------------------------------------------------------------------------------------------------"\n' +
+ 'if [ "$TRAVIS_PULL_REQUEST" != "false" -a "$TRAVIS_BRANCH" == "comments" ]; then\n' +
+ '\n' +
+ ' echo\n' +
+ ' echo "Building site for pull request for $TRAVIS_BRANCH..."\n' +
+ ' bundle exec jekyll build --config _config.yml --source . --destination ./docs\n' +
+ ' echo "Site built into /docs"\n' +
+ '\n' +
+ ' echo\n' +
+ ' echo "Proofing links"\n' +
+ ' bundle exec htmlproofer ./docs --disable-external --allow_hash_href\n' +
+ ' echo "Proofing links complete"\n' +
+ ' echo\n' +
+ ' echo "------------------------------------------------------------------------------------------------------------------------"\n' +
+ '\n' +
+ ' exit 0\n' +
+ '\n' +
+ 'elif [ "$TRAVIS_BRANCH" == "master" ]; then\n' +
+ '\n' +
+ ' echo\n' +
+ ' echo "Building site for $TRAVIS_BRANCH..."\n' +
+ ' bundle exec jekyll build --config _config.yml --source . --destination ./docs\n' +
+ ' echo "Site built into /docs"\n' +
+ '\n' +
+ ' echo\n' +
+ ' echo "Proofing links"\n' +
+ ' bundle exec htmlproofer ./docs --disable-external --allow_hash_href\n' +
+ ' echo "Proofing links complete"\n' +
+ ' echo\n' +
+ ' echo "------------------------------------------------------------------------------------------------------------------------"\n' +
+ '\n' +
+ ' exit 0\n' +
+ '\n' +
+ 'else\n' +
+ '\n' +
+ ' echo\n' +
+ ' echo "Build not triggered internally"\n' +
+ ' echo\n' +
+ ' echo "------------------------------------------------------------------------------------------------------------------------"\n' +
+ ' exit 0\n' +
+ '\n' +
+ 'fi\n' +
+ '```\n' +
+ '\n' +
+ 'Ruby:\n' +
+ '\n' +
+ '{% highlight ruby %}\n' +
+ 'require "gem"\n' +
+ '\n' +
+ 'number = 0\n' +
+ 'regexp = /[abc]/\n' +
+ '\n' +
+ '# This is a comment\n' +
+ 'class Person\n' +
+ ' \n' +
+ ' attr_accessor :name\n' +
+ ' \n' +
+ ' def initialize(attributes = {})\n' +
+ ' @name = attributes[:name]\n' +
+ ' end\n' +
+ ' \n' +
+ ' def self.greet\n' +
+ ' "hello"\n' +
+ ' end\n' +
+ 'end\n' +
+ '\n' +
+ 'person1 = Person.new(:name => "Chris")\n' +
+ 'puts "#{Person::greet} #{person1.name}\\n"\n' +
+ '{% endhighlight %}\n' +
+ '\n' +
+ 'html:\n' +
+ '\n' +
+ '```html\n' +
+ '\n' +
+ '\n' +
+ '\n' +
+ ' \n' +
+ ' Title \n' +
+ ' \n' +
+ '\n' +
+ ' \n' +
+ ' Heading
\n' +
+ ' This is an example paragraph.
\n' +
+ ' \n' +
+ '\n' +
+ '\n' +
+ '```\n' +
+ '\n' +
+ 'css:\n' +
+ '```css\n' +
+ '.highlight pre {\n' +
+ ' width: 100%;\n' +
+ '}\n' +
+ '\n' +
+ '.highlight .hll {\n' +
+ ' background-color: $base06;\n' +
+ '}\n' +
+ '.highlight {\n' +
+ ' .c {\n' +
+ ' /* Comment */\n' +
+ ' color: $base04;\n' +
+ ' }\n' +
+ '}\n' +
+ '```\n' +
+ '\n' +
+ 'Javascript:\n' +
+ '\n' +
+ '```javascript\n' +
+ '$(document).ready(function() {\n' +
+ ' // FitVids init\n' +
+ ' $("#main").fitVids();\n' +
+ '\n' +
+ ' // Sticky sidebar\n' +
+ ' var stickySideBar = function() {\n' +
+ ' var show =\n' +
+ ' $(".author__urls-wrapper button").length === 0\n' +
+ ' ? $(window).width() > 1024 // width should match $large Sass variable\n' +
+ ' : !$(".author__urls-wrapper button").is(":visible");\n' +
+ ' if (show) {\n' +
+ ' // fix\n' +
+ ' $(".sidebar").addClass("sticky");\n' +
+ ' } else {\n' +
+ ' // unfix\n' +
+ ' $(".sidebar").removeClass("sticky");\n' +
+ ' }\n' +
+ ' };\n' +
+ '}\n' +
+ '```\n' +
+ '\n' +
+ 'notice
{: .notice} \n' +
+ 'primary
{: .notice--primary}\n' +
+ 'info
{: .notice--info}\n' +
+ 'warning
{: .notice--warning}\n' +
+ 'success
{: .notice--success}\n' +
+ 'danger
{: .notice--danger}\n' +
+ '\n' +
+ '\n' +
+ ' # Headline for the Notice\n' +
+ '
\n' +
+ ' Text for the notice\n' +
+ ''
+ },
+ readingPromise: Promise { [Object] },
+ _frontMatterDataCache: Promise { [Object] },
+ _frontMatter: {
+ content: '\n' +
+ "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.\n" +
+ '\n' +
+ '\n' +
+ '\n' +
+ 'SwiftUI simplifies designing interfaces\n' +
+ 'Provides a fast means of iterating design\n' +
+ 'Able to quickly see results\n' +
+ 'Easy to mock in data\n' +
+ '\n' +
+ 'Buggy.\n' +
+ 'Filled 3 bugs so far.\n' +
+ '\n' +
+ 'Swift:\n' +
+ '\n' +
+ '{% highlight swift %}\n' +
+ ' override public func touchesBegan(_ touches: Set, with event: UIEvent?) {\n' +
+ ' super.touchesBegan(touches, with: event)\n' +
+ ' currentTouchPosition = touches.first?.location(in: self)\n' +
+ '\n' +
+ ' NSObject.cancelPreviousPerformRequests(withTarget: self)\n' +
+ ' }\n' +
+ '{% endhighlight %}\n' +
+ '\n' +
+ 'Swift:\n' +
+ '\n' +
+ '```swift\n' +
+ 'def print_hi(name)\n' +
+ ' puts "Hi, #{name}"\n' +
+ 'end\n' +
+ "print_hi('Tom')\n" +
+ "#=> prints 'Hi, Tom' to STDOUT.\n" +
+ '```\n' +
+ '\n' +
+ 'Bash: \n' +
+ '```bash\n' +
+ '\n' +
+ '#!/usr/bin/env bash\n' +
+ 'set -e # halt script on error\n' +
+ '\n' +
+ 'echo\n' +
+ 'echo "---------------------------------------------------------------------------------------------------------------------"\n' +
+ 'if [ "$TRAVIS_PULL_REQUEST" != "false" -a "$TRAVIS_BRANCH" == "comments" ]; then\n' +
+ '\n' +
+ ' echo\n' +
+ ' echo "Building site for pull request for $TRAVIS_BRANCH..."\n' +
+ ' bundle exec jekyll build --config _config.yml --source . --destination ./docs\n' +
+ ' echo "Site built into /docs"\n' +
+ '\n' +
+ ' echo\n' +
+ ' echo "Proofing links"\n' +
+ ' bundle exec htmlproofer ./docs --disable-external --allow_hash_href\n' +
+ ' echo "Proofing links complete"\n' +
+ ' echo\n' +
+ ' echo "------------------------------------------------------------------------------------------------------------------------"\n' +
+ '\n' +
+ ' exit 0\n' +
+ '\n' +
+ 'elif [ "$TRAVIS_BRANCH" == "master" ]; then\n' +
+ '\n' +
+ ' echo\n' +
+ ' echo "Building site for $TRAVIS_BRANCH..."\n' +
+ ' bundle exec jekyll build --config _config.yml --source . --destination ./docs\n' +
+ ' echo "Site built into /docs"\n' +
+ '\n' +
+ ' echo\n' +
+ ' echo "Proofing links"\n' +
+ ' bundle exec htmlproofer ./docs --disable-external --allow_hash_href\n' +
+ ' echo "Proofing links complete"\n' +
+ ' echo\n' +
+ ' echo "------------------------------------------------------------------------------------------------------------------------"\n' +
+ '\n' +
+ ' exit 0\n' +
+ '\n' +
+ 'else\n' +
+ '\n' +
+ ' echo\n' +
+ ' echo "Build not triggered internally"\n' +
+ ' echo\n' +
+ ' echo "------------------------------------------------------------------------------------------------------------------------"\n' +
+ ' exit 0\n' +
+ '\n' +
+ 'fi\n' +
+ '```\n' +
+ '\n' +
+ 'Ruby:\n' +
+ '\n' +
+ '{% highlight ruby %}\n' +
+ 'require "gem"\n' +
+ '\n' +
+ 'number = 0\n' +
+ 'regexp = /[abc]/\n' +
+ '\n' +
+ '# This is a comment\n' +
+ 'class Person\n' +
+ ' \n' +
+ ' attr_accessor :name\n' +
+ ' \n' +
+ ' def initialize(attributes = {})\n' +
+ ' @name = attributes[:name]\n' +
+ ' end\n' +
+ ' \n' +
+ ' def self.greet\n' +
+ ' "hello"\n' +
+ ' end\n' +
+ 'end\n' +
+ '\n' +
+ 'person1 = Person.new(:name => "Chris")\n' +
+ 'puts "#{Person::greet} #{person1.name}\\n"\n' +
+ '{% endhighlight %}\n' +
+ '\n' +
+ 'html:\n' +
+ '\n' +
+ '```html\n' +
+ '\n' +
+ '\n' +
+ '\n' +
+ ' \n' +
+ ' Title \n' +
+ ' \n' +
+ '\n' +
+ ' \n' +
+ ' Heading
\n' +
+ ' This is an example paragraph.
\n' +
+ ' \n' +
+ '\n' +
+ '\n' +
+ '```\n' +
+ '\n' +
+ 'css:\n' +
+ '```css\n' +
+ '.highlight pre {\n' +
+ ' width: 100%;\n' +
+ '}\n' +
+ '\n' +
+ '.highlight .hll {\n' +
+ ' background-color: $base06;\n' +
+ '}\n' +
+ '.highlight {\n' +
+ ' .c {\n' +
+ ' /* Comment */\n' +
+ ' color: $base04;\n' +
+ ' }\n' +
+ '}\n' +
+ '```\n' +
+ '\n' +
+ 'Javascript:\n' +
+ '\n' +
+ '```javascript\n' +
+ '$(document).ready(function() {\n' +
+ ' // FitVids init\n' +
+ ' $("#main").fitVids();\n' +
+ '\n' +
+ ' // Sticky sidebar\n' +
+ ' var stickySideBar = function() {\n' +
+ ' var show =\n' +
+ ' $(".author__urls-wrapper button").length === 0\n' +
+ ' ? $(window).width() > 1024 // width should match $large Sass variable\n' +
+ ' : !$(".author__urls-wrapper button").is(":visible");\n' +
+ ' if (show) {\n' +
+ ' // fix\n' +
+ ' $(".sidebar").addClass("sticky");\n' +
+ ' } else {\n' +
+ ' // unfix\n' +
+ ' $(".sidebar").removeClass("sticky");\n' +
+ ' }\n' +
+ ' };\n' +
+ '}\n' +
+ '```\n' +
+ '\n' +
+ 'notice
{: .notice} \n' +
+ 'primary
{: .notice--primary}\n' +
+ 'info
{: .notice--info}\n' +
+ 'warning
{: .notice--warning}\n' +
+ 'success
{: .notice--success}\n' +
+ 'danger
{: .notice--danger}\n' +
+ '\n' +
+ '\n' +
+ ' # Headline for the Notice\n' +
+ '
\n' +
+ ' Text for the notice\n' +
+ '',
+ data: [Object],
+ isEmpty: false,
+ excerpt: '\n' +
+ "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.\n" +
+ '\n' +
+ '\n' +
+ '\n' +
+ 'SwiftUI simplifies designing interfaces\n' +
+ 'Provides a fast means of iterating design\n' +
+ 'Able to quickly see results\n' +
+ 'Easy to mock in data\n' +
+ '\n' +
+ 'Buggy.\n' +
+ 'Filled 3 bugs so far.\n' +
+ '\n' +
+ 'Swift:\n' +
+ '\n' +
+ '{% highlight swift %}\n' +
+ ' override public func touchesBegan(_ touches: Set, with event: UIEvent?) {\n' +
+ ' super.touchesBegan(touches, with: event)\n' +
+ ' currentTouchPosition = touches.first?.location(in: self)\n' +
+ '\n' +
+ ' NSObject.cancelPreviousPerformRequests(withTarget: self)\n' +
+ ' }\n' +
+ '{% endhighlight %}\n' +
+ '\n' +
+ 'Swift:\n' +
+ '\n' +
+ '```swift\n' +
+ 'def print_hi(name)\n' +
+ ' puts "Hi, #{name}"\n' +
+ 'end\n' +
+ "print_hi('Tom')\n" +
+ "#=> prints 'Hi, Tom' to STDOUT.\n" +
+ '```\n' +
+ '\n' +
+ 'Bash: \n' +
+ '```bash\n' +
+ '\n' +
+ '#!/usr/bin/env bash\n' +
+ 'set -e # halt script on error\n' +
+ '\n' +
+ 'echo\n' +
+ 'echo "'
+ },
+ _stats: Promise { [Stats] },
+ _dataCache: {
+ authors: [Object],
+ navigation: [Object],
+ 'ui-text': [Object],
+ site: [Object],
+ eleventy: [Object],
+ pkg: [Object],
+ layout: 'single',
+ author_profile: true,
+ read_time: true,
+ share: true,
+ related: true,
+ title: 'SwiftUI',
+ tags: [Array],
+ category: 'Programming',
+ page: [Object],
+ collections: [Object]
+ },
+ _usePermalinkRoot: undefined
+ },
+ data: {
+ authors: { robert_mcgovern: [Object] },
+ navigation: { main: [Array] },
+ 'ui-text': {
+ en: [Object],
+ 'en-US': [Object],
+ 'en-CA': [Object],
+ 'en-GB': [Object],
+ 'en-AU': [Object],
+ es: [Object],
+ 'es-ES': [Object],
+ 'es-CO': [Object],
+ fr: [Object],
+ 'fr-FR': [Object],
+ 'fr-BE': [Object],
+ 'fr-CH': [Object],
+ tr: [Object],
+ 'tr-TR': [Object],
+ pt: [Object],
+ 'pt-PT': [Object],
+ 'pt-BR': [Object],
+ it: [Object],
+ 'it-IT': [Object],
+ zh: [Object],
+ 'zh-CN': [Object],
+ 'zh-SG': [Object],
+ 'zh-TW': [Object],
+ 'zh-HK': [Object],
+ de: [Object],
+ 'de-DE': [Object],
+ 'de-AT': [Object],
+ 'de-CH': [Object],
+ 'de-BE': [Object],
+ 'de-LI': [Object],
+ 'de-LU': [Object],
+ ne: [Object],
+ 'ne-NP': [Object],
+ ko: [Object],
+ 'ko-KR': [Object],
+ ru: [Object],
+ 'ru-RU': [Object],
+ lt: [Object],
+ 'lt-LT': [Object],
+ gr: [Object],
+ 'gr-GR': [Object],
+ sv: [Object],
+ 'sv-SE': [Object],
+ 'sv-FI': [Object],
+ nl: [Object],
+ 'nl-BE': [Object],
+ 'nl-NL': [Object],
+ id: [Object],
+ 'id-ID': [Object],
+ vi: [Object],
+ 'vi-VN': [Object],
+ da: [Object],
+ 'da-DK': [Object],
+ pl: [Object],
+ 'pl-PL': [Object],
+ ja: [Object],
+ 'ja-JP': [Object],
+ sk: [Object],
+ 'sk-SK': [Object],
+ hu: [Object],
+ 'hu-HU': [Object],
+ ro: [Object],
+ 'ro-RO': [Object],
+ pa: [Object],
+ 'pa-IN': [Object],
+ fa: [Object],
+ 'fa-IR': [Object],
+ ml: [Object],
+ 'ml-IN': [Object],
+ th: [Object],
+ 'th-TH': [Object],
+ hi: [Object],
+ 'hi-IN': [Object],
+ ca: [Object],
+ 'ca-ES': [Object],
+ ga: [Object],
+ 'ga-IE': [Object],
+ fi: [Object],
+ my: [Object],
+ 'my-MM': [Object],
+ no: [Object],
+ 'no-NB': [Object],
+ 'no-NN': [Object],
+ he: [Object],
+ 'he-IL': [Object],
+ ar: [Object],
+ 'ar-SD': [Object],
+ 'ar-SA': [Object],
+ 'ar-AE': [Object],
+ 'ar-EG': [Object]
+ },
+ site: {
+ theme: 'minimal-mistakes-jekyll',
+ minimal_mistakes_skin: 'neon',
+ locale: 'en-US',
+ title: 'TDN: RMCG',
+ title_separator: '-',
+ name: 'Robert McGovern',
+ description: 'Random Things',
+ url: 'https://tarasis.net',
+ baseurl: '',
+ repository: null,
+ teaser: null,
+ logo: '/assets/images/apple-touch-icon.png',
+ masthead_title: '',
+ subtitle: 'π¨βπ» πΆββοΈ π π€―',
+ breadcrumbs: false,
+ breadcrumb_home_label: 'Home',
+ breadcrumb_separator: '>',
+ words_per_minute: 200,
+ head_scripts: [Array],
+ comments: [Object],
+ staticman: [Object],
+ atom_feed: [Object],
+ search: true,
+ search_full_content: true,
+ search_provider: 'lunr',
+ algolia: [Object],
+ google_site_verification: null,
+ bing_site_verification: null,
+ yandex_site_verification: null,
+ twitter: [Object],
+ facebook: [Object],
+ og_image: '/assets/images/bio-photo.jpg',
+ social: [Object],
+ analytics: [Object],
+ author: [Object],
+ footer: [Object],
+ include: [Array],
+ exclude: [Array],
+ keep_files: [Array],
+ encoding: 'utf-8',
+ markdown_ext: 'markdown,mkdown,mkdn,mkd,md',
+ strict_front_matter: true,
+ liquid: [Object],
+ markdown: 'kramdown',
+ highlighter: 'rouge',
+ lsi: false,
+ excerpt_separator: '',
+ incremental: false,
+ kramdown: [Object],
+ sass: [Object],
+ permalink: '/:year/:month/:day/:title/',
+ paginate: 10,
+ paginate_path: '/page:num/',
+ timezone: null,
+ plugins: [Array],
+ whitelist: [Array],
+ category_archive: [Object],
+ tag_archive: [Object],
+ compress_html: [Object],
+ collections: [Object],
+ defaults: [Object],
+ post_ext: 'markdown',
+ page_ext: 'html',
+ post_layout: 'single',
+ page_layout: 'page',
+ titlecase: true
+ },
+ eleventy: { version: '2.0.0', generator: 'Eleventy v2.0.0', env: [Object] },
+ pkg: {
+ name: 'tarasis.net',
+ version: '2.0.0',
+ description: 'Second generation of site using 11ty for building but using Jekyll theme Minimal Mistakes (with mods to make it work)',
+ main: 'index.js',
+ scripts: [Object],
+ repository: [Object],
+ keywords: [Array],
+ author: 'Robert McGovern et all',
+ license: 'MIT',
+ devDependencies: [Object],
+ dependencies: [Object]
+ },
+ layout: 'single',
+ author_profile: true,
+ read_time: true,
+ share: true,
+ related: true,
+ title: 'SwiftUI',
+ tags: [ 'swiftui', 'programming', 'ios', 'swift' ],
+ category: 'Programming',
+ page: {
+ excerpt: '\n' +
+ "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.\n" +
+ '\n' +
+ '\n' +
+ '\n' +
+ 'SwiftUI simplifies designing interfaces\n' +
+ 'Provides a fast means of iterating design\n' +
+ 'Able to quickly see results\n' +
+ 'Easy to mock in data\n' +
+ '\n' +
+ 'Buggy.\n' +
+ 'Filled 3 bugs so far.\n' +
+ '\n' +
+ 'Swift:\n' +
+ '\n' +
+ '{% highlight swift %}\n' +
+ ' override public func touchesBegan(_ touches: Set, with event: UIEvent?) {\n' +
+ ' super.touchesBegan(touches, with: event)\n' +
+ ' currentTouchPosition = touches.first?.location(in: self)\n' +
+ '\n' +
+ ' NSObject.cancelPreviousPerformRequests(withTarget: self)\n' +
+ ' }\n' +
+ '{% endhighlight %}\n' +
+ '\n' +
+ 'Swift:\n' +
+ '\n' +
+ '```swift\n' +
+ 'def print_hi(name)\n' +
+ ' puts "Hi, #{name}"\n' +
+ 'end\n' +
+ "print_hi('Tom')\n" +
+ "#=> prints 'Hi, Tom' to STDOUT.\n" +
+ '```\n' +
+ '\n' +
+ 'Bash: \n' +
+ '```bash\n' +
+ '\n' +
+ '#!/usr/bin/env bash\n' +
+ 'set -e # halt script on error\n' +
+ '\n' +
+ 'echo\n' +
+ 'echo "',
+ date: 2020-03-05T11:10:48.355Z,
+ inputPath: './src/_drafts/swiftui.md',
+ fileSlug: 'swiftui',
+ filePathStem: '/_drafts/swiftui',
+ outputFileExtension: 'html',
+ templateSyntax: 'liquid,md',
+ url: '/_drafts/swiftui/',
+ outputPath: 'dist/_drafts/swiftui/index.html'
+ },
+ collections: {
+ all: [Array],
+ life: [Array],
+ camino: [Array],
+ caminodesantiago: [Array],
+ webdev: [Array],
+ site: [Array],
+ frontendmentor: [Array],
+ javascript: [Array],
+ freecodecamp: [Array],
+ programming: [Array],
+ ios: [Array],
+ swift: [Array],
+ 'coding-challenges': [Array],
+ jakobsweg: [Array],
+ css: [Array],
+ caminofrances: [Array],
+ personal: [Array],
+ webdevelopment: [Array],
+ learning: [Array],
+ html: [Array],
+ swiftui: [Array],
+ pages: [Array],
+ posts: [Array],
+ projects: [],
+ tags: [Array]
+ }
+ },
+ page: {
+ excerpt: '\n' +
+ "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.\n" +
+ '\n' +
+ '\n' +
+ '\n' +
+ 'SwiftUI simplifies designing interfaces\n' +
+ 'Provides a fast means of iterating design\n' +
+ 'Able to quickly see results\n' +
+ 'Easy to mock in data\n' +
+ '\n' +
+ 'Buggy.\n' +
+ 'Filled 3 bugs so far.\n' +
+ '\n' +
+ 'Swift:\n' +
+ '\n' +
+ '{% highlight swift %}\n' +
+ ' override public func touchesBegan(_ touches: Set, with event: UIEvent?) {\n' +
+ ' super.touchesBegan(touches, with: event)\n' +
+ ' currentTouchPosition = touches.first?.location(in: self)\n' +
+ '\n' +
+ ' NSObject.cancelPreviousPerformRequests(withTarget: self)\n' +
+ ' }\n' +
+ '{% endhighlight %}\n' +
+ '\n' +
+ 'Swift:\n' +
+ '\n' +
+ '```swift\n' +
+ 'def print_hi(name)\n' +
+ ' puts "Hi, #{name}"\n' +
+ 'end\n' +
+ "print_hi('Tom')\n" +
+ "#=> prints 'Hi, Tom' to STDOUT.\n" +
+ '```\n' +
+ '\n' +
+ 'Bash: \n' +
+ '```bash\n' +
+ '\n' +
+ '#!/usr/bin/env bash\n' +
+ 'set -e # halt script on error\n' +
+ '\n' +
+ 'echo\n' +
+ 'echo "',
+ date: 2020-03-05T11:10:48.355Z,
+ inputPath: './src/_drafts/swiftui.md',
+ fileSlug: 'swiftui',
+ filePathStem: '/_drafts/swiftui',
+ outputFileExtension: 'html',
+ templateSyntax: 'liquid,md',
+ url: '/_drafts/swiftui/',
+ outputPath: 'dist/_drafts/swiftui/index.html'
+ },
+ inputPath: './src/_drafts/swiftui.md',
+ fileSlug: 'swiftui',
+ filePathStem: '/_drafts/swiftui',
+ date: 2020-03-05T11:10:48.355Z,
+ outputPath: 'dist/_drafts/swiftui/index.html',
+ url: '/_drafts/swiftui/',
+ templateContent: [Getter/Setter],
+ content: [Getter]
+}
+
+---
+
+content of object in collections.all
+
+{
+ content: [Getter],
+ data: {
+ 'ui-text': [Object],
+ authors: [Object],
+ category: 'coding-challenges',
+ collections: [Object],
+ eleventy: [Object],
+ navigation: [Object],
+ page: [Object],
+ pkg: [Object],
+ site: [Object],
+ tags: [Array],
+ title: 'Swift Coding Challenge 3 and 4'
+ },
+ date: 2020-04-22T22:50:03.539Z,
+ filePathStem: '/_drafts/swift-coding-challenge-3-and-4',
+ fileSlug: 'swift-coding-challenge-3-and-4',
+ inputPath: './src/_drafts/swift-coding-challenge-3-and-4.md',
+ outputPath: 'dist/_drafts/swift-coding-challenge-3-and-4/index.html',
+ page: {
+ date: 2020-04-22T22:50:03.539Z,
+ filePathStem: '/_drafts/swift-coding-challenge-3-and-4',
+ fileSlug: 'swift-coding-challenge-3-and-4',
+ inputPath: './src/_drafts/swift-coding-challenge-3-and-4.md',
+ outputFileExtension: 'html',
+ outputPath: 'dist/_drafts/swift-coding-challenge-3-and-4/index.html',
+ templateSyntax: 'liquid,md',
+ url: '/_drafts/swift-coding-challenge-3-and-4/'
+ },
+ template: Template {
+ _cacheFinalContent: '
+Challenge 3
+
+\n' +
+ '
+Take two strings, random order of letters and compare if they contain the same letters
+
+\n' +
+ '
+This was very quickly done. I remembered about sorted
+
+\n' +
+ '
+Challenge 4
+
+\n',
+ _cacheRenderedContent: '
+Challenge 3
+
+\n' +
+ '
+Take two strings, random order of letters and compare if they contain the same letters
+
+\n' +
+ '
+This was very quickly done. I remembered about sorted
+
+\n' +
+ '
+Challenge 4
+
+\n',
+ _config: [TemplateConfig],
+ _dataCache: [Object],
+ _extensionMap: [EleventyExtensionMap],
+ _frontMatter: [Object],
+ _frontMatterDataCache: [Promise],
+ _logger: [ConsoleLogger],
+ _stats: [Promise],
+ _templateRender: [TemplateRender],
+ _usePermalinkRoot: undefined,
+ behavior: [TemplateBehavior],
+ extraOutputSubdirectory: '',
+ filePathStem: '/_drafts/swift-coding-challenge-3-and-4',
+ fileSlug: [TemplateFileSlug],
+ fileSlugStr: 'swift-coding-challenge-3-and-4',
+ inputContent: [Promise],
+ inputDir: 'src',
+ inputPath: './src/_drafts/swift-coding-challenge-3-and-4.md',
+ isDryRun: false,
+ isVerbose: true,
+ linters: [],
+ outputDir: 'dist',
+ outputFormat: 'fs',
+ parsed: [Object],
+ readingPromise: [Promise],
+ serverlessUrls: null,
+ templateData: [TemplateData],
+ transforms: [],
+ writeCount: 0
+ },
+ templateContent: [Getter/Setter],
+ url: '/_drafts/swift-coding-challenge-3-and-4/'
+ },
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 13dbb06..881623b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,6 +14,7 @@
"@11ty/eleventy-plugin-syntaxhighlight": "^4.2.0",
"@11ty/eleventy-upgrade-help": "^2.0.5",
"autoprefixer": "^10.4.13",
+ "const": "^1.0.0",
"eleventy-load": "^0.3.1",
"eleventy-load-css": "^0.3.0",
"eleventy-load-file": "^0.1.0",
@@ -23,6 +24,8 @@
"eleventy-plugin-toc": "^1.1.5",
"eleventy-xml-plugin": "^0.1.0",
"fs-extra": "^11.1.0",
+ "js-yaml": "^4.1.0",
+ "lightningcss-cli": "^1.18.0",
"markdown-it": "^13.0.1",
"markdown-it-anchor": "^8.6.6",
"markdown-it-attrs": "^4.1.6",
@@ -460,13 +463,9 @@
}
},
"node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/array-differ": {
"version": "3.0.0",
@@ -998,6 +997,11 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
+ "node_modules/const": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/const/-/const-1.0.0.tgz",
+ "integrity": "sha512-E24n5WFSXaU6+BFaCqImKvuoroCm4jzi4imyA0e20wODGm02n/PmfNLOdngkXAh9DYSEDZIQ/cR+ADEPD1GJpA=="
+ },
"node_modules/constantinople": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz",
@@ -1203,6 +1207,17 @@
"node": ">= 0.6.0"
}
},
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/dev-ip": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz",
@@ -1905,6 +1920,28 @@
"node": ">=6.0"
}
},
+ "node_modules/gray-matter/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/gray-matter/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/hamljs": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/hamljs/-/hamljs-0.6.2.tgz",
@@ -2569,13 +2606,11 @@
"dev": true
},
"node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
+ "argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
@@ -2732,6 +2767,187 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/lightningcss-cli": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-cli/-/lightningcss-cli-1.18.0.tgz",
+ "integrity": "sha512-vlb62UstivI6wrtHeEqQ+j2lDRgfqpDH7GRYIqRdMnGa+VqJsxtezkyUGN0eiYEIlvr0aFjDYPqsU4qW29UCfQ==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3"
+ },
+ "bin": {
+ "lightningcss": "lightningcss"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-cli-darwin-arm64": "1.18.0",
+ "lightningcss-cli-darwin-x64": "1.18.0",
+ "lightningcss-cli-linux-arm-gnueabihf": "1.18.0",
+ "lightningcss-cli-linux-arm64-gnu": "1.18.0",
+ "lightningcss-cli-linux-arm64-musl": "1.18.0",
+ "lightningcss-cli-linux-x64-gnu": "1.18.0",
+ "lightningcss-cli-linux-x64-musl": "1.18.0",
+ "lightningcss-cli-win32-x64-msvc": "1.18.0"
+ }
+ },
+ "node_modules/lightningcss-cli-darwin-arm64": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-cli-darwin-arm64/-/lightningcss-cli-darwin-arm64-1.18.0.tgz",
+ "integrity": "sha512-R52Gxx56roDw7GbfLFNnAalvTebirVASl42HDriVLlCgQYo0e9/ef2za0c+AYM/RZt7fgfGRIVXFEJVC5mESaw==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-cli-darwin-x64": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-cli-darwin-x64/-/lightningcss-cli-darwin-x64-1.18.0.tgz",
+ "integrity": "sha512-0F1xELsw/FdYcZJc7SvhQ14SRO0EXJPjuotS4hlWtQdl0bZQlI64IRGDAgFNnwrOl3ou3+bhmL/4dtVXzezKWA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-cli-linux-arm-gnueabihf": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-arm-gnueabihf/-/lightningcss-cli-linux-arm-gnueabihf-1.18.0.tgz",
+ "integrity": "sha512-LGqRajP4x2/onNh8Z/UMhyumC3FukFv1xouAp4Vp8U/SwOx5VRWboxgzUHW7IhyPrEi+O53F6LNrx5JCzdgOmA==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-cli-linux-arm64-gnu": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-arm64-gnu/-/lightningcss-cli-linux-arm64-gnu-1.18.0.tgz",
+ "integrity": "sha512-nDjCmZ9Kc3Be51Z7xL9tlYyCoE6bg7UzCZSSqBkOghId7DCmGoNf0RgU0+43YP27E29GyRJFRovsC8Rcv3wjgg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-cli-linux-arm64-musl": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-arm64-musl/-/lightningcss-cli-linux-arm64-musl-1.18.0.tgz",
+ "integrity": "sha512-4aOR3ZAn6eixplfOblc+daGIlSvYnTC1sz08kipOCXF0jahaCwJ7SaBBBCLusqfgCEDEz4gesam0YavHa1qZEQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-cli-linux-x64-gnu": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-x64-gnu/-/lightningcss-cli-linux-x64-gnu-1.18.0.tgz",
+ "integrity": "sha512-0WfiSirImUiHv+bsYCSlkwJFk4U6tkCRGABNM/0h0F9LYuXD7wgRnnT7F1i+xFS90KP/8ABjtk9//hKhf7lZaQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-cli-linux-x64-musl": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-x64-musl/-/lightningcss-cli-linux-x64-musl-1.18.0.tgz",
+ "integrity": "sha512-mlNAzk486pT6LNWOmzP7QQ9+WhcLzK6eAcMjTW7MhK+o2lgLmjVeFk+VEJ23tMLjwwjm+/mUaJM8fjTVfniK2A==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-cli-win32-x64-msvc": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-cli-win32-x64-msvc/-/lightningcss-cli-win32-x64-msvc-1.18.0.tgz",
+ "integrity": "sha512-Sx3/QJL1BqOwtxR+yXGGItamu66CB28mWPTpJ6Mv3Zuezpx6up//HmFA06BABBqgtQS2ocrf8+mj2/HMx2j8YQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
"node_modules/linkedom": {
"version": "0.14.21",
"resolved": "https://registry.npmjs.org/linkedom/-/linkedom-0.14.21.tgz",
@@ -2980,11 +3196,6 @@
"resolved": "https://registry.npmjs.org/markdown-it-regexp/-/markdown-it-regexp-0.4.0.tgz",
"integrity": "sha512-0XQmr46K/rMKnI93Y3CLXsHj4jIioRETTAiVnJnjrZCEkGaDOmUxTbZj/aZ17G5NlRcVpWBYjqpwSlQ9lj+Kxw=="
},
- "node_modules/markdown-it/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
"node_modules/markdownify": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/markdownify/-/markdownify-0.1.0.tgz",
diff --git a/package.json b/package.json
index de5ed4e..8340095 100644
--- a/package.json
+++ b/package.json
@@ -4,13 +4,13 @@
"description": "Second generation of site using 11ty for building but using Jekyll theme Minimal Mistakes (with mods to make it work)",
"main": "index.js",
"scripts": {
- "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",
+ "build:sass": "sass --load-path=src/_sass --style=compressed dist/assets/css/tocompile.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:*",
+ "clean": "rm -rf dist",
+ "postbuild": "",
+ "start": "npm-run-all clean build:eleventy build:sass --parallel watch:*",
+ "build": "npm-run-all clean build:eleventy build:sass",
"debug": "DEBUG=Eleventy:* eleventy"
},
"repository": {
@@ -34,6 +34,7 @@
"@11ty/eleventy-plugin-syntaxhighlight": "^4.2.0",
"@11ty/eleventy-upgrade-help": "^2.0.5",
"autoprefixer": "^10.4.13",
+ "const": "^1.0.0",
"eleventy-load": "^0.3.1",
"eleventy-load-css": "^0.3.0",
"eleventy-load-file": "^0.1.0",
@@ -43,6 +44,8 @@
"eleventy-plugin-toc": "^1.1.5",
"eleventy-xml-plugin": "^0.1.0",
"fs-extra": "^11.1.0",
+ "js-yaml": "^4.1.0",
+ "lightningcss-cli": "^1.18.0",
"markdown-it": "^13.0.1",
"markdown-it-anchor": "^8.6.6",
"markdown-it-attrs": "^4.1.6",
diff --git a/src/_data/navigation.yml b/src/_data/navigation.yml
index c8474b3..a1ae82b 100644
--- a/src/_data/navigation.yml
+++ b/src/_data/navigation.yml
@@ -1,9 +1,7 @@
# main links
main:
-# - title: ""
-# url: /docs/quick-start-guide/
- - title: "Posts"
- url: /year-archive/
+# - title: "Posts"
+# url: /year-archive/
- title: "Tags"
url: /tags/
- title: "Categories"
diff --git a/src/_data/site.json b/src/_data/site.json
index e1f80fd..e61bd2f 100644
--- a/src/_data/site.json
+++ b/src/_data/site.json
@@ -136,6 +136,11 @@
"icon": "fab fa-fw fa-twitter-square",
"url": "https://twitter.com/tarasis"
},
+ {
+ "label": "Mastodon",
+ "icon": "fab fa-fw fa-mastodon",
+ "url": "https://social.tarasis.net/@tarasis"
+ },
{
"label": "Facebook",
"icon": "fab fa-fw fa-facebook",
@@ -190,6 +195,11 @@
"icon": "fab fa-fw fa-twitter-square",
"url": "https://twitter.com/tarasis"
},
+ {
+ "label": "Mastodon",
+ "icon": "fab fa-fw fa-mastodon",
+ "url": "https://social.tarasis.net/@tarasis"
+ },
{
"label": "Facebook",
"icon": "fab fa-fw fa-facebook",
diff --git a/src/_drafts/an-ending.md b/src/_drafts/an-ending.md
index 5df524d..ded91ef 100644
--- a/src/_drafts/an-ending.md
+++ b/src/_drafts/an-ending.md
@@ -6,6 +6,7 @@ share: true
related: true
title: 'An End of Sorts'
tag: [Life, Work]
+eleventyExcludeFromCollections: true
---
Lets be clear up front: ITS MY **FAULT**.
diff --git a/src/_drafts/camino-de-santiago.md b/src/_drafts/camino-de-santiago.md
deleted file mode 100644
index a20a4d1..0000000
--- a/src/_drafts/camino-de-santiago.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-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.
\ No newline at end of file
diff --git a/src/_drafts/cashregister.md b/src/_drafts/cashregister.md
index a950df3..2e4b525 100644
--- a/src/_drafts/cashregister.md
+++ b/src/_drafts/cashregister.md
@@ -2,6 +2,8 @@
title: Cash Register Challenge on freeCodeCamp
tags: [webdev, javascript, freecodecamp]
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.
@@ -35,10 +37,10 @@ Example of the cash in drawer array:
]
```
-Sample input to function,
+Sample input to function,
```javascript
-checkCashRegister(3.26, 100, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])
+checkCashRegister(3.26, 100, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])
```
and the expected return object
diff --git a/src/_drafts/cssproperties.md b/src/_drafts/cssproperties.md
index 0fd771c..cfa0fd0 100644
--- a/src/_drafts/cssproperties.md
+++ b/src/_drafts/cssproperties.md
@@ -2,6 +2,7 @@
title: CSS Properties, or I have a problem.
tags: [webdev, css]
category: programming
+eleventyExcludeFromCollections: true
---
diff --git a/src/_drafts/femdeploy.md b/src/_drafts/femdeploy.md
index ed39511..3bcab91 100644
--- a/src/_drafts/femdeploy.md
+++ b/src/_drafts/femdeploy.md
@@ -2,6 +2,7 @@
title: What happens when I finish a Frontend Mentor Challenge
tags: [webdev, site, frontendmentor]
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.
diff --git a/src/_drafts/filtering.md b/src/_drafts/filtering.md
index c45eda9..03189cd 100644
--- a/src/_drafts/filtering.md
+++ b/src/_drafts/filtering.md
@@ -2,9 +2,11 @@
title: Filtering
tags: [webdev, javascript]
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.
What I realised as I was coding along, was that the video was reallymore about filtering data than what I might think of as a search bar. Which is fine, and totally not wrong, but I do find some of Kyle's choices suspect / curious.
diff --git a/src/_drafts/pretty-terminal-configs.md b/src/_drafts/pretty-terminal-configs.md
index 6be6884..5f0688b 100644
--- a/src/_drafts/pretty-terminal-configs.md
+++ b/src/_drafts/pretty-terminal-configs.md
@@ -1,4 +1,5 @@
---
layout: single
title: pretty-terminal-configs
+eleventyExcludeFromCollections: true
---
diff --git a/src/_drafts/superheroes.md b/src/_drafts/superheroes.md
index 6f15301..089e9b1 100644
--- a/src/_drafts/superheroes.md
+++ b/src/_drafts/superheroes.md
@@ -6,6 +6,7 @@ share: true
related: true
title: 'Superheroes'
tag: [Movies, TV, Comics]
+eleventyExcludeFromCollections: true
---
Test
diff --git a/src/_drafts/swift-coding-challenge-3-and-4.md b/src/_drafts/swift-coding-challenge-3-and-4.md
index 179b847..72874c8 100644
--- a/src/_drafts/swift-coding-challenge-3-and-4.md
+++ b/src/_drafts/swift-coding-challenge-3-and-4.md
@@ -6,6 +6,7 @@ tags:
- swift
- coding-challenges
category: coding-challenges
+eleventyExcludeFromCollections: true
---
# Challenge 3
diff --git a/src/_drafts/swiftui.md b/src/_drafts/swiftui.md
index cf97089..e64aa8e 100644
--- a/src/_drafts/swiftui.md
+++ b/src/_drafts/swiftui.md
@@ -7,6 +7,7 @@ related: true
title: SwiftUI
tags: [swiftui,programming,ios, swift]
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.
@@ -42,7 +43,7 @@ print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.
```
-Bash:
+Bash:
```bash
#!/usr/bin/env bash
@@ -103,13 +104,13 @@ regexp = /[abc]/
# This is a comment
class Person
-
+
attr_accessor :name
-
+
def initialize(attributes = {})
@name = attributes[:name]
end
-
+
def self.greet
"hello"
end
@@ -178,7 +179,7 @@ $(document).ready(function() {
}
```
-notice
{: .notice}
+notice
{: .notice}
primary
{: .notice--primary}
info
{: .notice--info}
warning
{: .notice--warning}
diff --git a/src/_drafts/terminal-colors.md b/src/_drafts/terminal-colors.md
index 5e8d4ba..3d89b8c 100644
--- a/src/_drafts/terminal-colors.md
+++ b/src/_drafts/terminal-colors.md
@@ -4,12 +4,14 @@ title: terminal-colors
tags:
- programming
category: programming
+eleventyExcludeFromCollections: true
+
---
Color ... I have a problem ...
-Or Colour if you're from the UK and associated territories.
+Or Colour if you're from the UK and associated territories.
Seriously, I legitimately have a problem. I need color when I am working with source code, the terminal or when I am reading computer books (like images, or source code).
diff --git a/src/_drafts/writeup.md b/src/_drafts/writeup.md
index ca586ef..952f4f9 100644
--- a/src/_drafts/writeup.md
+++ b/src/_drafts/writeup.md
@@ -2,6 +2,7 @@
title: Writeup
tags: [camino,caminodesantiago,jakobsweg,life]
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.
diff --git a/src/_includes/archive-single.html b/src/_includes/archive-single.html
index 6817480..09fb3c8 100644
--- a/src/_includes/archive-single.html
+++ b/src/_includes/archive-single.html
@@ -1,13 +1,13 @@
-{% if post.header.teaser %}
- {% capture teaser %}{{ post.header.teaser }}{% endcapture %}
+{% if include.aPost.data.title.header.teaser %}
+ {% capture teaser %}{{ include.aPost.data.title.header.teaser }}{% endcapture %}
{% else %}
{% assign teaser = site.teaser %}
{% endif %}
-{% if post.id %}
- {% assign title = post.title | markdownify | remove: "" | remove: "
" %}
+{% if include.aPost.data.id %}
+ {% assign title = include.aPost.data.title | markdownify | remove: "" | remove: "
" %}
{% else %}
- {% assign title = post.title %}
+ {% assign title = include.aPost.data.title %}
{% endif %}
@@ -18,13 +18,22 @@
{% endif %}
- {% if post.link %}
- {{ title }} Permalink
+ {% if include.aPost.data.link %}
+ {{ title }} Permalink
{% else %}
- {{ title }}
+ {{ title }}
{% endif %}
- {% include page__meta.html type=include.type %}
- {% if post.excerpt %}{{ post.excerpt | markdownify | strip_html | truncate: 160 }}
{% endif %}
+
+ {% include page__meta.html type=include.type content=include.aPost.data.content %}
+ {% if include.aPost.data.page.excerpt %}
+ {{ include.aPost.data.page.excerpt | markdownify | strip_html | truncate: 160 }}
+ {% elsif include.aPost.data.excerpt %}
+ {{ include.aPost.data.excerpt | markdownify | strip_html | truncate: 160 }}
+ {% else %}
+
+ {{ include.aPost.template._frontMatter.content strip_html | markdownify | truncate: 160 }}
+ {% endif %}
+
diff --git a/src/_includes/author-profile.html b/src/_includes/author-profile.html
index b5a4f41..c3cbc7c 100644
--- a/src/_includes/author-profile.html
+++ b/src/_includes/author-profile.html
@@ -29,7 +29,7 @@
{{ comments_label }}
@@ -16,7 +16,7 @@{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}
+{{ ui-text[site.locale].comments_title | default: "Comments" }}
{% assign comments = site.data.comments[page.slug] | sort %} {% for comment in comments %} @@ -33,29 +33,29 @@{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}
-{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} *
+{{ ui-text[site.locale].comments_label | default: "Leave a Comment" }}
+{{ ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} *
{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}
+{{ ui-text[site.locale].comments_title | default: "Comments" }}
{% assign comments = site.data.comments[page.slug] | sort %} {% for comment in comments %} @@ -107,29 +107,29 @@{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}
-{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} *
+{{ ui-text[site.locale].comments_label | default: "Leave a Comment" }}
+{{ ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} *
- {% if site.data.ui-text[site.locale].follow_label %} -- {{ site.data.ui-text[site.locale].follow_label }}
+ {% if ui-text[site.locale].follow_label %}
+ - {{ ui-text[site.locale].follow_label }}
{% endif %}
{% if site.footer.links %}
@@ -13,9 +13,9 @@
{% endif %}
{% unless site.atom_feed.hide %}
- - {{ site.data.ui-text[site.locale].feed_label | default: "Feed" }}
+ - {{ ui-text[site.locale].feed_label | default: "Feed" }}
{% endunless %}
{{ page.title }}
+ {% unless header.overlay_color or header.overlay_image %} +{{ title }}
{% endunless %} - {% for post in page.posts %} + {% for post in posts %} {% include archive-single.html %} {% endfor %}{{ page.title }}
+ {% unless header.overlay_color or header.overlay_image %} +{{ title }}
{% endunless %} {{ content }}{% for i in (1..categories_max) reversed %} - {% for category in site.categories %} - {% if category[1].size == i %} + {% for category in collections.categories %} + {% if collections[category].size == i %}-
-
- {{ category[0] }} {{ i }}
+
+ {{ category }} {{ i }}
{% endif %}
@@ -25,18 +23,18 @@ layout: archive
{% endfor %}
-{% assign entries_layout = page.entries_layout | default: 'list' %} +{% assign entries_layout = entries_layout | default: 'list' %} {% for i in (1..categories_max) reversed %} - {% for category in site.categories %} - {% if category[1].size == i %} -{{ category[0] }}
+ {% for category in collections.categories %} + {% if collections[category].size == i %} +{{ category }}
{{ site.data.ui-text[site.locale].recent_posts | default: "Recent Posts" }}
+{{ ui-text[site.locale].recent_posts | default: "Recent Posts" }}
{% if paginator %} {% assign posts = collections.posts %} @@ -18,7 +18,7 @@ paginator: {% assign entries_layout = page.entries_layout | default: 'list' %}{% assign postsInYear = site.posts | where_exp: "item", "item.hidden != true" | group_by_exp: 'post', 'post.date | date: "%Y"' %} @@ -26,7 +30,7 @@ layout: archive {% include archive-single.html type=entries_layout %} {% endfor %}
{{ page.title | markdownify | remove: "
" | remove: "
" }}{% endif %} + {% if title %}{{ title | markdownify | remove: "
" | remove: "
" }}{% endif %} {% include page__meta.html %}{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}
+{{ ui-text[site.locale].related_label | default: "You May Also Enjoy" }}
{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}
+{{ ui-text[site.locale].related_label | default: "You May Also Enjoy" }}
{% for i in (1..tags_max) reversed %} - {% for tag in site.tags %} - {% if tag[1].size == i %} + {% for tag in collections.tags %} + {% if collections[tag].size == i %}-
-
- {{ tag[0] }} {{ i }}
+
+ {{ tag }} {{ i }}
{% endif %}
@@ -27,16 +29,16 @@ layout: archive
{% assign entries_layout = page.entries_layout | default: 'list' %}
{% for i in (1..tags_max) reversed %}
- {% for tag in site.tags %}
- {% if tag[1].size == i %}
-
-
+
- {% for post in tag.last %}
- {% include archive-single.html type=entries_layout %}
+ {% for post in collections[tag] %}
+ {% include archive-single.html type=entries_layout, aPost=post %}
{% endfor %}
- {{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} ↑
+ {{ ui-text[site.locale].back_to_top | default: 'Back to Top' }} ↑
{% endif %}
{% endfor %}
diff --git a/src/_includes/masthead.html b/src/_includes/masthead.html
index 0c66aa6..e787577 100644
--- a/src/_includes/masthead.html
+++ b/src/_includes/masthead.html
@@ -12,7 +12,7 @@
{% if site.subtitle %}{{ site.subtitle }}{% endif %}
diff --git a/src/_includes/seo.html b/src/_includes/seo.html
index c9d01e9..315d01c 100644
--- a/src/_includes/seo.html
+++ b/src/_includes/seo.html
@@ -6,8 +6,8 @@
{% assign title_separator = site.title_separator | default: '-' | replace: '|', '|' %}
-{%- if page.title -%}
- {%- assign seo_title = page.title | append: " " | append: title_separator | append: " " | append: site.title -%}
+{%- if title -%}
+ {%- assign seo_title = title | append: " " | append: title_separator | append: " " | append: site.title -%}
{%- endif -%}
{%- if seo_title -%}
@@ -20,34 +20,34 @@
{%- assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
{% endif %}
-{%- assign seo_description = page.description | default: page.excerpt | default: site.description -%}
+{%- assign seo_description = description | default: excerpt | default: site.description -%}
{%- if seo_description -%}
{%- assign seo_description = seo_description | markdownify | strip_html | newline_to_br | strip_newlines | replace: '{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}
+{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}
{% if author.name %}
@@ -60,7 +60,7 @@
-
+
{% if seo_description %}
@@ -75,7 +75,7 @@
{% if site.twitter.username %}
-
+
@@ -94,12 +94,12 @@
{% endif %}
{% endif %}
-{% if page.date %}
-
+{% if date %}
+
{% endif %}
{% if og_type == "article" and page.last_modified_at %}
-
+
{% endif %}
{% if site.facebook %}
diff --git a/src/_includes/skip-links.html b/src/_includes/skip-links.html
index c2d5223..5786317 100644
--- a/src/_includes/skip-links.html
+++ b/src/_includes/skip-links.html
@@ -1,7 +1,7 @@
diff --git a/src/_includes/social-share.html b/src/_includes/social-share.html
index 0b37798..6fe7710 100644
--- a/src/_includes/social-share.html
+++ b/src/_includes/social-share.html
@@ -1,11 +1,11 @@
- {% if site.data.ui-text[site.locale].share_on_label %}
-
diff --git a/src/_includes/tag-list.html b/src/_includes/tag-list.html
index b16eca2..a6c0368 100644
--- a/src/_includes/tag-list.html
+++ b/src/_includes/tag-list.html
@@ -6,10 +6,10 @@
{% endcase %}
{% if site.tag_archive.path %}
- {% assign tags_sorted = page.tags | sort_natural %}
+ {% assign tags_sorted = tags | sort_natural %}
{{ tag[0] }}
+ {% for tag in collections.tags %} + {% if collections[tag].size == i %} +{{ tag }}
- {%- for link in site.data.navigation.main -%} + {%- for link in navigation.main -%}-
{{ link.title }}
@@ -20,12 +20,12 @@
{% if site.search == true %} {% endif %}diff --git a/src/_includes/nav_list.liquid b/src/_includes/nav_list.liquid index a035a5b..21781e4 100644 --- a/src/_includes/nav_list.liquid +++ b/src/_includes/nav_list.liquid @@ -3,7 +3,7 @@ diff --git a/src/_includes/post_pagination.html b/src/_includes/post_pagination.html index a93c627..5cc4207 100644 --- a/src/_includes/post_pagination.html +++ b/src/_includes/post_pagination.html @@ -1,14 +1,15 @@ -{% if page.previous or page.next %} + +{% if include.siblings.prev or include.siblings.next %} {% endif %} \ No newline at end of file diff --git a/src/_includes/search/algolia-search-scripts.html b/src/_includes/search/algolia-search-scripts.html index 2728d29..b6a02e6 100644 --- a/src/_includes/search/algolia-search-scripts.html +++ b/src/_includes/search/algolia-search-scripts.html @@ -37,7 +37,7 @@ search.addWidget( instantsearch.widgets.searchBox({ container: '.search-searchbar', {% unless site.algolia.powered_by == false %}poweredBy: true,{% endunless %} - placeholder: '{{ site.data.ui-text[site.locale].search_placeholder_text | default: "Enter your search term..." }}' + placeholder: '{{ ui-text[site.locale].search_placeholder_text | default: "Enter your search term..." }}' }) ); search.addWidget( @@ -45,7 +45,7 @@ search.addWidget( container: '.search-hits', templates: { item: hitTemplate, - empty: '{{ site.data.ui-text[site.locale].search_algolia_no_results | default: "No results" }}', + empty: '{{ ui-text[site.locale].search_algolia_no_results | default: "No results" }}', } }) ); diff --git a/src/_includes/search/search_form.html b/src/_includes/search/search_form.html index c346379..2416a75 100644 --- a/src/_includes/search/search_form.html +++ b/src/_includes/search/search_form.html @@ -4,17 +4,17 @@ {%- when "lunr" -%} {%- when "google" -%}
', ' ' | escape_once | strip -%} {%- endif -%} -{%- assign author = page.author | default: page.authors[0] | default: site.author -%} -{%- assign author = site.data.authors[author] | default: author -%} +{%- assign author = author | default: authors[0] | default: site.author -%} +{%- assign author = authors[author] | default: author -%} {%- if author.twitter -%} {%- assign author_twitter = author.twitter | replace: "@", "" -%} {%- endif -%} -{%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image | absolute_url -%} +{%- assign page_large_image = header.og_image | default: header.overlay_image | default: header.image | absolute_url -%} {%- assign page_large_image = page_large_image | escape -%} -{%- assign page_teaser_image = page.header.teaser | default: site.og_image | absolute_url -%} +{%- assign page_teaser_image = header.teaser | default: site.og_image | absolute_url -%} {%- assign page_teaser_image = page_teaser_image | escape -%} {%- assign site_og_image = site.og_image | absolute_url -%} {%- assign site_og_image = site_og_image | escape -%} -{%- if page.date -%} +{%- if date -%} {%- assign og_type = "article" -%} {%- else -%} {%- assign og_type = "website" -%} {%- endif -%} -
{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}
+ {% if ui-text[site.locale].share_on_label %} +{{ ui-text[site.locale].share_on_label | default: "Share on" }}
{% endif %} - Twitter + Twitter - Facebook + Facebook - LinkedIn + LinkedIn- {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} + {{ ui-text[site.locale].tags_label | default: "Tags:" }} {% for tag_word in tags_sorted %} {{ tag_word }}{% unless forloop.last %}, {% endunless %} diff --git a/src/_includes/toc.liquid b/src/_includes/toc.liquid index 6423ccd..80fa323 100644 --- a/src/_includes/toc.liquid +++ b/src/_includes/toc.liquid @@ -1,6 +1,6 @@
diff --git a/src/_layouts/single.html b/src/_layouts/single.html
index 71cb4e8..8223293 100644
--- a/src/_layouts/single.html
+++ b/src/_layouts/single.html
@@ -35,18 +35,18 @@ layout: default
{% if page.toc %}
{% endif %}
{{ content }}
- {% if page.link %}{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }} {% endif %}
+ {% if page.link %}{{ ui-text[site.locale].ext_link_label | default: "Direct Link" }} {% endif %}