From 60d6e783436e88e797e0cea6b36c364242d9ec6a Mon Sep 17 00:00:00 2001 From: Keith Irwin Date: Thu, 17 Jun 2021 17:02:30 -0600 Subject: [PATCH] Initial setup and content --- .editorconfig | 2 +- .eleventy.js | 112 +++++------ .travis.yml | 14 -- README.md | 2 +- _src/404.md | 2 +- _src/_data/metadata.json | 13 +- _src/_includes/base.njk | 17 ++ _src/_includes/layouts/base.njk | 45 ----- _src/_includes/layouts/home.njk | 5 - _src/_includes/layouts/post.njk | 23 --- _src/_includes/postslist.njk | 12 -- _src/about/index.md | 10 - _src/archive.njk | 12 -- _src/base.css | 13 ++ _src/css/index.css | 247 ------------------------- _src/css/prism-base16-monokai.dark.css | 89 --------- _src/feed/feed.njk | 29 --- _src/feed/htaccess.njk | 6 - _src/feed/json.njk | 32 ---- _src/gf4.ca.crt | 34 ++++ _src/img/.gitkeep | 0 _src/index.njk | 16 +- _src/page-list.njk | 24 --- _src/posts/firstpost.md | 26 --- _src/posts/fourthpost.md | 15 -- _src/posts/posts.json | 5 - _src/posts/secondpost.md | 18 -- _src/posts/thirdpost.md | 28 --- _src/sitemap.xml.njk | 14 -- _src/tags-list.njk | 10 - _src/tags.njk | 23 --- netlify.toml | 3 - package.json | 1 - 33 files changed, 132 insertions(+), 770 deletions(-) delete mode 100644 .travis.yml create mode 100644 _src/_includes/base.njk delete mode 100644 _src/_includes/layouts/base.njk delete mode 100644 _src/_includes/layouts/home.njk delete mode 100644 _src/_includes/layouts/post.njk delete mode 100644 _src/_includes/postslist.njk delete mode 100644 _src/about/index.md delete mode 100644 _src/archive.njk create mode 100644 _src/base.css delete mode 100644 _src/css/index.css delete mode 100644 _src/css/prism-base16-monokai.dark.css delete mode 100755 _src/feed/feed.njk delete mode 100644 _src/feed/htaccess.njk delete mode 100644 _src/feed/json.njk create mode 100644 _src/gf4.ca.crt delete mode 100644 _src/img/.gitkeep delete mode 100644 _src/page-list.njk delete mode 100644 _src/posts/firstpost.md delete mode 100644 _src/posts/fourthpost.md delete mode 100644 _src/posts/posts.json delete mode 100644 _src/posts/secondpost.md delete mode 100644 _src/posts/thirdpost.md delete mode 100644 _src/sitemap.xml.njk delete mode 100644 _src/tags-list.njk delete mode 100644 _src/tags.njk delete mode 100644 netlify.toml diff --git a/.editorconfig b/.editorconfig index d415404..844771f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,7 +1,7 @@ root = true [*] -indent_style = space +indent_style = tab indent_size = 2 end_of_line = lf insert_final_newline = true diff --git a/.eleventy.js b/.eleventy.js index abb8a8f..4e4f328 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -1,64 +1,63 @@ -const { DateTime } = require("luxon"); -const fs = require("fs"); -const pluginRss = require("@11ty/eleventy-plugin-rss"); -const pluginSyntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight"); -const pluginNavigation = require("@11ty/eleventy-navigation"); -const markdownIt = require("markdown-it"); -const markdownItAnchor = require("markdown-it-anchor"); +const { DateTime } = require('luxon') +const fs = require('fs') +const pluginRss = require('@11ty/eleventy-plugin-rss') +const pluginNavigation = require('@11ty/eleventy-navigation') +const markdownIt = require('markdown-it') +const markdownItAnchor = require('markdown-it-anchor') module.exports = function(eleventyConfig) { // Add plugins - eleventyConfig.addPlugin(pluginRss); - eleventyConfig.addPlugin(pluginSyntaxHighlight); - eleventyConfig.addPlugin(pluginNavigation); + eleventyConfig.addPlugin(pluginRss) + eleventyConfig.addPlugin(pluginNavigation) // https://www.11ty.dev/docs/data-deep-merge/ - eleventyConfig.setDataDeepMerge(true); + eleventyConfig.setDataDeepMerge(true) // Alias `layout: post` to `layout: layouts/post.njk` - eleventyConfig.addLayoutAlias("post", "layouts/post.njk"); + eleventyConfig.addLayoutAlias('post', 'layouts/post.njk') - eleventyConfig.addFilter("readableDate", dateObj => { - return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toFormat("dd LLL yyyy"); - }); + eleventyConfig.addFilter('readableDate', dateObj => { + return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toFormat('dd LLL yyyy') + }) // https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string eleventyConfig.addFilter('htmlDateString', (dateObj) => { - return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toFormat('yyyy-LL-dd'); - }); + return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toFormat('yyyy-LL-dd') + }) // Get the first `n` elements of a collection. - eleventyConfig.addFilter("head", (array, n) => { + eleventyConfig.addFilter('head', (array, n) => { if( n < 0 ) { - return array.slice(n); + return array.slice(n) } - return array.slice(0, n); - }); + return array.slice(0, n) + }) // Return the smallest number argument - eleventyConfig.addFilter("min", (...numbers) => { - return Math.min.apply(null, numbers); - }); + eleventyConfig.addFilter('min', (...numbers) => { + return Math.min.apply(null, numbers) + }) - eleventyConfig.addFilter("filterTagList", tags => { + eleventyConfig.addFilter('filterTagList', tags => { // should match the list in tags.njk - return (tags || []).filter(tag => ["all", "nav", "post", "posts"].indexOf(tag) === -1); + return (tags || []).filter(tag => ['all', 'nav', 'post', 'posts'].indexOf(tag) === -1) }) // Create an array of all tags - eleventyConfig.addCollection("tagList", function(collection) { - let tagSet = new Set(); + eleventyConfig.addCollection('tagList', function(collection) { + let tagSet = new Set() collection.getAll().forEach(item => { - (item.data.tags || []).forEach(tag => tagSet.add(tag)); - }); + (item.data.tags || []).forEach(tag => tagSet.add(tag)) + }) - return [...tagSet]; - }); + return [...tagSet] + }) // Copy the `img` and `css` folders to the output - eleventyConfig.addPassthroughCopy("img"); - eleventyConfig.addPassthroughCopy("css"); + // ki9: passthrough done by template languages, see below + //eleventyConfig.addPassthroughCopy('img') + //eleventyConfig.addPassthroughCopy('css') // Customize Markdown library and settings: let markdownLibrary = markdownIt({ @@ -69,26 +68,26 @@ module.exports = function(eleventyConfig) { permalink: true, permalinkClass: "direct-link", permalinkSymbol: "#" - }); - eleventyConfig.setLibrary("md", markdownLibrary); + }) + eleventyConfig.setLibrary("md", markdownLibrary) // Override Browsersync defaults (used only with --serve) eleventyConfig.setBrowserSyncConfig({ callbacks: { ready: function(err, browserSync) { - const content_404 = fs.readFileSync('_dist/404.html'); + const content_404 = fs.readFileSync('_dist/404.html') browserSync.addMiddleware("*", (req, res) => { // Provides the 404 content without redirect. - res.writeHead(404, {"Content-Type": "text/html; charset=UTF-8"}); - res.write(content_404); - res.end(); - }); + res.writeHead(404, {"Content-Type": "text/html charset=UTF-8"}) + res.write(content_404) + res.end() + }) }, }, ui: false, ghostMode: false - }); + }) return { // Control which files Eleventy will process @@ -96,39 +95,44 @@ module.exports = function(eleventyConfig) { templateFormats: [ "md", "njk", - "html", - "liquid" + 'html', + 'liquid', + 'css', + 'png', + 'jpg', + 'gif', + 'js', ], // ----------------------------------------------------------------- // If your site deploys to a subdirectory, change `pathPrefix`. // Don’t worry about leading and trailing slashes, we normalize these. - // If you don’t have a subdirectory, use "" or "/" (they do the same thing) + // If you don’t have a subdirectory, use "" or "/' (they do the same thing) // This is only used for link URLs (it does not affect your file structure) // Best paired with the `url` filter: https://www.11ty.dev/docs/filters/url/ // You can also pass this in on the command line using `--pathprefix` // Optional (default is shown) - pathPrefix: "/", + pathPrefix: '/', // ----------------------------------------------------------------- // Pre-process *.md files with: (default: `liquid`) - markdownTemplateEngine: "njk", + markdownTemplateEngine: 'njk', // Pre-process *.html files with: (default: `liquid`) - htmlTemplateEngine: "njk", + htmlTemplateEngine: 'njk', // Opt-out of pre-processing global data JSON files: (default: `liquid`) dataTemplateEngine: false, // These are all optional (defaults are shown): dir: { - input: "_src", - includes: "_includes", - data: "_data", - output: "_dist" + input: '_src', + includes: '_includes', + data: '_data', + output: '_dist' } - }; -}; + } +} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3c4e436..0000000 --- a/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -language: node_js -node_js: - - 12 -before_script: - - npm install @11ty/eleventy -g -script: eleventy --pathprefix="/eleventy-base-blog/" -deploy: - local-dir: _dist - provider: pages - skip-cleanup: true - github-token: $GITHUB_TOKEN # Set in travis-ci.org dashboard, marked secure - keep-history: true - on: - branch: master diff --git a/README.md b/README.md index fb7724c..7093311 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,6 @@ DEBUG=* npx eleventy * The blog post feed template is in `feed/feed.njk`. This is also a good example of using a global data files in that it uses `_data/metadata.json`. * This example uses three layouts: * `_includes/layouts/base.njk`: the top level HTML structure - * `_includes/layouts/home.njk`: the home page template (wrapped into `base.njk`) + * `_includes/base.njk`: the home page template (wrapped into `base.njk`) * `_includes/layouts/post.njk`: the blog post template (wrapped into `base.njk`) * `_includes/postlist.njk` is a Nunjucks include and is a reusable component used to display a list of all the posts. `index.njk` has an example of how to use it. diff --git a/_src/404.md b/_src/404.md index 8b9aeea..90397dc 100644 --- a/_src/404.md +++ b/_src/404.md @@ -1,5 +1,5 @@ --- -layout: layouts/home.njk +layout: base.njk permalink: 404.html eleventyExcludeFromCollections: true --- diff --git a/_src/_data/metadata.json b/_src/_data/metadata.json index 7431631..7ed01c2 100644 --- a/_src/_data/metadata.json +++ b/_src/_data/metadata.json @@ -2,16 +2,5 @@ "title": "Galactic Fortress 4", "url": "https://www.gf4.pw/", "language": "en", - "description": "Galactic Fortress 4 is a private virtual hackerspace.", - - "feed": { - "subtitle": "Galactic Fortress 4 is a private virtual hackerspace.", - "filename": "feed.xml", - "path": "/feed/feed.xml", - "id": "https://www.gf4.pw/" - }, - "jsonfeed": { - "path": "/feed/feed.json", - "url": "https://www.gf4.pw/feed/feed.json" - } + "description": "Galactic Fortress 4 is a private virtual hackerspace." } diff --git a/_src/_includes/base.njk b/_src/_includes/base.njk new file mode 100644 index 0000000..aaef1c0 --- /dev/null +++ b/_src/_includes/base.njk @@ -0,0 +1,17 @@ + + + + + + {{ title or metadata.title }} + + + + + + +
+ {{ content | safe }} +
+ + diff --git a/_src/_includes/layouts/base.njk b/_src/_includes/layouts/base.njk deleted file mode 100644 index ad6569e..0000000 --- a/_src/_includes/layouts/base.njk +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - {{ title or metadata.title }} - - - - - - - -
-

