Was just reading org publishing tutorial and decided to see how far I get.

O-blog

I also checked out o-blog, but there are a lot of things I do not like. To name a few:

  • Elisp usage in templates (the <lisp></lisp> tag).
  • Templates are split into multiple files, with no proper nesting.
  • Too much backend-specific stuff needs to be put into .org files.
  • There's a JavaScript file to "fix" the HTML.

The big question

I want the whole blog publishing from Org mode not involve putting literal HTML in the articles. The only way to do it at this point is to export bodies only, and then assemble the articles into a final HTML files afterwards (maybe even externally). There's some sitemap support, so maybe I can hook into it to ease the postprocessing.

Also, looks like instead of rewriting HTML generating parts of org-mode I'll just post-process the generated content. The additional bonus is that I'll get to improve my mechanizie library.

Progress

<2013-04-24 Wed>

Found modernist theme, looks nice.

Was googling for "simple blog design". Modernist theme cought my eye because the code sample used background color very similar to zenburn. Hence using this theme would let me not look for solutions on how to customise org-mode's code export.

Also found http://artequalswork.com/, which looks kind of like something I'm after. http://www.noupe.com/design/kiss-a-showcase-of-beautifully-simple-blog-design-71654.html is the article linking to it.

So looks like I will not be using Bootstrap. Not yet, at least.

<2013-04-27 Sat>

Using cl-html-template for static HTML parts (because there's something I do not like about every lisp HTML generator; probably it would be a good moment to revisit them to see if I have something constructive to blorg).

<2013-05-07 Tue 19:31>

Using Bootstrap, after all.

Tried going with plain Compass (Vertical Rhythm module in particular), but to use that had to use full style reset. And after that I'd have to hunt around for sane sizes and stuff indefinitely. Bootstrap has this thing sorted out for me, at least. Never mind that the content will look like vanilla bootstrap.

Now to ensure that code fragments have enough room to display all 80 columns without wrapping/scrollbars…

<2013-05-09 Thu 20:51>

S-XML not usable, after all

Was fun trying it out, but it is not a proper XML parser in the sense that it does not preserve whitespace properly, and that destroys source code (or other pre-formatted content mixed with HTML tags, in this case spans used for code fontifying).

If I ever decide to submit a bug report/fix, the problem is two span elements folowing each other, but separated by space: the space is lost.

<2013-05-09 Thu 21:45>

Damn you people!

Turns out S-XML was intentionally dropping the whitespace between elements… Why do poeple do this to me?

OK, now that this is sorted out, not switching away from S-XML. Yet.

<2013-09-14 Sat 17:40>

Tried to see how far I'd get with CXML, because it is usable with XPath (and I don't have to roll my own XML navigation as with S-XML). Turned out it's not very far at all. The main problem is that there's no way to alter the DOM tree after the parsing (at least I did not find one).

<2013-09-28 Sat 18:48>

The closure template is getting unwieldy. Leaning towards dropping it for my own needs. Will probably leave support if anybody else will ever want to use this thing.

<2013-10-01 Tue 18:52>

Bah. Added Google Analytics code to the template. cl-closure-template no longer can parse it. Sadface.

Tasks

DONE Generate blog index page

A list of latest articles with intros/teasers.

TODO Copy other files (images, etc) along with articles

Should tell org-mode to move them, first.

TODO And also silly ads and stuff?

DONE Copyrights and stuff

TODO Limit the number of articles in index

And add navigation between the pages.

DONE Let's not forget GA integration

DONE Parse sitemap

Sitemap contains the articles we should process and also their titles.

TODO Make blorg runnable from commandline/emacs

TODO Keywords/tags

Generate an index page for each tag (except the special tags).

DONE Fix code coloring

I'm fairly sure it's htmlize that does it, and it should use styles instead of hard-coded color values.

TODO Links to HyperSpec for CL symbols

DONE Make the article title not be included as a heading

This should be an option. And maybe I've just missed it.

DONE Fix HTML (XML) generation from S-XML

s-xml:print-xml introduces bad whitespace (linebreaks), which, in turn, introduce unwanted spaces in rendered output. Just look at the reference to Vertical rhythm above.

Actually this can be worked around with specifying :pretty nil. But the problem is still there if the option is true.

DONE Task status

Use the red label for todo, green label for done.

For this need to add classes label and label-important (label-danger in Bootstrap 3.0) / label-success.

TODO Better / more noticeable display of timestamps

TODO Better display of blog article date

Especially the spacing in cases when the article does not start with a section.

DONE Each article must have sensible date

TODO Print media style, with no rainbows

TODO Don't let width of source listings get narrower than 80 columns

But how?

DONE Need a way to disable publishing an article

Probably can be done with a special tag (e.g., draft).

DONE A way to hide an article from [blog] sitemap

A special keyword, like no-sitemap.

DONE Bring back the Brian's Brain articles

[2/5] Fix Brian's Brain articles

TODO Make all links to files to be local (not to www.ltn.lv)

DONE Fix links to articles to be relative

TODO Install clojure mode for fontification?

DONE Remove line numbering in sources/examples

TODO Blockquote font is totally not good

TODO favicon

DONE Navbar at the top, to switch to blog/other stuff

TODO Tree-like sitemap, organized by year/month

TODO Run blorg in org-mode post-publish hook

TODO Enable gzip compression on server

TODO Add expiration headers

TODO Proper XML frobbing

  • Should settle on the representation of a node set (lists, duh!).
  • More compact representation of selectors (CSS-like, in strings) together with compiler-macros to precompile them.

TODO XML parser library independence

TODO Remove the "Footnotes:" section, replace with HR or something

Also, the footnotes themselves do not look very nice, with the number in its own line.

DONE Fix recursive article processing

Wrong paths are still generated for articles in nested directories.

TODO Custom bootstrap

  • Don't include unused stuff.
  • Proper font families (for content and monospace).

http://getbootstrap.com/customize/

TODO Generate RSS/Atom feeds

TODO TOC instead of sitemap for non-blog articles

TODO Improve relations with Google

TODO Delete irrelevant files

If something is renamed or is no longer published it should not go to the site folder. Does org-mode actually do this? Seems like it does not…