An open API service indexing awesome lists of open source software.

https://github.com/eigenhombre/weeds

Work in progress porting my blog software to Common Lisp
https://github.com/eigenhombre/weeds

blogs common-lisp

Last synced: 4 months ago
JSON representation

Work in progress porting my blog software to Common Lisp

Awesome Lists containing this project

README

          

#+TITLE: weeds
#+DATE: <2019-08-07 Wed>
#+OPTIONS: toc:nil num:nil

# #+ATTR_HTML: :align left
[[./weeds.png]]

I'm rewriting my blog software for the fifth or sixth time, this time
in Common Lisp ... /am I in the weeds yet?/

OK, so [[https://github.com/eigenhombre/organa][my existing blog software]] is working well enough.

But, it's kind of slow to run, with >100 blog posts. I could probably
optimize it... but... lately I'm getting interested in Common Lisp, so
what you'll find here is an in-progress rewrite of [[https://github.com/eigenhombre/organa][Organa]] in Common Lisp

Why? For one thing, Common Lisp is /fast/. It's a great horrid
gorgeous ancient fire-breathing beast of a language, but damn, it
smokes compared to Clojure, Python, .... Plus, [[https://github.com/norvig/paip-lisp][this]]. And [[http://www.paulgraham.com/onlisp.html][this]], and
[[https://www.youtube.com/watch?v=HM1Zb3xmvMc][this]].

* Objectives
** Current
I want to keep some [[https://github.com/eigenhombre/organa#faq][principles]] from Organa:
- statically generated site; no database
- posts written in Emacs Org Mode and exported using that tool to
HTML, then knitted and massaged by the blog software into a
coherent, inter-linked whole;
- categories / tags
- support for drafts, static files, etc.
- facilities for images, with captions, etc.
** New
- better support for short posts and images (use cases from Twitter,
Tumblr, and Instagram, none of which I really want to use anymore)
- redesigned home page
- way faster execution

* Building

Do you really want to get lost in the weeds? I didn't think so.
Currently this software won't work anywhere but on my personal laptop,
though I may generalize it if I'm happy enough with it.

If decide to wade in, you might want to set up Common Lisp first (if
you're on a Mac, [[https://github.com/eigenhombre/mac-sbcl-quicklisp-install][this repo]] might be helpful).

To build the binary for the program, I run =./build.sh= and to run it,
I run =./weeds=. This currently takes less than a second, as
compared to nearly 30 seconds for Organa (not counting roughly the
same amount of time to build the überjar).

* Stuff to do next
- Add / adapt CSS styling from Organa
- Fix / adapt images
- Make postcard summaries for front page view
- Image-only (or mostly image) posts
- Make a new home page
- +Extract and show post tags+
- +Make an index page with every post on it+
- +Determine and save post dates+
- +Determine and save post titles+
- +Figure out how to break up large file+
- +Figure out how to auto-evaluate multiple dependencies at the REPL+
See [[https://stackoverflow.com/questions/57461266/auto-load-dependent-files-in-repl][this question]]. Solution is a little hack-y but OK for now.