diff options
author | Bradley Taunt <bt@btxx.org> | 2024-07-21 12:18:17 -0400 |
---|---|---|
committer | Bradley Taunt <bt@btxx.org> | 2024-07-21 12:18:17 -0400 |
commit | b5ab99baf2f2f1e2418640070fda397003ff3dd5 (patch) | |
tree | 2c0f6dae2a489faa1230cb51911410c7330914f5 | |
parent | ca10d78e63a3caf8b79ac7b73ff483a7150c2683 (diff) |
Update README, add directories, image, LICENSE, and build config
-rw-r--r-- | .build.yml | 21 | ||||
-rw-r--r-- | LICENSE | 22 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | README.md | 8 | ||||
-rw-r--r-- | build/about/index.html | 50 | ||||
-rw-r--r-- | build/index.atom | 206 | ||||
-rw-r--r-- | build/index.html | 52 | ||||
-rw-r--r-- | build/posts/markdown-examples/index.html | 227 | ||||
-rw-r--r-- | footer.html | 19 | ||||
-rw-r--r-- | header.html | 21 | ||||
-rw-r--r-- | index.md | 9 | ||||
-rw-r--r-- | pages/about.md | 10 | ||||
-rw-r--r-- | posts/markdown-examples.md | 139 | ||||
-rw-r--r-- | public/images/cat.jpg | bin | 0 -> 19054 bytes |
14 files changed, 784 insertions, 2 deletions
diff --git a/.build.yml b/.build.yml new file mode 100644 index 0000000..8cdd780 --- /dev/null +++ b/.build.yml @@ -0,0 +1,21 @@ +image: alpine/latest +oauth: pages.sr.ht/PAGES:RW +packages: +- ruby +- go +- hut +environment: +site: wruby.btxx.org +sources: +- https://git.sr.ht/~bt/wruby +tasks: +- install-gems: | + sudo gem install kramdown rss +- build: | + cd wruby + make build +- package: | + cd wruby/build + tar -cvz . > ../../site.tar.gz +- upload: | + hut pages publish -d wruby.btxx.org site.tar.gz @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2024 Bradley Taunt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + @@ -1,6 +1,6 @@ build: rm -rf build && mkdir build - ruby blog.rb + ruby wruby.rb clean: rm -rf build/* @@ -14,10 +14,16 @@ Install required gems: gem install kramdown rss ``` +## Getting Started + +Make your changes in the top of the main `wruby.rb` file (site URL, your name, +etc.). Remove the `.build.yml` unless you plan to host with sourcehut pages, +otherwise edit this file with your own details. + ## Running 1. Create markdown blog posts under root `posts/` directory 2. Create markdown pages under root `/pages` directory 3. Store media (images, videos etc) inside the root `/public` directory 4. Run `make build` in root -5. Upload `build` folder to your server
\ No newline at end of file +5. Upload `build` folder to your server diff --git a/build/about/index.html b/build/about/index.html new file mode 100644 index 0000000..ef79ef3 --- /dev/null +++ b/build/about/index.html @@ -0,0 +1,50 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="color-scheme" content="dark light"> + <link rel="icon" href="data:,"> + <title>About</title> + <link href="/atom.xml" type="application/atom+xml" rel="alternate" title="Atom feed for blog posts" /> + <link href="/rss.xml" type="application/rss+xml" rel="alternate" title="RSS feed for blog posts" /> +<style>*{box-sizing:border-box;}body{font-family:sans-serif;line-height:1.33;margin:0 +auto;max-width:650px;padding:1rem;}blockquote{background:#eee;border-left:4px + solid;color:black;padding-left:5px;}img{max-width:100%;}pre{border:1px solid;overflow:auto;padding:5px;}table{text-align:left;width:100%;}.posts,#menu{list-style:none;padding:0;}.posts li{margin-bottom:8px;}.posts li span{display:block;font-size:90%;}#menu li{display:inline-block;margin-right:8px;}.footnotes{font-size:90%;}</style> +</head> + +<nav> + <a href="/">Home</a><span> | </span><a href="#menu">Menu ↓</a> +</nav> + +<main> + +<h1 id="about">About</h1> + +<p>wruby is a minimal blog generator written in Ruby.</p> + +<h2 id="why">Why?</h2> + +<p>This project was created by me, <a href="btxx.org">Bradley Taunt</a>, out of frustration with overly complex and bloated blogging options. I tried so many “minimal” generators but each one ended up having some glaring issue or heavy reliance on dependencies. Originally, I solved this problem by creating <a href="https://barf.btxx.org">barf</a> - a blog generator pieced together with basic sheel scripting. While this project works well, I prefer to write with Ruby since it is such a beautiful language.</p> + +<p>So, wruby was born. There isn’t much else to say. I hope you enjoy using it and +be sure to report any issues if you come arcoss any bugs!</p> +</main> +<hr/> +<footer role="contentinfo"> + <h2>Menu Navigation</h2> + <ul id="menu"> + <li><a href="/">Home</a></li> + <li><a href="/about">About</a></li> + <li><a href="/index.atom">RSS</a></li> + <li><a href="#top">↑ Top of the page</a></li> + </ul> + <small> + Built with <a href="https://wruby.btxx.org">wruby</a>. <br> + Maintained with ♥ for the web. <br> + The content for this site is <a + href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>.<br> + The <a href="https://git.sr.ht/~bt/wruby">code for this project</a> + is <a href="https://git.sr.ht/~bt/wruby/tree/master/item/LICENSE">MIT</a>. + </small> +</footer> diff --git a/build/index.atom b/build/index.atom new file mode 100644 index 0000000..177677e --- /dev/null +++ b/build/index.atom @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="UTF-8"?> +<feed xmlns="http://www.w3.org/2005/Atom" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <author> + <name>Bradley Taunt</name> + </author> + <id>wruby</id> + <title>wruby RSS Feed</title> + <updated>2024-07-21T11:59:55-04:00</updated> + <entry> + <content type="html"><h1 id="markdown-examples-in-wruby">Markdown Examples in wruby</h1> + +<p>2024-07-20</p> + +<h2 id="an-h2-header">An h2 header</h2> + +<p>Paragraphs are separated by a blank line.</p> + +<p>2nd paragraph. <em>Italic</em>, <strong>bold</strong>, and <code>monospace</code>. Itemized lists +look like:</p> + +<ul> + <li>this one</li> + <li>that one</li> + <li>the other one</li> +</ul> + +<p>Note that — not considering the asterisk — the actual text +content starts at 4-columns in.</p> + +<blockquote> + <p>Block quotes are +written like so.</p> + + <p>They can span multiple paragraphs, +if you like.</p> +</blockquote> + +<p>Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., “it’s all +in chapters 12–14”). Three dots … will be converted to an ellipsis. +Unicode is supported. ☺</p> + +<h3 id="an-h3-header">An h3 header</h3> + +<p>Here’s a numbered list:</p> + +<ol> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ol> + +<p>Note again how the actual text starts at 4 columns in (4 characters +from the left side). Here’s a code sample:</p> + +<pre><code># Let me re-iterate ... +for i in 1 .. 10 { do-something(i) } +</code></pre> + +<p>As you probably guessed, indented 4 spaces. By the way, instead of +indenting the block, you can use delimited blocks, if you like:</p> + +<pre><code>define foobar() { + print "Welcome to flavor country!"; +} +</code></pre> + +<p>(which makes copying &amp; pasting easier). You can optionally mark the +delimited block for Pandoc to syntax highlight it:</p> + +<pre><code class="language-python">import time +# Quick, count to ten! +for i in range(10): + # (but not *too* quick) + time.sleep(0.5) + print i +</code></pre> + +<h4 id="an-h4-header">An h4 header</h4> + +<p>Now a nested list:</p> + +<ol> + <li> + <p>First, get these ingredients:</p> + + <ul> + <li>carrots</li> + <li>celery</li> + <li>lentils</li> + </ul> + </li> + <li> + <p>Boil some water.</p> + </li> + <li> + <p>Dump everything in the pot and follow +this algorithm:</p> + + <pre><code>find wooden spoon +uncover pot +stir +cover pot +balance wooden spoon precariously on pot handle +wait 10 minutes +goto first step (or shut off burner when done) +</code></pre> + + <p>Do not bump wooden spoon or it will fall.</p> + </li> +</ol> + +<p>Notice again how text always lines up on 4-space indents (including +that last line which continues item 3 above).</p> + +<p>Here’s a link to <a href="http://foo.bar">a website</a>, to a <a href="local-doc.html">local +doc</a>, and to a <a href="#an-h2-header">section heading in the current +doc</a>. Here’s a footnote <sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.</p> + +<p>Tables can look like this:</p> + +<table> + <thead> + <tr> + <th>size</th> + <th>material</th> + <th>color</th> + </tr> + </thead> + <tbody> + <tr> + <td>9</td> + <td>leather</td> + <td>brown</td> + </tr> + <tr> + <td>10</td> + <td>hemp</td> + <td>natural</td> + </tr> + <tr> + <td>11</td> + <td>glass</td> + <td>transparent</td> + </tr> + </tbody> +</table> + +<p>Table: Shoes, their sizes, and what they’re made of.</p> + +<p>A horizontal rule follows.</p> + +<hr /> + +<p>Here’s a definition list:</p> + +<dl> + <dt>apples</dt> + <dd>Good for making applesauce. +oranges</dd> + <dd>Citrus! +tomatoes</dd> + <dd>There’s no “e” in tomatoe.</dd> +</dl> + +<p>Again, text is indented 4 spaces. (Put a blank line between each +term/definition pair to spread things out more.)</p> + +<p>Here’s a “line block”:</p> + +<table> + <tbody> + <tr> + <td>Line one</td> + </tr> + <tr> + <td>Line too</td> + </tr> + <tr> + <td>Line tree</td> + </tr> + </tbody> +</table> + +<p>and images can be specified like so:</p> + +<p><img src="https://placekitten.com/480/480" alt="example image" title="An exemplary image" /></p> + +<p>And note that you can backslash-escape any punctuation characters +which you wish to be displayed literally, ex.: `foo`, *bar*, etc.</p> +<div class="footnotes" role="doc-endnotes"> + <ol> + <li id="fn:1" role="doc-endnote"> + <p>Footnote text goes here. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p> + </li> + </ol> +</div> +</content> + <id>https://wruby.btxx.org/markdown-examples/</id> + <link href="https://wruby.btxx.org/markdown-examples/"/> + <title>Markdown Examples in wruby</title> + <updated>2024-07-20T00:00:00-04:00</updated> + <dc:date>2024-07-20T00:00:00-04:00</dc:date> + </entry> + <dc:date>2024-07-21T11:59:55-04:00</dc:date> +</feed>
\ No newline at end of file diff --git a/build/index.html b/build/index.html new file mode 100644 index 0000000..5f89c2f --- /dev/null +++ b/build/index.html @@ -0,0 +1,52 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="color-scheme" content="dark light"> + <link rel="icon" href="data:,"> + <title>wruby</title> + <link href="/atom.xml" type="application/atom+xml" rel="alternate" title="Atom feed for blog posts" /> + <link href="/rss.xml" type="application/rss+xml" rel="alternate" title="RSS feed for blog posts" /> +<style>*{box-sizing:border-box;}body{font-family:sans-serif;line-height:1.33;margin:0 +auto;max-width:650px;padding:1rem;}blockquote{background:#eee;border-left:4px + solid;color:black;padding-left:5px;}img{max-width:100%;}pre{border:1px solid;overflow:auto;padding:5px;}table{text-align:left;width:100%;}.posts,#menu{list-style:none;padding:0;}.posts li{margin-bottom:8px;}.posts li span{display:block;font-size:90%;}#menu li{display:inline-block;margin-right:8px;}.footnotes{font-size:90%;}</style> +</head> + +<nav> + <a href="/">Home</a><span> | </span><a href="#menu">Menu ↓</a> +</nav> + +<main> + +<h1 id="wruby">wruby</h1> + +<p><strong>wruby is a single file, minimal blog generator written in Ruby.</strong></p> + +<p>The “w” is silent…</p> + +<p>You can learn more by reading <a href="https://git.sr.ht/~bt/wruby">the official README</a>.</p> + +<h2 id="articles">Articles</h2> +<ul class="posts"> +<li><span>2024-07-20</span><a href='/posts/markdown-examples/'>Markdown Examples in wruby</a></li> +</ul> +</main> +<hr/> +<footer role="contentinfo"> + <h2>Menu Navigation</h2> + <ul id="menu"> + <li><a href="/">Home</a></li> + <li><a href="/about">About</a></li> + <li><a href="/index.atom">RSS</a></li> + <li><a href="#top">↑ Top of the page</a></li> + </ul> + <small> + Built with <a href="https://wruby.btxx.org">wruby</a>. <br> + Maintained with ♥ for the web. <br> + The content for this site is <a + href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>.<br> + The <a href="https://git.sr.ht/~bt/wruby">code for this project</a> + is <a href="https://git.sr.ht/~bt/wruby/tree/master/item/LICENSE">MIT</a>. + </small> +</footer> diff --git a/build/posts/markdown-examples/index.html b/build/posts/markdown-examples/index.html new file mode 100644 index 0000000..f6c0a03 --- /dev/null +++ b/build/posts/markdown-examples/index.html @@ -0,0 +1,227 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="color-scheme" content="dark light"> + <link rel="icon" href="data:,"> + <title>Markdown Examples in wruby</title> + <link href="/atom.xml" type="application/atom+xml" rel="alternate" title="Atom feed for blog posts" /> + <link href="/rss.xml" type="application/rss+xml" rel="alternate" title="RSS feed for blog posts" /> +<style>*{box-sizing:border-box;}body{font-family:sans-serif;line-height:1.33;margin:0 +auto;max-width:650px;padding:1rem;}blockquote{background:#eee;border-left:4px + solid;color:black;padding-left:5px;}img{max-width:100%;}pre{border:1px solid;overflow:auto;padding:5px;}table{text-align:left;width:100%;}.posts,#menu{list-style:none;padding:0;}.posts li{margin-bottom:8px;}.posts li span{display:block;font-size:90%;}#menu li{display:inline-block;margin-right:8px;}.footnotes{font-size:90%;}</style> +</head> + +<nav> + <a href="/">Home</a><span> | </span><a href="#menu">Menu ↓</a> +</nav> + +<main> + +<h1 id="markdown-examples-in-wruby">Markdown Examples in wruby</h1> + +<p>2024-07-20</p> + +<h2 id="an-h2-header">An h2 header</h2> + +<p>Paragraphs are separated by a blank line.</p> + +<p>2nd paragraph. <em>Italic</em>, <strong>bold</strong>, and <code>monospace</code>. Itemized lists +look like:</p> + +<ul> + <li>this one</li> + <li>that one</li> + <li>the other one</li> +</ul> + +<p>Note that — not considering the asterisk — the actual text +content starts at 4-columns in.</p> + +<blockquote> + <p>Block quotes are +written like so.</p> + + <p>They can span multiple paragraphs, +if you like.</p> +</blockquote> + +<p>Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., “it’s all +in chapters 12–14”). Three dots … will be converted to an ellipsis. +Unicode is supported. ☺</p> + +<h3 id="an-h3-header">An h3 header</h3> + +<p>Here’s a numbered list:</p> + +<ol> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ol> + +<p>Note again how the actual text starts at 4 columns in (4 characters +from the left side). Here’s a code sample:</p> + +<pre><code># Let me re-iterate ... +for i in 1 .. 10 { do-something(i) } +</code></pre> + +<p>As you probably guessed, indented 4 spaces. By the way, instead of +indenting the block, you can use delimited blocks, if you like:</p> + +<pre><code>define foobar() { + print "Welcome to flavor country!"; +} +</code></pre> + +<p>(which makes copying & pasting easier). You can optionally mark the +delimited block for Pandoc to syntax highlight it:</p> + +<pre><code class="language-python">import time +# Quick, count to ten! +for i in range(10): + # (but not *too* quick) + time.sleep(0.5) + print i +</code></pre> + +<h4 id="an-h4-header">An h4 header</h4> + +<p>Now a nested list:</p> + +<ol> + <li> + <p>First, get these ingredients:</p> + + <ul> + <li>carrots</li> + <li>celery</li> + <li>lentils</li> + </ul> + </li> + <li> + <p>Boil some water.</p> + </li> + <li> + <p>Dump everything in the pot and follow +this algorithm:</p> + + <pre><code>find wooden spoon +uncover pot +stir +cover pot +balance wooden spoon precariously on pot handle +wait 10 minutes +goto first step (or shut off burner when done) +</code></pre> + + <p>Do not bump wooden spoon or it will fall.</p> + </li> +</ol> + +<p>Notice again how text always lines up on 4-space indents (including +that last line which continues item 3 above).</p> + +<p>Here’s a link to <a href="http://foo.bar">a website</a>, to a <a href="local-doc.html">local +doc</a>, and to a <a href="#an-h2-header">section heading in the current +doc</a>. Here’s a footnote <sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>.</p> + +<p>Tables can look like this:</p> + +<table> + <thead> + <tr> + <th>size</th> + <th>material</th> + <th>color</th> + </tr> + </thead> + <tbody> + <tr> + <td>9</td> + <td>leather</td> + <td>brown</td> + </tr> + <tr> + <td>10</td> + <td>hemp</td> + <td>natural</td> + </tr> + <tr> + <td>11</td> + <td>glass</td> + <td>transparent</td> + </tr> + </tbody> +</table> + +<p>Table: Shoes, their sizes, and what they’re made of.</p> + +<p>A horizontal rule follows.</p> + +<hr /> + +<p>Here’s a definition list:</p> + +<dl> + <dt>apples</dt> + <dd>Good for making applesauce. +oranges</dd> + <dd>Citrus! +tomatoes</dd> + <dd>There’s no “e” in tomatoe.</dd> +</dl> + +<p>Again, text is indented 4 spaces. (Put a blank line between each +term/definition pair to spread things out more.)</p> + +<p>Here’s a “line block”:</p> + +<table> + <tbody> + <tr> + <td>Line one</td> + </tr> + <tr> + <td>Line too</td> + </tr> + <tr> + <td>Line tree</td> + </tr> + </tbody> +</table> + +<p>and images can be specified like so:</p> + +<p><img src="https://placekitten.com/480/480" alt="example image" title="An exemplary image" /></p> + +<p>And note that you can backslash-escape any punctuation characters +which you wish to be displayed literally, ex.: `foo`, *bar*, etc.</p> +<div class="footnotes" role="doc-endnotes"> + <ol> + <li id="fn:1" role="doc-endnote"> + <p>Footnote text goes here. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p> + </li> + </ol> +</div> +</main> +<hr/> +<footer role="contentinfo"> + <h2>Menu Navigation</h2> + <ul id="menu"> + <li><a href="/">Home</a></li> + <li><a href="/about">About</a></li> + <li><a href="/index.atom">RSS</a></li> + <li><a href="#top">↑ Top of the page</a></li> + </ul> + <small> + Built with <a href="https://wruby.btxx.org">wruby</a>. <br> + Maintained with ♥ for the web. <br> + The content for this site is <a + href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>.<br> + The <a href="https://git.sr.ht/~bt/wruby">code for this project</a> + is <a href="https://git.sr.ht/~bt/wruby/tree/master/item/LICENSE">MIT</a>. + </small> +</footer> diff --git a/footer.html b/footer.html new file mode 100644 index 0000000..7575af9 --- /dev/null +++ b/footer.html @@ -0,0 +1,19 @@ +</main> +<hr/> +<footer role="contentinfo"> + <h2>Menu Navigation</h2> + <ul id="menu"> + <li><a href="/">Home</a></li> + <li><a href="/about">About</a></li> + <li><a href="/index.atom">RSS</a></li> + <li><a href="#top">↑ Top of the page</a></li> + </ul> + <small> + Built with <a href="https://wruby.btxx.org">wruby</a>. <br> + Maintained with ♥ for the web. <br> + The content for this site is <a + href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>.<br> + The <a href="https://git.sr.ht/~bt/wruby">code for this project</a> + is <a href="https://git.sr.ht/~bt/wruby/tree/master/item/LICENSE">MIT</a>. + </small> +</footer> diff --git a/header.html b/header.html new file mode 100644 index 0000000..edb98c7 --- /dev/null +++ b/header.html @@ -0,0 +1,21 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="color-scheme" content="dark light"> + <link rel="icon" href="data:,"> + <title>{{TITLE}}</title> + <link href="/atom.xml" type="application/atom+xml" rel="alternate" title="Atom feed for blog posts" /> + <link href="/rss.xml" type="application/rss+xml" rel="alternate" title="RSS feed for blog posts" /> +<style>*{box-sizing:border-box;}body{font-family:sans-serif;line-height:1.33;margin:0 +auto;max-width:650px;padding:1rem;}blockquote{background:#eee;border-left:4px + solid;color:black;padding-left:5px;}img{max-width:100%;}pre{border:1px solid;overflow:auto;padding:5px;}table{text-align:left;width:100%;}.posts,#menu{list-style:none;padding:0;}.posts li{margin-bottom:8px;}.posts li span{display:block;font-size:90%;}#menu li{display:inline-block;margin-right:8px;}.footnotes{font-size:90%;}</style> +</head> + +<nav> + <a href="/">Home</a><span> | </span><a href="#menu">Menu ↓</a> +</nav> + +<main> + diff --git a/index.md b/index.md new file mode 100644 index 0000000..acb5628 --- /dev/null +++ b/index.md @@ -0,0 +1,9 @@ +# wruby + +**wruby is a single file, minimal blog generator written in Ruby.** + +The "w" is silent... + +You can learn more by reading [the official README](https://git.sr.ht/~bt/wruby). + +## Articles diff --git a/pages/about.md b/pages/about.md new file mode 100644 index 0000000..18dafa6 --- /dev/null +++ b/pages/about.md @@ -0,0 +1,10 @@ +# About + +wruby is a minimal blog generator written in Ruby. + +## Why? + +This project was created by me, [Bradley Taunt](btxx.org), out of frustration with overly complex and bloated blogging options. I tried so many "minimal" generators but each one ended up having some glaring issue or heavy reliance on dependencies. Originally, I solved this problem by creating [barf](https://barf.btxx.org) - a blog generator pieced together with basic sheel scripting. While this project works well, I prefer to write with Ruby since it is such a beautiful language. + +So, wruby was born. There isn't much else to say. I hope you enjoy using it and +be sure to report any issues if you come arcoss any bugs! diff --git a/posts/markdown-examples.md b/posts/markdown-examples.md new file mode 100644 index 0000000..5df1b91 --- /dev/null +++ b/posts/markdown-examples.md @@ -0,0 +1,139 @@ +# Markdown Examples in wruby + +2024-07-20 + +## An h2 header + +Paragraphs are separated by a blank line. + +2nd paragraph. *Italic*, **bold**, and `monospace`. Itemized lists +look like: + + * this one + * that one + * the other one + +Note that --- not considering the asterisk --- the actual text +content starts at 4-columns in. + +> Block quotes are +> written like so. +> +> They can span multiple paragraphs, +> if you like. + +Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., "it's all +in chapters 12--14"). Three dots ... will be converted to an ellipsis. +Unicode is supported. ☺ + + + +### An h3 header + +Here's a numbered list: + + 1. first item + 2. second item + 3. third item + +Note again how the actual text starts at 4 columns in (4 characters +from the left side). Here's a code sample: + + # Let me re-iterate ... + for i in 1 .. 10 { do-something(i) } + +As you probably guessed, indented 4 spaces. By the way, instead of +indenting the block, you can use delimited blocks, if you like: + +~~~ +define foobar() { + print "Welcome to flavor country!"; +} +~~~ + +(which makes copying & pasting easier). You can optionally mark the +delimited block for Pandoc to syntax highlight it: + +~~~python +import time +# Quick, count to ten! +for i in range(10): + # (but not *too* quick) + time.sleep(0.5) + print i +~~~ + + + +#### An h4 header + +Now a nested list: + + 1. First, get these ingredients: + + * carrots + * celery + * lentils + + 2. Boil some water. + + 3. Dump everything in the pot and follow + this algorithm: + + find wooden spoon + uncover pot + stir + cover pot + balance wooden spoon precariously on pot handle + wait 10 minutes + goto first step (or shut off burner when done) + + Do not bump wooden spoon or it will fall. + +Notice again how text always lines up on 4-space indents (including +that last line which continues item 3 above). + +Here's a link to [a website](http://foo.bar), to a [local +doc](local-doc.html), and to a [section heading in the current +doc](#an-h2-header). Here's a footnote [^1]. + +[^1]: Footnote text goes here. + +Tables can look like this: + +|size|material|color| +|----|--------|-----| +|9 |leather |brown| +|10 |hemp |natural| +|11 |glass |transparent| + +Table: Shoes, their sizes, and what they're made of. + +A horizontal rule follows. + +*** + +Here's a definition list: + +apples + : Good for making applesauce. +oranges + : Citrus! +tomatoes + : There's no "e" in tomatoe. + +Again, text is indented 4 spaces. (Put a blank line between each +term/definition pair to spread things out more.) + +Here's a "line block": + +| Line one +| Line too +| Line tree + +and images can be specified like so: + +![example image](/public/images/cat.jpg "An exemplary image") + +And note that you can backslash-escape any punctuation characters +which you wish to be displayed literally, ex.: \`foo\`, \*bar\*, etc. diff --git a/public/images/cat.jpg b/public/images/cat.jpg Binary files differnew file mode 100644 index 0000000..29b054d --- /dev/null +++ b/public/images/cat.jpg |