From mboxrd@z Thu Jan 1 00:00:00 1970 From: Karl Voit Subject: Minimal overhead Org-mode blogging system Date: Sun, 4 Dec 2011 17:51:16 +0100 Message-ID: <2011-12-04T17-22-10@devnull.Karl-Voit.at> Reply-To: news1142@Karl-Voit.at Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([140.186.70.92]:47889) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXFHp-0006Cl-Fw for emacs-orgmode@gnu.org; Sun, 04 Dec 2011 11:51:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RXFHn-0007CH-GX for emacs-orgmode@gnu.org; Sun, 04 Dec 2011 11:51:33 -0500 Received: from lo.gmane.org ([80.91.229.12]:45306) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RXFHn-0007Bj-5N for emacs-orgmode@gnu.org; Sun, 04 Dec 2011 11:51:31 -0500 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1RXFHl-0003Uu-RM for emacs-orgmode@gnu.org; Sun, 04 Dec 2011 17:51:29 +0100 Received: from mail.michael-prokop.at ([88.198.6.110]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 04 Dec 2011 17:51:29 +0100 Received: from news1142 by mail.michael-prokop.at with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 04 Dec 2011 17:51:29 +0100 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Hi! I got a nice idea on how a very easy to use Org-mode blog system should look like. Currently, I am using Serendipidy with web-based editor to write HTML. Org-mode enabled me to write blog entries and export it to HTML. Then I paste the HTML and have to modify minor things (images, ...) a bit. I guess the time from finishing the Org-mode entry to the final blog entry is approximately ten to twenty minutes. Overall, I do not want to do this process when I just want to quickly write a view paragraphs within a couple of minutes. I need a workflow with much less annoying overhead. Therefore I sat down and thought about a workflow that should be enough for writing simple weblog entries: - create an Org-mode heading (anywhere!) - make sure that there is an (uniq) :ID: property - add the tag :blog: to heading - - change state of top-heading to DONE - this enables blog entries «in the queue» - (manually) invoke generation-script This enables me quick blogging with a list of advantages: - a blog entry can be located anywhere in all of my Orgmode files - no extra formatting steps - very small (almost non-existent) overhead to create a blog entry - no duplicate information - updates only in Orgmode, not HTML or any in-between format - static (fast) pages - self-hosting without any fancy services behind like RDBS What do you think of my ideas so far? Of course, I looked into existing solutions and found those: - http://orgmode.org/worg/org-blog-wiki.html - cool overview page for various solutions - http://orgmode.org/worg/blorgit.html - pretty complex set up :-( - I do not need a web-interface to edit Org-mode files - seem to have «different» use cases - http://orgmode.org/worg/org-tutorials/org-jekyll.html - uses HTML as in-between format; seems to provide many error possibilities(?) - converting whole files only (not desired) - have to try it someday - http://emacs-fu.blogspot.com/2009/05/writing-and-blogging-with-org-mode.html - uses only HTML export - http://blog.herraiz.org/archives/241 - uses only HTML export - https://github.com/chrismgray/ikiwiki-org-plugin - promising but only one part of a possible solution So nothing offers the features and small footprint as my idea above :-( With some prerequisites, it should not be that hard to even implement it by myself: - usage of only very basic markup - paragraphs (p) - headings (h1..n) - http-references (a href) - lists (ul) - images (img) - quote (verbatim) Still there are some open issues: - comments - simplest form: generate unique Email link and add at bottom - very easy to be done for catch-all MTAs - automatically derive whitelist for MTA to avoid old spam - simple HTML form - POST to script, adding comment to my inbox.org (containing link to ID) - disqus: I do not want to outsource comment hosting :-( - how to include and format graphics? - sometimes, I e.g. want to have an image aligned right with text flowing around it - probably: usage of in-between format like ikiwiki - Orgmode syntax -> ikiwiki markup (markdown?) -> usual ikiwiki-workflow - should be not much effort since prerequisites limit to few markup things - benefits from not having to re-implement many things - in-between-format HTML (like Manoj uses) is way too complicated causing misc potential error sources The basic script workflow is not that complicated: - find all headings with state DONE and tag :blog: - optionally: add all other tags starting with "blog-" as blog tags - one entry starts at such a heading until EOF OR same or less level heading is found - compare raw text and IDs with last run - known ID, raw text unchanged: ignore, no change - new ID - generate new blog entry - extract YYYY-MM-DD from LOGBOOK-drawer (first *->DONE transformation) - generate YYYY/MM/DD-folder structure in blog accordingly - generate sanitized blog title as file name - known ID, raw text differs - generate update of existing entry - add "(Update n)" (with n is the n-th update) to entry title - optionally: add this also to URL - disadvantage: broken old URLs - advantage: URL reflects update state - on any activity: - re-write RSS feed for last n entries - optionally: generate overview page for last n entries - optionally: generate calendar archive page(s) - optionally: generate tag overview page(s) -- Karl Voit