From b5ab99baf2f2f1e2418640070fda397003ff3dd5 Mon Sep 17 00:00:00 2001 From: Bradley Taunt Date: Sun, 21 Jul 2024 12:18:17 -0400 Subject: Update README, add directories, image, LICENSE, and build config --- .build.yml | 21 +++ LICENSE | 22 +++ Makefile | 2 +- README.md | 8 +- build/about/index.html | 50 +++++++ build/index.atom | 206 ++++++++++++++++++++++++++++ build/index.html | 52 +++++++ build/posts/markdown-examples/index.html | 227 +++++++++++++++++++++++++++++++ footer.html | 19 +++ header.html | 21 +++ index.md | 9 ++ pages/about.md | 10 ++ posts/markdown-examples.md | 139 +++++++++++++++++++ public/images/cat.jpg | Bin 0 -> 19054 bytes 14 files changed, 784 insertions(+), 2 deletions(-) create mode 100644 .build.yml create mode 100644 LICENSE create mode 100644 build/about/index.html create mode 100644 build/index.atom create mode 100644 build/index.html create mode 100644 build/posts/markdown-examples/index.html create mode 100644 footer.html create mode 100644 header.html create mode 100644 index.md create mode 100644 pages/about.md create mode 100644 posts/markdown-examples.md create mode 100644 public/images/cat.jpg 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 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..17c9842 --- /dev/null +++ b/LICENSE @@ -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. + diff --git a/Makefile b/Makefile index b4d62f6..9d7e5a1 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ build: rm -rf build && mkdir build - ruby blog.rb + ruby wruby.rb clean: rm -rf build/* diff --git a/README.md b/README.md index 9c6e1ff..43bda2f 100644 --- a/README.md +++ b/README.md @@ -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 @@ + + + + + + + + About + + + + + + + +
+ +

About

+ +

wruby is a minimal blog generator written in Ruby.

+ +

Why?

+ +

This project was created by me, Bradley Taunt, 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 - 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/build/index.atom b/build/index.atom new file mode 100644 index 0000000..177677e --- /dev/null +++ b/build/index.atom @@ -0,0 +1,206 @@ + + + + Bradley Taunt + + wruby + wruby RSS Feed + 2024-07-21T11:59:55-04:00 + + <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> + + https://wruby.btxx.org/markdown-examples/ + + Markdown Examples in wruby + 2024-07-20T00:00:00-04:00 + 2024-07-20T00:00:00-04:00 + + 2024-07-21T11:59:55-04:00 + \ 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 @@ + + + + + + + + wruby + + + + + + + +
+ +

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.

+ +

Articles

+ +
+
+ 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 @@ + + + + + + + + Markdown Examples in wruby + + + + + + + +
+ +

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:

+ + + +

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. +
  3. second item
  4. +
  5. third item
  6. +
+ +

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:

+ +
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. +
  3. +

    Boil some water.

    +
  4. +
  5. +

    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.

    +
  6. +
+ +

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, to a local +doc, and to a section heading in the current +doc. Here’s a footnote 1.

+ +

Tables can look like this:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
sizematerialcolor
9leatherbrown
10hempnatural
11glasstransparent
+ +

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

+ +

And note that you can backslash-escape any punctuation characters +which you wish to be displayed literally, ex.: `foo`, *bar*, etc.

+
+
    +
  1. +

    Footnote text goes here. 

    +
  2. +
+
+
+
+ diff --git a/footer.html b/footer.html new file mode 100644 index 0000000..7575af9 --- /dev/null +++ b/footer.html @@ -0,0 +1,19 @@ + +
+ diff --git a/header.html b/header.html new file mode 100644 index 0000000..edb98c7 --- /dev/null +++ b/header.html @@ -0,0 +1,21 @@ + + + + + + + + {{TITLE}} + + + + + + + +
+ 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 new file mode 100644 index 0000000..29b054d Binary files /dev/null and b/public/images/cat.jpg differ -- cgit v1.2.3-54-g00ecf