{{ metadata.title }}

- - {#- Read more about `eleventy-navigation` at https://www.11ty.dev/docs/plugins/navigation/ #} - -
- - - - -
-
    -
  1. Edit the _data/metadata.json with your blog’s information.
  2. -
  3. (Optional) Edit .eleventy.js with your configuration preferences.
  4. -
  5. Delete this message from _includes/layouts/base.njk.
  6. -
-

This is an Eleventy project created from the eleventy-base-blog repo.

-
- - - {{ content | safe }} - - -
- - - - diff --git a/_src/_includes/layouts/home.njk b/_src/_includes/layouts/home.njk deleted file mode 100644 index ebba6b3..0000000 --- a/_src/_includes/layouts/home.njk +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: layouts/base.njk -templateClass: tmpl-home ---- -{{ content | safe }} diff --git a/_src/_includes/layouts/post.njk b/_src/_includes/layouts/post.njk deleted file mode 100644 index 27d6e20..0000000 --- a/_src/_includes/layouts/post.njk +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: layouts/base.njk -templateClass: tmpl-post ---- -

{{ title }}

- - -{%- for tag in tags | filterTagList -%} -{%- set tagUrl %}/tags/{{ tag | slug }}/{% endset -%} - -{%- endfor %} - -{{ content | safe }} - -{%- set nextPost = collections.posts | getNextCollectionItem(page) %} -{%- set previousPost = collections.posts | getPreviousCollectionItem(page) %} -{%- if nextPost or previousPost %} -
- -{%- endif %} diff --git a/_src/_includes/postslist.njk b/_src/_includes/postslist.njk deleted file mode 100644 index d220513..0000000 --- a/_src/_includes/postslist.njk +++ /dev/null @@ -1,12 +0,0 @@ -
    -{% for post in postslist | reverse %} -
  1. - {% if post.data.title %}{{ post.data.title }}{% else %}{{ post.url }}{% endif %} - - {% for tag in post.data.tags | filterTagList %} - {% set tagUrl %}/tags/{{ tag | slug }}/{% endset %} - - {% endfor %} -
  2. -{% endfor %} -
diff --git a/_src/about/index.md b/_src/about/index.md deleted file mode 100644 index c74e8ba..0000000 --- a/_src/about/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: layouts/post.njk -title: About Me -templateClass: tmpl-post -eleventyNavigation: - key: About Me - order: 3 ---- - -I am a person that writes stuff. diff --git a/_src/archive.njk b/_src/archive.njk deleted file mode 100644 index 0b277a8..0000000 --- a/_src/archive.njk +++ /dev/null @@ -1,12 +0,0 @@ ---- -layout: layouts/home.njk -permalink: /posts/ -eleventyNavigation: - key: Archive - order: 2 ---- - -

Archive

- -{% set postslist = collections.posts %} -{% include "postslist.njk" %} diff --git a/_src/base.css b/_src/base.css new file mode 100644 index 0000000..b58f466 --- /dev/null +++ b/_src/base.css @@ -0,0 +1,13 @@ +html { + margin: 0; + color: #a8d; + background-color: #020202; +} +body { + margin: 1vw; + font-size: calc(1em + 1vw); +} +main { + margin: 3vw; + font-family: monospace; +} diff --git a/_src/css/index.css b/_src/css/index.css deleted file mode 100644 index 514f370..0000000 --- a/_src/css/index.css +++ /dev/null @@ -1,247 +0,0 @@ -/* Colors */ -:root { - --lightgray: #e0e0e0; - --gray: #C0C0C0; - --darkgray: #333; - --navy: #17050F; - --blue: #082840; - --white: #fff; -} - -/* Global stylesheet */ -* { - box-sizing: border-box; -} - -html, -body { - padding: 0; - margin: 0; - font-family: -apple-system, system-ui, sans-serif; - color: var(--darkgray); - background-color: var(--white); -} -p:last-child { - margin-bottom: 0; -} -p, -.tmpl-post li, -img { - max-width: 37.5em; /* 600px /16 */ -} -p, -.tmpl-post li { - line-height: 1.45; -} -a[href] { - color: var(--blue); -} -a[href]:visited { - color: var(--navy); -} -main { - padding: 1rem; -} -main :first-child { - margin-top: 0; -} -header { - border-bottom: 1px dashed var(--lightgray); -} -header:after { - content: ""; - display: table; - clear: both; -} -table { - margin: 1em 0; -} -table td, -table th { - padding-right: 1em; -} - -pre, -code { - font-family: Consolas, Menlo, Monaco, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", "Courier New", Courier, monospace; - line-height: 1.5; -} -pre { - font-size: 14px; - line-height: 1.375; - direction: ltr; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; - padding: 1em; - margin: .5em 0; - background-color: #f6f6f6; -} -code { - word-break: break-all; -} -.highlight-line { - display: block; - padding: 0.125em 1em; - text-decoration: none; /* override del, ins, mark defaults */ - color: inherit; /* override del, ins, mark defaults */ -} - -/* allow highlighting empty lines */ -.highlight-line:empty:before { - content: " "; -} -/* avoid double line breaks when using display: block; */ -.highlight-line + br { - display: none; -} - -.highlight-line-isdir { - color: #b0b0b0; - background-color: #222; -} -.highlight-line-active { - background-color: #444; - background-color: hsla(0, 0%, 27%, .8); -} -.highlight-line-add { - background-color: #45844b; -} -.highlight-line-remove { - background-color: #902f2f; -} - -/* Header */ -.home { - padding: 0 1rem; - float: left; - margin: 1rem 0; /* 16px /16 */ - font-size: 1em; /* 16px /16 */ -} -.home :link:not(:hover) { - text-decoration: none; -} - -/* Nav */ -.nav { - padding: 0; - list-style: none; - float: left; - margin-left: 1em; -} -.nav-item { - display: inline-block; - margin-right: 1em; -} -.nav-item a[href]:not(:hover) { - text-decoration: none; -} -.nav-item-active { - font-weight: 700; - text-decoration: underline; -} - -/* Posts list */ -.postlist { - list-style: none; - padding: 0; -} -.postlist-item { - display: flex; - flex-wrap: wrap; - align-items: baseline; - counter-increment: start-from -1; - line-height: 1.8; -} -.postlist-item:before { - display: inline-block; - pointer-events: none; - content: "" counter(start-from, decimal-leading-zero) ". "; - line-height: 100%; - text-align: right; -} -.postlist-date, -.postlist-item:before { - font-size: 0.8125em; /* 13px /16 */ - color: var(--darkgray); -} -.postlist-date { - word-spacing: -0.5px; -} -.postlist-link { - padding-left: .25em; - padding-right: .25em; - text-underline-position: from-font; - text-underline-offset: 0; - text-decoration-thickness: 1px; -} -.postlist-item-active .postlist-link { - font-weight: bold; -} -.tmpl-home .postlist-link { - font-size: 1.1875em; /* 19px /16 */ - font-weight: 700; -} - - -/* Tags */ -.post-tag { - display: inline-flex; - align-items: center; - justify-content: center; - text-transform: uppercase; - font-size: 0.6875em; /* 11px /16 */ - padding: 0.09090909090909em 0.3636363636364em; /* 1px 4px /11 */ - margin-left: 0.8em; /* 8px /10 */ - color: var(--darkgray); - border: 1px solid var(--gray); - border-radius: 0.25em; /* 3px /12 */ - text-decoration: none; - line-height: 1.8; -} -a[href].post-tag, -a[href].post-tag:visited { - color: inherit; -} -a[href].post-tag:hover, -a[href].post-tag:focus { - background-color: var(--lightgray); -} -.postlist-item > .post-tag { - align-self: center; -} - -/* Warning */ -.warning { - background-color: #ffc; - padding: 1em 0.625em; /* 16px 10px /16 */ -} -.warning ol:only-child { - margin: 0; -} - -/* Direct Links / Markdown Headers */ -.direct-link { - font-family: sans-serif; - text-decoration: none; - font-style: normal; - margin-left: .1em; -} -a[href].direct-link, -a[href].direct-link:visited { - color: transparent; -} -a[href].direct-link:focus, -a[href].direct-link:focus:visited, -:hover > a[href].direct-link, -:hover > a[href].direct-link:visited { - color: #aaa; -} diff --git a/_src/css/prism-base16-monokai.dark.css b/_src/css/prism-base16-monokai.dark.css deleted file mode 100644 index dceb2a6..0000000 --- a/_src/css/prism-base16-monokai.dark.css +++ /dev/null @@ -1,89 +0,0 @@ -code[class*="language-"], pre[class*="language-"] { - font-size: 14px; - line-height: 1.375; - direction: ltr; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; - background: #272822; - color: #f8f8f2; -} -pre[class*="language-"] { - padding: 1.5em 0; - margin: .5em 0; - overflow: auto; -} -:not(pre) > code[class*="language-"] { - padding: .1em; - border-radius: .3em; -} -.token.comment, .token.prolog, .token.doctype, .token.cdata { - color: #75715e; -} -.token.punctuation { - color: #f8f8f2; -} -.token.namespace { - opacity: .7; -} -.token.operator, .token.boolean, .token.number { - color: #fd971f; -} -.token.property { - color: #f4bf75; -} -.token.tag { - color: #66d9ef; -} -.token.string { - color: #a1efe4; -} -.token.selector { - color: #ae81ff; -} -.token.attr-name { - color: #fd971f; -} -.token.entity, .token.url, .language-css .token.string, .style .token.string { - color: #a1efe4; -} -.token.attr-value, .token.keyword, .token.control, .token.directive, .token.unit { - color: #a6e22e; -} -.token.statement, .token.regex, .token.atrule { - color: #a1efe4; -} -.token.placeholder, .token.variable { - color: #66d9ef; -} -.token.deleted { - text-decoration: line-through; -} -.token.inserted { - border-bottom: 1px dotted #f9f8f5; - text-decoration: none; -} -.token.italic { - font-style: italic; -} -.token.important, .token.bold { - font-weight: bold; -} -.token.important { - color: #f92672; -} -.token.entity { - cursor: help; -} -pre > code.highlight { - outline: 0.4em solid #f92672; - outline-offset: .4em; -} diff --git a/_src/feed/feed.njk b/_src/feed/feed.njk deleted file mode 100755 index 161fc93..0000000 --- a/_src/feed/feed.njk +++ /dev/null @@ -1,29 +0,0 @@ ---- -# Metadata comes from _data/metadata.json -permalink: "{{ metadata.feed.path }}" -eleventyExcludeFromCollections: true ---- - - - {{ metadata.title }} - {{ metadata.feed.subtitle }} - {% set absoluteUrl %}{{ metadata.feed.path | url | absoluteUrl(metadata.url) }}{% endset %} - - - {{ collections.posts | rssLastUpdatedDate }} - {{ metadata.feed.id }} - - {{ metadata.author.name }} - {{ metadata.author.email }} - - {%- for post in collections.posts | reverse %} - {% set absolutePostUrl %}{{ post.url | url | absoluteUrl(metadata.url) }}{% endset %} - - {{ post.data.title }} - - {{ post.date | rssDate }} - {{ absolutePostUrl }} - {{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }} - - {%- endfor %} - diff --git a/_src/feed/htaccess.njk b/_src/feed/htaccess.njk deleted file mode 100644 index ac4a3c5..0000000 --- a/_src/feed/htaccess.njk +++ /dev/null @@ -1,6 +0,0 @@ ---- -permalink: feed/.htaccess -eleventyExcludeFromCollections: true ---- -# For Apache, to show `{{ metadata.feed.filename }}` when browsing to directory /feed/ (hide the file!) -DirectoryIndex {{ metadata.feed.filename }} diff --git a/_src/feed/json.njk b/_src/feed/json.njk deleted file mode 100644 index 40bba3c..0000000 --- a/_src/feed/json.njk +++ /dev/null @@ -1,32 +0,0 @@ ---- -# Metadata comes from _data/metadata.json -permalink: "{{ metadata.jsonfeed.path }}" -eleventyExcludeFromCollections: true ---- -{ - "version": "https://jsonfeed.org/version/1.1", - "title": "{{ metadata.title }}", - "language": "{{ metadata.language }}", - "home_page_url": "{{ metadata.url }}", - "feed_url": "{{ metadata.jsonfeed.url }}", - "description": "{{ metadata.description }}", - "author": { - "name": "{{ metadata.author.name }}", - "url": "{{ metadata.author.url }}" - }, - "items": [ - {%- for post in collections.posts | reverse %} - {%- set absolutePostUrl %}{{ post.url | url | absoluteUrl(metadata.url) }}{% endset -%} - { - "id": "{{ absolutePostUrl }}", - "url": "{{ absolutePostUrl }}", - "title": "{{ post.data.title }}", - "content_html": {% if post.templateContent %}{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) | dump | safe }}{% else %}""{% endif %}, - "date_published": "{{ post.date | rssDate }}" - } - {%- if not loop.last -%} - , - {%- endif -%} - {%- endfor %} - ] -} diff --git a/_src/gf4.ca.crt b/_src/gf4.ca.crt new file mode 100644 index 0000000..af1ae7f --- /dev/null +++ b/_src/gf4.ca.crt @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- diff --git a/_src/img/.gitkeep b/_src/img/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/_src/index.njk b/_src/index.njk index bf096f7..b3cbaf0 100644 --- a/_src/index.njk +++ b/_src/index.njk @@ -1,14 +1,10 @@ --- -layout: layouts/home.njk -eleventyNavigation: - key: Home - order: 1 +title: Galactic Fortress 4 +layout: base.njk --- -{% set maxPosts = collections.posts.length | min(3) %} -

Latest {% if maxPosts == 1 %}Post{% else %}{{ maxPosts }} Posts{% endif %}

-{% set postslist = collections.posts | head(-3) %} -{% set postslistCounter = collections.posts | length %} -{% include "postslist.njk" %} +

{{title}}

-

More posts can be found in the archive.

+

GF4 is a virtual private hackerspace. We are nerds, sharing computer resources and hosted services on a shared virtual private network.

+ +

We host a matrix server and an Urban Terror server on gf4.pw. You can usually find us there.

diff --git a/_src/page-list.njk b/_src/page-list.njk deleted file mode 100644 index cb53ec6..0000000 --- a/_src/page-list.njk +++ /dev/null @@ -1,24 +0,0 @@ ---- -pagination: - data: collections.all - size: 20 - alias: entries -layout: layouts/home.njk -permalink: /page-list/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %} ---- - - - - - - - - -{%- for entry in entries %} - - - - -{%- endfor %} - -
URLPage Title
{{ entry.url }}{{ entry.data.title }}
diff --git a/_src/posts/firstpost.md b/_src/posts/firstpost.md deleted file mode 100644 index 21b3d6c..0000000 --- a/_src/posts/firstpost.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: This is my first post. -description: This is a post on My Blog about agile frameworks. -date: 2018-05-01 -tags: - - another tag -layout: layouts/post.njk ---- -Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. - -Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. - -## Section Header - -Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. - -``` text/2-3 -// this is a command -function myCommand() { - let counter = 0; - counter++; -} - -// Test with a line break above this line. -console.log('Test'); -``` diff --git a/_src/posts/fourthpost.md b/_src/posts/fourthpost.md deleted file mode 100644 index c928a9f..0000000 --- a/_src/posts/fourthpost.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: This is my fourth post. -description: This is a post on My Blog about touchpoints and circling wagons. -date: 2018-09-30 -tags: second tag -layout: layouts/post.njk ---- -Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. - -Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. - -## Section Header - -Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. - diff --git a/_src/posts/posts.json b/_src/posts/posts.json deleted file mode 100644 index 17f25d5..0000000 --- a/_src/posts/posts.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "tags": [ - "posts" - ] -} diff --git a/_src/posts/secondpost.md b/_src/posts/secondpost.md deleted file mode 100644 index e2e4ca4..0000000 --- a/_src/posts/secondpost.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: This is my second post. -description: This is a post on My Blog about leveraging agile frameworks. -date: 2018-07-04 -tags: - - number 2 -layout: layouts/post.njk ---- -Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. - -## Section Header - -First post -Third post - -Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. - -Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. diff --git a/_src/posts/thirdpost.md b/_src/posts/thirdpost.md deleted file mode 100644 index df0ee74..0000000 --- a/_src/posts/thirdpost.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: This is my third post. -description: This is a post on My Blog about win-win survival strategies. -date: 2018-08-24 -tags: - - second tag -layout: layouts/post.njk ---- -Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. - -``` js/2/4 -// this is a command -function myCommand() { - let counter = 0; - - counter++; - -} - -// Test with a line break above this line. -console.log('Test'); -``` - -Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. - -## Section Header - -Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. diff --git a/_src/sitemap.xml.njk b/_src/sitemap.xml.njk deleted file mode 100644 index 0a74480..0000000 --- a/_src/sitemap.xml.njk +++ /dev/null @@ -1,14 +0,0 @@ ---- -permalink: /sitemap.xml -eleventyExcludeFromCollections: true ---- - - -{%- for page in collections.all %} - {% set absoluteUrl %}{{ page.url | url | absoluteUrl(metadata.url) }}{% endset %} - - {{ absoluteUrl }} - {{ page.date | htmlDateString }} - -{%- endfor %} - diff --git a/_src/tags-list.njk b/_src/tags-list.njk deleted file mode 100644 index d37ae36..0000000 --- a/_src/tags-list.njk +++ /dev/null @@ -1,10 +0,0 @@ ---- -permalink: /tags/ -layout: layouts/home.njk ---- -

Tags

- -{% for tag in collections.tagList | filterTagList %} - {% set tagUrl %}/tags/{{ tag | slug }}/{% endset %} - -{% endfor %} diff --git a/_src/tags.njk b/_src/tags.njk deleted file mode 100644 index 0fbd53b..0000000 --- a/_src/tags.njk +++ /dev/null @@ -1,23 +0,0 @@ ---- -pagination: - data: collections - size: 1 - alias: tag - filter: - - all - - nav - - post - - posts - - tagList - addAllPagesToCollections: true -layout: layouts/home.njk -eleventyComputed: - title: Tagged “{{ tag }}” -permalink: /tags/{{ tag | slug }}/ ---- -

Tagged “{{ tag }}”

- -{% set postslist = collections[ tag ] %} -{% include "postslist.njk" %} - -

See all tags.

diff --git a/netlify.toml b/netlify.toml deleted file mode 100644 index 05203f0..0000000 --- a/netlify.toml +++ /dev/null @@ -1,3 +0,0 @@ -[build] - publish = "_dist" - command = "DEBUG=* eleventy" diff --git a/package.json b/package.json index d4b3df8..7205fdf 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "@11ty/eleventy": "^0.12.1", "@11ty/eleventy-navigation": "^0.1.6", "@11ty/eleventy-plugin-rss": "^1.1.1", - "@11ty/eleventy-plugin-syntaxhighlight": "^3.1.0", "luxon": "^1.26.0", "markdown-it": "^12.0.4", "markdown-it-anchor": "^7.1.0"