aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content/posts/2021-10-16-jekyll-to-hugo.md65
-rw-r--r--content/posts/2021-10-17-imported-old-repos.md87
2 files changed, 152 insertions, 0 deletions
diff --git a/content/posts/2021-10-16-jekyll-to-hugo.md b/content/posts/2021-10-16-jekyll-to-hugo.md
new file mode 100644
index 0000000..f3ff839
--- /dev/null
+++ b/content/posts/2021-10-16-jekyll-to-hugo.md
@@ -0,0 +1,65 @@
+---
+slug: jekyll-to-hugo
+title: "Jekyll to Hugo"
+date: "2021-10-16T07:51:29-04:00"
+draft: false
+---
+I took some time this weekend to do the following:
+
+1. Migrate this site from [Jekyll][] to [Hugo][].
+2. Create a new site theme.
+3. Update the [About][] page.
+4. Add a new [Articles][] section.
+
+The [Articles][] section will allow me to write longer articles without
+polluting the main blog.
+
+### Hugo Migration
+
+Pros:
+
+* Significantly faster. [Jekyll][] sometimes tool 30 seconds to
+ regenerate this site, and [Hugo][] does it in less than a second.
+* Single static binary. Much easier to install.
+* Built-in [SASS/SCSS][sass] support.
+* [HTML][], [CSS][], and [JavaScript][js] [minification][]. In
+ particular, HTML minification is content-aware so it doesn't strip
+ significant whitespace in `<pre>` or `<code>` blocks. View the
+ source of this page to see what I mean).
+* [Go template][html-template] support.
+* [Jekyll][] importer that works reasonably well (but see below).
+
+Cons:
+
+* The default [Markdown][] parser is limited and not based on
+ [GitHub][]-flavored [Markdown][].
+* Because of the previous item, many of the literal `<img>` elements in
+ my imported [Jekyll][] content had to be fixed by hand.
+* Occasionally baffling template search order.
+* Default RSS feed entry contents are truncated and stripped of HTML.
+
+### Theme Rewrite
+
+Changes in the new theme:
+
+* Clean rewrite based on [Bulma v0.9.3][bulma].
+* Icons from [Feather Icons][feathericons].
+* Consistent font sizes.
+* Improved layout. In particular, I removed the sidebar and improved
+ the page header.
+
+[jekyll]: https://jekyllrb.com/ "Jekyll static site generator"
+[hugo]: https://gohugo.io/ "Hugo static site generator"
+[bulma]: https://bulma.io/ "Bulma CSS framework"
+[sass]: https://sass-lang.com/ "Syntactically Awesome Style Sheets"
+[css]: https://en.wikipedia.org/wiki/CSS "Cascading Style Sheets"
+[html]: https://en.wikipedia.org/wiki/HTML "HyperText Markup Language"
+[js]: https://en.wikipedia.org/wiki/JavaScript "JavaScript programming language"
+[minification]: https://en.wikipedia.org/wiki/Minification_(programming) "Remove all unnecessary characters from source code to reduce it's size"
+[go]: https://golang.org/ "Go programming language."
+[html-template]: https://pkg.go.dev/html/template "Go html/template"
+[feathericons]: https://github.com/feathericons/feather "beautiful open source icons"
+[about]: /about "About page"
+[articles]: /articles "Articles section"
+[markdown]: https://en.wikipedia.org/wiki/Markdown "Markdown markup language"
+[github]: https://github.com/ "GitHub"
diff --git a/content/posts/2021-10-17-imported-old-repos.md b/content/posts/2021-10-17-imported-old-repos.md
new file mode 100644
index 0000000..9b4918f
--- /dev/null
+++ b/content/posts/2021-10-17-imported-old-repos.md
@@ -0,0 +1,87 @@
+---
+slug: imported-old-repos
+title: "Imported Old Repos"
+date: "2021-10-17T07:36:37-04:00"
+draft: false
+---
+Several months ago I used [fast-export][] to convert most of my old
+repositories from [Mercurial][hg] to [Git][]. This morning I finally
+imported the converted repositories to [GitHub][] and archived them.
+
+The old repositories are as follows:
+
+* [broker-cappy](https://github.com/pablotron/broker-cappy)
+* [cuckoo2](https://github.com/pablotron/cuckoo2)
+* [devil-ruby](https://github.com/pablotron/devil-ruby)
+* [easing-js](https://github.com/pablotron/easing-js)
+* [easy-cookie](https://github.com/pablotron/easy-cookie)
+* [fam-ruby](https://github.com/pablotron/fam-ruby)
+* [forced-timeout](https://github.com/pablotron/forced-timeout)
+* [freshmeat-ruby](https://github.com/pablotron/freshmeat-ruby)
+* [honeypot-php](https://github.com/pablotron/honeypot-php)
+* [honeypot-ruby](https://github.com/pablotron/honeypot-ruby)
+* [id3-ruby](https://github.com/pablotron/id3-ruby)
+* [imlib2-ruby](https://github.com/pablotron/imlib2-ruby)
+* [joggle](https://github.com/pablotron/joggle)
+* [joystick-ruby](https://github.com/pablotron/joystick-ruby)
+* [libjiffy](https://github.com/pablotron/libjiffy)
+* [localfark](https://github.com/pablotron/localfark)
+* [maildrop-log-colorize](https://github.com/pablotron/maildrop-log-colorize)
+* [mb-ruby](https://github.com/pablotron/mb-ruby)
+* [persist-js](https://github.com/pablotron/persist-js)
+* [ptpgp](https://github.com/pablotron/ptpgp)
+* [raggle](https://github.com/pablotron/raggle)
+* [reddit-content-filter](https://github.com/pablotron/reddit-content-filter)
+* [rubilicious](https://github.com/pablotron/rubilicious)
+* [searchkeys-chrome](https://github.com/pablotron/searchkeys-chrome)
+* [sn9c102-webcam](https://github.com/pablotron/sn9c102-webcam)
+* [speedtest-kml](https://github.com/pablotron/speedtest-kml)
+* [syndic8-ruby](https://github.com/pablotron/syndic8-ruby)
+* [tarstream-php](https://github.com/pablotron/tarstream-php)
+* [techmeme-author-filter](https://github.com/pablotron/techmeme-author-filter)
+* [technorati-ruby](https://github.com/pablotron/technorati-ruby)
+* [tilefu](https://github.com/pablotron/tilefu)
+* [tunepimp-ruby](https://github.com/pablotron/tunepimp-ruby)
+* [wirble](https://github.com/pablotron/wirble)
+* [xmms-ruby](https://github.com/pablotron/xmms-ruby)
+
+Here is the repo import script:
+
+```bash
+#!/bin/bash
+
+set -eu
+
+# space-delimited list of repos
+repos='... omitted for brevity ...'
+
+# get base repo dir
+base=$(pwd)
+
+# loop through repos
+for repo in $repos; do
+ # print repo name, switch to repo
+ echo repo: $repo
+ cd "$base/$repo"
+
+ # create repo
+ gh repo create $repo
+
+ # fix origin
+ # (gh sets the origin to "https://github.com/pablotron/...)
+ git remote rm origin
+ git remote add origin git@github.com:pablotron/$repo.git
+
+ # push upstream
+ git push -u origin master
+
+ # archive repo
+ gh repo archive $repo
+done
+```
+
+[hg]: https://www.mercurial-scm.org/ "Mercurial VCS"
+[git]: https://www.git-scm.com/ "Git VCS"
+[github]: https://github.com/ "GitHub"
+[gh]: https://cli.github.com/ "GitHub CLI"
+[fast-export]: http://repo.or.cz/w/fast-export.git "mercurial to git converter"