-
Notifications
You must be signed in to change notification settings - Fork 34
Project Origin
Copied from: http://article.gmane.org/gmane.emacs.orgmode/49747/
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
- <write content, subheadings, …>
- 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 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)
NOTE: if entries are marked as done in this section, they are not implemented but moved to a (separate) user-story above.
- [X] Workflow to create a blog entry
- make sure that there is an (uniq) :ID: property
- add tag :blog: to heading
- write content, subheadings, …
- change state of top-heading to DONE
- (manually) invoke generation-script
- usage of only very basic markup
- [X] paragraphs (p)
- [X] headings (h1..n)
- [X] http-references (a href)
- [X] lists (ul)
- [X] quote (verbatim)
- [ ] images (img)
- [X] tables
- [X] inline-HTML
- [X] internal links to other entries
- advantages
- a blog entry can be located anywhere in all of my Orgmode files
- no extra formatting steps
- very small overhead to create a blog entry
- no duplicate information
- update only in Orgmode, not HTML or any in-between format
- static (fast) pages
- self-hosting without any fancy services behind like RDBS
- open issues
- [X] 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 :-(
- simplest form: generate unique Email link and add at bottom
- [ ] 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
- Orgmode syntax -> ikiwiki markup (markdown?) -> usual
ikiwiki-workflow
- [X] comments
- [ ] basic script workflow
- 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
- generate new blog entry
- 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
- optionally: add this also to URL
- add “(Update n)” (with n is the n-th update) to entry title
- generate update of existing entry
- on any activity:
- re-write 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)
- on any error:
- create an orgmode event from current time that appears on agenda
- with daily repeat -> so it gets noticed on the next day(s) too
- in the description of that entry:
- babel-sh-snippet with prepared command to re-try the run :-)
- find all headings with state DONE and tag :blog:
«lazyblorg» - a mixture of lazy, blogging, blog, org-mode - emphasizes the fact that the user of it may be very lazy. This relates to the minimal effort she/he has to do in order to create a new blog entry.
There are no hits in Google search for “lazyblorg”. However, there are some for “lazyblog” (without the ‘r’).
- Other cool names would be:
- invisiblorg
- invisible, blog, org-mode
- emphasizes the invisibility of the blog mechanism once it is set up
- no hits for ”invisiblorg” but some for “invisiblog” or “invisibl.org”
- invisiblorg
Using lazyblorg:
- Page Types (must-read)
- Orgmode Elements (must-read)
- FAQs
- Roadmap
- Project Origin
- Similar Projects
Coding: