diff options
author | Bradley Taunt <bt@btxx.org> | 2024-01-19 13:19:41 -0500 |
---|---|---|
committer | Bradley Taunt <bt@btxx.org> | 2024-01-19 13:19:41 -0500 |
commit | 85f2c8d0d69ac0195bf6a20e396077dee0e9aefa (patch) | |
tree | 4f3bd878e20e7e057f91da6632a215b004d10c49 |
Initial commit for new cgit platform
-rw-r--r-- | .build.yml | 12 | ||||
-rw-r--r-- | LICENSE | 8 | ||||
-rw-r--r-- | README.md | 19 | ||||
-rw-r--r-- | _config.sh | 24 | ||||
-rw-r--r-- | _footer.html | 9 | ||||
-rw-r--r-- | _header.html | 9 | ||||
-rw-r--r-- | _output/blog/community-patch.html | 86 | ||||
-rw-r--r-- | _output/blog/default-styles.html | 162 | ||||
-rw-r--r-- | _output/blog/index.html | 23 | ||||
-rw-r--r-- | _output/blog/pblog-intro.html | 185 | ||||
-rw-r--r-- | _output/blog/pblog-launch.html | 54 | ||||
-rw-r--r-- | _output/blog/small-patch.html | 72 | ||||
-rw-r--r-- | _output/feed.xml | 252 | ||||
-rw-r--r-- | _output/index.html | 178 | ||||
-rw-r--r-- | _output/media/pb-sandwich.svg | 14 | ||||
-rw-r--r-- | _output/media/pbj.svg | 173 | ||||
-rw-r--r-- | _output/rss.xsl | 66 | ||||
-rw-r--r-- | _output/style.css | 50 | ||||
-rw-r--r-- | _output/tweaks.html | 191 | ||||
-rw-r--r-- | makefile | 12 | ||||
-rw-r--r-- | media/pb-sandwich.svg | 14 | ||||
-rw-r--r-- | media/pbj.svg | 173 | ||||
-rw-r--r-- | pages/index.md | 88 | ||||
-rw-r--r-- | pages/tweaks.md | 97 | ||||
-rw-r--r-- | pblog.sh | 84 | ||||
-rw-r--r-- | posts/community-patch.md | 36 | ||||
-rw-r--r-- | posts/default-styles.md | 61 | ||||
-rw-r--r-- | posts/pblog-intro.md | 96 | ||||
-rw-r--r-- | posts/pblog-launch.md | 11 | ||||
-rw-r--r-- | posts/small-patch.md | 27 | ||||
-rw-r--r-- | rss.xsl | 66 | ||||
-rw-r--r-- | style.css | 50 |
32 files changed, 2402 insertions, 0 deletions
diff --git a/.build.yml b/.build.yml new file mode 100644 index 0000000..f830d84 --- /dev/null +++ b/.build.yml @@ -0,0 +1,12 @@ +image: debian/stable +oauth: pages.sr.ht/PAGES:RW +environment: + site: pblog.bt.ht +sources: + - https://git.sr.ht/~bt/pblog +tasks: +- package: | + cd pblog/_output + tar -cvz . > ../../site.tar.gz +- upload: | + acurl -f https://pages.sr.ht/publish/$site -Fcontent=@site.tar.gz
\ No newline at end of file @@ -0,0 +1,8 @@ +ISC License: + +Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC") +Copyright (c) 1995-2003 by Internet Software Consortium + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..421494d --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# pblog + +Pandoc static blog generator + +[https://pblog.btxx.org](https://pblog.btxx.org) + +## Getting Started + +You can always read through the up-to-date article: [Introducing pblog](https://pblog.btxx.org/blog/pblog-intro.html) + +But very basic steps: + +1. Install dependencies +2. Write posts in the `posts` directory +3. Write pages in the `pages` directory +4. Build the site +5. Upload your `_output` folder to your web host + +Enjoy! diff --git a/_config.sh b/_config.sh new file mode 100644 index 0000000..2558aa1 --- /dev/null +++ b/_config.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +# Site specific settings +################################################################################### +DOMAIN="https://pblog.btxx.org" +TITLE="pblog" +DESCRIPTION="Pandoc static blog generator" +COPYRIGHT="Copyright 2022, Bradley Taunt" +AUTHOR="bt@btxx.org (Bradley Taunt)" +OS="Linux" # "Linux" for Linux, "BSD" for BSD Systems (including MacOS) +HTML_LANG="en_US" # Your document (HTML) language setting + +# Blog structure settings (most users should use these defaults) +################################################################################### +TOC=true +SYNTAX=true +PAGES_DIR="pages/" +POSTS_DIR="posts/" +PAGES=$(find $PAGES_DIR -type f) +POSTS=$(find $POSTS_DIR -type f) +WEB_HTML="blog/" +OUTPUT="_output/" +TIME="01:00:00 EST" +TTL="60" diff --git a/_footer.html b/_footer.html new file mode 100644 index 0000000..e6eebe8 --- /dev/null +++ b/_footer.html @@ -0,0 +1,9 @@ +</article><!-- Do not remove this closing article element --> + +<!-- Content placed here will appear directly before the closing </body> tag --> +<footer> + <br> + <hr> + <p><small>Powered by <a href="https://pblog.btxx.org">pblog</a><br> + Made with ♥ for a simpler web.</small></p> +</footer> diff --git a/_header.html b/_header.html new file mode 100644 index 0000000..67e2122 --- /dev/null +++ b/_header.html @@ -0,0 +1,9 @@ +<!-- Content placed here will appear directly after the opening <body> tag --> +<nav> + <a href="/">Home</a><span> / </span> + <a href="/blog">Blog</a><span> / </span> + <a href="/tweaks.html">Tweaks</a><span> / </span> + <a href="https://git.btxx.org/pblog">Download</a> +</nav> +<!-- Do not remove this opening article element --> +<article> diff --git a/_output/blog/community-patch.html b/_output/blog/community-patch.html new file mode 100644 index 0000000..b6f4dfa --- /dev/null +++ b/_output/blog/community-patch.html @@ -0,0 +1,86 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"> +<head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> + <title>First Community Patch & Tweaks</title> + <style> + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + </style> + <link rel="stylesheet" href="../style.css" /> + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> +</head> +<body> +<!-- Content placed here will appear directly after the opening <body> tag --> +<nav> + <a href="/">Home</a><span> / </span> + <a href="/blog">Blog</a><span> / </span> + <a href="/tweaks.html">Tweaks</a><span> / </span> + <a href="https://git.sr.ht/~bt/pblog">Download</a> +</nav> +<!-- Do not remove this opening article element --> +<article> +<header id="title-block-header"> +<h1 class="title">First Community Patch & Tweaks</h1> +<p class="date">Fri, 15 Jul 2022</p> +</header> +<nav id="TOC" role="doc-toc"> +<ul> +<li><a href="#the-changes" id="toc-the-changes">The Changes</a></li> +<li><a href="#some-features-left-behind" id="toc-some-features-left-behind">Some Features Left Behind…</a></li> +<li><a href="#introducing-tweaks" id="toc-introducing-tweaks">Introducing “Tweaks”</a></li> +</ul> +</nav> +<p><code>pblog</code> has received its first community patch! By “community” I mean someone other than myself has helped make this blog generator even better. So special thanks to <a href="https://matthewgraybosch.com/">Matthew Graybosch</a> for contributing to this humble project and patching in some solid quality of life improvements.</p> +<p>This is why open source is great: smarter people can help fix your mashed-up spaghetti code!</p> +<h3 id="the-changes">The Changes</h3> +<ol type="1"> +<li>Both pages and posts now generated <em>Table of Contents</em> by default +<ul> +<li>You have the ability to disable this site-wide in the <code>pblog</code> config</li> +</ul></li> +<li>Ability to disable Pandoc generated syntax highlighting</li> +<li><code>xsltproc</code> will now generate HTML5 and include the RSS feed description under the title +<ul> +<li>See it live on the <a href="/feed.xml">main RSS XML feed</a></li> +</ul></li> +<li>New metadata variable (<code>HTML_LANG</code>) in the <code>pblog.sh</code> config</li> +<li>Generated pages and posts now have “Table of Contents” by default +<ul> +<li>This can be disabled in individual files with <code>toc: false</code></li> +</ul></li> +<li>Cleaned up redundant find statements</li> +</ol> +<h3 id="some-features-left-behind">Some Features Left Behind…</h3> +<p>Also suggested in this patch was the addition of more advanced image manipulation via <code>ImageMagick</code>. This additional feature was pretty great from my testing but I felt as though adding an extra dependency and <em>slightly</em> more complex settings to <code>pblog</code> was moving things further from simplicity.</p> +<p><strong>BUT</strong> - that doesn’t mean you can’t take this great feature with you!</p> +<h3 id="introducing-tweaks">Introducing “Tweaks”</h3> +<p>I feel that <code>pblog</code> should always remain as simple as possible at the core. Let people get something up-and-running with the least amount of friction as possible. But I know that some users might want to squeeze just a <em>little</em> bit more out of it. This is where the new <strong>Tweaks</strong> section comes in.</p> +<p>Feel free to check out the <a href="/tweaks.html">official Tweaks page</a> and don’t be afraid to add your own by opening a patch-set!</p> +<p>That’s all for now, thanks for reading!</p> +<p>– Brad</p> +</article><!-- Do not remove this closing article element --> + +<!-- Content placed here will appear directly before the closing </body> tag --> +<footer> + <br> + <hr> + <p><small>Powered by <a href="https://pblog.bt.ht">pblog</a><br> + Made with ♥ for a simpler web.</small></p> +</footer> +</body> +</html> diff --git a/_output/blog/default-styles.html b/_output/blog/default-styles.html new file mode 100644 index 0000000..e207ff1 --- /dev/null +++ b/_output/blog/default-styles.html @@ -0,0 +1,162 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"> +<head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> + <title>New Default Styling and 2x Faster!</title> + <style> + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + /* CSS for syntax highlighting */ + pre > code.sourceCode { white-space: pre; position: relative; } + pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } + pre > code.sourceCode > span:empty { height: 1.2em; } + .sourceCode { overflow: visible; } + code.sourceCode > span { color: inherit; text-decoration: inherit; } + div.sourceCode { margin: 1em 0; } + pre.sourceCode { margin: 0; } + @media screen { + div.sourceCode { overflow: auto; } + } + @media print { + pre > code.sourceCode { white-space: pre-wrap; } + pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } + } + pre.numberSource code + { counter-reset: source-line 0; } + pre.numberSource code > span + { position: relative; left: -4em; counter-increment: source-line; } + pre.numberSource code > span > a:first-child::before + { content: counter(source-line); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + color: #aaaaaa; + } + pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } + div.sourceCode + { } + @media screen { + pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } + } + code span.al { color: #ff0000; font-weight: bold; } /* Alert */ + code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ + code span.at { color: #7d9029; } /* Attribute */ + code span.bn { color: #40a070; } /* BaseN */ + code span.bu { color: #008000; } /* BuiltIn */ + code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ + code span.ch { color: #4070a0; } /* Char */ + code span.cn { color: #880000; } /* Constant */ + code span.co { color: #60a0b0; font-style: italic; } /* Comment */ + code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ + code span.do { color: #ba2121; font-style: italic; } /* Documentation */ + code span.dt { color: #902000; } /* DataType */ + code span.dv { color: #40a070; } /* DecVal */ + code span.er { color: #ff0000; font-weight: bold; } /* Error */ + code span.ex { } /* Extension */ + code span.fl { color: #40a070; } /* Float */ + code span.fu { color: #06287e; } /* Function */ + code span.im { color: #008000; font-weight: bold; } /* Import */ + code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ + code span.kw { color: #007020; font-weight: bold; } /* Keyword */ + code span.op { color: #666666; } /* Operator */ + code span.ot { color: #007020; } /* Other */ + code span.pp { color: #bc7a00; } /* Preprocessor */ + code span.sc { color: #4070a0; } /* SpecialChar */ + code span.ss { color: #bb6688; } /* SpecialString */ + code span.st { color: #4070a0; } /* String */ + code span.va { color: #19177c; } /* Variable */ + code span.vs { color: #4070a0; } /* VerbatimString */ + code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ + </style> + <link rel="stylesheet" href="../style.css" /> + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> +</head> +<body> +<!-- Content placed here will appear directly after the opening <body> tag --> +<nav> + <a href="/">Home</a><span> / </span> + <a href="/blog">Blog</a><span> / </span> + <a href="/tweaks.html">Tweaks</a><span> / </span> + <a href="https://git.sr.ht/~bt/pblog">Download</a> +</nav> +<!-- Do not remove this opening article element --> +<article> +<header id="title-block-header"> +<h1 class="title">New Default Styling and 2x Faster!</h1> +<p class="date">Wed, 27 Jul 2022</p> +</header> +<nav id="TOC" role="doc-toc"> +<ul> +<li><a href="#the-default-theme" id="toc-the-default-theme">The Default “Theme”</a></li> +<li><a href="#new-config-setup" id="toc-new-config-setup">New Config Setup</a></li> +<li><a href="#cutting-the-build-time-in-half" id="toc-cutting-the-build-time-in-half">Cutting the Build Time in Half</a></li> +<li><a href="#far-from-perfect" id="toc-far-from-perfect">Far From Perfect</a></li> +</ul> +</nav> +<p>If it wasn’t already obvious, this project has received a minor styling overhaul. But looks weren’t the only thing updated with this latest patch.</p> +<p>The total build process time is now <em>two times faster</em>!</p> +<p>Keep reading for more details.</p> +<h2 id="the-default-theme">The Default “Theme”</h2> +<p>The styling changes aren’t anything ground breaking. They simply center the main content and add a little more visual separation of the content and backdrop. Again, you can customize <code>pblog</code> as you see fit, but having a sane default is always nice.</p> +<h2 id="new-config-setup">New Config Setup</h2> +<p>Since updates and performance fixes might continue to come through in the future, I didn’t want to make users play around with their default configuration every single time. Now, all main configuration is handled in the new <code>_config.sh</code> file.</p> +<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="co">#!/bin/sh</span></span> +<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="co"># Site specific settings</span></span> +<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="co">###################################################################################</span></span> +<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a><span class="va">DOMAIN</span><span class="op">=</span><span class="st">"https://pblog.bt.ht"</span></span> +<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="va">TITLE</span><span class="op">=</span><span class="st">"pblog"</span></span> +<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a><span class="va">DESCRIPTION</span><span class="op">=</span><span class="st">"Pandoc static blog generator"</span></span> +<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a><span class="va">COPYRIGHT</span><span class="op">=</span><span class="st">"Copyright 2022, Bradley Taunt"</span></span> +<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a><span class="va">AUTHOR</span><span class="op">=</span><span class="st">"brad@bt.ht (Bradley Taunt)"</span></span> +<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a><span class="va">OS</span><span class="op">=</span><span class="st">"Linux"</span> <span class="co"># "Linux" for Linux, "BSD" for BSD Systems (including MacOS)</span></span> +<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a><span class="va">HTML_LANG</span><span class="op">=</span><span class="st">"en_US"</span> <span class="co"># Your document (HTML) language setting</span></span> +<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a><span class="co"># Blog structure settings (most users should use these defaults)</span></span> +<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a><span class="co">###################################################################################</span></span> +<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a><span class="va">TOC</span><span class="op">=</span>true</span> +<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a><span class="va">SYNTAX</span><span class="op">=</span>true</span> +<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a><span class="va">PAGES_DIR</span><span class="op">=</span><span class="st">"pages/"</span></span> +<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a><span class="va">POSTS_DIR</span><span class="op">=</span><span class="st">"posts/"</span></span> +<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a><span class="va">PAGES</span><span class="op">=</span><span class="va">$(</span><span class="fu">find</span> <span class="va">$PAGES_DIR</span> <span class="at">-type</span> f<span class="va">)</span></span> +<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a><span class="va">POSTS</span><span class="op">=</span><span class="va">$(</span><span class="fu">find</span> <span class="va">$POSTS_DIR</span> <span class="at">-type</span> f<span class="va">)</span></span> +<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a><span class="va">WEB_HTML</span><span class="op">=</span><span class="st">"blog/"</span></span> +<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a><span class="va">OUTPUT</span><span class="op">=</span><span class="st">"_output/"</span></span> +<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a><span class="va">TIME</span><span class="op">=</span><span class="st">"01:00:00 EST"</span></span> +<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a><span class="va">TTL</span><span class="op">=</span><span class="st">"60"</span></span></code></pre></div> +<p>Feels cleaner already, right?</p> +<h2 id="cutting-the-build-time-in-half">Cutting the Build Time in Half</h2> +<p>I must give big kudos to <a href="https://matthewgraybosch.com">Matthew Graybosch</a> for inspiring this pretty big improvement. After some discussion over emails we both agreed that it seemed overkill to render the blog content twice (once for the XML feed itself and then again for all posts listed under <code>blog</code>). Performance wasn’t the initial goal when I first launched this project, but now that the dust has settled it seemed appropriate to go back and fix some things.</p> +<p><code>pblog</code> now only needs to render the blog posts found in the <code>posts</code> directory <em>once</em>. It still produces semantic XML and keeps the webview versions of the articles looking solid. Overall I’m pretty happy with this <em>little</em> improvement - it should pretty noticeable on projects rendering many posts.</p> +<h2 id="far-from-perfect">Far From Perfect</h2> +<p>This project is still very much in it’s infancy. So if you notice something odd or broken in your own testing, please don’t hesitate to open a patch or simply bring up the issue!</p> +<p>Thanks for reading,</p> +<p>– Brad</p> +</article><!-- Do not remove this closing article element --> + +<!-- Content placed here will appear directly before the closing </body> tag --> +<footer> + <br> + <hr> + <p><small>Powered by <a href="https://pblog.bt.ht">pblog</a><br> + Made with ♥ for a simpler web.</small></p> +</footer> +</body> +</html> diff --git a/_output/blog/index.html b/_output/blog/index.html new file mode 100644 index 0000000..dbf4f3d --- /dev/null +++ b/_output/blog/index.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" lang="en_US" xml:lang="en_US"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>pblog</title><meta name="description" content="Pandoc static blog generator"></meta><meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1"></meta><meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"></meta><link rel="stylesheet" href="../style.css"></link><style> + header { + border-bottom: 1px solid lightgrey; + margin-bottom: 0; + padding-bottom: 0.5em; + } + header h1 { + margin: 0; + } + header p { + margin: 0 0 0.5em; + } + .date { + display: block; + font-family: monospace; + margin-top: 1em; + overflow: hidden; + white-space: nowrap; + width: 16ch; + } + </style></head><body><header><h1>pblog</h1><p><i>Pandoc static blog generator</i></p></header><span class="date">Wed, 27 Jul 2022 01:00:00 EST</span><a href="https://pblog.bt.ht/blog/default-styles.html"><span>New Default Styling and 2x Faster!</span></a><span class="date">Fri, 15 Jul 2022 01:00:00 EST</span><a href="https://pblog.bt.ht/blog/community-patch.html"><span>First Community Patch & Tweaks</span></a><span class="date">Fri, 08 Jul 2022 01:00:00 EST</span><a href="https://pblog.bt.ht/blog/small-patch.html"><span>Includes, rsync and Variables - Oh My!</span></a><span class="date">Mon, 04 Jul 2022 01:00:00 EST</span><a href="https://pblog.bt.ht/blog/pblog-intro.html"><span>Introducing pblog</span></a><span class="date">Thu, 30 Jun 2022 01:00:00 EST</span><a href="https://pblog.bt.ht/blog/pblog-launch.html"><span>Announcing pblog</span></a></body></html> diff --git a/_output/blog/pblog-intro.html b/_output/blog/pblog-intro.html new file mode 100644 index 0000000..86dea87 --- /dev/null +++ b/_output/blog/pblog-intro.html @@ -0,0 +1,185 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"> +<head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> + <title>Introducing pblog</title> + <style> + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + /* CSS for syntax highlighting */ + pre > code.sourceCode { white-space: pre; position: relative; } + pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } + pre > code.sourceCode > span:empty { height: 1.2em; } + .sourceCode { overflow: visible; } + code.sourceCode > span { color: inherit; text-decoration: inherit; } + div.sourceCode { margin: 1em 0; } + pre.sourceCode { margin: 0; } + @media screen { + div.sourceCode { overflow: auto; } + } + @media print { + pre > code.sourceCode { white-space: pre-wrap; } + pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } + } + pre.numberSource code + { counter-reset: source-line 0; } + pre.numberSource code > span + { position: relative; left: -4em; counter-increment: source-line; } + pre.numberSource code > span > a:first-child::before + { content: counter(source-line); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + color: #aaaaaa; + } + pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } + div.sourceCode + { } + @media screen { + pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } + } + code span.al { color: #ff0000; font-weight: bold; } /* Alert */ + code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ + code span.at { color: #7d9029; } /* Attribute */ + code span.bn { color: #40a070; } /* BaseN */ + code span.bu { color: #008000; } /* BuiltIn */ + code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ + code span.ch { color: #4070a0; } /* Char */ + code span.cn { color: #880000; } /* Constant */ + code span.co { color: #60a0b0; font-style: italic; } /* Comment */ + code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ + code span.do { color: #ba2121; font-style: italic; } /* Documentation */ + code span.dt { color: #902000; } /* DataType */ + code span.dv { color: #40a070; } /* DecVal */ + code span.er { color: #ff0000; font-weight: bold; } /* Error */ + code span.ex { } /* Extension */ + code span.fl { color: #40a070; } /* Float */ + code span.fu { color: #06287e; } /* Function */ + code span.im { color: #008000; font-weight: bold; } /* Import */ + code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ + code span.kw { color: #007020; font-weight: bold; } /* Keyword */ + code span.op { color: #666666; } /* Operator */ + code span.ot { color: #007020; } /* Other */ + code span.pp { color: #bc7a00; } /* Preprocessor */ + code span.sc { color: #4070a0; } /* SpecialChar */ + code span.ss { color: #bb6688; } /* SpecialString */ + code span.st { color: #4070a0; } /* String */ + code span.va { color: #19177c; } /* Variable */ + code span.vs { color: #4070a0; } /* VerbatimString */ + code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ + </style> + <link rel="stylesheet" href="../style.css" /> + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> +</head> +<body> +<!-- Content placed here will appear directly after the opening <body> tag --> +<nav> + <a href="/">Home</a><span> / </span> + <a href="/blog">Blog</a><span> / </span> + <a href="/tweaks.html">Tweaks</a><span> / </span> + <a href="https://git.sr.ht/~bt/pblog">Download</a> +</nav> +<!-- Do not remove this opening article element --> +<article> +<header id="title-block-header"> +<h1 class="title">Introducing pblog</h1> +<p class="date">Mon, 04 Jul 2022</p> +</header> +<nav id="TOC" role="doc-toc"> +<ul> +<li><a href="#main-goal" id="toc-main-goal">Main Goal</a></li> +<li><a href="#site-structure" id="toc-site-structure">Site Structure</a></li> +<li><a href="#headers-and-footers" id="toc-headers-and-footers">Headers and Footers</a></li> +<li><a href="#posts-and-pages" id="toc-posts-and-pages">Posts and Pages</a></li> +<li><a href="#the-build-process" id="toc-the-build-process">The Build Process</a></li> +<li><a href="#uploading-to-the-www" id="toc-uploading-to-the-www">Uploading to the WWW</a></li> +<li><a href="#wrapping-up" id="toc-wrapping-up">Wrapping Up</a></li> +</ul> +</nav> +<p>This article is a <em>living document</em>. It will always have the most up-to-date information on getting started with <code>pblog</code>.</p> +<p><strong>Last Updated</strong>: July 27, 2022</p> +<hr /> +<p>Although this project was already <a href="/blog/pblog-launch.html">announced</a> a couple days ago, I thought it might be best to actually breakdown <code>pblog</code> into greater detail.</p> +<p>Enough chit-chat, let’s get into it!</p> +<h3 id="main-goal">Main Goal</h3> +<p>The entire purpose of <code>pblog</code> is to be as bare-bones as possible, while still maintaining a pleasant writing workflow. Users write their posts and pages in Markdown - <em>pblog</em> handles everything else:</p> +<ul> +<li>Posts and pages generated via Pandoc with minimal CSS</li> +<li>RSS feed at <code>feed.xml</code></li> +<li>Generated blog listing at <code>blog/index.html</code></li> +<li>Browser-styled XML (in supported browsers)</li> +</ul> +<h3 id="site-structure">Site Structure</h3> +<p>After you’ve cloned the <a href="https://git.sr.ht/~bt/pblog">official pblog repo on sourcehut</a>, the next thing you should do is edit the main <code>_config.sh</code> file in the root directory. This will give you a better understanding of how everything is built.</p> +<p>Once generated, <em>pblog</em> structures the final website files as such:</p> +<pre class="shell"><code>_output/ + |__blog/ + |__index.html + |__blog-post-example.html + |__media/ + |__feed.xml + |__index.html + |__rss.xsl + |__style.css</code></pre> +<p>This structure is completely customizable by simply editing the <code>_config.sh</code> file (if you so desire).</p> +<h3 id="headers-and-footers">Headers and Footers</h3> +<p>By default <code>pblog</code> will add the header and footer includes to every individual post and page. To edit these, simply open the <code>_header.html</code> and <code>_footer.html</code> files respectively.</p> +<p><strong>Important</strong>: To avoid rendering issues DO NOT remove the included <code>article</code> opening and closing tags within those files. Everything else you can edit, remove, etc.</p> +<h3 id="posts-and-pages">Posts and Pages</h3> +<p>Posts and pages are written via Markdown inside the <code>posts</code> and <code>pages</code> folders respectively.</p> +<p>Individual posts require the following headers (take note of the date format):</p> +<div class="sourceCode" id="cb2"><pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span> +<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="fu">title</span><span class="kw">:</span><span class="at"> Blog Title</span></span> +<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a><span class="fu">date</span><span class="kw">:</span><span class="at"> Mon, 04 Jul 2022</span></span> +<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span></code></pre></div> +<p>while individual pages only require a <code>title</code>:</p> +<div class="sourceCode" id="cb3"><pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span> +<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="fu">title</span><span class="kw">:</span><span class="at"> Page Title</span></span> +<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span></code></pre></div> +<p>This makes for an easier switch over from other SSG platforms like Jekyll or Hugo.</p> +<h3 id="the-build-process">The Build Process</h3> +<p>The main variables at the top of the <code>pblog.sh</code> file need to edited with your own details before generating your website. Those variables are fairly self-explanatory and simple to edit.</p> +<p>All you need to do now is run <code>make</code> (or <code>make serve</code> if you’re looking to test locally) and you’re done. Your website should now be fully generated inside the include <code>_output</code> directory. For quick reference:</p> +<ol type="1"> +<li><em>pblog</em> converts your Markdown posts into two variations of HTML +<ul> +<li>One is used specifically for rendering itself inside the RSS feed</li> +<li>The other is used for linking in a browser</li> +</ul></li> +<li>Next, <em>pblog</em> converts your Markdown pages into HTML</li> +<li>All of these generated HTML files are then moved to the <code>_output</code> folder</li> +</ol> +<p><em>pblog</em> is also smart enough to automatically generate a main blog list directory for you. This <code>index.html</code> file is placed inside the <code>_output/blog</code> folder on build. You can see an example of the blog list <a href="/blog">on this very website</a>.</p> +<h3 id="uploading-to-the-www">Uploading to the WWW</h3> +<p>Those with more experience will probably lean towards using a utility like <code>rsync</code> to sync the contents of their <code>_output</code> folder with their web server. For those with less experience, I recommend using something like <a href="https://app.netlify.com/drop">Netlify Drop</a> to make things as friction-less as possible.</p> +<h3 id="wrapping-up">Wrapping Up</h3> +<p>There isn’t much else to say. <code>pblog</code> is as static or flexible as you chose it to be. If you have any ideas on how to improve things or come across any bugs, please <a href="https://git.sr.ht/~bt/pblog">open a ticket or PR on the official repo</a>.</p> +<p>Thanks and happy blogging with <em>pblog</em>!</p> +</article><!-- Do not remove this closing article element --> + +<!-- Content placed here will appear directly before the closing </body> tag --> +<footer> + <br> + <hr> + <p><small>Powered by <a href="https://pblog.bt.ht">pblog</a><br> + Made with ♥ for a simpler web.</small></p> +</footer> +</body> +</html> diff --git a/_output/blog/pblog-launch.html b/_output/blog/pblog-launch.html new file mode 100644 index 0000000..754aff0 --- /dev/null +++ b/_output/blog/pblog-launch.html @@ -0,0 +1,54 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"> +<head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> + <title>Announcing pblog</title> + <style> + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + </style> + <link rel="stylesheet" href="../style.css" /> + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> +</head> +<body> +<!-- Content placed here will appear directly after the opening <body> tag --> +<nav> + <a href="/">Home</a><span> / </span> + <a href="/blog">Blog</a><span> / </span> + <a href="/tweaks.html">Tweaks</a><span> / </span> + <a href="https://git.sr.ht/~bt/pblog">Download</a> +</nav> +<!-- Do not remove this opening article element --> +<article> +<header id="title-block-header"> +<h1 class="title">Announcing pblog</h1> +<p class="date">Thu, 30 Jun 2022</p> +</header> +<p>It’s time to celebrate! The official launch of <code>pblog</code> happened today.</p> +<p>There isn’t much else to say. All details and instructions on how to start your own pblog can be found on the <a href="https://pblog.bt.ht">main homepage for this project</a>.</p> +<p>Thanks for reading!</p> +</article><!-- Do not remove this closing article element --> + +<!-- Content placed here will appear directly before the closing </body> tag --> +<footer> + <br> + <hr> + <p><small>Powered by <a href="https://pblog.bt.ht">pblog</a><br> + Made with ♥ for a simpler web.</small></p> +</footer> +</body> +</html> diff --git a/_output/blog/small-patch.html b/_output/blog/small-patch.html new file mode 100644 index 0000000..e80c02a --- /dev/null +++ b/_output/blog/small-patch.html @@ -0,0 +1,72 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"> +<head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> + <title>Includes, rsync and Variables - Oh My!</title> + <style> + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + </style> + <link rel="stylesheet" href="../style.css" /> + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> +</head> +<body> +<!-- Content placed here will appear directly after the opening <body> tag --> +<nav> + <a href="/">Home</a><span> / </span> + <a href="/blog">Blog</a><span> / </span> + <a href="/tweaks.html">Tweaks</a><span> / </span> + <a href="https://git.sr.ht/~bt/pblog">Download</a> +</nav> +<!-- Do not remove this opening article element --> +<article> +<header id="title-block-header"> +<h1 class="title">Includes, rsync and Variables - Oh My!</h1> +<p class="date">Fri, 08 Jul 2022</p> +</header> +<nav id="TOC" role="doc-toc"> +<ul> +<li><a href="#default-header-footer-includes" id="toc-default-header-footer-includes">Default “header” & “footer” Includes</a></li> +<li><a href="#syncing-changes-with-rsync" id="toc-syncing-changes-with-rsync">Syncing Changes with rsync</a></li> +<li><a href="#on-the-horizon" id="toc-on-the-horizon">On the Horizon…</a></li> +</ul> +</nav> +<p>Even though <code>pblog</code> was just launched a week ago, it has since been updated with some nice quality-of-life improvements.</p> +<h3 id="default-header-footer-includes">Default “header” & “footer” Includes</h3> +<p>A new variable was added to the main <code>pblog.sh</code> configuration file called <code>INC_HEAD_FOOT</code>. By default this is set to <code>true</code> and simply pulls in two HTML files:</p> +<ul> +<li><code>_header.html</code>: all content within is placed directly after the opening <code>body</code> tag</li> +<li><code>_footer.html</code>: all content within is placed directly before the closing <code>body</code> tag</li> +</ul> +<p>These includes are added to every outputted file from inside both the <code>posts</code> and <code>pages</code> directories on build.</p> +<h3 id="syncing-changes-with-rsync">Syncing Changes with rsync</h3> +<p>Although it adds another dependency to the project, I believe utilizing <code>rsync</code> for the generated files is far better then nuking the directory from orbit each time. This also provides a cleaner experience for users syncing their <code>_output</code> directory with their web server of choice.</p> +<h3 id="on-the-horizon">On the Horizon…</h3> +<p>My plan was to also tackle the issue of “auto rebuilds” when running <code>pblog</code> locally. This became more of a headache than I initially estimated - so it was dropped from this patch. My hope is to get something up-and-running in the near future, while avoiding the inclusion of yet another major dependency. Anyone more experienced than myself in the ways of “auto rebuilds” is free to open a patch if they so desire!</p> +<p>Thanks for your interest in these minor updates!</p> +<p>P.S. Don’t forget - if your website runs on <code>pblog</code> be sure to reach out and get it featured on the <a href="/">homepage</a>!</p> +</article><!-- Do not remove this closing article element --> + +<!-- Content placed here will appear directly before the closing </body> tag --> +<footer> + <br> + <hr> + <p><small>Powered by <a href="https://pblog.bt.ht">pblog</a><br> + Made with ♥ for a simpler web.</small></p> +</footer> +</body> +</html> diff --git a/_output/feed.xml b/_output/feed.xml new file mode 100644 index 0000000..2b0c5eb --- /dev/null +++ b/_output/feed.xml @@ -0,0 +1,252 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<?xml-stylesheet href="rss.xsl" type="text/xsl"?> +<rss version="2.0"> + <channel> + <title>pblog</title> + <link>https://pblog.bt.ht</link> + <description>Pandoc static blog generator</description> + <copyright>Copyright 2022, Bradley Taunt</copyright> + <ttl>60</ttl> +<item> + <pubDate>Fri, 15 Jul 2022 01:00:00 EST</pubDate> + <category>2022/07/15/5</category> + <title>First Community Patch & Tweaks</title> + <link>https://pblog.bt.ht/blog/community-patch.html</link> + <description><![CDATA[ +<header id="title-block-header"> +<h1 class="title">First Community Patch & Tweaks</h1> +<p class="date">Fri, 15 Jul 2022</p> +</header> +<nav id="TOC" role="doc-toc"> +<ul> +<li><a href="#the-changes" id="toc-the-changes">The Changes</a></li> +<li><a href="#some-features-left-behind" id="toc-some-features-left-behind">Some Features Left Behind…</a></li> +<li><a href="#introducing-tweaks" id="toc-introducing-tweaks">Introducing “Tweaks”</a></li> +</ul> +</nav> +<p><code>pblog</code> has received its first community patch! By “community” I mean someone other than myself has helped make this blog generator even better. So special thanks to <a href="https://matthewgraybosch.com/">Matthew Graybosch</a> for contributing to this humble project and patching in some solid quality of life improvements.</p> +<p>This is why open source is great: smarter people can help fix your mashed-up spaghetti code!</p> +<h3 id="the-changes">The Changes</h3> +<ol type="1"> +<li>Both pages and posts now generated <em>Table of Contents</em> by default +<ul> +<li>You have the ability to disable this site-wide in the <code>pblog</code> config</li> +</ul></li> +<li>Ability to disable Pandoc generated syntax highlighting</li> +<li><code>xsltproc</code> will now generate HTML5 and include the RSS feed description under the title +<ul> +<li>See it live on the <a href="/feed.xml">main RSS XML feed</a></li> +</ul></li> +<li>New metadata variable (<code>HTML_LANG</code>) in the <code>pblog.sh</code> config</li> +<li>Generated pages and posts now have “Table of Contents” by default +<ul> +<li>This can be disabled in individual files with <code>toc: false</code></li> +</ul></li> +<li>Cleaned up redundant find statements</li> +</ol> +<h3 id="some-features-left-behind">Some Features Left Behind…</h3> +<p>Also suggested in this patch was the addition of more advanced image manipulation via <code>ImageMagick</code>. This additional feature was pretty great from my testing but I felt as though adding an extra dependency and <em>slightly</em> more complex settings to <code>pblog</code> was moving things further from simplicity.</p> +<p><strong>BUT</strong> - that doesn’t mean you can’t take this great feature with you!</p> +<h3 id="introducing-tweaks">Introducing “Tweaks”</h3> +<p>I feel that <code>pblog</code> should always remain as simple as possible at the core. Let people get something up-and-running with the least amount of friction as possible. But I know that some users might want to squeeze just a <em>little</em> bit more out of it. This is where the new <strong>Tweaks</strong> section comes in.</p> +<p>Feel free to check out the <a href="/tweaks.html">official Tweaks page</a> and don’t be afraid to add your own by opening a patch-set!</p> +<p>That’s all for now, thanks for reading!</p> +<p>– Brad</p>]]></description> + <author>brad@bt.ht (Bradley Taunt)</author> + <guid>https://pblog.bt.ht/blog/community-patch.html</guid> + </item> +<item> + <pubDate>Wed, 27 Jul 2022 01:00:00 EST</pubDate> + <category>2022/07/27/3</category> + <title>New Default Styling and 2x Faster!</title> + <link>https://pblog.bt.ht/blog/default-styles.html</link> + <description><![CDATA[ +<header id="title-block-header"> +<h1 class="title">New Default Styling and 2x Faster!</h1> +<p class="date">Wed, 27 Jul 2022</p> +</header> +<nav id="TOC" role="doc-toc"> +<ul> +<li><a href="#the-default-theme" id="toc-the-default-theme">The Default “Theme”</a></li> +<li><a href="#new-config-setup" id="toc-new-config-setup">New Config Setup</a></li> +<li><a href="#cutting-the-build-time-in-half" id="toc-cutting-the-build-time-in-half">Cutting the Build Time in Half</a></li> +<li><a href="#far-from-perfect" id="toc-far-from-perfect">Far From Perfect</a></li> +</ul> +</nav> +<p>If it wasn’t already obvious, this project has received a minor styling overhaul. But looks weren’t the only thing updated with this latest patch.</p> +<p>The total build process time is now <em>two times faster</em>!</p> +<p>Keep reading for more details.</p> +<h2 id="the-default-theme">The Default “Theme”</h2> +<p>The styling changes aren’t anything ground breaking. They simply center the main content and add a little more visual separation of the content and backdrop. Again, you can customize <code>pblog</code> as you see fit, but having a sane default is always nice.</p> +<h2 id="new-config-setup">New Config Setup</h2> +<p>Since updates and performance fixes might continue to come through in the future, I didn’t want to make users play around with their default configuration every single time. Now, all main configuration is handled in the new <code>_config.sh</code> file.</p> +<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="co">#!/bin/sh</span></span> +<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="co"># Site specific settings</span></span> +<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="co">###################################################################################</span></span> +<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a><span class="va">DOMAIN</span><span class="op">=</span><span class="st">"https://pblog.bt.ht"</span></span> +<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="va">TITLE</span><span class="op">=</span><span class="st">"pblog"</span></span> +<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a><span class="va">DESCRIPTION</span><span class="op">=</span><span class="st">"Pandoc static blog generator"</span></span> +<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a><span class="va">COPYRIGHT</span><span class="op">=</span><span class="st">"Copyright 2022, Bradley Taunt"</span></span> +<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a><span class="va">AUTHOR</span><span class="op">=</span><span class="st">"brad@bt.ht (Bradley Taunt)"</span></span> +<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a><span class="va">OS</span><span class="op">=</span><span class="st">"Linux"</span> <span class="co"># "Linux" for Linux, "BSD" for BSD Systems (including MacOS)</span></span> +<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a><span class="va">HTML_LANG</span><span class="op">=</span><span class="st">"en_US"</span> <span class="co"># Your document (HTML) language setting</span></span> +<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a><span class="co"># Blog structure settings (most users should use these defaults)</span></span> +<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a><span class="co">###################################################################################</span></span> +<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a><span class="va">TOC</span><span class="op">=</span>true</span> +<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a><span class="va">SYNTAX</span><span class="op">=</span>true</span> +<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a><span class="va">PAGES_DIR</span><span class="op">=</span><span class="st">"pages/"</span></span> +<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a><span class="va">POSTS_DIR</span><span class="op">=</span><span class="st">"posts/"</span></span> +<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a><span class="va">PAGES</span><span class="op">=</span><span class="va">$(</span><span class="fu">find</span> <span class="va">$PAGES_DIR</span> <span class="at">-type</span> f<span class="va">)</span></span> +<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a><span class="va">POSTS</span><span class="op">=</span><span class="va">$(</span><span class="fu">find</span> <span class="va">$POSTS_DIR</span> <span class="at">-type</span> f<span class="va">)</span></span> +<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a><span class="va">WEB_HTML</span><span class="op">=</span><span class="st">"blog/"</span></span> +<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a><span class="va">OUTPUT</span><span class="op">=</span><span class="st">"_output/"</span></span> +<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a><span class="va">TIME</span><span class="op">=</span><span class="st">"01:00:00 EST"</span></span> +<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a><span class="va">TTL</span><span class="op">=</span><span class="st">"60"</span></span></code></pre></div> +<p>Feels cleaner already, right?</p> +<h2 id="cutting-the-build-time-in-half">Cutting the Build Time in Half</h2> +<p>I must give big kudos to <a href="https://matthewgraybosch.com">Matthew Graybosch</a> for inspiring this pretty big improvement. After some discussion over emails we both agreed that it seemed overkill to render the blog content twice (once for the XML feed itself and then again for all posts listed under <code>blog</code>). Performance wasn’t the initial goal when I first launched this project, but now that the dust has settled it seemed appropriate to go back and fix some things.</p> +<p><code>pblog</code> now only needs to render the blog posts found in the <code>posts</code> directory <em>once</em>. It still produces semantic XML and keeps the webview versions of the articles looking solid. Overall I’m pretty happy with this <em>little</em> improvement - it should pretty noticeable on projects rendering many posts.</p> +<h2 id="far-from-perfect">Far From Perfect</h2> +<p>This project is still very much in it’s infancy. So if you notice something odd or broken in your own testing, please don’t hesitate to open a patch or simply bring up the issue!</p> +<p>Thanks for reading,</p> +<p>– Brad</p>]]></description> + <author>brad@bt.ht (Bradley Taunt)</author> + <guid>https://pblog.bt.ht/blog/default-styles.html</guid> + </item> +<item> + <pubDate>Mon, 04 Jul 2022 01:00:00 EST</pubDate> + <category>2022/07/04/1</category> + <title>Introducing pblog</title> + <link>https://pblog.bt.ht/blog/pblog-intro.html</link> + <description><![CDATA[ +<header id="title-block-header"> +<h1 class="title">Introducing pblog</h1> +<p class="date">Mon, 04 Jul 2022</p> +</header> +<nav id="TOC" role="doc-toc"> +<ul> +<li><a href="#main-goal" id="toc-main-goal">Main Goal</a></li> +<li><a href="#site-structure" id="toc-site-structure">Site Structure</a></li> +<li><a href="#headers-and-footers" id="toc-headers-and-footers">Headers and Footers</a></li> +<li><a href="#posts-and-pages" id="toc-posts-and-pages">Posts and Pages</a></li> +<li><a href="#the-build-process" id="toc-the-build-process">The Build Process</a></li> +<li><a href="#uploading-to-the-www" id="toc-uploading-to-the-www">Uploading to the WWW</a></li> +<li><a href="#wrapping-up" id="toc-wrapping-up">Wrapping Up</a></li> +</ul> +</nav> +<p>This article is a <em>living document</em>. It will always have the most up-to-date information on getting started with <code>pblog</code>.</p> +<p><strong>Last Updated</strong>: July 27, 2022</p> +<hr /> +<p>Although this project was already <a href="/blog/pblog-launch.html">announced</a> a couple days ago, I thought it might be best to actually breakdown <code>pblog</code> into greater detail.</p> +<p>Enough chit-chat, let’s get into it!</p> +<h3 id="main-goal">Main Goal</h3> +<p>The entire purpose of <code>pblog</code> is to be as bare-bones as possible, while still maintaining a pleasant writing workflow. Users write their posts and pages in Markdown - <em>pblog</em> handles everything else:</p> +<ul> +<li>Posts and pages generated via Pandoc with minimal CSS</li> +<li>RSS feed at <code>feed.xml</code></li> +<li>Generated blog listing at <code>blog/index.html</code></li> +<li>Browser-styled XML (in supported browsers)</li> +</ul> +<h3 id="site-structure">Site Structure</h3> +<p>After you’ve cloned the <a href="https://git.sr.ht/~bt/pblog">official pblog repo on sourcehut</a>, the next thing you should do is edit the main <code>_config.sh</code> file in the root directory. This will give you a better understanding of how everything is built.</p> +<p>Once generated, <em>pblog</em> structures the final website files as such:</p> +<pre class="shell"><code>_output/ + |__blog/ + |__index.html + |__blog-post-example.html + |__media/ + |__feed.xml + |__index.html + |__rss.xsl + |__style.css</code></pre> +<p>This structure is completely customizable by simply editing the <code>_config.sh</code> file (if you so desire).</p> +<h3 id="headers-and-footers">Headers and Footers</h3> +<p>By default <code>pblog</code> will add the header and footer includes to every individual post and page. To edit these, simply open the <code>_header.html</code> and <code>_footer.html</code> files respectively.</p> +<p><strong>Important</strong>: To avoid rendering issues DO NOT remove the included <code>article</code> opening and closing tags within those files. Everything else you can edit, remove, etc.</p> +<h3 id="posts-and-pages">Posts and Pages</h3> +<p>Posts and pages are written via Markdown inside the <code>posts</code> and <code>pages</code> folders respectively.</p> +<p>Individual posts require the following headers (take note of the date format):</p> +<div class="sourceCode" id="cb2"><pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span> +<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="fu">title</span><span class="kw">:</span><span class="at"> Blog Title</span></span> +<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a><span class="fu">date</span><span class="kw">:</span><span class="at"> Mon, 04 Jul 2022</span></span> +<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span></code></pre></div> +<p>while individual pages only require a <code>title</code>:</p> +<div class="sourceCode" id="cb3"><pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span> +<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="fu">title</span><span class="kw">:</span><span class="at"> Page Title</span></span> +<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span></code></pre></div> +<p>This makes for an easier switch over from other SSG platforms like Jekyll or Hugo.</p> +<h3 id="the-build-process">The Build Process</h3> +<p>The main variables at the top of the <code>pblog.sh</code> file need to edited with your own details before generating your website. Those variables are fairly self-explanatory and simple to edit.</p> +<p>All you need to do now is run <code>make</code> (or <code>make serve</code> if you’re looking to test locally) and you’re done. Your website should now be fully generated inside the include <code>_output</code> directory. For quick reference:</p> +<ol type="1"> +<li><em>pblog</em> converts your Markdown posts into two variations of HTML +<ul> +<li>One is used specifically for rendering itself inside the RSS feed</li> +<li>The other is used for linking in a browser</li> +</ul></li> +<li>Next, <em>pblog</em> converts your Markdown pages into HTML</li> +<li>All of these generated HTML files are then moved to the <code>_output</code> folder</li> +</ol> +<p><em>pblog</em> is also smart enough to automatically generate a main blog list directory for you. This <code>index.html</code> file is placed inside the <code>_output/blog</code> folder on build. You can see an example of the blog list <a href="/blog">on this very website</a>.</p> +<h3 id="uploading-to-the-www">Uploading to the WWW</h3> +<p>Those with more experience will probably lean towards using a utility like <code>rsync</code> to sync the contents of their <code>_output</code> folder with their web server. For those with less experience, I recommend using something like <a href="https://app.netlify.com/drop">Netlify Drop</a> to make things as friction-less as possible.</p> +<h3 id="wrapping-up">Wrapping Up</h3> +<p>There isn’t much else to say. <code>pblog</code> is as static or flexible as you chose it to be. If you have any ideas on how to improve things or come across any bugs, please <a href="https://git.sr.ht/~bt/pblog">open a ticket or PR on the official repo</a>.</p> +<p>Thanks and happy blogging with <em>pblog</em>!</p>]]></description> + <author>brad@bt.ht (Bradley Taunt)</author> + <guid>https://pblog.bt.ht/blog/pblog-intro.html</guid> + </item> +<item> + <pubDate>Thu, 30 Jun 2022 01:00:00 EST</pubDate> + <category>2022/06/30/4</category> + <title>Announcing pblog</title> + <link>https://pblog.bt.ht/blog/pblog-launch.html</link> + <description><![CDATA[ +<header id="title-block-header"> +<h1 class="title">Announcing pblog</h1> +<p class="date">Thu, 30 Jun 2022</p> +</header> +<p>It’s time to celebrate! The official launch of <code>pblog</code> happened today.</p> +<p>There isn’t much else to say. All details and instructions on how to start your own pblog can be found on the <a href="https://pblog.bt.ht">main homepage for this project</a>.</p> +<p>Thanks for reading!</p>]]></description> + <author>brad@bt.ht (Bradley Taunt)</author> + <guid>https://pblog.bt.ht/blog/pblog-launch.html</guid> + </item> +<item> + <pubDate>Fri, 08 Jul 2022 01:00:00 EST</pubDate> + <category>2022/07/08/5</category> + <title>Includes, rsync and Variables - Oh My!</title> + <link>https://pblog.bt.ht/blog/small-patch.html</link> + <description><![CDATA[ +<header id="title-block-header"> +<h1 class="title">Includes, rsync and Variables - Oh My!</h1> +<p class="date">Fri, 08 Jul 2022</p> +</header> +<nav id="TOC" role="doc-toc"> +<ul> +<li><a href="#default-header-footer-includes" id="toc-default-header-footer-includes">Default “header” & “footer” Includes</a></li> +<li><a href="#syncing-changes-with-rsync" id="toc-syncing-changes-with-rsync">Syncing Changes with rsync</a></li> +<li><a href="#on-the-horizon" id="toc-on-the-horizon">On the Horizon…</a></li> +</ul> +</nav> +<p>Even though <code>pblog</code> was just launched a week ago, it has since been updated with some nice quality-of-life improvements.</p> +<h3 id="default-header-footer-includes">Default “header” & “footer” Includes</h3> +<p>A new variable was added to the main <code>pblog.sh</code> configuration file called <code>INC_HEAD_FOOT</code>. By default this is set to <code>true</code> and simply pulls in two HTML files:</p> +<ul> +<li><code>_header.html</code>: all content within is placed directly after the opening <code>body</code> tag</li> +<li><code>_footer.html</code>: all content within is placed directly before the closing <code>body</code> tag</li> +</ul> +<p>These includes are added to every outputted file from inside both the <code>posts</code> and <code>pages</code> directories on build.</p> +<h3 id="syncing-changes-with-rsync">Syncing Changes with rsync</h3> +<p>Although it adds another dependency to the project, I believe utilizing <code>rsync</code> for the generated files is far better then nuking the directory from orbit each time. This also provides a cleaner experience for users syncing their <code>_output</code> directory with their web server of choice.</p> +<h3 id="on-the-horizon">On the Horizon…</h3> +<p>My plan was to also tackle the issue of “auto rebuilds” when running <code>pblog</code> locally. This became more of a headache than I initially estimated - so it was dropped from this patch. My hope is to get something up-and-running in the near future, while avoiding the inclusion of yet another major dependency. Anyone more experienced than myself in the ways of “auto rebuilds” is free to open a patch if they so desire!</p> +<p>Thanks for your interest in these minor updates!</p> +<p>P.S. Don’t forget - if your website runs on <code>pblog</code> be sure to reach out and get it featured on the <a href="/">homepage</a>!</p>]]></description> + <author>brad@bt.ht (Bradley Taunt)</author> + <guid>https://pblog.bt.ht/blog/small-patch.html</guid> + </item> + </channel> +</rss> diff --git a/_output/index.html b/_output/index.html new file mode 100644 index 0000000..ce823c6 --- /dev/null +++ b/_output/index.html @@ -0,0 +1,178 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"> +<head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> + <title>pblog</title> + <style> + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + /* CSS for syntax highlighting */ + pre > code.sourceCode { white-space: pre; position: relative; } + pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } + pre > code.sourceCode > span:empty { height: 1.2em; } + .sourceCode { overflow: visible; } + code.sourceCode > span { color: inherit; text-decoration: inherit; } + div.sourceCode { margin: 1em 0; } + pre.sourceCode { margin: 0; } + @media screen { + div.sourceCode { overflow: auto; } + } + @media print { + pre > code.sourceCode { white-space: pre-wrap; } + pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } + } + pre.numberSource code + { counter-reset: source-line 0; } + pre.numberSource code > span + { position: relative; left: -4em; counter-increment: source-line; } + pre.numberSource code > span > a:first-child::before + { content: counter(source-line); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + color: #aaaaaa; + } + pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } + div.sourceCode + { } + @media screen { + pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } + } + code span.al { color: #ff0000; font-weight: bold; } /* Alert */ + code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ + code span.at { color: #7d9029; } /* Attribute */ + code span.bn { color: #40a070; } /* BaseN */ + code span.bu { color: #008000; } /* BuiltIn */ + code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ + code span.ch { color: #4070a0; } /* Char */ + code span.cn { color: #880000; } /* Constant */ + code span.co { color: #60a0b0; font-style: italic; } /* Comment */ + code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ + code span.do { color: #ba2121; font-style: italic; } /* Documentation */ + code span.dt { color: #902000; } /* DataType */ + code span.dv { color: #40a070; } /* DecVal */ + code span.er { color: #ff0000; font-weight: bold; } /* Error */ + code span.ex { } /* Extension */ + code span.fl { color: #40a070; } /* Float */ + code span.fu { color: #06287e; } /* Function */ + code span.im { color: #008000; font-weight: bold; } /* Import */ + code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ + code span.kw { color: #007020; font-weight: bold; } /* Keyword */ + code span.op { color: #666666; } /* Operator */ + code span.ot { color: #007020; } /* Other */ + code span.pp { color: #bc7a00; } /* Preprocessor */ + code span.sc { color: #4070a0; } /* SpecialChar */ + code span.ss { color: #bb6688; } /* SpecialString */ + code span.st { color: #4070a0; } /* String */ + code span.va { color: #19177c; } /* Variable */ + code span.vs { color: #4070a0; } /* VerbatimString */ + code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ + </style> + <link rel="stylesheet" href="style.css" /> + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> +</head> +<body> +<!-- Content placed here will appear directly after the opening <body> tag --> +<nav> + <a href="/">Home</a><span> / </span> + <a href="/blog">Blog</a><span> / </span> + <a href="/tweaks.html">Tweaks</a><span> / </span> + <a href="https://git.sr.ht/~bt/pblog">Download</a> +</nav> +<!-- Do not remove this opening article element --> +<article> +<header id="title-block-header"> +<h1 class="title">pblog</h1> +</header> +<p><img style="max-width:300px;" src="/media/pbj.svg" alt="Peanut butter sandwich"></p> +<h2 id="pandoc-static-blog-generator">Pandoc static blog generator</h2> +<p><code>pblog</code> comes packed with an incredible list of features:</p> +<ul> +<li>5-second configuration</li> +<li>Write all your posts and pages in Markdown</li> +<li>Valid RSS 2.0 feed (customized design too!)</li> +</ul> +<p>and it also <em>doesn’t</em> ship with a lot of other features:</p> +<ul> +<li>No advanced template layouts</li> +<li>No themes</li> +<li>No categories / tagging systems</li> +<li>No comments</li> +<li>No auto rebuilds for local testing</li> +</ul> +<p>But you can add these things yourself with a little know-how and patience! The goal of <code>pblog</code> is to remain as bare-bones as possible, so these “extras” are left out intentionally.</p> +<h2 id="live-demo">Live Demo</h2> +<p>This very website is a live demo! Mind blowing, right? Take a look at the <a href="/blog">automated blog list</a> to see some blog posts.</p> +<h2 id="requirements">Requirements</h2> +<h4 id="on-macos-bsd-systems">On MacOS / BSD Systems</h4> +<ul> +<li><a href="https://linux.die.net/man/1/rsync">rsync</a></li> +<li><a href="https://www.gnu.org/software/coreutils/">coreutils</a></li> +<li><a href="http://xmlsoft.org/xslt/xsltproc.html">xsltproc</a></li> +<li><a href="https://pandoc.org/installing.html">Pandoc</a></li> +</ul> +<h4 id="on-linux">On Linux</h4> +<ul> +<li><a href="https://linux.die.net/man/1/rsync">rsync</a></li> +<li><a href="http://xmlsoft.org/xslt/xsltproc.html">xsltproc</a></li> +<li><a href="https://pandoc.org/installing.html">Pandoc</a></li> +</ul> +<h2 id="getting-started">Getting Started</h2> +<ol type="1"> +<li>Clone the project repo: <a href="https://git.sr.ht/~bt/pblog">https://git.sr.ht/~bt/pblog</a></li> +<li>Edit the variables at the top of the <code>pblog.sh</code> file</li> +<li><strong>!! Pay close attention to the <code>OS</code> variable to set your correct operating system !!</strong></li> +<li>Edit the posts in <code>posts</code> and pages in <code>pages</code> to your own</li> +<li>Run <code>make</code> from the root directory</li> +<li>Upload the contents of the <code>_output</code> folder to your server</li> +<li>Profit!!!</li> +</ol> +<p>For a more in-depth look, take a look at the article <a href="/blog/pblog-intro.html">Introducing pblog</a></p> +<h2 id="base-settings">Base Settings</h2> +<h4 id="table-of-contents">Table of Contents</h4> +<p>By default <code>pblog</code> ships with TOC (Table of Contents) enabled. You can disable this on each individual page or post by editing the <code>TOC</code>variable in <code>pblog.sh</code> to <code>false</code>:</p> +<div class="sourceCode" id="cb1"><pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">TOC</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span></code></pre></div> +<h4 id="code-highlighting">Code Highlighting</h4> +<p><code>pblog</code> uses the standard syntax highlighting provided with Pandoc. To disable this, set the <code>SYNTAX</code> variable to <code>false</code> in <code>pblog.sh</code>:</p> +<div class="sourceCode" id="cb2"><pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="fu">SYNTAX</span><span class="kw">:</span><span class="at"> </span><span class="ch">false</span></span></code></pre></div> +<h2 id="extras">Extras</h2> +<ul> +<li>Add all media files (images, videos, etc.) under the <code>media</code> folder</li> +<li>Customize the look of your blog by editing the included <code>style.css</code></li> +<li>Looking for fancier <em>image manipulation</em>? Take a look at <a href="/tweaks.html">this detailed post to get setup</a></li> +</ul> +<p>You can share your <strong>pblog</strong> websites by emailing me at the address listed below and I’ll add them here.</p> +<p>brad at bt {dot} ht</p> +<h2 id="websites-using-pblog">Websites Using <code>pblog</code></h2> +<ul> +<li><a href="https://pblog.bt.ht">pblog.bt.ht</a> (this site!)</li> +<li><a href="https://www.ng5p.com">ng5p.com</a></li> +</ul> +</article><!-- Do not remove this closing article element --> + +<!-- Content placed here will appear directly before the closing </body> tag --> +<footer> + <br> + <hr> + <p><small>Powered by <a href="https://pblog.bt.ht">pblog</a><br> + Made with ♥ for a simpler web.</small></p> +</footer> +</body> +</html> diff --git a/_output/media/pb-sandwich.svg b/_output/media/pb-sandwich.svg new file mode 100644 index 0000000..c133117 --- /dev/null +++ b/_output/media/pb-sandwich.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="371px" height="398px" viewBox="0 0 371 398" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Generator: Sketch 62 (91390) - https://sketch.com --> + <title>pb-sandwich</title> + <desc>Created with Sketch.</desc> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> + <g id="pb-sandwich" fill="#000000" fill-rule="nonzero"> + <path d="M350.7,5.383 C351.09844,9.5197 351.09844,13.6877 350.7,17.828 C347.3875,32.64 347.3875,48 350.7,62.812 C354.2469,78.867 350.07891,96.476 350.7,113.335 C352.3172,150.171 354.3094,186.944 357.3562,223.715 C360.9031,266.09 365.8171,308.336 369.8012,350.645 C371.4184,367.571 367.5629,373.481 350.0162,375.536 C323.6332,379.0204 297.0042,380.8251 270.4962,383.4383 C247.3482,385.6766 224.2032,387.7313 201.1172,390.4071 C152.0232,396.1298 102.9292,400.3016 53.5272,395.5087 L53.523294,395.5087 C43.921694,394.60245 34.410294,392.8954 25.089294,390.4071 C21.257294,389.48913 17.850994,387.2938 15.433094,384.1844 C13.011194,381.075 11.722194,377.2352 11.772894,373.2934 C8.038494,309.9494 3.558094,246.6134 0.448795971,183.2034 L0.448795971,183.207306 C0.437175,165.074306 1.476194,146.957306 3.558294,128.949306 C4.366884,116.816306 9.780994,104.433306 1.194994,92.922306 C0.464524,91.363706 0.464524,89.562906 1.194994,88.004306 C7.417694,74.254306 4.058294,60.254306 2.999694,46.192306 C1.816094,29.954306 2.999694,27.524306 19.675694,24.665306 C50.784694,19.438706 82.331694,14.337306 113.941694,11.286306 C160.734694,6.743306 207.711694,3.196506 254.691694,0.958306 C280.636694,-0.287794 306.769694,1.891896 332.843694,2.825506 C338.835894,3.360666 344.796694,4.212206 350.702694,5.376306 L350.7,5.383 Z M16.88,95.668 C14.3292,126.406 11.0323,153.41 10.2238,180.477 C9.47771,205.368 11.03239,230.254 12.4621,255.145 C14.5168,290.301 17.5637,325.333 19.8059,360.425 C21.1731,382.077 21.6106,383.073 42.7039,386.495 L42.7039,386.491094 C51.075,388.069194 59.5709,388.901294 68.0909,388.979394 C101.5679,388.358304 135.0399,388.295804 168.3909,385.807494 C208.5239,382.819194 248.4689,377.409094 288.5409,373.362494 C306.5839,371.495294 324.7559,370.686694 342.7989,368.569494 C358.7909,366.702294 361.4669,363.530394 360.2829,347.788494 C359.0368,330.241494 356.486,312.819494 355.1188,295.335494 C350.4704,235.976494 345.9508,176.615494 341.5528,117.255494 C340.61921,104.376494 340.1856,91.493494 339.4981,77.435494 L339.502006,77.435494 C332.916106,76.345694 326.260006,75.744094 319.588006,75.630794 C218.978006,82.161994 118.428006,88.880794 16.878006,95.665794 L16.88,95.668 Z M340.43,14.777 C294.387,1.898 48.98,20.0036 11.96,39.168 L15.1944,67.168 C35.4794,70.7774 316.9044,48.5 336.0144,41.781 L340.43,14.777 Z M13.64,81.105 L14.19859,87.3277 L339.99859,63.2497 C337.84629,60.3435 334.89309,58.1247 331.50249,56.8669 C328.10799,55.6052 324.42439,55.3591 320.89749,56.15596 C268.87749,60.38646 216.85749,64.67936 164.84749,68.60096 C119.61349,72.08536 74.31249,74.82366 29.01749,78.49546 C23.91589,78.554054 18.81449,80.17126 13.65049,81.10486 L13.64,81.105 Z" id="Shape"></path> + <path d="M311.19,175.31 C309.9361,185.705 307.858,195.982 304.9673,206.048 C292.5223,238.466 293.7683,271.63 297.3775,305.107 C299.3697,323.775 299.3697,325.392 281.3225,330.431 C263.2795,335.4701 245.8575,337.7748 228.1235,341.693 L228.1235,341.689094 C200.4515,347.747694 172.1195,350.255494 143.8115,349.157894 C127.9995,348.888364 112.1905,350.052424 96.5845,352.642294 C82.8345,354.696994 74.4325,345.177494 64.6625,339.513294 C60.8031,337.274994 60.6195,327.443294 59.9945,320.845294 C56.7601,285.318294 54.4554,249.661294 50.6625,214.195294 L50.666407,214.195294 C48.623407,204.316394 45.318707,194.738294 40.834407,185.699294 C38.967207,180.968794 35.795307,176.800894 33.990607,172.074294 L33.990607,172.070388 C29.275807,161.632388 29.545307,149.625388 34.721077,139.406388 C39.892977,129.191388 49.416077,121.871388 60.619077,119.492388 C78.041077,114.824388 95.650077,110.656488 113.135077,106.176388 L113.135077,106.180294 C136.412077,99.813094 161.287077,103.324794 181.893077,115.887294 C191.850077,122.109994 198.506077,120.492794 208.088077,115.512294 C221.037077,108.574794 234.904077,103.504294 249.279077,100.453294 C275.912077,95.351694 301.236077,105.058794 307.209077,140.215294 C309.134877,152.160294 309.943477,164.106294 311.19,175.309294 L311.19,175.31 Z M105.11,340.32051 C141.758,338.6403 176.231,343.3708 210.52,335.2809 C231.489,330.3043 252.958,327.7536 273.985,322.8359 C288.11,319.6015 288.981,316.9882 288.047,302.3629 C287.11341,287.7419 286.3673,272.9329 285.1212,258.2459 L285.125106,258.249806 C283.812606,244.667806 285.687606,230.968806 290.597806,218.241806 C294.121206,208.644106 296.785306,198.753806 298.562606,188.682806 C302.175906,171.385806 301.816506,153.491806 297.507906,136.354806 C296.195406,128.405606 291.984506,121.225806 285.687906,116.202806 C279.387106,111.179406 271.449906,108.671606 263.410906,109.163706 C257.090606,108.831676 250.765906,109.655896 244.742906,111.589506 C232.437906,115.761406 220.512906,120.964506 209.090906,127.148506 C199.258906,132.750106 192.039906,135.300806 181.961906,126.652416 L181.961906,126.64851 C170.371906,117.17191 155.731906,112.24251 140.770906,112.77351 C119.067906,112.714916 97.688906,118.03521 78.547906,128.26551 C65.106906,135.54671 63.801906,139.96451 69.278406,154.58551 C75.501106,171.01151 82.344406,187.19051 87.946406,203.92951 L87.9425,203.92951 C92.1066,216.26951 94.962,229.01151 96.4659,241.94551 C98.7667,265.09351 99.0792,288.36351 100.6964,311.57051 C101.3839,321.21891 103.3722,330.17951 105.1144,340.32051 L105.11,340.32051 Z M65.102,202.19 L60.934,202.565 L70.3285,303.305 C70.141,269.453 76.7387,234.981 64.9144,202.255 L65.102,202.19 Z M42.891,145.69 C38.2855,163.362 42.33241,174.811 54.278,184.827 L42.891,145.69 Z M86.446,337.83 C88.8093,324.701 88.8093,324.701 84.4538,320.096 C84.0788,321.09209 83.2702,322.1507 83.3952,323.0843 C84.39129,328.0648 85.5124,332.9202 86.446,337.8343 L86.446,337.83 Z" id="Shape"></path> + <path d="M243.74,152.66 C232.103,174.004 220.283,194.91 207.963,217.746 C199.6271,207.8515 205.3497,202.937 207.963,198.144 C231.483,154.835 231.545,154.835 243.74,152.66 Z" id="Path"></path> + <path d="M237.02,219.43 C230.7973,214.0784 233.7231,209.352 235.4653,205.055 C244.8598,182.157 254.5673,167.035 262.2193,163.117 C263.7115,173.137 251.1453,201.574 237.0203,219.429 L237.02,219.43 Z" id="Path"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/_output/media/pbj.svg b/_output/media/pbj.svg new file mode 100644 index 0000000..1714983 --- /dev/null +++ b/_output/media/pbj.svg @@ -0,0 +1,173 @@ +<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg2" sodipodi:docname="pbjset.svg" viewBox="0 0 1050.3298 698.07765" version="1.1" inkscape:version="0.92.1 r15371" width="1120.3518" height="744.61615"> + <defs id="defs4797"> + <filter height="1.2043" x="-0.051610999" width="1.1032" y="-0.10213" id="filter3286"> + <feGaussianBlur inkscape:collect="always" stdDeviation="10.394196" id="feGaussianBlur3288"/> + </filter> + <filter height="2.8503001" x="-0.52041" width="2.0408001" y="-0.92517" id="filter3796"> + <feGaussianBlur inkscape:collect="always" stdDeviation="14.018444" id="feGaussianBlur3798"/> + </filter> + </defs> + <title id="title3983">PBJ</title> + <sodipodi:namedview id="base" bordercolor="#666666" inkscape:pageshadow="2" inkscape:window-y="-8" pagecolor="#ffffff" inkscape:window-height="706" inkscape:window-maximized="1" inkscape:zoom="0.15507428" inkscape:window-x="-8" showgrid="false" borderopacity="1.0" inkscape:current-layer="g2446" inkscape:cx="-390.85006" inkscape:cy="903.4191" inkscape:window-width="1366" showborder="true" inkscape:pageopacity="0.0" inkscape:document-units="px" inkscape:snap-global="false" showguides="false" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0"/> + <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer" transform="translate(1150.9137,-390.51055)"> + <g id="g9494" transform="translate(1,-1)"> + <g id="g9490" style="stroke:#000000;stroke-width:3" transform="translate(-261.63,-81.822)"> + <text transform="scale(1.1602156,0.86190877)" x="-352.54614" y="1025.968" id="text5364" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.17170715px;line-height:1;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" xml:space="preserve"><tspan style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" y="1040.2665" x="-352.54614" id="tspan5360" sodipodi:role="line"/><tspan id="tspan5362" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" y="1058.4382" x="-352.54614" sodipodi:role="line"/></text> + <g id="g5432" transform="matrix(2.8114524,0,0,2.6423074,626.29014,-1571.2278)"> + <g id="g6129"> + <path style="fill:#d3aed8;fill-opacity:1;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -399,776.04253 c -25.78125,1.00447 -38.16964,2.67857 -38.16964,2.67857 l -19.08482,10.37947 -3.0134,6.02678 0.33482,13.39286 6.69643,7.70089 20.08929,6.02679 35.82589,3.01339 28.45983,-5.69196 12.05356,-7.03125 3.01339,-9.375 -1.6741,-13.05804 -17.41072,-9.70982 -21.42857,-4.01786 z" id="path5344" inkscape:connector-curvature="0"/> + <path style="fill:#783891;fill-opacity:1;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -460.06598,807.5714 -3.88938,11.6631 -0.33482,112.16517 8.70536,9.375 17.07589,9.04018 28.79464,5.02232 33.48214,-4.01785 24.10715,-11.04911 5.02232,-10.04464 -1.00447,-114.84375 -5.35714,-6.69643 -7.03125,8.03571 -24.77678,8.37054 -29.46429,1.00446 -26.45089,-4.6875 -14.0625,-8.03571 z" id="path5342" inkscape:connector-curvature="0"/> + <path id="path8716" style="fill:#000000;stroke:#000000;stroke-width:3" d="m -413.56,955.04 c -9.1505,-0.7769 -16.669,-1.9787 -22.671,-3.6235 -16.467,-4.5131 -26.904,-12.166 -28.526,-20.918 -0.21133,-1.1397 -0.3299,-21.801 -0.3299,-57.486 0,-48.983 0.0611,-55.941 0.50632,-57.65 0.60205,-2.3114 1.8227,-4.6462 3.3806,-6.4663 l 1.134,-1.3248 0.0494,-7.0102 c 0.0563,-7.9879 0.21954,-8.6127 3.0825,-11.797 9.3612,-10.412 40.89,-16.043 69.138,-12.348 14.647,1.916 26.49,6.24 32.11,11.723 3.5579,3.4715 3.7183,4.0058 3.7781,12.585 l 0.05,7.1738 0.98948,1.2004 c 1.4455,1.7536 2.6176,4.0526 3.1935,6.2635 0.44521,1.7093 0.50632,8.6676 0.50632,57.65 0,35.685 -0.11857,56.346 -0.3299,57.486 -2.1527,11.61 -19.356,20.854 -44.519,23.922 -3.9586,0.4827 -18.298,0.8952 -21.542,0.6197 z m 18.001,-2.1361 c 22.236,-1.9142 40.158,-9.5873 45.086,-19.303 l 1.156,-2.2792 v -57.985 -29.73203 -28.25297 l -0.70619,-1.4864 c -0.3884,-0.8175 -1.1815,-2.1343 -1.7624,-2.9263 l -1.0562,-1.44 -1.0823,1.6051 c -4.6913,6.9576 -20.843,12.645 -40.644,14.312 -5.0859,0.4281 -17.677,0.42964 -22.791,0.003 -14.963,-1.2488 -28.183,-4.8674 -35.462,-9.7063 -2.1261,-1.4134 -5.0895,-4.2335 -5.9322,-5.6453 -0.37878,-0.6346 -0.43372,-0.6151 -1.3956,0.49545 -0.55073,0.63583 -1.4042,1.9736 -1.8965,2.9727 l -0.89521,1.8166 v 57.985 57.985 l 1.1561,2.2792 c 4.8557,9.5733 22.834,17.368 44.451,19.272 4.6958,0.4137 17.126,0.4317 21.774,0.031 z m 4.9545,-129.6 c 17.347,-2.1076 30.135,-6.7909 34.891,-12.778 1.6597,-2.0897 1.9796,-3.0563 2.1732,-6.5662 l 0.17304,-3.1379 -2.1033,2.0502 c -4.8959,4.7723 -13.114,8.2706 -25.059,10.668 -8.7928,1.7644 -13.234,2.1376 -25.433,2.1376 -12.198,0 -16.625,-0.37205 -25.448,-2.1385 -11.606,-2.3236 -19.699,-5.7113 -24.603,-10.298 l -2.1369,-1.9989 v 3.0238 c 0,2.3933 0.14073,3.2996 0.67491,4.3467 2.1085,4.133 7.5488,7.6143 16.501,10.559 6.9885,2.2989 15.083,3.8291 24.277,4.5892 5.3042,0.43852 20.985,0.16418 26.094,-0.45652 z m 0,-9.912 c 14.238,-1.7398 24.978,-5.0178 31.36,-9.5714 7.2404,-5.1667 7.3894,-11.219 0.3983,-16.179 -9.4934,-6.7353 -26.48,-10.532 -47.117,-10.532 -17.704,0 -32.676,2.774 -42.643,7.9005 -6.5206,3.354 -9.5444,6.7424 -9.5444,10.696 0,5.1555 5.9773,9.8736 17.176,13.557 6.9885,2.2989 15.083,3.8291 24.277,4.5892 5.3242,0.44017 20.988,0.16432 26.094,-0.45952 z" inkscape:connector-curvature="0" sodipodi:nodetypes="cccscccccccscccscccccccccccccccccccccccccccccccscscccsccscccccscscscc"/> + <path style="fill:#c6c872;fill-opacity:1;stroke:#000000;stroke-width:4.9224968;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m -449.57432,857.96257 v 52.94522 c 26.93508,10.24348 58.21094,7.52836 84.8121,-2.59171 l 1.00173,-51.46424 c -32.61148,9.99665 -54.87187,9.99665 -85.81383,1.11073 z" id="path5346" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/> + <path style="fill:none;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -445.49816,892.38127 c 27.5224,10.38211 52.10646,6.66022 78.15969,-2.35067" id="path5354" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/> + <ellipse ry="17.135998" rx="23.373981" cy="891.12457" cx="-408.17429" id="path6106" style="opacity:1;fill:#e1e2a4;fill-opacity:1;stroke:#838168;stroke-width:2.04256201;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.21209455;stroke-opacity:1;paint-order:stroke fill markers"/> + <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path5374" d="m -445.20433,904.97394 c 27.5224,10.38211 52.10646,6.66022 78.15969,-2.35067" style="fill:none;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + <g id="text6012" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.75859928px;line-height:1.25;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" transform="translate(-2.0007453,-13.482534)" aria-label="Grape"> + <path id="path6042" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -416.42525,891.50684 -3.07667,2.19981 q -1.08052,-1.06966 -2.17908,-1.44903 -0.73026,-0.25218 -1.30634,-0.0247 -0.56754,0.22335 -0.78244,0.84566 -0.40788,1.18111 1.14154,1.71618 l 0.5241,-1.51767 4.29266,1.48239 -1.80475,5.22613 q -2.65397,-0.75304 -3.57473,-1.07101 -3.55605,-1.22802 -4.41846,-3.21739 -0.86241,-1.98937 -0.16727,-4.00235 0.47805,-1.38432 1.51852,-2.31855 1.04681,-0.93204 2.47897,-1.14821 1.43851,-0.21397 3.10223,0.36056 1.16842,0.4035 2.30097,1.1784 1.13474,0.76856 1.95075,1.73976 z" inkscape:connector-curvature="0"/> + <path id="path6044" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -413.04549,894.8226 q 1.10334,-1.67315 2.58485,-1.40917 0.82674,0.14731 1.26583,0.7851 0.43909,0.6378 0.2906,1.47115 -0.15556,0.87304 -0.7813,1.3211 -0.61796,0.44262 -1.46454,0.29178 -0.96563,-0.17206 -1.52384,-1.02215 -0.7004,0.40747 -0.95023,1.80961 l -0.52914,2.96964 -4.08739,-0.72829 1.41888,-7.96313 4.08739,0.72829 z" inkscape:connector-curvature="0"/> + <path id="path6046" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -409.62205,897.02812 -0.0764,-2.43074 q 1.72909,-1.0155 3.95838,-1.08556 2.12187,-0.0667 3.15757,0.80816 1.0357,0.87484 1.09436,2.74154 l 0.14053,4.47203 -4.14971,0.1304 -0.019,-0.60432 q -0.89882,0.70038 -2.00004,0.73499 -0.92664,0.0291 -1.56317,-0.54908 -0.63675,-0.58492 -0.66545,-1.49812 -0.0327,-1.04079 0.7123,-1.71618 0.74481,-0.6821 1.98032,-0.72092 0.72519,-0.0228 1.42272,0.14348 -0.0177,-0.56403 -0.4641,-0.86591 -0.43966,-0.30209 -1.21186,-0.27782 -1.14151,0.0359 -2.31647,0.71805 z m 4.06861,2.84971 -0.0354,-1.12808 q -0.38004,-0.11576 -0.6822,-0.10627 -0.37603,0.0118 -0.59821,0.21372 -0.22218,0.20191 -0.21226,0.5175 0.0103,0.32902 0.25903,0.54301 0.25541,0.21378 0.63144,0.20196 0.38274,-0.012 0.63765,-0.24184 z" inkscape:connector-curvature="0"/> + <path id="path6048" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -397.78736,892.41116 0.15691,0.59781 q 0.72925,-0.89986 1.75592,-1.16934 1.46854,-0.38546 2.73797,0.45515 1.27594,0.83891 1.71085,2.49589 0.46904,1.78694 -0.28654,3.22158 -0.74908,1.43294 -2.38006,1.86104 -0.81875,0.2149 -1.71489,0.082 l 0.64982,2.47572 -4.01574,1.05404 -2.62998,-10.01985 z m 0.90395,3.44392 0.37011,1.41006 q 0.40035,0.0963 0.74474,0.006 0.35739,-0.0938 0.51489,-0.41992 0.1575,-0.32611 0.0415,-0.76797 -0.11428,-0.43536 -0.41504,-0.65508 -0.30077,-0.21972 -0.65816,-0.12591 -0.40287,0.10574 -0.59806,0.55288 z" inkscape:connector-curvature="0"/> + <path id="path6050" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -382.71524,892.14233 0.55272,1.30531 q -0.55903,2.17733 -2.91602,3.17537 -1.9425,0.82253 -3.57988,0.24644 -1.64001,-0.58228 -2.38657,-2.34538 -0.70989,-1.67649 -0.0752,-3.19277 0.64086,-1.51889 2.37303,-2.25236 0.88464,-0.37459 1.76511,-0.39723 0.88046,-0.0226 1.67466,0.31955 0.7942,0.34219 1.37623,0.99309 0.58202,0.65089 1.04568,1.74587 l -3.90357,1.65292 q 0.45133,0.48008 1.08246,0.59221 0.63112,0.11212 1.26831,-0.15769 1.28675,-0.54486 1.72307,-1.68533 z m -4.85545,0.0424 1.80022,-0.76228 q -0.2605,-0.54629 -0.64512,-0.74821 -0.38105,-0.21072 -0.78316,-0.0404 -0.35262,0.14931 -0.48409,0.56246 -0.13408,0.40697 0.11215,0.98848 z" inkscape:connector-curvature="0"/> + </g> + <g id="text6028" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.75859928px;line-height:1.25;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" transform="translate(-2.6676604,19.868997)" aria-label="Jelly"> + <path id="path6053" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -418.15124,870.50613 4.35926,1.27328 -1.70461,5.836 q -0.55376,1.89589 -0.96086,2.54685 -0.40522,0.64451 -1.25366,0.86561 -0.84011,0.21653 -1.85254,-0.0792 -1.34131,-0.39177 -2.18742,-1.35278 -0.83966,-0.95913 -0.86471,-2.19123 0.33852,0.18286 0.9189,0.35238 0.83832,0.24486 1.15038,0.063 0.31394,-0.18825 0.53996,-0.96208 z" inkscape:connector-curvature="0"/> + <path id="path6055" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -406.51669,880.07663 -0.18004,1.40603 q -1.57969,1.59932 -4.11855,1.27422 -2.09238,-0.26792 -3.21667,-1.59037 -1.12344,-1.32912 -0.88026,-3.22826 0.23124,-1.80585 1.54329,-2.79602 1.31871,-0.98931 3.18454,-0.75039 0.9529,0.12202 1.72491,0.54597 0.77201,0.42396 1.28572,1.11962 0.51371,0.69566 0.68863,1.55113 0.17492,0.85547 0.0239,2.03493 l -4.20476,-0.53841 q 0.14806,0.64207 0.63678,1.05684 0.48872,0.41477 1.17508,0.50266 1.38604,0.17748 2.33744,-0.58795 z m -4.21582,-2.40915 1.93913,0.2483 q 0.0501,-0.60314 -0.18041,-0.97131 -0.22303,-0.37398 -0.65617,-0.42944 -0.37983,-0.0486 -0.70151,0.24204 -0.32083,0.28402 -0.40104,0.91041 z" inkscape:connector-curvature="0"/> + <path id="path6057" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -401.43229,882.80625 -4.14652,0.20869 -0.51528,-10.23881 4.14651,-0.20869 z" inkscape:connector-curvature="0"/> + <path id="path6059" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -395.75847,881.85525 -4.08249,0.7553 -1.86503,-10.0807 4.08249,-0.7553 z" inkscape:connector-curvature="0"/> + <path id="path6061" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -388.74731,882.11907 -4.27873,1.43996 0.32337,-4.26257 -4.7482,-5.17846 3.91581,-1.31783 1.61108,1.73316 0.19719,-2.34171 3.8203,-1.28568 z" inkscape:connector-curvature="0"/> + </g> + <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path6030" d="m -436.42519,893.35075 c 25.55367,11.8861 37.28323,10.84607 61.58016,-1.78292" style="fill:none;stroke:none;stroke-width:0.34396499px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + <path style="fill:none;stroke:none;stroke-width:0.34396499px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -435.24556,874.63014 c 25.55367,11.8861 37.28323,10.84607 61.58016,-1.78292" id="path6032" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/> + </g> + <g transform="matrix(0.35568804,0,0,0.3784571,-202.90121,677.89864)" inkscape:label="Layer 1" id="layer1-6"> + <g transform="translate(1,-1)" id="g9494-9"> + <g transform="translate(-261.63,-81.822)" style="stroke:#000000;stroke-width:3" id="g9490-6"> + <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.17170715px;line-height:1;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="text5364-3" y="1025.968" x="-352.54614" transform="scale(1.1602156,0.86190877)"><tspan sodipodi:role="line" id="tspan5360-7" x="-352.54614" y="1040.2665" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/><tspan sodipodi:role="line" x="-352.54614" y="1058.4382" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="tspan5362-7"/></text> + <g transform="matrix(2.8114524,0,0,2.6423074,626.29014,-1571.2278)" id="g5432-5"> + <path style="fill:#a71e23;fill-opacity:1;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -399,776.04253 c -25.78125,1.00447 -38.16964,2.67857 -38.16964,2.67857 l -19.08482,10.37947 -3.0134,6.02678 0.33482,13.39286 6.69643,7.70089 20.08929,6.02679 35.82589,3.01339 28.45983,-5.69196 12.05356,-7.03125 3.01339,-9.375 -1.6741,-13.05804 -17.41072,-9.70982 -21.42857,-4.01786 z" id="path5344-1" inkscape:connector-curvature="0"/> + <path style="fill:#c88444;fill-opacity:1;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -460.06598,807.5714 -3.88938,11.6631 -0.33482,112.16517 8.70536,9.375 17.07589,9.04018 28.79464,5.02232 33.48214,-4.01785 24.10715,-11.04911 5.02232,-10.04464 -1.00447,-114.84375 -5.35714,-6.69643 -7.03125,8.03571 -24.77678,8.37054 -29.46429,1.00446 -26.45089,-4.6875 -14.0625,-8.03571 z" id="path5342-8" inkscape:connector-curvature="0"/> + <path id="path8716-9" style="fill:#000000;stroke:#000000;stroke-width:3" d="m -413.56,955.04 c -9.1505,-0.7769 -16.669,-1.9787 -22.671,-3.6235 -16.467,-4.5131 -26.904,-12.166 -28.526,-20.918 -0.21133,-1.1397 -0.3299,-21.801 -0.3299,-57.486 0,-48.983 0.0611,-55.941 0.50632,-57.65 0.60205,-2.3114 1.8227,-4.6462 3.3806,-6.4663 l 1.134,-1.3248 0.0494,-7.0102 c 0.0563,-7.9879 0.21954,-8.6127 3.0825,-11.797 9.3612,-10.412 40.89,-16.043 69.138,-12.348 14.647,1.916 26.49,6.24 32.11,11.723 3.5579,3.4715 3.7183,4.0058 3.7781,12.585 l 0.05,7.1738 0.98948,1.2004 c 1.4455,1.7536 2.6176,4.0526 3.1935,6.2635 0.44521,1.7093 0.50632,8.6676 0.50632,57.65 0,35.685 -0.11857,56.346 -0.3299,57.486 -2.1527,11.61 -19.356,20.854 -44.519,23.922 -3.9586,0.4827 -18.298,0.8952 -21.542,0.6197 z m 18.001,-2.1361 c 22.236,-1.9142 40.158,-9.5873 45.086,-19.303 l 1.156,-2.2792 v -57.985 -29.73203 -28.25297 l -0.70619,-1.4864 c -0.3884,-0.8175 -1.1815,-2.1343 -1.7624,-2.9263 l -1.0562,-1.44 -1.0823,1.6051 c -4.6913,6.9576 -20.843,12.645 -40.644,14.312 -5.0859,0.4281 -17.677,0.42964 -22.791,0.003 -14.963,-1.2488 -28.183,-4.8674 -35.462,-9.7063 -2.1261,-1.4134 -5.0895,-4.2335 -5.9322,-5.6453 -0.37878,-0.6346 -0.43372,-0.6151 -1.3956,0.49545 -0.55073,0.63583 -1.4042,1.9736 -1.8965,2.9727 l -0.89521,1.8166 v 57.985 57.985 l 1.1561,2.2792 c 4.8557,9.5733 22.834,17.368 44.451,19.272 4.6958,0.4137 17.126,0.4317 21.774,0.031 z m 4.9545,-129.6 c 17.347,-2.1076 30.135,-6.7909 34.891,-12.778 1.6597,-2.0897 1.9796,-3.0563 2.1732,-6.5662 l 0.17304,-3.1379 -2.1033,2.0502 c -4.8959,4.7723 -13.114,8.2706 -25.059,10.668 -8.7928,1.7644 -13.234,2.1376 -25.433,2.1376 -12.198,0 -16.625,-0.37205 -25.448,-2.1385 -11.606,-2.3236 -19.699,-5.7113 -24.603,-10.298 l -2.1369,-1.9989 v 3.0238 c 0,2.3933 0.14073,3.2996 0.67491,4.3467 2.1085,4.133 7.5488,7.6143 16.501,10.559 6.9885,2.2989 15.083,3.8291 24.277,4.5892 5.3042,0.43852 20.985,0.16418 26.094,-0.45652 z m 0,-9.912 c 14.238,-1.7398 24.978,-5.0178 31.36,-9.5714 7.2404,-5.1667 7.3894,-11.219 0.3983,-16.179 -9.4934,-6.7353 -26.48,-10.532 -47.117,-10.532 -17.704,0 -32.676,2.774 -42.643,7.9005 -6.5206,3.354 -9.5444,6.7424 -9.5444,10.696 0,5.1555 5.9773,9.8736 17.176,13.557 6.9885,2.2989 15.083,3.8291 24.277,4.5892 5.3242,0.44017 20.988,0.16432 26.094,-0.45952 z" inkscape:connector-curvature="0" sodipodi:nodetypes="cccscccccccscccscccccccccccccccccccccccccccccccscscccsccscccccscscscc"/> + <path style="fill:#72a5c8;fill-opacity:1;stroke:#000000;stroke-width:4.9224968;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m -449.57432,857.96257 v 52.94522 c 26.93508,10.24348 58.21094,7.52836 84.8121,-2.59171 l 1.00173,-51.46424 c -32.61148,9.99665 -54.87187,9.99665 -85.81383,1.11073 z" id="path5346-4" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/> + <path style="fill:#c1dfef;fill-opacity:1;stroke:#5c7e80;stroke-width:0.9375px;stroke-linecap:round;stroke-linejoin:bevel;stroke-opacity:1" d="m -428.27399,877.39576 -9.10883,-8.815 6.46433,19.09917 h -13.2225 l 10.87183,4.11367 -7.63966,14.10401 13.81017,-7.63967 3.23216,11.75333 5.58284,-10.28417 9.40267,10.28417 0.58766,-7.63967 8.81501,6.46434 -0.8815,-9.40267 13.81017,7.9335 -2.93834,-9.6965 15.57317,5.58284 -6.1705,-7.63967 7.9335,-1.46918 -6.46433,-4.40749 9.10883,-11.45951 -8.22733,2.35067 4.99517,-12.341 -10.28417,7.34583 -0.8815,-8.52117 -6.46434,7.34584 -2.35066,-5.58283 -2.64451,5.87666 -8.52116,-4.4075 0.29383,5.58284 -7.34584,-7.052 0.29384,7.34583 -6.1705,-6.75817 0.29383,9.40267 -7.9335,-9.99033 z" id="path5409" inkscape:connector-curvature="0"/> + <g aria-label="Peanut" transform="translate(0,-11.25)" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.17170715px;line-height:1;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="text5350"> + <path inkscape:connector-curvature="0" d="m -424.12136,889.78353 q -0.33383,1.60718 -1.30798,2.50137 -1.26499,1.16003 -3.54111,0.68726 l -1.92862,-0.4006 -0.81562,3.92674 -3.08406,-0.64059 2.46312,-11.85841 4.90842,1.01954 q 2.09368,0.43488 2.92519,1.88537 0.7199,1.24607 0.38066,2.87932 z m -3.2129,-0.63111 q 0.13714,-0.66025 -0.17259,-1.13238 -0.29924,-0.47903 -1.2288,-0.67211 l -1.03381,-0.21473 -0.61172,2.94506 1.02512,0.21292 q 0.99906,0.20752 1.46284,-0.14926 0.42002,-0.32056 0.55896,-0.9895 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5383"/> + <path inkscape:connector-curvature="0" d="m -415.34305,895.11186 -6.09742,-0.55144 q -0.16703,1.8469 1.61801,2.00834 0.91019,0.0823 1.46655,-0.65137 l 2.80128,0.25334 q -0.4365,1.08307 -1.14557,1.63367 -1.28404,0.99752 -3.27232,0.8177 -2.52734,-0.22857 -3.66079,-1.88126 -0.85048,-1.2351 -0.70103,-2.88759 0.17742,-1.96178 1.48148,-3.08221 1.30406,-1.12043 3.47792,-0.92383 2.67756,0.24215 3.65053,2.29015 0.54599,1.15411 0.41492,2.60335 z m -2.55383,-1.90588 q -0.18621,-1.38884 -1.52941,-1.51032 -0.7423,-0.0671 -1.24097,0.32432 -0.39348,0.31187 -0.54343,0.88631 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5385"/> + <path inkscape:connector-curvature="0" d="m -404.72027,898.51383 -2.9095,0.0691 -0.0217,-0.91365 q -0.40448,0.53326 -0.82457,0.78287 -0.73521,0.43461 -1.68434,0.45716 -1.53458,0.0364 -2.75716,-0.99069 -1.45805,-1.22567 -1.50735,-3.30135 -0.0501,-2.11115 1.38355,-3.40551 1.13821,-1.02996 2.64618,-1.06578 0.87817,-0.0209 1.65874,0.33337 0.44858,0.20235 0.9303,0.67906 l -0.0192,-0.80721 2.90949,-0.0691 z m -2.91856,-4.04887 q -0.0185,-0.78059 -0.58135,-1.30863 -0.56303,-0.5369 -1.34363,-0.51836 -0.8693,0.0207 -1.41254,0.69034 -0.43975,0.54297 -0.42353,1.22599 0.0162,0.68302 0.48126,1.2045 0.56556,0.64334 1.44373,0.62248 0.78946,-0.0187 1.3177,-0.5727 0.53712,-0.55415 0.51836,-1.34362 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5387"/> + <path inkscape:connector-curvature="0" d="m -394.10111,897.21518 -2.8864,0.37229 -0.53346,-4.136 q -0.13961,-1.08241 -0.43141,-1.40263 -0.42777,-0.47266 -1.14937,-0.37959 -0.66,0.0851 -1.05091,0.59181 -0.35259,0.45702 -0.24136,1.31942 l 0.56411,4.3736 -2.88641,0.37229 -1.0533,-8.16641 2.88641,-0.37229 0.13279,1.0296 q 0.42669,-0.64549 0.81845,-0.93757 0.63646,-0.47574 1.66606,-0.60853 1.32,-0.17026 2.23914,0.43585 1.04602,0.68816 1.25486,2.30736 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5389"/> + <path inkscape:connector-curvature="0" d="m -384.19697,892.04929 q 0.48829,2.24561 -1.47569,3.44448 -0.81838,0.49575 -2.09292,0.77289 -2.50572,0.54484 -3.86588,-0.44879 -0.8633,-0.62951 -1.14044,-1.90404 l -1.11042,-5.10681 2.84386,-0.61837 0.99165,4.56058 q 0.16402,0.75431 0.60547,1.03061 0.47311,0.29666 1.16674,0.14584 0.68495,-0.14894 0.99216,-0.61527 0.28686,-0.43466 0.12284,-1.18898 l -0.99165,-4.56058 2.84386,-0.61837 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5391"/> + <path inkscape:connector-curvature="0" d="m -378.47742,887.50592 -1.59945,0.44139 1.5531,5.628 -2.80545,0.77419 -1.5531,-5.628 -0.92374,0.25491 -0.63729,-2.30936 0.92374,-0.25492 -0.65853,-2.38634 2.80545,-0.77419 0.65853,2.38634 1.59945,-0.44138 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5393"/> + </g> + <path style="fill:none;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -445.49816,892.38127 c 27.5224,10.38211 52.10646,6.66022 78.15969,-2.35067" id="path5354-9" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/> + <g aria-label="Butter" transform="translate(1.875,-9.375)" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.17170715px;line-height:1;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="text5370"> + <path inkscape:connector-curvature="0" d="m -420.88733,907.44295 q -0.21542,1.34036 -1.11275,2.05887 -1.29953,1.0403 -3.55973,0.67705 l -4.98472,-0.80114 1.92188,-11.95806 4.62554,0.74341 q 3.36402,0.54066 2.86278,3.65939 -0.15065,0.93738 -0.61996,1.509 -0.39251,0.48511 -1.09256,0.75903 1.38884,0.52876 1.7779,1.463 0.34776,0.85572 0.18162,1.88945 z m -3.18661,-5.67055 q 0.13094,-0.81472 -0.5627,-1.19581 -0.24873,-0.12984 -0.68676,-0.20024 l -0.56943,-0.0915 -0.37593,2.33905 0.56944,0.0915 q 0.80596,0.12953 1.21974,-0.20837 0.33102,-0.27032 0.40564,-0.73463 z m 0.11043,4.96047 q 0.16755,-1.04249 -0.88043,-1.39964 -0.33321,-0.10748 -1.16545,-0.24124 l -0.63952,-0.10278 -0.40549,2.52302 0.69207,0.11123 q 1.19143,0.19148 1.70955,-0.0128 0.58508,-0.22949 0.68927,-0.87777 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5396"/> + <path inkscape:connector-curvature="0" d="m -410.79024,908.34121 q -0.0943,2.29615 -2.29728,2.96051 -0.91701,0.27315 -2.22023,0.21963 -2.56211,-0.10522 -3.62746,-1.40998 -0.67646,-0.82702 -0.62294,-2.13023 l 0.21444,-5.22174 2.90786,0.11942 -0.1915,4.66321 q -0.0317,0.77129 0.32574,1.15007 0.38293,0.40646 1.09216,0.43559 0.70037,0.0288 1.11533,-0.34494 0.38728,-0.34819 0.41895,-1.11948 l 0.19151,-4.66322 2.90786,0.11942 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5398"/> + <path inkscape:connector-curvature="0" d="m -404.29568,905.17774 -1.65751,0.0755 0.26549,5.83233 -2.90731,0.13234 -0.26548,-5.83233 -0.95729,0.0436 -0.10893,-2.3932 0.95728,-0.0436 -0.11257,-2.47298 2.9073,-0.13234 0.11257,2.47298 1.65752,-0.0754 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5400"/> + <path inkscape:connector-curvature="0" d="m -398.66226,904.58828 -1.65045,0.17056 0.60015,5.80745 -2.89489,0.29916 -0.60015,-5.80745 -0.9532,0.0985 -0.24626,-2.383 0.9532,-0.0985 -0.25447,-2.46243 2.89489,-0.29916 0.25447,2.46243 1.65045,-0.17056 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5402"/> + <path inkscape:connector-curvature="0" d="m -388.98286,905.24245 -6.03062,1.05555 q 0.31972,1.82667 2.08521,1.51765 0.90022,-0.15757 1.2463,-1.01083 l 2.77059,-0.48494 q -0.13936,1.15938 -0.68057,1.87564 -0.97994,1.2975 -2.94645,1.6417 -2.49965,0.43752 -4.0244,-0.86296 -1.14279,-0.97098 -1.42886,-2.60537 -0.33962,-1.94029 0.62765,-3.36167 0.96726,-1.42139 3.11731,-1.79772 2.64823,-0.46352 4.12099,1.26041 0.82771,0.97209 1.0786,2.40546 z m -2.96205,-1.17501 q -0.54149,-1.29243 -1.86997,-1.0599 -0.73417,0.1285 -1.11369,0.63632 -0.29868,0.40358 -0.29385,0.99725 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5404"/> + <path inkscape:connector-curvature="0" d="m -382.06683,901.5115 q -0.66416,-0.13947 -1.27621,0.01 -1.39652,0.34044 -1.5329,1.57921 -0.0543,0.45161 0.11592,1.14987 l 0.83429,3.42231 -2.8275,0.68929 -1.95019,-7.99977 2.82751,-0.68929 0.31943,1.31031 q 0.27804,-0.80754 0.71961,-1.24396 0.59739,-0.58401 1.55426,-0.81727 0.22413,-0.0546 0.55801,-0.10864 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5406"/> + </g> + <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path5374-0" d="m -445.20433,904.97394 c 27.5224,10.38211 52.10646,6.66022 78.15969,-2.35067" style="fill:none;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + </g> + </g> + </g> + </g> + <g transform="matrix(0.33345754,0,0,0.35480353,-888.61178,613.10651)" id="layer1-0"> + <g transform="matrix(0.93543,0,0,0.93543,30.691,32.275)" id="g2446"> + <g id="g7113" transform="translate(1296.0053,661.78996)"> + <g id="g3322" style="stroke:#000000;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" transform="matrix(0.72518827,0,0,0.61912351,296.18881,160.71694)"> + <path inkscape:connector-curvature="0" id="path3324" style="fill:#e9b96e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 114.44,325.84 C 94.5,325.79 81.247,326.9 77.156,329.5 45.728,349.5 94.281,672.38 94.281,672.38 105.71,675.23 170,608.09 170,608.09 L 284.28,548.56 V 336.34 c -69.6,-6.07 -131.88,-10.39 -169.84,-10.5 z"/> + <path inkscape:connector-curvature="0" id="path3326" style="fill:#fcaf3e;fill-rule:evenodd;stroke:#000000;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 94.286,602.36 c 0,0 -48.572,-322.85 -17.143,-342.85 31.427,-20 602.86,48.57 602.86,48.57 l -95.71,88.57 -441.43,230 c 0,0 -37.15,-21.43 -48.574,-24.29 z"/> + <path inkscape:connector-curvature="0" id="path3328" style="fill:#e9b96e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 97.143,604.96 581.43,-296.63 v 72.86 l -581.43,296.63 0.003,-72.86 z"/> + </g> + <path inkscape:connector-curvature="0" id="path3312" style="fill:#c88444;fill-opacity:1;fill-rule:evenodd;stroke-width:3.52778935;stroke-miterlimit:4;stroke-dasharray:none" d="m 387.09623,510.03881 -6.95455,-50.34713 384.21925,-123.20558 18.68085,5.31828 -11.35645,9.06396 L 391.49087,511.599 Z"/> + <g style="fill:#783891;fill-opacity:1;stroke-width:4.46717215;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3349"> + <path inkscape:connector-curvature="0" id="path3261" style="fill:#783891;fill-opacity:1;fill-rule:evenodd;stroke-width:4.46717215;stroke-miterlimit:4;stroke-dasharray:none" d="m 616.12,419.96 v 30.33 l 72.3,-8.02 c -4.28,8.1 -10.54,16.43 -18.4,24.73 l 21.82,-10.62 c 1.96,-5.11 3.09,-10.08 3.27,-14.86 l 0.36,-0.04 v -26.6 z m -132.11,86.1 -86.82,11.31 -0.33,24.96 c 1.82,20.15 21.72,32.02 52.27,34.51 l 47.91,-24.21 c -40.68,6.67 -73.38,2.41 -89.47,-11.48 l 76.44,-8.48 z"/> + <path inkscape:connector-curvature="0" id="path3263" style="fill:#783891;fill-opacity:1;stroke-width:4.46717215;stroke-miterlimit:4;stroke-dasharray:none" d="m 607.31,381.87 c -18.73,2.11 -39.53,6.74 -61.41,14.01 -82.37,27.34 -149.2,81.88 -149.2,121.77 0,24.38 24.96,37.67 63.18,38.07 L 687.93,443.19 c 4.67,-8.55 7.2,-16.85 7.2,-24.6 0,-29.29 -36.05,-42.57 -87.82,-36.72 z"/> + <rect id="rect3265" style="fill:#783891;fill-opacity:1;stroke-width:4.71623373;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.89717,-0.44169,0,1,0,0)" height="23.353197" width="296.62384" y="774.76569" x="476.42615"/> + </g> + <g style="fill:#783891;fill-opacity:1;stroke-width:3.98854685;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3356"> + <path inkscape:connector-curvature="0" id="path3196" style="fill:#783891;fill-opacity:1;fill-rule:evenodd;stroke-width:3.98854685;stroke-miterlimit:4;stroke-dasharray:none" d="m 347.42,553.36 v 30.33 l 72.3,-8.02 c -4.28,8.1 -10.54,16.43 -18.4,24.73 l 21.82,-10.62 c 1.96,-5.11 3.09,-10.08 3.26,-14.86 l 0.36,-0.03 v -26.61 z m -132.11,86.11 -86.82,11.3 -0.33,24.97 c 1.82,20.14 21.72,32.01 52.27,34.5 l 47.91,-24.21 c -40.68,6.67 -73.38,2.41 -89.47,-11.48 l 76.44,-8.48 z"/> + <path sodipodi:nodetypes="ccsccsc" inkscape:connector-curvature="0" id="path3185" style="fill:#783891;fill-opacity:1;stroke-width:3.98854685;stroke-miterlimit:4;stroke-dasharray:none" d="m 338.61,515.27 c -18.73,2.11 -39.53,6.74 -61.41,14.01 -82.37,27.34 -149.2,81.88 -149.2,121.77 0,24.38 24.96,37.68 63.18,38.08 L 419.23,576.59 c 4.67,-8.55 6.06797,-5.5793 6.06797,-13.3193 0,-29.3 -34.91797,-53.8507 -86.68797,-48.0007 z"/> + </g> + <rect id="rect3232" style="fill:#783891;fill-opacity:1;stroke-width:2.78350163;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.92188016,-0.38747512,0,1,0,0)" height="13.383594" width="191.10306" y="654.539" x="435.42807"/> + <g id="g3172" style="stroke:#000000;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" transform="matrix(0.72518827,0,0,0.61912351,296.18881,70.321812)"> + <path inkscape:connector-curvature="0" id="rect3169" style="fill:#e9b96e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 114.44,325.84 C 94.5,325.79 81.247,326.9 77.156,329.5 45.728,349.5 94.281,672.38 94.281,672.38 105.71,675.23 170,608.09 170,608.09 L 284.28,548.56 V 336.34 c -69.6,-6.07 -131.88,-10.39 -169.84,-10.5 z"/> + <path inkscape:connector-curvature="0" id="path3160" style="fill:#fcaf3e;fill-rule:evenodd;stroke:#000000;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 94.286,602.36 c 0,0 -48.572,-322.85 -17.143,-342.85 31.427,-20 602.86,48.57 602.86,48.57 l -95.71,88.57 -441.43,230 c 0,0 -37.15,-21.43 -48.574,-24.29 z"/> + <path inkscape:connector-curvature="0" id="rect2383" style="fill:#e9b96e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 97.143,604.96 581.43,-296.63 v 72.86 l -581.43,296.63 0.003,-72.86 z"/> + </g> + <path transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" inkscape:connector-curvature="0" id="path3269" style="opacity:0.51036999;fill:#7f29ef;fill-opacity:1;fill-rule:evenodd;stroke-width:3.98854685;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter3286)" d="m 666.82,432.05 c -25.86,0.19 -69.92,20.98 -102.25,37.85 -18.64,9.72 -43.1,28.23 -65.75,46.9 z M 386.91,573.24 c -29.98,2.31 -68.8,9.18 -101.16,27.97 -34.1,19.81 -72.92,50.34 -101.28,74.09 z"/> + <path sodipodi:nodetypes="cccccc" inkscape:connector-curvature="0" id="path3310" style="fill:#c88444;fill-opacity:1;fill-rule:evenodd;stroke-width:2.67256784;stroke-miterlimit:4;stroke-dasharray:none" d="m 387.09623,510.34837 199.92978,-85.0266 195.65317,-83.20783 -0.73244,6.25315 -394.11807,166.9838 z"/> + <g style="stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3316"> + <path inkscape:connector-curvature="0" id="path3353" style="fill:#fcaf3e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 935.84,482.24 c 19.93,6.56 33.19,11.87 37.28,15.38 31.38,26.98 -17.13,278.41 -17.13,278.41 -11.43,-1.42 -75.72,-78.35 -75.72,-78.35 L 765.99,610.49 V 434.66 c 69.6,18.03 131.88,35.09 169.85,47.58 z"/> + <path inkscape:connector-curvature="0" id="path3355" style="fill:#e9b96e;fill-rule:evenodd;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 955.99,718.02 c 0,0 48.61,-251.41 17.14,-278.39 C 941.7,412.64 370.27,280.13 370.27,280.13 l 95.72,105.09 441.43,336.82 c 0,0 37.14,-5.44 48.57,-4.02 z"/> + <path inkscape:connector-curvature="0" id="path3357" style="fill:#e9b96e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 953.13,719.23 371.7,280.81 v 60.37 l 581.43,438.41 z"/> + </g> + <path inkscape:connector-curvature="0" id="path3359" style="fill:#c88444;fill-opacity:1;fill-rule:evenodd;stroke-width:7.48318958;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none" d="m 941.4374,478.59352 6.96181,-39.74153 -384.22651,-210.76822 -18.68085,-0.87916 11.35645,10.72322 380.19446,240.71522 z"/> + <g style="fill:#783891;fill-opacity:1;stroke-width:2.23358607;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3326"> + <path inkscape:connector-curvature="0" id="path3361" style="fill:#783891;fill-opacity:1;fill-rule:evenodd;stroke-width:4.46717215;stroke-miterlimit:4;stroke-dasharray:none" d="m 469.29,270.84 v 25.13 l -72.3,-30.6 c 4.29,8.13 10.55,17.11 18.41,26.59 l -21.83,-16.03 c -1.96,-4.88 -3.08,-9.37 -3.26,-13.39 l -0.36,-0.15 v -22.04 z m 132.11,115.12 86.83,38.13 0.33,20.79 c -1.82,16.09 -21.73,19.34 -52.28,11.27 l -47.91,-35.93 c 40.68,19 73.38,26.31 89.47,20.13 L 601.4,408 Z"/> + <path inkscape:connector-curvature="0" id="path3363" style="fill:#783891;fill-opacity:1;stroke-width:2.23358607;stroke-miterlimit:4;stroke-dasharray:none" d="m 478.11,242.2 c 18.73,7.96 39.52,18.69 61.4,31.96 82.37,49.94 149.2,117.28 149.2,150.33 0,20.19 -24.95,22.94 -63.17,10.61 L 397.48,266.3 c -4.67,-8.63 -7.2,-16.34 -7.2,-22.76 0,-24.27 36.05,-23.33 87.83,-1.34 z"/> + <rect id="rect3365" style="fill:#783891;fill-opacity:1;stroke-width:4.62575054;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(-0.80414,-0.59444,0,1,0,0)" height="18.815001" width="304.20001" y="-32.882" x="-791.48999"/> + </g> + <g style="fill:#783891;fill-opacity:1;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3321"> + <path inkscape:connector-curvature="0" id="path3367" style="fill:#783891;fill-opacity:1;fill-rule:evenodd;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none" d="m 737.99,470.4 v 25.13 l -72.3,-30.6 c 4.29,8.13 10.55,17.1 18.41,26.59 l -21.82,-16.03 c -1.97,-4.88 -3.09,-9.38 -3.27,-13.39 l -0.36,-0.16 V 439.9 Z m 132.11,115.11 86.83,38.13 0.33,20.8 c -1.82,16.09 -21.72,19.33 -52.28,11.26 l -47.91,-35.92 c 40.68,19 73.39,26.31 89.47,20.12 L 870.1,607.55 Z"/> + <path inkscape:connector-curvature="0" id="path3369" style="fill:#783891;fill-opacity:1;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none" d="m 746.81,441.76 c 18.73,7.96 39.52,18.68 61.4,31.95 82.37,49.95 149.2,117.28 149.2,150.33 0,20.2 -24.95,22.95 -63.17,10.61 L 666.18,465.86 c -4.67,-8.63 -7.19,-16.35 -7.19,-22.77 0,-24.27 36.04,-23.33 87.82,-1.33 z"/> + <rect id="rect3371" style="fill:#783891;fill-opacity:1;stroke-width:4.09201002;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(-0.80414,-0.59444,0,1,0,0)" height="18.815001" width="304.20001" y="-31.957001" x="-1125.6"/> + </g> + <g style="stroke:#000000;stroke-width:11.6465559;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3311"> + <path inkscape:connector-curvature="0" id="path3375" style="fill:#fcaf3e;stroke:#000000;stroke-width:11.6465559;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 935.84,361.27 c 19.93,6.56 33.19,11.87 37.28,15.38 31.38,26.99 -17.13,278.41 -17.13,278.41 -11.43,-1.42 -75.72,-78.35 -75.72,-78.35 L 765.99,489.53 V 313.7 c 69.6,18.02 131.88,35.08 169.85,47.57 z"/> + <path inkscape:connector-curvature="0" id="path3377" style="fill:#fcaf3e;fill-rule:evenodd;stroke:#000000;stroke-width:11.6465559;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 955.99,597.05 c 0,0 48.61,-251.4 17.14,-278.39 C 941.7,291.68 370.27,159.16 370.27,159.16 l 95.72,105.1 441.43,336.82 c 0,0 37.14,-5.45 48.57,-4.03 z"/> + <path inkscape:connector-curvature="0" id="path3379" style="fill:#e9b96e;stroke:#000000;stroke-width:11.6465559;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 953.13,598.26 371.7,159.85 v 60.36 l 581.43,438.41 z"/> + </g> + <path inkscape:connector-curvature="0" id="path3381" d="m 659.86,389.23 c -25.86,0.19 -69.92,20.97 -102.25,37.84 -18.65,9.73 -43.1,28.23 -65.75,46.91 z M 379.95,530.41 c -29.98,2.31 -68.8,9.18 -101.16,27.97 -34.1,19.81 -72.92,50.34 -101.28,74.1 z" style="opacity:0.51036999;fill:#ef2929;fill-rule:evenodd;stroke:#943fd1;stroke-width:12.26926613;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3286)" transform="matrix(-0.72518827,-0.20513419,0,0.5129624,1052.8191,159.18151)"/> + <path inkscape:connector-curvature="0" id="path3383" style="fill:#c88444;fill-opacity:1;fill-rule:evenodd;stroke-width:1.49663794;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none" d="M 941.4374,478.85356 545.8617,227.5699 l 0.73244,5.38637 394.11082,249.83491 z"/> + <path inkscape:connector-curvature="0" id="path7060" d="m 569.81866,416.89465 26.68043,-11.90358 v 10.67217 l -37.35261,15.18732 z" style="fill:#783891;fill-opacity:1;stroke:none;stroke-width:1.06902707px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path7062" d="m 573.1024,402.93873 27.50137,-10.67217 2.46281,6.15702 -44.74102,19.70247 z" style="fill:#783891;fill-opacity:1;stroke:none;stroke-width:1.06902707px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + <path inkscape:connector-curvature="0" id="path7064" d="m 733.25389,331.38124 27.89783,18.13358" style="fill:none;stroke:#000000;stroke-width:1.9242487;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/> + <path style="fill:none;stroke:#000000;stroke-width:1.9242487;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 731.11584,342.07149 27.89783,18.13358" id="path7066" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path7068" d="m 726.62816,328.94018 38.01079,24.41059 -5.92829,5.23084 -28.944,-18.13358 z" style="fill:#783891;fill-opacity:1;stroke:none;stroke-width:1.06902707px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + </g> + </g> + </g> + </g> + </g> + </g> + </g> + <metadata id="metadata4794"> + <rdf:RDF> + <cc:Work> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <cc:license rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/"/> + <dc:publisher> + <cc:Agent rdf:about="http://openclipart.org/"> + <dc:title>Openclipart</dc:title> + </cc:Agent> + </dc:publisher> + <dc:title>PBJ</dc:title> + <dc:date>2010-10-04T20:14:18</dc:date> + <dc:description>Outlines of an uppercase and lowercase letter j, with a jar for coloring. Typeface is Let's Trace (public domain).</dc:description> + <dc:source>https://openclipart.org/detail/88633/j-is-for-jar-by-mazeo</dc:source> + <dc:creator> + <cc:Agent> + <dc:title>mazeo</dc:title> + </cc:Agent> + </dc:creator> + <dc:subject> + <rdf:Bag> + <rdf:li>alphabet</rdf:li> + <rdf:li>coloring book</rdf:li> + <rdf:li>colouring book</rdf:li> + <rdf:li>jar</rdf:li> + <rdf:li>letter J</rdf:li> + <rdf:li>remix</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> + </cc:License> + </rdf:RDF> + </metadata> +</svg>
\ No newline at end of file diff --git a/_output/rss.xsl b/_output/rss.xsl new file mode 100644 index 0000000..2b54fe5 --- /dev/null +++ b/_output/rss.xsl @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <xsl:output method="html" doctype-system="about:legacy-compat" version="1.0" encoding="UTF-8" indent="yes" /> + <xsl:template match="/"> + <html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"> + <head> + <title> + <xsl:value-of select="/rss/channel/title" /> + </title> + <meta name="description"> + <xsl:attribute name="content"> + <xsl:value-of select="/rss/channel/description" /> + </xsl:attribute> + </meta> + <meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1" /> + <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" /> + <link rel="stylesheet" href="../style.css" /> + <style> + header { + border-bottom: 1px solid lightgrey; + margin-bottom: 0; + padding-bottom: 0.5em; + } + header h1 { + margin: 0; + } + header p { + margin: 0 0 0.5em; + } + .date { + display: block; + font-family: monospace; + margin-top: 1em; + overflow: hidden; + white-space: nowrap; + width: 16ch; + } + </style> + </head> + + <body> + <header> + <h1><xsl:value-of select="/rss/channel/title" /></h1> + <p> + <i><xsl:value-of select="/rss/channel/description" /></i> + </p> + </header> + <xsl:for-each select="/rss/channel/item"> + <xsl:sort select="category" order="descending" /> + <span class="date"> + <xsl:value-of select="pubDate" /> + </span> + <xsl:element name="a"> + <xsl:attribute name="href"> + <xsl:value-of select="link" /> + </xsl:attribute> + <span> + <xsl:value-of select="title" /> + </span> + </xsl:element> + </xsl:for-each> + </body> + + </html> + </xsl:template> +</xsl:stylesheet>
\ No newline at end of file diff --git a/_output/style.css b/_output/style.css new file mode 100644 index 0000000..6c1cca6 --- /dev/null +++ b/_output/style.css @@ -0,0 +1,50 @@ +html { + background:#f9f9f9; +} + +body { + background: #fff; + border: 1px solid lightgrey; + margin: 1em auto; + max-width: 75ch; + padding: 10px; + line-height: 1.4; +} + +p code, li code { + border: 1px solid brown; + border-radius: 2px; + color: brown; + padding: 1px 2px; +} +.sourceCode { + overflow: auto; +} + +img { + height: auto; + max-width: 100%; +} + +pre { + background: #f9f9f9; + border: 1px solid lightgrey; + padding: 5px; +} + +#TOC { + border: 1px solid; + position: relative; +} +#TOC:before { + border-bottom: 1px solid; + content: 'Table of Contents'; + display: block; + font-weight: bold; + padding: 5px; + position: relative; +} + +.date { + color: grey; +} diff --git a/_output/tweaks.html b/_output/tweaks.html new file mode 100644 index 0000000..0d61f88 --- /dev/null +++ b/_output/tweaks.html @@ -0,0 +1,191 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"> +<head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> + <title>Tweaks</title> + <style> + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + /* CSS for syntax highlighting */ + pre > code.sourceCode { white-space: pre; position: relative; } + pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } + pre > code.sourceCode > span:empty { height: 1.2em; } + .sourceCode { overflow: visible; } + code.sourceCode > span { color: inherit; text-decoration: inherit; } + div.sourceCode { margin: 1em 0; } + pre.sourceCode { margin: 0; } + @media screen { + div.sourceCode { overflow: auto; } + } + @media print { + pre > code.sourceCode { white-space: pre-wrap; } + pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } + } + pre.numberSource code + { counter-reset: source-line 0; } + pre.numberSource code > span + { position: relative; left: -4em; counter-increment: source-line; } + pre.numberSource code > span > a:first-child::before + { content: counter(source-line); + position: relative; left: -1em; text-align: right; vertical-align: baseline; + border: none; display: inline-block; + -webkit-touch-callout: none; -webkit-user-select: none; + -khtml-user-select: none; -moz-user-select: none; + -ms-user-select: none; user-select: none; + padding: 0 4px; width: 4em; + color: #aaaaaa; + } + pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } + div.sourceCode + { } + @media screen { + pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } + } + code span.al { color: #ff0000; font-weight: bold; } /* Alert */ + code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ + code span.at { color: #7d9029; } /* Attribute */ + code span.bn { color: #40a070; } /* BaseN */ + code span.bu { color: #008000; } /* BuiltIn */ + code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ + code span.ch { color: #4070a0; } /* Char */ + code span.cn { color: #880000; } /* Constant */ + code span.co { color: #60a0b0; font-style: italic; } /* Comment */ + code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ + code span.do { color: #ba2121; font-style: italic; } /* Documentation */ + code span.dt { color: #902000; } /* DataType */ + code span.dv { color: #40a070; } /* DecVal */ + code span.er { color: #ff0000; font-weight: bold; } /* Error */ + code span.ex { } /* Extension */ + code span.fl { color: #40a070; } /* Float */ + code span.fu { color: #06287e; } /* Function */ + code span.im { color: #008000; font-weight: bold; } /* Import */ + code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ + code span.kw { color: #007020; font-weight: bold; } /* Keyword */ + code span.op { color: #666666; } /* Operator */ + code span.ot { color: #007020; } /* Other */ + code span.pp { color: #bc7a00; } /* Preprocessor */ + code span.sc { color: #4070a0; } /* SpecialChar */ + code span.ss { color: #bb6688; } /* SpecialString */ + code span.st { color: #4070a0; } /* String */ + code span.va { color: #19177c; } /* Variable */ + code span.vs { color: #4070a0; } /* VerbatimString */ + code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ + </style> + <link rel="stylesheet" href="style.css" /> + <!--[if lt IE 9]> + <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> + <![endif]--> +</head> +<body> +<!-- Content placed here will appear directly after the opening <body> tag --> +<nav> + <a href="/">Home</a><span> / </span> + <a href="/blog">Blog</a><span> / </span> + <a href="/tweaks.html">Tweaks</a><span> / </span> + <a href="https://git.sr.ht/~bt/pblog">Download</a> +</nav> +<!-- Do not remove this opening article element --> +<article> +<header id="title-block-header"> +<h1 class="title">Tweaks</h1> +</header> +<nav id="TOC" role="doc-toc"> +<ul> +<li><a href="#tweaks-explained" id="toc-tweaks-explained">Tweaks Explained</a></li> +<li><a href="#magick-images" id="toc-magick-images">Magick Images</a></li> +<li><a href="#hiding-table-of-contents-heading" id="toc-hiding-table-of-contents-heading">Hiding Table of Contents “Heading”</a></li> +<li><a href="#adding-navigation-to-blog-index-and-rss-feed" id="toc-adding-navigation-to-blog-index-and-rss-feed">Adding navigation to blog index and RSS feed</a></li> +</ul> +</nav> +<h2 id="tweaks-explained">Tweaks Explained</h2> +<p>“Tweaks” are extra features that are not packaged within the default <code>pblog</code> project. If you have your own tweaks you would like to include, be sure to <a href="https://git.sr.ht/~bt/pblog">open a patch</a>.</p> +<hr /> +<p><br></p> +<h2 id="magick-images">Magick Images</h2> +<h4 id="by-matthew-graybosch">by: <a href="https://matthewgraybosch.com">Matthew Graybosch</a></h4> +<p>This tweak gives you the ability to automatically convert PNG and JPG images to WEBP and AVIF files when used with the <code>picture</code> HTML element.</p> +<p><strong>Requirements</strong>:</p> +<ul> +<li>Download and install <a href="https://imagemagick.org/script/download.php">ImageMagick</a></li> +</ul> +<p>Then change your base <code>makefile</code> to reflect the following:</p> +<div class="sourceCode" id="cb1"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">.SUFFIXES:</span> .png .jpg .webp .avif</span> +<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="ex">.jpg.webp:</span></span> +<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a> <span class="ex">magick</span> <span class="at">-quality</span> 80 <span class="st">"$<"</span> <span class="st">"</span><span class="va">$@</span><span class="st">"</span></span> +<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="ex">.jpg.avif:</span></span> +<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a> <span class="ex">magick</span> <span class="at">-quality</span> 80 <span class="st">"$<"</span> <span class="st">"</span><span class="va">$@</span><span class="st">"</span></span> +<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a><span class="ex">.png.webp:</span></span> +<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a> <span class="ex">magick</span> <span class="at">-quality</span> 80 <span class="st">"$<"</span> <span class="st">"</span><span class="va">$@</span><span class="st">"</span></span> +<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a><span class="ex">.png.avif:</span></span> +<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a> <span class="ex">magick</span> <span class="at">-quality</span> 80 <span class="st">"$<"</span> <span class="st">"</span><span class="va">$@</span><span class="st">"</span></span> +<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a><span class="ex">JPEGS!=find</span> media/ <span class="at">-name</span> <span class="st">'*.jpg'</span></span> +<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a><span class="ex">PNGS!=find</span> media/ <span class="at">-name</span> <span class="st">'*.png'</span></span> +<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a><span class="va">JPEG_WEBP</span><span class="op">=</span><span class="va">${JPEGS</span><span class="op">:</span>.jpg=.webp<span class="va">}</span></span> +<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a><span class="va">JPEG_AVIF</span><span class="op">=</span><span class="va">${JPEGS</span><span class="op">:</span>.jpg=.avif<span class="va">}</span></span> +<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a><span class="va">PNG_WEBP</span><span class="op">=</span><span class="va">${PNGS</span><span class="op">:</span>.png=.webp<span class="va">}</span></span> +<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a><span class="va">PNG_AVIF</span><span class="op">=</span><span class="va">${PNGS</span><span class="op">:</span>.png=.avif<span class="va">}</span></span> +<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a><span class="ex">.DEFAULT:</span> build</span> +<span id="cb1-25"><a href="#cb1-25" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-26"><a href="#cb1-26" aria-hidden="true" tabindex="-1"></a><span class="ex">.PHONY:</span> build</span> +<span id="cb1-27"><a href="#cb1-27" aria-hidden="true" tabindex="-1"></a><span class="ex">build:</span> <span class="va">$(</span><span class="ex">JPEG_WEBP</span><span class="va">)</span> <span class="va">$(</span><span class="ex">JPEG_AVIF</span><span class="va">)</span> <span class="va">$(</span><span class="ex">PNG_WEBP</span><span class="va">)</span> <span class="va">$(</span><span class="ex">PNG_AVIF</span><span class="va">)</span></span> +<span id="cb1-28"><a href="#cb1-28" aria-hidden="true" tabindex="-1"></a> <span class="fu">bash</span> pblog.sh <span class="op">></span> _output/feed.xml</span> +<span id="cb1-29"><a href="#cb1-29" aria-hidden="true" tabindex="-1"></a> <span class="ex">xsltproc</span> _output/feed.xml <span class="kw">|</span> <span class="fu">tail</span> <span class="at">-n</span> +2 <span class="op">></span> _output/blog/index.html</span> +<span id="cb1-30"><a href="#cb1-30" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-31"><a href="#cb1-31" aria-hidden="true" tabindex="-1"></a><span class="ex">serve:</span> build</span> +<span id="cb1-32"><a href="#cb1-32" aria-hidden="true" tabindex="-1"></a> <span class="ex">python3</span> <span class="at">-m</span> http.server <span class="at">--directory</span> _output/</span> +<span id="cb1-33"><a href="#cb1-33" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb1-34"><a href="#cb1-34" aria-hidden="true" tabindex="-1"></a><span class="ex">clean:</span></span> +<span id="cb1-35"><a href="#cb1-35" aria-hidden="true" tabindex="-1"></a> <span class="fu">rm</span> _output/<span class="pp">*</span> rss/<span class="pp">*</span> <span class="va">$(</span><span class="ex">JPEG_WEBP</span><span class="va">)</span> <span class="va">$(</span><span class="ex">JPEG_AVIF</span><span class="va">)</span> <span class="va">$(</span><span class="ex">PNG_WEBP</span><span class="va">)</span> <span class="va">$(</span><span class="ex">PNG_AVIF</span><span class="va">)</span></span></code></pre></div> +<p>That’s it. Enjoy!</p> +<hr /> +<p><br></p> +<h2 id="hiding-table-of-contents-heading">Hiding Table of Contents “Heading”</h2> +<h4 id="by-bradley-taunt">by <a href="https://tdarb.org">Bradley Taunt</a></h4> +<p>By default the include <em>Table of Contents</em> displays a title and styled section. To disable this, simply edit the <code>style.css</code> file and comment out or delete the following:</p> +<div class="sourceCode" id="cb2"><pre class="sourceCode css"><code class="sourceCode css"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#TOC</span> {</span> +<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a> <span class="kw">border</span>: <span class="dv">1</span><span class="dt">px</span> <span class="dv">solid</span><span class="op">;</span></span> +<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a> <span class="kw">position</span>: <span class="dv">relative</span><span class="op">;</span></span> +<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a><span class="pp">#TOC</span><span class="in">:before</span> {</span> +<span id="cb2-6"><a href="#cb2-6" aria-hidden="true" tabindex="-1"></a> <span class="kw">border-bottom</span>: <span class="dv">1</span><span class="dt">px</span> <span class="dv">solid</span><span class="op">;</span></span> +<span id="cb2-7"><a href="#cb2-7" aria-hidden="true" tabindex="-1"></a> <span class="kw">content</span>: <span class="st">'Table of Contents'</span><span class="op">;</span></span> +<span id="cb2-8"><a href="#cb2-8" aria-hidden="true" tabindex="-1"></a> <span class="kw">display</span>: <span class="dv">block</span><span class="op">;</span></span> +<span id="cb2-9"><a href="#cb2-9" aria-hidden="true" tabindex="-1"></a> <span class="kw">font-weight</span>: <span class="dv">bold</span><span class="op">;</span></span> +<span id="cb2-10"><a href="#cb2-10" aria-hidden="true" tabindex="-1"></a> <span class="kw">padding</span>: <span class="dv">5</span><span class="dt">px</span><span class="op">;</span></span> +<span id="cb2-11"><a href="#cb2-11" aria-hidden="true" tabindex="-1"></a> <span class="kw">position</span>: <span class="dv">relative</span><span class="op">;</span></span> +<span id="cb2-12"><a href="#cb2-12" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> +<hr /> +<p><br></p> +<h2 id="adding-navigation-to-blog-index-and-rss-feed">Adding navigation to blog index and RSS feed</h2> +<p>In order to include any main navigation (or other custom elements for that matter) on the main blog index page and RSS <code>feed.xml</code>, simply edit the <code>rss.xml</code> file in the root directory. Be sure to add your elements / content inside the <code>body</code> tag near the bottom of the page.</p> +</article><!-- Do not remove this closing article element --> + +<!-- Content placed here will appear directly before the closing </body> tag --> +<footer> + <br> + <hr> + <p><small>Powered by <a href="https://pblog.bt.ht">pblog</a><br> + Made with ♥ for a simpler web.</small></p> +</footer> +</body> +</html> diff --git a/makefile b/makefile new file mode 100644 index 0000000..3e8feee --- /dev/null +++ b/makefile @@ -0,0 +1,12 @@ +.DEFAULT: build + +.PHONY: build +build: + bash pblog.sh > _output/feed.xml + xsltproc _output/feed.xml > _output/blog/index.html + +serve: build + python3 -m http.server --directory _output/ + +clean: + rm _output/* diff --git a/media/pb-sandwich.svg b/media/pb-sandwich.svg new file mode 100644 index 0000000..c133117 --- /dev/null +++ b/media/pb-sandwich.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="371px" height="398px" viewBox="0 0 371 398" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Generator: Sketch 62 (91390) - https://sketch.com --> + <title>pb-sandwich</title> + <desc>Created with Sketch.</desc> + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> + <g id="pb-sandwich" fill="#000000" fill-rule="nonzero"> + <path d="M350.7,5.383 C351.09844,9.5197 351.09844,13.6877 350.7,17.828 C347.3875,32.64 347.3875,48 350.7,62.812 C354.2469,78.867 350.07891,96.476 350.7,113.335 C352.3172,150.171 354.3094,186.944 357.3562,223.715 C360.9031,266.09 365.8171,308.336 369.8012,350.645 C371.4184,367.571 367.5629,373.481 350.0162,375.536 C323.6332,379.0204 297.0042,380.8251 270.4962,383.4383 C247.3482,385.6766 224.2032,387.7313 201.1172,390.4071 C152.0232,396.1298 102.9292,400.3016 53.5272,395.5087 L53.523294,395.5087 C43.921694,394.60245 34.410294,392.8954 25.089294,390.4071 C21.257294,389.48913 17.850994,387.2938 15.433094,384.1844 C13.011194,381.075 11.722194,377.2352 11.772894,373.2934 C8.038494,309.9494 3.558094,246.6134 0.448795971,183.2034 L0.448795971,183.207306 C0.437175,165.074306 1.476194,146.957306 3.558294,128.949306 C4.366884,116.816306 9.780994,104.433306 1.194994,92.922306 C0.464524,91.363706 0.464524,89.562906 1.194994,88.004306 C7.417694,74.254306 4.058294,60.254306 2.999694,46.192306 C1.816094,29.954306 2.999694,27.524306 19.675694,24.665306 C50.784694,19.438706 82.331694,14.337306 113.941694,11.286306 C160.734694,6.743306 207.711694,3.196506 254.691694,0.958306 C280.636694,-0.287794 306.769694,1.891896 332.843694,2.825506 C338.835894,3.360666 344.796694,4.212206 350.702694,5.376306 L350.7,5.383 Z M16.88,95.668 C14.3292,126.406 11.0323,153.41 10.2238,180.477 C9.47771,205.368 11.03239,230.254 12.4621,255.145 C14.5168,290.301 17.5637,325.333 19.8059,360.425 C21.1731,382.077 21.6106,383.073 42.7039,386.495 L42.7039,386.491094 C51.075,388.069194 59.5709,388.901294 68.0909,388.979394 C101.5679,388.358304 135.0399,388.295804 168.3909,385.807494 C208.5239,382.819194 248.4689,377.409094 288.5409,373.362494 C306.5839,371.495294 324.7559,370.686694 342.7989,368.569494 C358.7909,366.702294 361.4669,363.530394 360.2829,347.788494 C359.0368,330.241494 356.486,312.819494 355.1188,295.335494 C350.4704,235.976494 345.9508,176.615494 341.5528,117.255494 C340.61921,104.376494 340.1856,91.493494 339.4981,77.435494 L339.502006,77.435494 C332.916106,76.345694 326.260006,75.744094 319.588006,75.630794 C218.978006,82.161994 118.428006,88.880794 16.878006,95.665794 L16.88,95.668 Z M340.43,14.777 C294.387,1.898 48.98,20.0036 11.96,39.168 L15.1944,67.168 C35.4794,70.7774 316.9044,48.5 336.0144,41.781 L340.43,14.777 Z M13.64,81.105 L14.19859,87.3277 L339.99859,63.2497 C337.84629,60.3435 334.89309,58.1247 331.50249,56.8669 C328.10799,55.6052 324.42439,55.3591 320.89749,56.15596 C268.87749,60.38646 216.85749,64.67936 164.84749,68.60096 C119.61349,72.08536 74.31249,74.82366 29.01749,78.49546 C23.91589,78.554054 18.81449,80.17126 13.65049,81.10486 L13.64,81.105 Z" id="Shape"></path> + <path d="M311.19,175.31 C309.9361,185.705 307.858,195.982 304.9673,206.048 C292.5223,238.466 293.7683,271.63 297.3775,305.107 C299.3697,323.775 299.3697,325.392 281.3225,330.431 C263.2795,335.4701 245.8575,337.7748 228.1235,341.693 L228.1235,341.689094 C200.4515,347.747694 172.1195,350.255494 143.8115,349.157894 C127.9995,348.888364 112.1905,350.052424 96.5845,352.642294 C82.8345,354.696994 74.4325,345.177494 64.6625,339.513294 C60.8031,337.274994 60.6195,327.443294 59.9945,320.845294 C56.7601,285.318294 54.4554,249.661294 50.6625,214.195294 L50.666407,214.195294 C48.623407,204.316394 45.318707,194.738294 40.834407,185.699294 C38.967207,180.968794 35.795307,176.800894 33.990607,172.074294 L33.990607,172.070388 C29.275807,161.632388 29.545307,149.625388 34.721077,139.406388 C39.892977,129.191388 49.416077,121.871388 60.619077,119.492388 C78.041077,114.824388 95.650077,110.656488 113.135077,106.176388 L113.135077,106.180294 C136.412077,99.813094 161.287077,103.324794 181.893077,115.887294 C191.850077,122.109994 198.506077,120.492794 208.088077,115.512294 C221.037077,108.574794 234.904077,103.504294 249.279077,100.453294 C275.912077,95.351694 301.236077,105.058794 307.209077,140.215294 C309.134877,152.160294 309.943477,164.106294 311.19,175.309294 L311.19,175.31 Z M105.11,340.32051 C141.758,338.6403 176.231,343.3708 210.52,335.2809 C231.489,330.3043 252.958,327.7536 273.985,322.8359 C288.11,319.6015 288.981,316.9882 288.047,302.3629 C287.11341,287.7419 286.3673,272.9329 285.1212,258.2459 L285.125106,258.249806 C283.812606,244.667806 285.687606,230.968806 290.597806,218.241806 C294.121206,208.644106 296.785306,198.753806 298.562606,188.682806 C302.175906,171.385806 301.816506,153.491806 297.507906,136.354806 C296.195406,128.405606 291.984506,121.225806 285.687906,116.202806 C279.387106,111.179406 271.449906,108.671606 263.410906,109.163706 C257.090606,108.831676 250.765906,109.655896 244.742906,111.589506 C232.437906,115.761406 220.512906,120.964506 209.090906,127.148506 C199.258906,132.750106 192.039906,135.300806 181.961906,126.652416 L181.961906,126.64851 C170.371906,117.17191 155.731906,112.24251 140.770906,112.77351 C119.067906,112.714916 97.688906,118.03521 78.547906,128.26551 C65.106906,135.54671 63.801906,139.96451 69.278406,154.58551 C75.501106,171.01151 82.344406,187.19051 87.946406,203.92951 L87.9425,203.92951 C92.1066,216.26951 94.962,229.01151 96.4659,241.94551 C98.7667,265.09351 99.0792,288.36351 100.6964,311.57051 C101.3839,321.21891 103.3722,330.17951 105.1144,340.32051 L105.11,340.32051 Z M65.102,202.19 L60.934,202.565 L70.3285,303.305 C70.141,269.453 76.7387,234.981 64.9144,202.255 L65.102,202.19 Z M42.891,145.69 C38.2855,163.362 42.33241,174.811 54.278,184.827 L42.891,145.69 Z M86.446,337.83 C88.8093,324.701 88.8093,324.701 84.4538,320.096 C84.0788,321.09209 83.2702,322.1507 83.3952,323.0843 C84.39129,328.0648 85.5124,332.9202 86.446,337.8343 L86.446,337.83 Z" id="Shape"></path> + <path d="M243.74,152.66 C232.103,174.004 220.283,194.91 207.963,217.746 C199.6271,207.8515 205.3497,202.937 207.963,198.144 C231.483,154.835 231.545,154.835 243.74,152.66 Z" id="Path"></path> + <path d="M237.02,219.43 C230.7973,214.0784 233.7231,209.352 235.4653,205.055 C244.8598,182.157 254.5673,167.035 262.2193,163.117 C263.7115,173.137 251.1453,201.574 237.0203,219.429 L237.02,219.43 Z" id="Path"></path> + </g> + </g> +</svg>
\ No newline at end of file diff --git a/media/pbj.svg b/media/pbj.svg new file mode 100644 index 0000000..1714983 --- /dev/null +++ b/media/pbj.svg @@ -0,0 +1,173 @@ +<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg2" sodipodi:docname="pbjset.svg" viewBox="0 0 1050.3298 698.07765" version="1.1" inkscape:version="0.92.1 r15371" width="1120.3518" height="744.61615"> + <defs id="defs4797"> + <filter height="1.2043" x="-0.051610999" width="1.1032" y="-0.10213" id="filter3286"> + <feGaussianBlur inkscape:collect="always" stdDeviation="10.394196" id="feGaussianBlur3288"/> + </filter> + <filter height="2.8503001" x="-0.52041" width="2.0408001" y="-0.92517" id="filter3796"> + <feGaussianBlur inkscape:collect="always" stdDeviation="14.018444" id="feGaussianBlur3798"/> + </filter> + </defs> + <title id="title3983">PBJ</title> + <sodipodi:namedview id="base" bordercolor="#666666" inkscape:pageshadow="2" inkscape:window-y="-8" pagecolor="#ffffff" inkscape:window-height="706" inkscape:window-maximized="1" inkscape:zoom="0.15507428" inkscape:window-x="-8" showgrid="false" borderopacity="1.0" inkscape:current-layer="g2446" inkscape:cx="-390.85006" inkscape:cy="903.4191" inkscape:window-width="1366" showborder="true" inkscape:pageopacity="0.0" inkscape:document-units="px" inkscape:snap-global="false" showguides="false" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0"/> + <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer" transform="translate(1150.9137,-390.51055)"> + <g id="g9494" transform="translate(1,-1)"> + <g id="g9490" style="stroke:#000000;stroke-width:3" transform="translate(-261.63,-81.822)"> + <text transform="scale(1.1602156,0.86190877)" x="-352.54614" y="1025.968" id="text5364" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.17170715px;line-height:1;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" xml:space="preserve"><tspan style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" y="1040.2665" x="-352.54614" id="tspan5360" sodipodi:role="line"/><tspan id="tspan5362" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" y="1058.4382" x="-352.54614" sodipodi:role="line"/></text> + <g id="g5432" transform="matrix(2.8114524,0,0,2.6423074,626.29014,-1571.2278)"> + <g id="g6129"> + <path style="fill:#d3aed8;fill-opacity:1;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -399,776.04253 c -25.78125,1.00447 -38.16964,2.67857 -38.16964,2.67857 l -19.08482,10.37947 -3.0134,6.02678 0.33482,13.39286 6.69643,7.70089 20.08929,6.02679 35.82589,3.01339 28.45983,-5.69196 12.05356,-7.03125 3.01339,-9.375 -1.6741,-13.05804 -17.41072,-9.70982 -21.42857,-4.01786 z" id="path5344" inkscape:connector-curvature="0"/> + <path style="fill:#783891;fill-opacity:1;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -460.06598,807.5714 -3.88938,11.6631 -0.33482,112.16517 8.70536,9.375 17.07589,9.04018 28.79464,5.02232 33.48214,-4.01785 24.10715,-11.04911 5.02232,-10.04464 -1.00447,-114.84375 -5.35714,-6.69643 -7.03125,8.03571 -24.77678,8.37054 -29.46429,1.00446 -26.45089,-4.6875 -14.0625,-8.03571 z" id="path5342" inkscape:connector-curvature="0"/> + <path id="path8716" style="fill:#000000;stroke:#000000;stroke-width:3" d="m -413.56,955.04 c -9.1505,-0.7769 -16.669,-1.9787 -22.671,-3.6235 -16.467,-4.5131 -26.904,-12.166 -28.526,-20.918 -0.21133,-1.1397 -0.3299,-21.801 -0.3299,-57.486 0,-48.983 0.0611,-55.941 0.50632,-57.65 0.60205,-2.3114 1.8227,-4.6462 3.3806,-6.4663 l 1.134,-1.3248 0.0494,-7.0102 c 0.0563,-7.9879 0.21954,-8.6127 3.0825,-11.797 9.3612,-10.412 40.89,-16.043 69.138,-12.348 14.647,1.916 26.49,6.24 32.11,11.723 3.5579,3.4715 3.7183,4.0058 3.7781,12.585 l 0.05,7.1738 0.98948,1.2004 c 1.4455,1.7536 2.6176,4.0526 3.1935,6.2635 0.44521,1.7093 0.50632,8.6676 0.50632,57.65 0,35.685 -0.11857,56.346 -0.3299,57.486 -2.1527,11.61 -19.356,20.854 -44.519,23.922 -3.9586,0.4827 -18.298,0.8952 -21.542,0.6197 z m 18.001,-2.1361 c 22.236,-1.9142 40.158,-9.5873 45.086,-19.303 l 1.156,-2.2792 v -57.985 -29.73203 -28.25297 l -0.70619,-1.4864 c -0.3884,-0.8175 -1.1815,-2.1343 -1.7624,-2.9263 l -1.0562,-1.44 -1.0823,1.6051 c -4.6913,6.9576 -20.843,12.645 -40.644,14.312 -5.0859,0.4281 -17.677,0.42964 -22.791,0.003 -14.963,-1.2488 -28.183,-4.8674 -35.462,-9.7063 -2.1261,-1.4134 -5.0895,-4.2335 -5.9322,-5.6453 -0.37878,-0.6346 -0.43372,-0.6151 -1.3956,0.49545 -0.55073,0.63583 -1.4042,1.9736 -1.8965,2.9727 l -0.89521,1.8166 v 57.985 57.985 l 1.1561,2.2792 c 4.8557,9.5733 22.834,17.368 44.451,19.272 4.6958,0.4137 17.126,0.4317 21.774,0.031 z m 4.9545,-129.6 c 17.347,-2.1076 30.135,-6.7909 34.891,-12.778 1.6597,-2.0897 1.9796,-3.0563 2.1732,-6.5662 l 0.17304,-3.1379 -2.1033,2.0502 c -4.8959,4.7723 -13.114,8.2706 -25.059,10.668 -8.7928,1.7644 -13.234,2.1376 -25.433,2.1376 -12.198,0 -16.625,-0.37205 -25.448,-2.1385 -11.606,-2.3236 -19.699,-5.7113 -24.603,-10.298 l -2.1369,-1.9989 v 3.0238 c 0,2.3933 0.14073,3.2996 0.67491,4.3467 2.1085,4.133 7.5488,7.6143 16.501,10.559 6.9885,2.2989 15.083,3.8291 24.277,4.5892 5.3042,0.43852 20.985,0.16418 26.094,-0.45652 z m 0,-9.912 c 14.238,-1.7398 24.978,-5.0178 31.36,-9.5714 7.2404,-5.1667 7.3894,-11.219 0.3983,-16.179 -9.4934,-6.7353 -26.48,-10.532 -47.117,-10.532 -17.704,0 -32.676,2.774 -42.643,7.9005 -6.5206,3.354 -9.5444,6.7424 -9.5444,10.696 0,5.1555 5.9773,9.8736 17.176,13.557 6.9885,2.2989 15.083,3.8291 24.277,4.5892 5.3242,0.44017 20.988,0.16432 26.094,-0.45952 z" inkscape:connector-curvature="0" sodipodi:nodetypes="cccscccccccscccscccccccccccccccccccccccccccccccscscccsccscccccscscscc"/> + <path style="fill:#c6c872;fill-opacity:1;stroke:#000000;stroke-width:4.9224968;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m -449.57432,857.96257 v 52.94522 c 26.93508,10.24348 58.21094,7.52836 84.8121,-2.59171 l 1.00173,-51.46424 c -32.61148,9.99665 -54.87187,9.99665 -85.81383,1.11073 z" id="path5346" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/> + <path style="fill:none;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -445.49816,892.38127 c 27.5224,10.38211 52.10646,6.66022 78.15969,-2.35067" id="path5354" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/> + <ellipse ry="17.135998" rx="23.373981" cy="891.12457" cx="-408.17429" id="path6106" style="opacity:1;fill:#e1e2a4;fill-opacity:1;stroke:#838168;stroke-width:2.04256201;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.21209455;stroke-opacity:1;paint-order:stroke fill markers"/> + <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path5374" d="m -445.20433,904.97394 c 27.5224,10.38211 52.10646,6.66022 78.15969,-2.35067" style="fill:none;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + <g id="text6012" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.75859928px;line-height:1.25;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" transform="translate(-2.0007453,-13.482534)" aria-label="Grape"> + <path id="path6042" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -416.42525,891.50684 -3.07667,2.19981 q -1.08052,-1.06966 -2.17908,-1.44903 -0.73026,-0.25218 -1.30634,-0.0247 -0.56754,0.22335 -0.78244,0.84566 -0.40788,1.18111 1.14154,1.71618 l 0.5241,-1.51767 4.29266,1.48239 -1.80475,5.22613 q -2.65397,-0.75304 -3.57473,-1.07101 -3.55605,-1.22802 -4.41846,-3.21739 -0.86241,-1.98937 -0.16727,-4.00235 0.47805,-1.38432 1.51852,-2.31855 1.04681,-0.93204 2.47897,-1.14821 1.43851,-0.21397 3.10223,0.36056 1.16842,0.4035 2.30097,1.1784 1.13474,0.76856 1.95075,1.73976 z" inkscape:connector-curvature="0"/> + <path id="path6044" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -413.04549,894.8226 q 1.10334,-1.67315 2.58485,-1.40917 0.82674,0.14731 1.26583,0.7851 0.43909,0.6378 0.2906,1.47115 -0.15556,0.87304 -0.7813,1.3211 -0.61796,0.44262 -1.46454,0.29178 -0.96563,-0.17206 -1.52384,-1.02215 -0.7004,0.40747 -0.95023,1.80961 l -0.52914,2.96964 -4.08739,-0.72829 1.41888,-7.96313 4.08739,0.72829 z" inkscape:connector-curvature="0"/> + <path id="path6046" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -409.62205,897.02812 -0.0764,-2.43074 q 1.72909,-1.0155 3.95838,-1.08556 2.12187,-0.0667 3.15757,0.80816 1.0357,0.87484 1.09436,2.74154 l 0.14053,4.47203 -4.14971,0.1304 -0.019,-0.60432 q -0.89882,0.70038 -2.00004,0.73499 -0.92664,0.0291 -1.56317,-0.54908 -0.63675,-0.58492 -0.66545,-1.49812 -0.0327,-1.04079 0.7123,-1.71618 0.74481,-0.6821 1.98032,-0.72092 0.72519,-0.0228 1.42272,0.14348 -0.0177,-0.56403 -0.4641,-0.86591 -0.43966,-0.30209 -1.21186,-0.27782 -1.14151,0.0359 -2.31647,0.71805 z m 4.06861,2.84971 -0.0354,-1.12808 q -0.38004,-0.11576 -0.6822,-0.10627 -0.37603,0.0118 -0.59821,0.21372 -0.22218,0.20191 -0.21226,0.5175 0.0103,0.32902 0.25903,0.54301 0.25541,0.21378 0.63144,0.20196 0.38274,-0.012 0.63765,-0.24184 z" inkscape:connector-curvature="0"/> + <path id="path6048" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -397.78736,892.41116 0.15691,0.59781 q 0.72925,-0.89986 1.75592,-1.16934 1.46854,-0.38546 2.73797,0.45515 1.27594,0.83891 1.71085,2.49589 0.46904,1.78694 -0.28654,3.22158 -0.74908,1.43294 -2.38006,1.86104 -0.81875,0.2149 -1.71489,0.082 l 0.64982,2.47572 -4.01574,1.05404 -2.62998,-10.01985 z m 0.90395,3.44392 0.37011,1.41006 q 0.40035,0.0963 0.74474,0.006 0.35739,-0.0938 0.51489,-0.41992 0.1575,-0.32611 0.0415,-0.76797 -0.11428,-0.43536 -0.41504,-0.65508 -0.30077,-0.21972 -0.65816,-0.12591 -0.40287,0.10574 -0.59806,0.55288 z" inkscape:connector-curvature="0"/> + <path id="path6050" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -382.71524,892.14233 0.55272,1.30531 q -0.55903,2.17733 -2.91602,3.17537 -1.9425,0.82253 -3.57988,0.24644 -1.64001,-0.58228 -2.38657,-2.34538 -0.70989,-1.67649 -0.0752,-3.19277 0.64086,-1.51889 2.37303,-2.25236 0.88464,-0.37459 1.76511,-0.39723 0.88046,-0.0226 1.67466,0.31955 0.7942,0.34219 1.37623,0.99309 0.58202,0.65089 1.04568,1.74587 l -3.90357,1.65292 q 0.45133,0.48008 1.08246,0.59221 0.63112,0.11212 1.26831,-0.15769 1.28675,-0.54486 1.72307,-1.68533 z m -4.85545,0.0424 1.80022,-0.76228 q -0.2605,-0.54629 -0.64512,-0.74821 -0.38105,-0.21072 -0.78316,-0.0404 -0.35262,0.14931 -0.48409,0.56246 -0.13408,0.40697 0.11215,0.98848 z" inkscape:connector-curvature="0"/> + </g> + <g id="text6028" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.75859928px;line-height:1.25;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" transform="translate(-2.6676604,19.868997)" aria-label="Jelly"> + <path id="path6053" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -418.15124,870.50613 4.35926,1.27328 -1.70461,5.836 q -0.55376,1.89589 -0.96086,2.54685 -0.40522,0.64451 -1.25366,0.86561 -0.84011,0.21653 -1.85254,-0.0792 -1.34131,-0.39177 -2.18742,-1.35278 -0.83966,-0.95913 -0.86471,-2.19123 0.33852,0.18286 0.9189,0.35238 0.83832,0.24486 1.15038,0.063 0.31394,-0.18825 0.53996,-0.96208 z" inkscape:connector-curvature="0"/> + <path id="path6055" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -406.51669,880.07663 -0.18004,1.40603 q -1.57969,1.59932 -4.11855,1.27422 -2.09238,-0.26792 -3.21667,-1.59037 -1.12344,-1.32912 -0.88026,-3.22826 0.23124,-1.80585 1.54329,-2.79602 1.31871,-0.98931 3.18454,-0.75039 0.9529,0.12202 1.72491,0.54597 0.77201,0.42396 1.28572,1.11962 0.51371,0.69566 0.68863,1.55113 0.17492,0.85547 0.0239,2.03493 l -4.20476,-0.53841 q 0.14806,0.64207 0.63678,1.05684 0.48872,0.41477 1.17508,0.50266 1.38604,0.17748 2.33744,-0.58795 z m -4.21582,-2.40915 1.93913,0.2483 q 0.0501,-0.60314 -0.18041,-0.97131 -0.22303,-0.37398 -0.65617,-0.42944 -0.37983,-0.0486 -0.70151,0.24204 -0.32083,0.28402 -0.40104,0.91041 z" inkscape:connector-curvature="0"/> + <path id="path6057" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -401.43229,882.80625 -4.14652,0.20869 -0.51528,-10.23881 4.14651,-0.20869 z" inkscape:connector-curvature="0"/> + <path id="path6059" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -395.75847,881.85525 -4.08249,0.7553 -1.86503,-10.0807 4.08249,-0.7553 z" inkscape:connector-curvature="0"/> + <path id="path6061" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Gill Sans Ultra Bold';-inkscape-font-specification:'Gill Sans Ultra Bold, Bold';text-align:center;text-anchor:middle;fill:#de8c46;fill-opacity:1;stroke:#000000;stroke-width:1.03189492;stroke-opacity:1" d="m -388.74731,882.11907 -4.27873,1.43996 0.32337,-4.26257 -4.7482,-5.17846 3.91581,-1.31783 1.61108,1.73316 0.19719,-2.34171 3.8203,-1.28568 z" inkscape:connector-curvature="0"/> + </g> + <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path6030" d="m -436.42519,893.35075 c 25.55367,11.8861 37.28323,10.84607 61.58016,-1.78292" style="fill:none;stroke:none;stroke-width:0.34396499px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + <path style="fill:none;stroke:none;stroke-width:0.34396499px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -435.24556,874.63014 c 25.55367,11.8861 37.28323,10.84607 61.58016,-1.78292" id="path6032" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/> + </g> + <g transform="matrix(0.35568804,0,0,0.3784571,-202.90121,677.89864)" inkscape:label="Layer 1" id="layer1-6"> + <g transform="translate(1,-1)" id="g9494-9"> + <g transform="translate(-261.63,-81.822)" style="stroke:#000000;stroke-width:3" id="g9490-6"> + <text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.17170715px;line-height:1;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="text5364-3" y="1025.968" x="-352.54614" transform="scale(1.1602156,0.86190877)"><tspan sodipodi:role="line" id="tspan5360-7" x="-352.54614" y="1040.2665" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/><tspan sodipodi:role="line" x="-352.54614" y="1058.4382" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="tspan5362-7"/></text> + <g transform="matrix(2.8114524,0,0,2.6423074,626.29014,-1571.2278)" id="g5432-5"> + <path style="fill:#a71e23;fill-opacity:1;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -399,776.04253 c -25.78125,1.00447 -38.16964,2.67857 -38.16964,2.67857 l -19.08482,10.37947 -3.0134,6.02678 0.33482,13.39286 6.69643,7.70089 20.08929,6.02679 35.82589,3.01339 28.45983,-5.69196 12.05356,-7.03125 3.01339,-9.375 -1.6741,-13.05804 -17.41072,-9.70982 -21.42857,-4.01786 z" id="path5344-1" inkscape:connector-curvature="0"/> + <path style="fill:#c88444;fill-opacity:1;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -460.06598,807.5714 -3.88938,11.6631 -0.33482,112.16517 8.70536,9.375 17.07589,9.04018 28.79464,5.02232 33.48214,-4.01785 24.10715,-11.04911 5.02232,-10.04464 -1.00447,-114.84375 -5.35714,-6.69643 -7.03125,8.03571 -24.77678,8.37054 -29.46429,1.00446 -26.45089,-4.6875 -14.0625,-8.03571 z" id="path5342-8" inkscape:connector-curvature="0"/> + <path id="path8716-9" style="fill:#000000;stroke:#000000;stroke-width:3" d="m -413.56,955.04 c -9.1505,-0.7769 -16.669,-1.9787 -22.671,-3.6235 -16.467,-4.5131 -26.904,-12.166 -28.526,-20.918 -0.21133,-1.1397 -0.3299,-21.801 -0.3299,-57.486 0,-48.983 0.0611,-55.941 0.50632,-57.65 0.60205,-2.3114 1.8227,-4.6462 3.3806,-6.4663 l 1.134,-1.3248 0.0494,-7.0102 c 0.0563,-7.9879 0.21954,-8.6127 3.0825,-11.797 9.3612,-10.412 40.89,-16.043 69.138,-12.348 14.647,1.916 26.49,6.24 32.11,11.723 3.5579,3.4715 3.7183,4.0058 3.7781,12.585 l 0.05,7.1738 0.98948,1.2004 c 1.4455,1.7536 2.6176,4.0526 3.1935,6.2635 0.44521,1.7093 0.50632,8.6676 0.50632,57.65 0,35.685 -0.11857,56.346 -0.3299,57.486 -2.1527,11.61 -19.356,20.854 -44.519,23.922 -3.9586,0.4827 -18.298,0.8952 -21.542,0.6197 z m 18.001,-2.1361 c 22.236,-1.9142 40.158,-9.5873 45.086,-19.303 l 1.156,-2.2792 v -57.985 -29.73203 -28.25297 l -0.70619,-1.4864 c -0.3884,-0.8175 -1.1815,-2.1343 -1.7624,-2.9263 l -1.0562,-1.44 -1.0823,1.6051 c -4.6913,6.9576 -20.843,12.645 -40.644,14.312 -5.0859,0.4281 -17.677,0.42964 -22.791,0.003 -14.963,-1.2488 -28.183,-4.8674 -35.462,-9.7063 -2.1261,-1.4134 -5.0895,-4.2335 -5.9322,-5.6453 -0.37878,-0.6346 -0.43372,-0.6151 -1.3956,0.49545 -0.55073,0.63583 -1.4042,1.9736 -1.8965,2.9727 l -0.89521,1.8166 v 57.985 57.985 l 1.1561,2.2792 c 4.8557,9.5733 22.834,17.368 44.451,19.272 4.6958,0.4137 17.126,0.4317 21.774,0.031 z m 4.9545,-129.6 c 17.347,-2.1076 30.135,-6.7909 34.891,-12.778 1.6597,-2.0897 1.9796,-3.0563 2.1732,-6.5662 l 0.17304,-3.1379 -2.1033,2.0502 c -4.8959,4.7723 -13.114,8.2706 -25.059,10.668 -8.7928,1.7644 -13.234,2.1376 -25.433,2.1376 -12.198,0 -16.625,-0.37205 -25.448,-2.1385 -11.606,-2.3236 -19.699,-5.7113 -24.603,-10.298 l -2.1369,-1.9989 v 3.0238 c 0,2.3933 0.14073,3.2996 0.67491,4.3467 2.1085,4.133 7.5488,7.6143 16.501,10.559 6.9885,2.2989 15.083,3.8291 24.277,4.5892 5.3042,0.43852 20.985,0.16418 26.094,-0.45652 z m 0,-9.912 c 14.238,-1.7398 24.978,-5.0178 31.36,-9.5714 7.2404,-5.1667 7.3894,-11.219 0.3983,-16.179 -9.4934,-6.7353 -26.48,-10.532 -47.117,-10.532 -17.704,0 -32.676,2.774 -42.643,7.9005 -6.5206,3.354 -9.5444,6.7424 -9.5444,10.696 0,5.1555 5.9773,9.8736 17.176,13.557 6.9885,2.2989 15.083,3.8291 24.277,4.5892 5.3242,0.44017 20.988,0.16432 26.094,-0.45952 z" inkscape:connector-curvature="0" sodipodi:nodetypes="cccscccccccscccscccccccccccccccccccccccccccccccscscccsccscccccscscscc"/> + <path style="fill:#72a5c8;fill-opacity:1;stroke:#000000;stroke-width:4.9224968;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m -449.57432,857.96257 v 52.94522 c 26.93508,10.24348 58.21094,7.52836 84.8121,-2.59171 l 1.00173,-51.46424 c -32.61148,9.99665 -54.87187,9.99665 -85.81383,1.11073 z" id="path5346-4" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/> + <path style="fill:#c1dfef;fill-opacity:1;stroke:#5c7e80;stroke-width:0.9375px;stroke-linecap:round;stroke-linejoin:bevel;stroke-opacity:1" d="m -428.27399,877.39576 -9.10883,-8.815 6.46433,19.09917 h -13.2225 l 10.87183,4.11367 -7.63966,14.10401 13.81017,-7.63967 3.23216,11.75333 5.58284,-10.28417 9.40267,10.28417 0.58766,-7.63967 8.81501,6.46434 -0.8815,-9.40267 13.81017,7.9335 -2.93834,-9.6965 15.57317,5.58284 -6.1705,-7.63967 7.9335,-1.46918 -6.46433,-4.40749 9.10883,-11.45951 -8.22733,2.35067 4.99517,-12.341 -10.28417,7.34583 -0.8815,-8.52117 -6.46434,7.34584 -2.35066,-5.58283 -2.64451,5.87666 -8.52116,-4.4075 0.29383,5.58284 -7.34584,-7.052 0.29384,7.34583 -6.1705,-6.75817 0.29383,9.40267 -7.9335,-9.99033 z" id="path5409" inkscape:connector-curvature="0"/> + <g aria-label="Peanut" transform="translate(0,-11.25)" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.17170715px;line-height:1;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="text5350"> + <path inkscape:connector-curvature="0" d="m -424.12136,889.78353 q -0.33383,1.60718 -1.30798,2.50137 -1.26499,1.16003 -3.54111,0.68726 l -1.92862,-0.4006 -0.81562,3.92674 -3.08406,-0.64059 2.46312,-11.85841 4.90842,1.01954 q 2.09368,0.43488 2.92519,1.88537 0.7199,1.24607 0.38066,2.87932 z m -3.2129,-0.63111 q 0.13714,-0.66025 -0.17259,-1.13238 -0.29924,-0.47903 -1.2288,-0.67211 l -1.03381,-0.21473 -0.61172,2.94506 1.02512,0.21292 q 0.99906,0.20752 1.46284,-0.14926 0.42002,-0.32056 0.55896,-0.9895 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5383"/> + <path inkscape:connector-curvature="0" d="m -415.34305,895.11186 -6.09742,-0.55144 q -0.16703,1.8469 1.61801,2.00834 0.91019,0.0823 1.46655,-0.65137 l 2.80128,0.25334 q -0.4365,1.08307 -1.14557,1.63367 -1.28404,0.99752 -3.27232,0.8177 -2.52734,-0.22857 -3.66079,-1.88126 -0.85048,-1.2351 -0.70103,-2.88759 0.17742,-1.96178 1.48148,-3.08221 1.30406,-1.12043 3.47792,-0.92383 2.67756,0.24215 3.65053,2.29015 0.54599,1.15411 0.41492,2.60335 z m -2.55383,-1.90588 q -0.18621,-1.38884 -1.52941,-1.51032 -0.7423,-0.0671 -1.24097,0.32432 -0.39348,0.31187 -0.54343,0.88631 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5385"/> + <path inkscape:connector-curvature="0" d="m -404.72027,898.51383 -2.9095,0.0691 -0.0217,-0.91365 q -0.40448,0.53326 -0.82457,0.78287 -0.73521,0.43461 -1.68434,0.45716 -1.53458,0.0364 -2.75716,-0.99069 -1.45805,-1.22567 -1.50735,-3.30135 -0.0501,-2.11115 1.38355,-3.40551 1.13821,-1.02996 2.64618,-1.06578 0.87817,-0.0209 1.65874,0.33337 0.44858,0.20235 0.9303,0.67906 l -0.0192,-0.80721 2.90949,-0.0691 z m -2.91856,-4.04887 q -0.0185,-0.78059 -0.58135,-1.30863 -0.56303,-0.5369 -1.34363,-0.51836 -0.8693,0.0207 -1.41254,0.69034 -0.43975,0.54297 -0.42353,1.22599 0.0162,0.68302 0.48126,1.2045 0.56556,0.64334 1.44373,0.62248 0.78946,-0.0187 1.3177,-0.5727 0.53712,-0.55415 0.51836,-1.34362 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5387"/> + <path inkscape:connector-curvature="0" d="m -394.10111,897.21518 -2.8864,0.37229 -0.53346,-4.136 q -0.13961,-1.08241 -0.43141,-1.40263 -0.42777,-0.47266 -1.14937,-0.37959 -0.66,0.0851 -1.05091,0.59181 -0.35259,0.45702 -0.24136,1.31942 l 0.56411,4.3736 -2.88641,0.37229 -1.0533,-8.16641 2.88641,-0.37229 0.13279,1.0296 q 0.42669,-0.64549 0.81845,-0.93757 0.63646,-0.47574 1.66606,-0.60853 1.32,-0.17026 2.23914,0.43585 1.04602,0.68816 1.25486,2.30736 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5389"/> + <path inkscape:connector-curvature="0" d="m -384.19697,892.04929 q 0.48829,2.24561 -1.47569,3.44448 -0.81838,0.49575 -2.09292,0.77289 -2.50572,0.54484 -3.86588,-0.44879 -0.8633,-0.62951 -1.14044,-1.90404 l -1.11042,-5.10681 2.84386,-0.61837 0.99165,4.56058 q 0.16402,0.75431 0.60547,1.03061 0.47311,0.29666 1.16674,0.14584 0.68495,-0.14894 0.99216,-0.61527 0.28686,-0.43466 0.12284,-1.18898 l -0.99165,-4.56058 2.84386,-0.61837 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5391"/> + <path inkscape:connector-curvature="0" d="m -378.47742,887.50592 -1.59945,0.44139 1.5531,5.628 -2.80545,0.77419 -1.5531,-5.628 -0.92374,0.25491 -0.63729,-2.30936 0.92374,-0.25492 -0.65853,-2.38634 2.80545,-0.77419 0.65853,2.38634 1.59945,-0.44138 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5393"/> + </g> + <path style="fill:none;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m -445.49816,892.38127 c 27.5224,10.38211 52.10646,6.66022 78.15969,-2.35067" id="path5354-9" inkscape:connector-curvature="0" sodipodi:nodetypes="cc"/> + <g aria-label="Butter" transform="translate(1.875,-9.375)" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.17170715px;line-height:1;font-family:'OCR A Extended';-inkscape-font-specification:'OCR A Extended';letter-spacing:0px;word-spacing:0px;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="text5370"> + <path inkscape:connector-curvature="0" d="m -420.88733,907.44295 q -0.21542,1.34036 -1.11275,2.05887 -1.29953,1.0403 -3.55973,0.67705 l -4.98472,-0.80114 1.92188,-11.95806 4.62554,0.74341 q 3.36402,0.54066 2.86278,3.65939 -0.15065,0.93738 -0.61996,1.509 -0.39251,0.48511 -1.09256,0.75903 1.38884,0.52876 1.7779,1.463 0.34776,0.85572 0.18162,1.88945 z m -3.18661,-5.67055 q 0.13094,-0.81472 -0.5627,-1.19581 -0.24873,-0.12984 -0.68676,-0.20024 l -0.56943,-0.0915 -0.37593,2.33905 0.56944,0.0915 q 0.80596,0.12953 1.21974,-0.20837 0.33102,-0.27032 0.40564,-0.73463 z m 0.11043,4.96047 q 0.16755,-1.04249 -0.88043,-1.39964 -0.33321,-0.10748 -1.16545,-0.24124 l -0.63952,-0.10278 -0.40549,2.52302 0.69207,0.11123 q 1.19143,0.19148 1.70955,-0.0128 0.58508,-0.22949 0.68927,-0.87777 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5396"/> + <path inkscape:connector-curvature="0" d="m -410.79024,908.34121 q -0.0943,2.29615 -2.29728,2.96051 -0.91701,0.27315 -2.22023,0.21963 -2.56211,-0.10522 -3.62746,-1.40998 -0.67646,-0.82702 -0.62294,-2.13023 l 0.21444,-5.22174 2.90786,0.11942 -0.1915,4.66321 q -0.0317,0.77129 0.32574,1.15007 0.38293,0.40646 1.09216,0.43559 0.70037,0.0288 1.11533,-0.34494 0.38728,-0.34819 0.41895,-1.11948 l 0.19151,-4.66322 2.90786,0.11942 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5398"/> + <path inkscape:connector-curvature="0" d="m -404.29568,905.17774 -1.65751,0.0755 0.26549,5.83233 -2.90731,0.13234 -0.26548,-5.83233 -0.95729,0.0436 -0.10893,-2.3932 0.95728,-0.0436 -0.11257,-2.47298 2.9073,-0.13234 0.11257,2.47298 1.65752,-0.0754 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5400"/> + <path inkscape:connector-curvature="0" d="m -398.66226,904.58828 -1.65045,0.17056 0.60015,5.80745 -2.89489,0.29916 -0.60015,-5.80745 -0.9532,0.0985 -0.24626,-2.383 0.9532,-0.0985 -0.25447,-2.46243 2.89489,-0.29916 0.25447,2.46243 1.65045,-0.17056 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5402"/> + <path inkscape:connector-curvature="0" d="m -388.98286,905.24245 -6.03062,1.05555 q 0.31972,1.82667 2.08521,1.51765 0.90022,-0.15757 1.2463,-1.01083 l 2.77059,-0.48494 q -0.13936,1.15938 -0.68057,1.87564 -0.97994,1.2975 -2.94645,1.6417 -2.49965,0.43752 -4.0244,-0.86296 -1.14279,-0.97098 -1.42886,-2.60537 -0.33962,-1.94029 0.62765,-3.36167 0.96726,-1.42139 3.11731,-1.79772 2.64823,-0.46352 4.12099,1.26041 0.82771,0.97209 1.0786,2.40546 z m -2.96205,-1.17501 q -0.54149,-1.29243 -1.86997,-1.0599 -0.73417,0.1285 -1.11369,0.63632 -0.29868,0.40358 -0.29385,0.99725 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5404"/> + <path inkscape:connector-curvature="0" d="m -382.06683,901.5115 q -0.66416,-0.13947 -1.27621,0.01 -1.39652,0.34044 -1.5329,1.57921 -0.0543,0.45161 0.11592,1.14987 l 0.83429,3.42231 -2.8275,0.68929 -1.95019,-7.99977 2.82751,-0.68929 0.31943,1.31031 q 0.27804,-0.80754 0.71961,-1.24396 0.59739,-0.58401 1.55426,-0.81727 0.22413,-0.0546 0.55801,-0.10864 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Aharoni;-inkscape-font-specification:Aharoni;text-align:center;text-anchor:middle;fill:#eadd33;fill-opacity:1;stroke:#000000;stroke-width:1.03481424;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path5406"/> + </g> + <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path5374-0" d="m -445.20433,904.97394 c 27.5224,10.38211 52.10646,6.66022 78.15969,-2.35067" style="fill:none;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + </g> + </g> + </g> + </g> + <g transform="matrix(0.33345754,0,0,0.35480353,-888.61178,613.10651)" id="layer1-0"> + <g transform="matrix(0.93543,0,0,0.93543,30.691,32.275)" id="g2446"> + <g id="g7113" transform="translate(1296.0053,661.78996)"> + <g id="g3322" style="stroke:#000000;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" transform="matrix(0.72518827,0,0,0.61912351,296.18881,160.71694)"> + <path inkscape:connector-curvature="0" id="path3324" style="fill:#e9b96e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 114.44,325.84 C 94.5,325.79 81.247,326.9 77.156,329.5 45.728,349.5 94.281,672.38 94.281,672.38 105.71,675.23 170,608.09 170,608.09 L 284.28,548.56 V 336.34 c -69.6,-6.07 -131.88,-10.39 -169.84,-10.5 z"/> + <path inkscape:connector-curvature="0" id="path3326" style="fill:#fcaf3e;fill-rule:evenodd;stroke:#000000;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 94.286,602.36 c 0,0 -48.572,-322.85 -17.143,-342.85 31.427,-20 602.86,48.57 602.86,48.57 l -95.71,88.57 -441.43,230 c 0,0 -37.15,-21.43 -48.574,-24.29 z"/> + <path inkscape:connector-curvature="0" id="path3328" style="fill:#e9b96e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 97.143,604.96 581.43,-296.63 v 72.86 l -581.43,296.63 0.003,-72.86 z"/> + </g> + <path inkscape:connector-curvature="0" id="path3312" style="fill:#c88444;fill-opacity:1;fill-rule:evenodd;stroke-width:3.52778935;stroke-miterlimit:4;stroke-dasharray:none" d="m 387.09623,510.03881 -6.95455,-50.34713 384.21925,-123.20558 18.68085,5.31828 -11.35645,9.06396 L 391.49087,511.599 Z"/> + <g style="fill:#783891;fill-opacity:1;stroke-width:4.46717215;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3349"> + <path inkscape:connector-curvature="0" id="path3261" style="fill:#783891;fill-opacity:1;fill-rule:evenodd;stroke-width:4.46717215;stroke-miterlimit:4;stroke-dasharray:none" d="m 616.12,419.96 v 30.33 l 72.3,-8.02 c -4.28,8.1 -10.54,16.43 -18.4,24.73 l 21.82,-10.62 c 1.96,-5.11 3.09,-10.08 3.27,-14.86 l 0.36,-0.04 v -26.6 z m -132.11,86.1 -86.82,11.31 -0.33,24.96 c 1.82,20.15 21.72,32.02 52.27,34.51 l 47.91,-24.21 c -40.68,6.67 -73.38,2.41 -89.47,-11.48 l 76.44,-8.48 z"/> + <path inkscape:connector-curvature="0" id="path3263" style="fill:#783891;fill-opacity:1;stroke-width:4.46717215;stroke-miterlimit:4;stroke-dasharray:none" d="m 607.31,381.87 c -18.73,2.11 -39.53,6.74 -61.41,14.01 -82.37,27.34 -149.2,81.88 -149.2,121.77 0,24.38 24.96,37.67 63.18,38.07 L 687.93,443.19 c 4.67,-8.55 7.2,-16.85 7.2,-24.6 0,-29.29 -36.05,-42.57 -87.82,-36.72 z"/> + <rect id="rect3265" style="fill:#783891;fill-opacity:1;stroke-width:4.71623373;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.89717,-0.44169,0,1,0,0)" height="23.353197" width="296.62384" y="774.76569" x="476.42615"/> + </g> + <g style="fill:#783891;fill-opacity:1;stroke-width:3.98854685;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3356"> + <path inkscape:connector-curvature="0" id="path3196" style="fill:#783891;fill-opacity:1;fill-rule:evenodd;stroke-width:3.98854685;stroke-miterlimit:4;stroke-dasharray:none" d="m 347.42,553.36 v 30.33 l 72.3,-8.02 c -4.28,8.1 -10.54,16.43 -18.4,24.73 l 21.82,-10.62 c 1.96,-5.11 3.09,-10.08 3.26,-14.86 l 0.36,-0.03 v -26.61 z m -132.11,86.11 -86.82,11.3 -0.33,24.97 c 1.82,20.14 21.72,32.01 52.27,34.5 l 47.91,-24.21 c -40.68,6.67 -73.38,2.41 -89.47,-11.48 l 76.44,-8.48 z"/> + <path sodipodi:nodetypes="ccsccsc" inkscape:connector-curvature="0" id="path3185" style="fill:#783891;fill-opacity:1;stroke-width:3.98854685;stroke-miterlimit:4;stroke-dasharray:none" d="m 338.61,515.27 c -18.73,2.11 -39.53,6.74 -61.41,14.01 -82.37,27.34 -149.2,81.88 -149.2,121.77 0,24.38 24.96,37.68 63.18,38.08 L 419.23,576.59 c 4.67,-8.55 6.06797,-5.5793 6.06797,-13.3193 0,-29.3 -34.91797,-53.8507 -86.68797,-48.0007 z"/> + </g> + <rect id="rect3232" style="fill:#783891;fill-opacity:1;stroke-width:2.78350163;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.92188016,-0.38747512,0,1,0,0)" height="13.383594" width="191.10306" y="654.539" x="435.42807"/> + <g id="g3172" style="stroke:#000000;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" transform="matrix(0.72518827,0,0,0.61912351,296.18881,70.321812)"> + <path inkscape:connector-curvature="0" id="rect3169" style="fill:#e9b96e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 114.44,325.84 C 94.5,325.79 81.247,326.9 77.156,329.5 45.728,349.5 94.281,672.38 94.281,672.38 105.71,675.23 170,608.09 170,608.09 L 284.28,548.56 V 336.34 c -69.6,-6.07 -131.88,-10.39 -169.84,-10.5 z"/> + <path inkscape:connector-curvature="0" id="path3160" style="fill:#fcaf3e;fill-rule:evenodd;stroke:#000000;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 94.286,602.36 c 0,0 -48.572,-322.85 -17.143,-342.85 31.427,-20 602.86,48.57 602.86,48.57 l -95.71,88.57 -441.43,230 c 0,0 -37.15,-21.43 -48.574,-24.29 z"/> + <path inkscape:connector-curvature="0" id="rect2383" style="fill:#e9b96e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 97.143,604.96 581.43,-296.63 v 72.86 l -581.43,296.63 0.003,-72.86 z"/> + </g> + <path transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" inkscape:connector-curvature="0" id="path3269" style="opacity:0.51036999;fill:#7f29ef;fill-opacity:1;fill-rule:evenodd;stroke-width:3.98854685;stroke-miterlimit:4;stroke-dasharray:none;filter:url(#filter3286)" d="m 666.82,432.05 c -25.86,0.19 -69.92,20.98 -102.25,37.85 -18.64,9.72 -43.1,28.23 -65.75,46.9 z M 386.91,573.24 c -29.98,2.31 -68.8,9.18 -101.16,27.97 -34.1,19.81 -72.92,50.34 -101.28,74.09 z"/> + <path sodipodi:nodetypes="cccccc" inkscape:connector-curvature="0" id="path3310" style="fill:#c88444;fill-opacity:1;fill-rule:evenodd;stroke-width:2.67256784;stroke-miterlimit:4;stroke-dasharray:none" d="m 387.09623,510.34837 199.92978,-85.0266 195.65317,-83.20783 -0.73244,6.25315 -394.11807,166.9838 z"/> + <g style="stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3316"> + <path inkscape:connector-curvature="0" id="path3353" style="fill:#fcaf3e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 935.84,482.24 c 19.93,6.56 33.19,11.87 37.28,15.38 31.38,26.98 -17.13,278.41 -17.13,278.41 -11.43,-1.42 -75.72,-78.35 -75.72,-78.35 L 765.99,610.49 V 434.66 c 69.6,18.03 131.88,35.09 169.85,47.58 z"/> + <path inkscape:connector-curvature="0" id="path3355" style="fill:#e9b96e;fill-rule:evenodd;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 955.99,718.02 c 0,0 48.61,-251.41 17.14,-278.39 C 941.7,412.64 370.27,280.13 370.27,280.13 l 95.72,105.09 441.43,336.82 c 0,0 37.14,-5.44 48.57,-4.02 z"/> + <path inkscape:connector-curvature="0" id="path3357" style="fill:#e9b96e;stroke:#000000;stroke-width:11.1679306;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 953.13,719.23 371.7,280.81 v 60.37 l 581.43,438.41 z"/> + </g> + <path inkscape:connector-curvature="0" id="path3359" style="fill:#c88444;fill-opacity:1;fill-rule:evenodd;stroke-width:7.48318958;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none" d="m 941.4374,478.59352 6.96181,-39.74153 -384.22651,-210.76822 -18.68085,-0.87916 11.35645,10.72322 380.19446,240.71522 z"/> + <g style="fill:#783891;fill-opacity:1;stroke-width:2.23358607;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3326"> + <path inkscape:connector-curvature="0" id="path3361" style="fill:#783891;fill-opacity:1;fill-rule:evenodd;stroke-width:4.46717215;stroke-miterlimit:4;stroke-dasharray:none" d="m 469.29,270.84 v 25.13 l -72.3,-30.6 c 4.29,8.13 10.55,17.11 18.41,26.59 l -21.83,-16.03 c -1.96,-4.88 -3.08,-9.37 -3.26,-13.39 l -0.36,-0.15 v -22.04 z m 132.11,115.12 86.83,38.13 0.33,20.79 c -1.82,16.09 -21.73,19.34 -52.28,11.27 l -47.91,-35.93 c 40.68,19 73.38,26.31 89.47,20.13 L 601.4,408 Z"/> + <path inkscape:connector-curvature="0" id="path3363" style="fill:#783891;fill-opacity:1;stroke-width:2.23358607;stroke-miterlimit:4;stroke-dasharray:none" d="m 478.11,242.2 c 18.73,7.96 39.52,18.69 61.4,31.96 82.37,49.94 149.2,117.28 149.2,150.33 0,20.19 -24.95,22.94 -63.17,10.61 L 397.48,266.3 c -4.67,-8.63 -7.2,-16.34 -7.2,-22.76 0,-24.27 36.05,-23.33 87.83,-1.34 z"/> + <rect id="rect3365" style="fill:#783891;fill-opacity:1;stroke-width:4.62575054;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(-0.80414,-0.59444,0,1,0,0)" height="18.815001" width="304.20001" y="-32.882" x="-791.48999"/> + </g> + <g style="fill:#783891;fill-opacity:1;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3321"> + <path inkscape:connector-curvature="0" id="path3367" style="fill:#783891;fill-opacity:1;fill-rule:evenodd;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none" d="m 737.99,470.4 v 25.13 l -72.3,-30.6 c 4.29,8.13 10.55,17.1 18.41,26.59 l -21.82,-16.03 c -1.97,-4.88 -3.09,-9.38 -3.27,-13.39 l -0.36,-0.16 V 439.9 Z m 132.11,115.11 86.83,38.13 0.33,20.8 c -1.82,16.09 -21.72,19.33 -52.28,11.26 l -47.91,-35.92 c 40.68,19 73.39,26.31 89.47,20.12 L 870.1,607.55 Z"/> + <path inkscape:connector-curvature="0" id="path3369" style="fill:#783891;fill-opacity:1;stroke-width:11.1679306;stroke-miterlimit:4;stroke-dasharray:none" d="m 746.81,441.76 c 18.73,7.96 39.52,18.68 61.4,31.95 82.37,49.95 149.2,117.28 149.2,150.33 0,20.2 -24.95,22.95 -63.17,10.61 L 666.18,465.86 c -4.67,-8.63 -7.19,-16.35 -7.19,-22.77 0,-24.27 36.04,-23.33 87.82,-1.33 z"/> + <rect id="rect3371" style="fill:#783891;fill-opacity:1;stroke-width:4.09201002;stroke-miterlimit:4;stroke-dasharray:none" transform="matrix(-0.80414,-0.59444,0,1,0,0)" height="18.815001" width="304.20001" y="-31.957001" x="-1125.6"/> + </g> + <g style="stroke:#000000;stroke-width:11.6465559;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" transform="matrix(0.72518827,0,0,0.61912351,270.70351,59.991736)" id="g3311"> + <path inkscape:connector-curvature="0" id="path3375" style="fill:#fcaf3e;stroke:#000000;stroke-width:11.6465559;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 935.84,361.27 c 19.93,6.56 33.19,11.87 37.28,15.38 31.38,26.99 -17.13,278.41 -17.13,278.41 -11.43,-1.42 -75.72,-78.35 -75.72,-78.35 L 765.99,489.53 V 313.7 c 69.6,18.02 131.88,35.08 169.85,47.57 z"/> + <path inkscape:connector-curvature="0" id="path3377" style="fill:#fcaf3e;fill-rule:evenodd;stroke:#000000;stroke-width:11.6465559;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 955.99,597.05 c 0,0 48.61,-251.4 17.14,-278.39 C 941.7,291.68 370.27,159.16 370.27,159.16 l 95.72,105.1 441.43,336.82 c 0,0 37.14,-5.45 48.57,-4.03 z"/> + <path inkscape:connector-curvature="0" id="path3379" style="fill:#e9b96e;stroke:#000000;stroke-width:11.6465559;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 953.13,598.26 371.7,159.85 v 60.36 l 581.43,438.41 z"/> + </g> + <path inkscape:connector-curvature="0" id="path3381" d="m 659.86,389.23 c -25.86,0.19 -69.92,20.97 -102.25,37.84 -18.65,9.73 -43.1,28.23 -65.75,46.91 z M 379.95,530.41 c -29.98,2.31 -68.8,9.18 -101.16,27.97 -34.1,19.81 -72.92,50.34 -101.28,74.1 z" style="opacity:0.51036999;fill:#ef2929;fill-rule:evenodd;stroke:#943fd1;stroke-width:12.26926613;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3286)" transform="matrix(-0.72518827,-0.20513419,0,0.5129624,1052.8191,159.18151)"/> + <path inkscape:connector-curvature="0" id="path3383" style="fill:#c88444;fill-opacity:1;fill-rule:evenodd;stroke-width:1.49663794;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none" d="M 941.4374,478.85356 545.8617,227.5699 l 0.73244,5.38637 394.11082,249.83491 z"/> + <path inkscape:connector-curvature="0" id="path7060" d="m 569.81866,416.89465 26.68043,-11.90358 v 10.67217 l -37.35261,15.18732 z" style="fill:#783891;fill-opacity:1;stroke:none;stroke-width:1.06902707px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path7062" d="m 573.1024,402.93873 27.50137,-10.67217 2.46281,6.15702 -44.74102,19.70247 z" style="fill:#783891;fill-opacity:1;stroke:none;stroke-width:1.06902707px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + <path inkscape:connector-curvature="0" id="path7064" d="m 733.25389,331.38124 27.89783,18.13358" style="fill:none;stroke:#000000;stroke-width:1.9242487;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/> + <path style="fill:none;stroke:#000000;stroke-width:1.9242487;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 731.11584,342.07149 27.89783,18.13358" id="path7066" inkscape:connector-curvature="0"/> + <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path7068" d="m 726.62816,328.94018 38.01079,24.41059 -5.92829,5.23084 -28.944,-18.13358 z" style="fill:#783891;fill-opacity:1;stroke:none;stroke-width:1.06902707px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/> + </g> + </g> + </g> + </g> + </g> + </g> + </g> + <metadata id="metadata4794"> + <rdf:RDF> + <cc:Work> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <cc:license rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/"/> + <dc:publisher> + <cc:Agent rdf:about="http://openclipart.org/"> + <dc:title>Openclipart</dc:title> + </cc:Agent> + </dc:publisher> + <dc:title>PBJ</dc:title> + <dc:date>2010-10-04T20:14:18</dc:date> + <dc:description>Outlines of an uppercase and lowercase letter j, with a jar for coloring. Typeface is Let's Trace (public domain).</dc:description> + <dc:source>https://openclipart.org/detail/88633/j-is-for-jar-by-mazeo</dc:source> + <dc:creator> + <cc:Agent> + <dc:title>mazeo</dc:title> + </cc:Agent> + </dc:creator> + <dc:subject> + <rdf:Bag> + <rdf:li>alphabet</rdf:li> + <rdf:li>coloring book</rdf:li> + <rdf:li>colouring book</rdf:li> + <rdf:li>jar</rdf:li> + <rdf:li>letter J</rdf:li> + <rdf:li>remix</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"> + <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/> + <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/> + </cc:License> + </rdf:RDF> + </metadata> +</svg>
\ No newline at end of file diff --git a/pages/index.md b/pages/index.md new file mode 100644 index 0000000..c8b5eb2 --- /dev/null +++ b/pages/index.md @@ -0,0 +1,88 @@ +--- +title: pblog +toc: false +--- + +<img style="max-width:300px;" src="/media/pbj.svg" alt="Peanut butter sandwich"> + +## Pandoc static blog generator + +`pblog` comes packed with an incredible list of features: + +- 5-second configuration +- Write all your posts and pages in Markdown +- Valid RSS 2.0 feed (customized design too!) + +and it also *doesn't* ship with a lot of other features: + +- No advanced template layouts +- No themes +- No categories / tagging systems +- No comments +- No auto rebuilds for local testing + +But you can add these things yourself with a little know-how and patience! The goal of `pblog` is to remain as bare-bones as possible, so these "extras" are left out intentionally. + +## Live Demo + +This very website is a live demo! Mind blowing, right? Take a look at the [automated blog list](/blog) to see some blog posts. + +## Requirements + +#### On MacOS / BSD Systems + +- [rsync](https://linux.die.net/man/1/rsync) +- [coreutils](https://www.gnu.org/software/coreutils/) +- [xsltproc](http://xmlsoft.org/xslt/xsltproc.html) +- [Pandoc](https://pandoc.org/installing.html) + +#### On Linux + +- [rsync](https://linux.die.net/man/1/rsync) +- [xsltproc](http://xmlsoft.org/xslt/xsltproc.html) +- [Pandoc](https://pandoc.org/installing.html) + +## Getting Started + +1. Clone the project repo: [https://git.sr.ht/~bt/pblog](https://git.sr.ht/~bt/pblog) +2. Edit the variables at the top of the `pblog.sh` file +3. **!! Pay close attention to the `OS` variable to set your correct operating system !!** +4. Edit the posts in `posts` and pages in `pages` to your own +5. Run `make` from the root directory +6. Upload the contents of the `_output` folder to your server +7. Profit!!! + +For a more in-depth look, take a look at the article [Introducing pblog](/blog/pblog-intro.html) + +## Base Settings + +#### Table of Contents + +By default `pblog` ships with TOC (Table of Contents) enabled. You can disable this on each individual page or post by editing the `TOC `variable in `pblog.sh` to `false`: + +```yaml +TOC: false +``` + +#### Code Highlighting + +`pblog` uses the standard syntax highlighting provided with Pandoc. To disable this, set the `SYNTAX` variable to `false` in `pblog.sh`: + +```yaml +SYNTAX: false +``` + +## Extras + +- Add all media files (images, videos, etc.) under the `media` folder +- Customize the look of your blog by editing the included `style.css` +- Looking for fancier *image manipulation*? Take a look at [this detailed post to get setup](/tweaks.html) + +You can share your **pblog** websites by emailing me at the address listed below and I'll add them here. + +brad at bt {dot} ht + +## Websites Using `pblog` + +- [pblog.bt.ht](https://pblog.bt.ht) (this site!) +- [ng5p.com](https://www.ng5p.com) diff --git a/pages/tweaks.md b/pages/tweaks.md new file mode 100644 index 0000000..a83e90d --- /dev/null +++ b/pages/tweaks.md @@ -0,0 +1,97 @@ +--- +title: Tweaks +toc: true +--- + +## Tweaks Explained + +"Tweaks" are extra features that are not packaged within the default `pblog` project. If you have your own tweaks you would like to include, be sure to [open a patch](https://git.sr.ht/~bt/pblog). + +--- + +<br> + +## Magick Images + +#### by: [Matthew Graybosch](https://matthewgraybosch.com) + +This tweak gives you the ability to automatically convert PNG and JPG images to WEBP and AVIF files when used with the `picture` HTML element. + +**Requirements**: + +- Download and install [ImageMagick](https://imagemagick.org/script/download.php) + +Then change your base `makefile` to reflect the following: + +```bash +.SUFFIXES: .png .jpg .webp .avif + +.jpg.webp: + magick -quality 80 "$<" "$@" + +.jpg.avif: + magick -quality 80 "$<" "$@" + +.png.webp: + magick -quality 80 "$<" "$@" + +.png.avif: + magick -quality 80 "$<" "$@" + +JPEGS!=find media/ -name '*.jpg' +PNGS!=find media/ -name '*.png' + +JPEG_WEBP=${JPEGS:.jpg=.webp} +JPEG_AVIF=${JPEGS:.jpg=.avif} + +PNG_WEBP=${PNGS:.png=.webp} +PNG_AVIF=${PNGS:.png=.avif} + +.DEFAULT: build + +.PHONY: build +build: $(JPEG_WEBP) $(JPEG_AVIF) $(PNG_WEBP) $(PNG_AVIF) + bash pblog.sh > _output/feed.xml + xsltproc _output/feed.xml | tail -n +2 > _output/blog/index.html + +serve: build + python3 -m http.server --directory _output/ + +clean: + rm _output/* rss/* $(JPEG_WEBP) $(JPEG_AVIF) $(PNG_WEBP) $(PNG_AVIF) +``` + +That's it. Enjoy! + +--- + +<br> + +## Hiding Table of Contents "Heading" + +#### by [Bradley Taunt](https://tdarb.org) + +By default the include *Table of Contents* displays a title and styled section. To disable this, simply edit the `style.css` file and comment out or delete the following: + +```css +#TOC { + border: 1px solid; + position: relative; +} +#TOC:before { + border-bottom: 1px solid; + content: 'Table of Contents'; + display: block; + font-weight: bold; + padding: 5px; + position: relative; +} +``` + +--- + +<br> + +## Adding navigation to blog index and RSS feed + +In order to include any main navigation (or other custom elements for that matter) on the main blog index page and RSS `feed.xml`, simply edit the `rss.xml` file in the root directory. Be sure to add your elements / content inside the `body` tag near the bottom of the page. diff --git a/pblog.sh b/pblog.sh new file mode 100644 index 0000000..26d163c --- /dev/null +++ b/pblog.sh @@ -0,0 +1,84 @@ +#!/bin/sh + +source _config.sh + +################################################################################### +# !WARNING! +# You probably don't need to tweak anything below this line. Edit at your own risk! +################################################################################### + +# Create the $OUTPUT directory if it does not exist yet +mkdir -p $OUTPUT + +if [[ $TOC = true ]] + then + TOC_TOGGLE="--toc"; + else + TOC_TOGGLE=""; +fi + +if [[ $SYNTAX = true ]] + then + SYNTAX_TOGGLE=""; + else + SYNTAX_TOGGLE="--no-highlight"; +fi + +# Create the web browser-focused HTML versions for all posts +for i in $POSTS; do pandoc --css=../style.css --ascii --metadata lang="$HTML_LANG" $TOC_TOGGLE $SYNTAX_TOGGLE --wrap=none -A _footer.html -B _header.html -s $i -o ${i%.*}.html; done; + +rsync $POSTS_DIR*.html $OUTPUT$WEB_HTML; +rm $POSTS_DIR*.html + +# Create the web browser-focused HTML versions for all pages +for i in $PAGES; do pandoc --css=style.css --ascii --metadata lang="$HTML_LANG" $TOC_TOGGLE $SYNTAX_TOGGLE --wrap=none -A _footer.html -B _header.html -s $i -o ${i%.*}.html; done; + +rsync $PAGES_DIR*.html $OUTPUT; +rm $PAGES_DIR*.html + +# Copy XSLT, stylesheet, and media files +rsync rss.xsl $OUTPUT; +rsync style.css $OUTPUT; +rsync -r media $OUTPUT; + +# Remove the default blog index to avoid pulling into the XML feed +rm $OUTPUT$WEB_HTML/index.html + +echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> +<?xml-stylesheet href=\"rss.xsl\" type=\"text/xsl\"?> +<rss version=\"2.0\"> + <channel> + <title>$TITLE</title> + <link>$DOMAIN</link> + <description>$DESCRIPTION</description> + <copyright>$COPYRIGHT</copyright> + <ttl>$TTL</ttl>"; + +for file in $OUTPUT$WEB_HTML*; do + +POST_DATE=$(sed -n 's|^<p class="date">\([^<]*\)</p>$|\1|p' $file) +POST_TITLE=$(sed -n 's|^<h1 class="title">\([^<]*\)</h1>$|\1|p' $file) +POST_CONTENT=$(sed -n '/<article>/,/<\/article>/p' $file | sed -e '1s/.*<article>//' -e '$s/<\/article>.*//') + +if [[ $OS = "BSD" ]] +then + CAT_DATE=$(gdate -d "$(sed -n 's|^<p class="date">\([^<]*\)</p>$|\1|p' $file)" +"%Y/%m/%d/%u") + POST_DATE=$(gdate -d "$(sed -n 's|^<p class="date">\([^<]*\)</p>$|\1|p' $file)" +"%a, %d %b %Y") +else + CAT_DATE=$(date -d "$(sed -n 's|^<p class="date">\([^<]*\)</p>$|\1|p' $file)" +"%Y/%m/%d/%u") + POST_DATE=$(date -d "$(sed -n 's|^<p class="date">\([^<]*\)</p>$|\1|p' $file)" +"%a, %d %b %Y") +fi + +echo "<item> + <pubDate>$POST_DATE $TIME</pubDate> + <category>$CAT_DATE</category> + <title>$POST_TITLE</title> + <link>$DOMAIN/$WEB_HTML$(basename ${file})</link> + <description><![CDATA[$POST_CONTENT]]></description> + <author>$AUTHOR</author> + <guid>$DOMAIN/$WEB_HTML$(basename ${file})</guid> + </item>"; +done + +echo " </channel> +</rss>"; diff --git a/posts/community-patch.md b/posts/community-patch.md new file mode 100644 index 0000000..2a25b19 --- /dev/null +++ b/posts/community-patch.md @@ -0,0 +1,36 @@ +--- +title: 'First Community Patch & Tweaks' +date: Fri, 15 Jul 2022 +--- + +`pblog` has received its first community patch! By "community" I mean someone other than myself has helped make this blog generator even better. So special thanks to [Matthew Graybosch](https://matthewgraybosch.com/) for contributing to this humble project and patching in some solid quality of life improvements. + +This is why open source is great: smarter people can help fix your mashed-up spaghetti code! + +### The Changes + +1. Both pages and posts now generated *Table of Contents* by default + - You have the ability to disable this site-wide in the `pblog` config +2. Ability to disable Pandoc generated syntax highlighting +3. `xsltproc` will now generate HTML5 and include the RSS feed description under the title + - See it live on the [main RSS XML feed](/feed.xml) +4. New metadata variable (`HTML_LANG`) in the `pblog.sh` config +5. Generated pages and posts now have "Table of Contents" by default + - This can be disabled in individual files with `toc: false` +6. Cleaned up redundant find statements + +### Some Features Left Behind... + +Also suggested in this patch was the addition of more advanced image manipulation via `ImageMagick`. This additional feature was pretty great from my testing but I felt as though adding an extra dependency and *slightly* more complex settings to `pblog` was moving things further from simplicity. + +**BUT** - that doesn't mean you can't take this great feature with you! + +### Introducing "Tweaks" + +I feel that `pblog` should always remain as simple as possible at the core. Let people get something up-and-running with the least amount of friction as possible. But I know that some users might want to squeeze just a *little* bit more out of it. This is where the new **Tweaks** section comes in. + +Feel free to check out the [official Tweaks page](/tweaks.html) and don't be afraid to add your own by opening a patch-set! + +That's all for now, thanks for reading! + +-- Brad
\ No newline at end of file diff --git a/posts/default-styles.md b/posts/default-styles.md new file mode 100644 index 0000000..1a09ca7 --- /dev/null +++ b/posts/default-styles.md @@ -0,0 +1,61 @@ +--- +title: New Default Styling and 2x Faster! +date: Wed, 27 Jul 2022 +--- + +If it wasn't already obvious, this project has received a minor styling overhaul. But looks weren't the only thing updated with this latest patch. + +The total build process time is now *two times faster*! + +Keep reading for more details. + +## The Default "Theme" + +The styling changes aren't anything ground breaking. They simply center the main content and add a little more visual separation of the content and backdrop. Again, you can customize `pblog` as you see fit, but having a sane default is always nice. + +## New Config Setup + +Since updates and performance fixes might continue to come through in the future, I didn't want to make users play around with their default configuration every single time. Now, all main configuration is handled in the new `_config.sh` file. + +```sh +#!/bin/sh + +# Site specific settings +################################################################################### +DOMAIN="https://pblog.bt.ht" +TITLE="pblog" +DESCRIPTION="Pandoc static blog generator" +COPYRIGHT="Copyright 2022, Bradley Taunt" +AUTHOR="brad@bt.ht (Bradley Taunt)" +OS="Linux" # "Linux" for Linux, "BSD" for BSD Systems (including MacOS) +HTML_LANG="en_US" # Your document (HTML) language setting + +# Blog structure settings (most users should use these defaults) +################################################################################### +TOC=true +SYNTAX=true +PAGES_DIR="pages/" +POSTS_DIR="posts/" +PAGES=$(find $PAGES_DIR -type f) +POSTS=$(find $POSTS_DIR -type f) +WEB_HTML="blog/" +OUTPUT="_output/" +TIME="01:00:00 EST" +TTL="60" +``` + +Feels cleaner already, right? + +## Cutting the Build Time in Half + +I must give big kudos to [Matthew Graybosch](https://matthewgraybosch.com) for inspiring this pretty big improvement. After some discussion over emails we both agreed that it seemed overkill to render the blog content twice (once for the XML feed itself and then again for all posts listed under `blog`). Performance wasn't the initial goal when I first launched this project, but now that the dust has settled it seemed appropriate to go back and fix some things. + +`pblog` now only needs to render the blog posts found in the `posts` directory *once*. It still produces semantic XML and keeps the webview versions of the articles looking solid. Overall I'm pretty happy with this *little* improvement - it should pretty noticeable on projects rendering many posts. + +## Far From Perfect + +This project is still very much in it's infancy. So if you notice something odd or broken in your own testing, please don't hesitate to open a patch or simply bring up the issue! + +Thanks for reading, + +-- Brad
\ No newline at end of file diff --git a/posts/pblog-intro.md b/posts/pblog-intro.md new file mode 100644 index 0000000..e86272b --- /dev/null +++ b/posts/pblog-intro.md @@ -0,0 +1,96 @@ +--- +title: Introducing pblog +date: Mon, 04 Jul 2022 +--- + +This article is a *living document*. It will always have the most up-to-date information on getting started with `pblog`. + +**Last Updated**: July 27, 2022 + +--- + +Although this project was already [announced](/blog/pblog-launch.html) a couple days ago, I thought it might be best to actually breakdown `pblog` into greater detail. + +Enough chit-chat, let's get into it! + +### Main Goal + +The entire purpose of `pblog` is to be as bare-bones as possible, while still maintaining a pleasant writing workflow. Users write their posts and pages in Markdown - *pblog* handles everything else: + +- Posts and pages generated via Pandoc with minimal CSS +- RSS feed at `feed.xml` +- Generated blog listing at `blog/index.html` +- Browser-styled XML (in supported browsers) + +### Site Structure + +After you've cloned the [official pblog repo on sourcehut](https://git.btxx.org/pblog), the next thing you should do is edit the main `_config.sh` file in the root directory. This will give you a better understanding of how everything is built. + +Once generated, *pblog* structures the final website files as such: + +```shell +_output/ + |__blog/ + |__index.html + |__blog-post-example.html + |__media/ + |__feed.xml + |__index.html + |__rss.xsl + |__style.css +``` + +This structure is completely customizable by simply editing the `_config.sh` file (if you so desire). + +### Headers and Footers + +By default `pblog` will add the header and footer includes to every individual post and page. To edit these, simply open the `_header.html` and `_footer.html` files respectively. + +**Important**: To avoid rendering issues DO NOT remove the included `article` opening and closing tags within those files. Everything else you can edit, remove, etc. + +### Posts and Pages + +Posts and pages are written via Markdown inside the `posts` and `pages` folders respectively. + +Individual posts require the following headers (take note of the date format): + +```yaml +--- +title: Blog Title +date: Mon, 04 Jul 2022 +--- +``` + +while individual pages only require a `title`: + +```yaml +--- +title: Page Title +--- +``` + +This makes for an easier switch over from other SSG platforms like Jekyll or Hugo. + +### The Build Process + +The main variables at the top of the `pblog.sh` file need to edited with your own details before generating your website. Those variables are fairly self-explanatory and simple to edit. + +All you need to do now is run `make` (or `make serve` if you're looking to test locally) and you're done. Your website should now be fully generated inside the include `_output` directory. For quick reference: + +1. *pblog* converts your Markdown posts into two variations of HTML + - One is used specifically for rendering itself inside the RSS feed + - The other is used for linking in a browser +2. Next, *pblog* converts your Markdown pages into HTML +3. All of these generated HTML files are then moved to the `_output` folder + +*pblog* is also smart enough to automatically generate a main blog list directory for you. This `index.html` file is placed inside the `_output/blog` folder on build. You can see an example of the blog list [on this very website](/blog). + +### Uploading to the WWW + +Those with more experience will probably lean towards using a utility like `rsync` to sync the contents of their `_output` folder with their web server. For those with less experience, I recommend using something like [Netlify Drop](https://app.netlify.com/drop) to make things as friction-less as possible. + +### Wrapping Up + +There isn't much else to say. `pblog` is as static or flexible as you chose it to be. If you have any ideas on how to improve things or come across any bugs, please [open a ticket or PR on the official repo](https://git.sr.ht/~bt/pblog). + +Thanks and happy blogging with *pblog*! diff --git a/posts/pblog-launch.md b/posts/pblog-launch.md new file mode 100644 index 0000000..3c9b472 --- /dev/null +++ b/posts/pblog-launch.md @@ -0,0 +1,11 @@ +--- +title: Announcing pblog +date: Thu, 30 Jun 2022 +--- + +It's time to celebrate! The official launch of `pblog` happened today. + +There isn't much else to say. All details and instructions on how to start your own pblog can be found on the [main homepage for this project](https://pblog.btxx.org). + +Thanks for reading! + diff --git a/posts/small-patch.md b/posts/small-patch.md new file mode 100644 index 0000000..d6c1507 --- /dev/null +++ b/posts/small-patch.md @@ -0,0 +1,27 @@ +--- +title: Includes, rsync and Variables - Oh My! +date: Fri, 08 Jul 2022 +--- + +Even though `pblog` was just launched a week ago, it has since been updated with some nice quality-of-life improvements. + +### Default "header" & "footer" Includes + +A new variable was added to the main `pblog.sh` configuration file called `INC_HEAD_FOOT`. By default this is set to `true` and simply pulls in two HTML files: + +- `_header.html`: all content within is placed directly after the opening `body` tag +- `_footer.html`: all content within is placed directly before the closing `body` tag + +These includes are added to every outputted file from inside both the `posts` and `pages` directories on build. + +### Syncing Changes with rsync + +Although it adds another dependency to the project, I believe utilizing `rsync` for the generated files is far better then nuking the directory from orbit each time. This also provides a cleaner experience for users syncing their `_output` directory with their web server of choice. + +### On the Horizon... + +My plan was to also tackle the issue of "auto rebuilds" when running `pblog` locally. This became more of a headache than I initially estimated - so it was dropped from this patch. My hope is to get something up-and-running in the near future, while avoiding the inclusion of yet another major dependency. Anyone more experienced than myself in the ways of "auto rebuilds" is free to open a patch if they so desire! + +Thanks for your interest in these minor updates! + +P.S. Don't forget - if your website runs on `pblog` be sure to reach out and get it featured on the [homepage](/)! @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <xsl:output method="html" doctype-system="about:legacy-compat" version="1.0" encoding="UTF-8" indent="yes" /> + <xsl:template match="/"> + <html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"> + <head> + <title> + <xsl:value-of select="/rss/channel/title" /> + </title> + <meta name="description"> + <xsl:attribute name="content"> + <xsl:value-of select="/rss/channel/description" /> + </xsl:attribute> + </meta> + <meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1" /> + <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no" /> + <link rel="stylesheet" href="../style.css" /> + <style> + header { + border-bottom: 1px solid lightgrey; + margin-bottom: 0; + padding-bottom: 0.5em; + } + header h1 { + margin: 0; + } + header p { + margin: 0 0 0.5em; + } + .date { + display: block; + font-family: monospace; + margin-top: 1em; + overflow: hidden; + white-space: nowrap; + width: 16ch; + } + </style> + </head> + + <body> + <header> + <h1><xsl:value-of select="/rss/channel/title" /></h1> + <p> + <i><xsl:value-of select="/rss/channel/description" /></i> + </p> + </header> + <xsl:for-each select="/rss/channel/item"> + <xsl:sort select="category" order="descending" /> + <span class="date"> + <xsl:value-of select="pubDate" /> + </span> + <xsl:element name="a"> + <xsl:attribute name="href"> + <xsl:value-of select="link" /> + </xsl:attribute> + <span> + <xsl:value-of select="title" /> + </span> + </xsl:element> + </xsl:for-each> + </body> + + </html> + </xsl:template> +</xsl:stylesheet>
\ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..6c1cca6 --- /dev/null +++ b/style.css @@ -0,0 +1,50 @@ +html { + background:#f9f9f9; +} + +body { + background: #fff; + border: 1px solid lightgrey; + margin: 1em auto; + max-width: 75ch; + padding: 10px; + line-height: 1.4; +} + +p code, li code { + border: 1px solid brown; + border-radius: 2px; + color: brown; + padding: 1px 2px; +} +.sourceCode { + overflow: auto; +} + +img { + height: auto; + max-width: 100%; +} + +pre { + background: #f9f9f9; + border: 1px solid lightgrey; + padding: 5px; +} + +#TOC { + border: 1px solid; + position: relative; +} +#TOC:before { + border-bottom: 1px solid; + content: 'Table of Contents'; + display: block; + font-weight: bold; + padding: 5px; + position: relative; +} + +.date { + color: grey; +} |