blog/wtmp/barf/build/atom.xml

295 lines
14 KiB
XML
Raw Permalink Normal View History

2023-07-22 19:23:38 -04:00
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>barf</title>
<link href="https://barf.bt.ht/atom.xml" rel="self" />
<updated>2023-03-09T10:53:26Z</updated>
<author>
<name>Bradley Taunt</name>
</author>
<id>https://barf.bt.ht,2023-01-04:default-atom-feed/</id>
<entry>
<title>Markdown Examples in barf</title>
<content type="html">&lt;h1&gt;Markdown Examples in barf&lt;/h1&gt;
&lt;p&gt;2023-01-05&lt;/p&gt;
&lt;p&gt;This following was lifted from &lt;a href=&quot;https://github.com/karlb/smu&quot;&gt;https://github.com/karlb/smu&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;&lt;code&gt;smu&lt;/code&gt; Syntax&lt;/h1&gt;
&lt;p&gt;smu was started as a rewrite of
&lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot;&gt;markdown&lt;/a&gt; but became something
more lightweight and consistent. It differs from &lt;a href=&quot;https://commonmark.org/&quot;&gt;CommonMark&lt;/a&gt; in the following ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No support for &lt;em&gt;reference style links&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Stricter indentation rules for lists&lt;/li&gt;
&lt;li&gt;Lists don&#39;t end paragraphs by themselves (blank line needed)&lt;/li&gt;
&lt;li&gt;Horizontal rules (&lt;code&gt;&amp;lt;hr&amp;gt;&lt;/code&gt;) must use &lt;code&gt;- - -&lt;/code&gt; as syntax&lt;/li&gt;
&lt;li&gt;Code fences have stricter syntax&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Patches that increase the CommonMark compatibility are welcome as long as they don&#39;t increase the code complexity significantly.&lt;/p&gt;
&lt;p&gt;This project is a fork of the &lt;a href=&quot;https://github.com/gottox/smu&quot;&gt;original smu&lt;/a&gt; by
&lt;a href=&quot;https://eboland.de&quot;&gt;Enno Boland (gottox)&lt;/a&gt;. The main differences to the
original smu are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for code fences&lt;/li&gt;
&lt;li&gt;Improved &lt;a href=&quot;https://commonmark.org/&quot;&gt;CommonMark&lt;/a&gt; compatibility. E.g.
&lt;ul&gt;
&lt;li&gt;Code blocks need four spaces indentation instead of three&lt;/li&gt;
&lt;li&gt;Skip empty lines at end of code blocks&lt;/li&gt;
&lt;li&gt;Ignore single spaces around code spans&lt;/li&gt;
&lt;li&gt;Keep HTML comments in output&lt;/li&gt;
&lt;li&gt;Improved spec compliance for lists&lt;/li&gt;
&lt;li&gt;Nesting code block in blockquotes works&lt;/li&gt;
&lt;li&gt;&quot;Empty&quot; lines in lists behave identically, no matter how much whitespace they contain&lt;/li&gt;
&lt;li&gt;No backslash escapes in code blocks&lt;/li&gt;
&lt;li&gt;Use first number as start number for ordered lists&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Added a simple test suite to check for compliance and avoid regressions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Inline patterns&lt;/h2&gt;
&lt;p&gt;There are several patterns you can use to highlight your text:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Emphasis&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Surround your text with &lt;code&gt;*&lt;/code&gt; or &lt;code&gt;_&lt;/code&gt; to get &lt;em&gt;emphasised&lt;/em&gt; text:
&lt;pre&gt;&lt;code&gt;This *is* cool.
This _is_ cool, too.
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Surround your text with &lt;code&gt;**&lt;/code&gt; or &lt;code&gt;__&lt;/code&gt; to get &lt;strong&gt;strong&lt;/strong&gt; text:
&lt;pre&gt;&lt;code&gt;This **is** cool.
This __is__ cool, too.
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Surround your text with &lt;code&gt;***&lt;/code&gt; or &lt;code&gt;___&lt;/code&gt; to get &lt;strong&gt;&lt;em&gt;strong and emphasised&lt;/em&gt;&lt;/strong&gt; text:
&lt;pre&gt;&lt;code&gt;This ***is*** cool.
This ___is___ cool, too.
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;But this example won&#39;t work as expected:
&lt;pre&gt;&lt;code&gt;***Hello** you*
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is a wontfix bug because it would make the source too complex.
Use this instead:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;***Hello*** *you*
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;inline Code&lt;/p&gt;
&lt;p&gt;You can produce inline code by surrounding it with backticks.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Use `rm -rf /` if you&#39;re a N00b.
Use ``rm -rf /`` if you&#39;re a N00b.
Use ```rm -rf /``` if you&#39;re a N00b.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Double and triple backticks can be used if the code itself contains backticks.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Titles&lt;/h2&gt;
&lt;p&gt;Creating titles in smu is very easy. There are two different syntax styles. The
first is underlining with at least three characters:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Heading
=======
Topic
-----
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is very intuitive and self explaining. The resulting sourcecode looks like
this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;h1&amp;gt;Heading&amp;lt;/h1&amp;gt;
&amp;lt;h2&amp;gt;Topic&amp;lt;/h2&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use the following prefixes if you don&#39;t like underlining:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# h1
## h2
### h3
#### h4
##### h5
###### h6
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;p&gt;The simplest way to define a link is with simple &lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;http://s01.de&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can do the same for E-Mail addresses:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;yourname@s01.de&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you want to define a label for the url, you have to use a different syntax&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[smu - simple mark up](http://s01.de/~gottox/index.cgi/proj_smu)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The resulting HTML-Code&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;a href=&amp;quot;http://s01.de/~gottox/index.cgi/proj_smu&amp;quot;&amp;gt;smu - simple mark up&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Lists&lt;/h2&gt;
&lt;p&gt;Defining lists is very straightforward:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;* Item 1
* Item 2
* Item 3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Result:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;Item 1&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;Item 2&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;Item 3&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Defining ordered lists is also very easy:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1. Item 1
2. Item 2
3. Item 3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Only the first number in a list is meaningful. All following list items are
continously counted. If you want a list starting at 2, you could write:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;2. Item 1
2. Item 2
2. Item 3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and get the following HTML which will render with the numbers 2, 3, 4:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;ol start=&amp;quot;2&amp;quot;&amp;gt;
&amp;lt;li&amp;gt;Item 1&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;Item 2&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;Item 3&amp;lt;/li&amp;gt;
&amp;lt;/ol&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Code &amp;amp; Blockquote&lt;/h2&gt;
&lt;p&gt;Use the &lt;code&gt;&amp;gt; &lt;/code&gt; as a line prefix for defining blockquotes. Blockquotes are
interpreted as well. This makes it possible to embed links, headings and even
other quotes into a quote:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; Hello
&amp;gt; This is a quote with a [link](http://s01.de/~gottox)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Result:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;
Hello
This is a quote with a &amp;lt;a href=&amp;quot;http://s01.de/~gottox&amp;quot;&amp;gt;link&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;/blockquote&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can define a code block with a leading Tab or with &lt;strong&gt;4&lt;/strong&gt; leading spaces&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; this.is(code)
this.is(code, too)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Result:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;this.is(code)&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;this.is(code, too)
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Please note that you can&#39;t use HTML or smu syntax in a code block.&lt;/p&gt;
&lt;p&gt;Another way to write code blocks is to use code fences:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;```json
{&amp;quot;some&amp;quot;: &amp;quot;code&amp;quot;}
```
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This has two advantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The optional language identifier will be turned into a &lt;code&gt;language-&lt;/code&gt; class name&lt;/li&gt;
&lt;li&gt;You can keep the original indentation which helps when doing copy &amp;amp; paste&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Tables&lt;/h2&gt;
&lt;p&gt;Tables can be generated with the following syntax:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;| Heading1 | Heading2 |
| -------- | -------- |
| Cell 1 | Cell2 |
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Aligning the columns make the input nicer to read, but is not necessary to get
correct table output. You could just write&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;| Heading1 | Heading2 |
| --- | --- |
| Cell 1 | Cell2 |
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To align the content of table cells, use &lt;code&gt;|:--|&lt;/code&gt; for left, &lt;code&gt;|--:|&lt;/code&gt; for right
and &lt;code&gt;|:--:|&lt;/code&gt; for centered alignment in the row which separates the header from
the table body.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;| Heading1 | Heading2 | Heading3 |
| :------- | :------: | -------: |
| Left | Center | Right |
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Other interesting stuff&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;to insert a horizontal rule simple add &lt;code&gt;- - -&lt;/code&gt; into an empty line:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Hello
- - -
Hello2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Result:
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;p&amp;gt;
Hello
&amp;lt;hr /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;Hello2&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Any ASCII punctuation character may escaped by precedeing them with a
backslash to avoid them being interpreted:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;!&amp;quot;#$%&amp;amp;&#39;()*+,-./:;&amp;lt;=&amp;gt;?@[]^_`{|}~\
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To force a linebreak simple add two spaces to the end of the line:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;No linebreak
here.
But here is
one.
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;embed HTML&lt;/h2&gt;
&lt;p&gt;You can include arbitrary HTML code in your documents. The HTML will be
passed through to the resulting document without modification. This is a good
way to work around features that are missing in smu. If you don&#39;t want this
behaviour, use the &lt;code&gt;-n&lt;/code&gt; flag when executing smu to stricly escape the HTML
tags.&lt;/p&gt;</content>
<link href="https://barf.bt.ht/markdown-examples"/>
<id>https://barf.bt.ht/markdown-examples</id>
<updated>2023-01-05T00:00:00Z</updated>
<published>2023-01-05T00:00:00Z</published>
</entry>
<entry>
<title>Running `barf` on MacOS</title>
<content type="html">&lt;h1&gt;Running &lt;code&gt;barf&lt;/code&gt; on MacOS&lt;/h1&gt;
&lt;p&gt;2023-01-18&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;barf&lt;/code&gt; project was built on Linux and was catered towards Linux users. The core of the project will remain focused on Linux/GNU tools, but that doesn&#39;t mean MacOS needs to be left out in the cold.&lt;/p&gt;
&lt;p&gt;There are some very minor changes you&#39;ll need to make in the main &lt;code&gt;barf&lt;/code&gt; script if you plan to run it on MacOS.&lt;/p&gt;
&lt;h2&gt;Download Packages&lt;/h2&gt;
&lt;p&gt;This walkthrough assumes that you already have &lt;a href=&quot;https://brew.sh/&quot;&gt;homebrew&lt;/a&gt; installed on your machine.&lt;/p&gt;
&lt;p&gt;You will need to install the GNU versions of both &lt;code&gt;date&lt;/code&gt; and &lt;code&gt;sed&lt;/code&gt; in order to avoid breaking things when &lt;code&gt;barf&lt;/code&gt; tries to build.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install coreutils
brew install gnu-sed
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;The Script Tweaks&lt;/h2&gt;
&lt;p&gt;Now open the main &lt;code&gt;barf&lt;/code&gt; file in your project and replace all instances of &lt;code&gt;sed&lt;/code&gt; with &lt;code&gt;gsed&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Then change the following variable:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;published_date=$(date -d $basic_date +%FT%TZ)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;published_date=$(gdate -d $basic_date +%FT%TZ)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After that everything should work perfectly fine. There is probably a cleaner way to do this, but I like to keep things simple.&lt;/p&gt;</content>
<link href="https://barf.bt.ht/macos"/>
<id>https://barf.bt.ht/macos</id>
<updated>2023-01-18T00:00:00Z</updated>
<published>2023-01-18T00:00:00Z</published>
</entry>
<entry>
<title>Supporting Basic Dark Mode</title>
<content type="html">&lt;h1&gt;Supporting Basic Dark Mode&lt;/h1&gt;
&lt;p&gt;2023-03-07&lt;/p&gt;
&lt;p&gt;The default &lt;code&gt;barf&lt;/code&gt; site generator now supports basic dark mode functionality. This has been achieved by including the standard &lt;code&gt;color-scheme&lt;/code&gt; meta tag in the core &lt;code&gt;header.html&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;meta name=&amp;quot;color-scheme&amp;quot; content=&amp;quot;dark light&amp;quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This change also ships with some minor updates to the default &lt;code&gt;blockquote&lt;/code&gt; design. You can see an example below:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;This is a really &lt;em&gt;cool&lt;/em&gt; blockquote&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Minor Caveat&lt;/h2&gt;
&lt;p&gt;Unfortunately, Safari still has minor &lt;code&gt;ahref&lt;/code&gt; / link color issue when defaulting to browser dark mode. If this is a problem for your own build of &lt;code&gt;barf&lt;/code&gt;, take a look at a &lt;a href=&quot;https://bt.ht/safari-default-dark-mode/&quot;&gt;solution I wrote about here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Personally, I can&#39;t be bothered to add that extra code to this project. The Safari team needs to get their shit together and fix such a simple bug. Plus, you shouldn&#39;t be using Safari anyway - it&#39;s proprietary garbage.&lt;/p&gt;</content>
<link href="https://barf.bt.ht/dark-mode"/>
<id>https://barf.bt.ht/dark-mode</id>
<updated>2023-03-07T00:00:00Z</updated>
<published>2023-03-07T00:00:00Z</published>
</entry>
</feed>