FAQs - novoid/lazyblorg GitHub Wiki

Why lazyblorg and not <another project>?

Please do read the sections “Why lazyblorg” and “Advantages” above.

Does lazyblorg cost anything?

No.

Although, please do respect the license which is attached to this project.

As with every open source project, you will find that there are some costs: your time. However, you will gain additional knowledge from coping with it. :-)

Am I able to use lazyblorg for myself?

Yes.

Get it from github and read the installation notes in this file.

Are there real people out there who are using lazyblorg?

Yes.

I try to maintain a list of sites generated by lazyblorg on my personal lazyblorg tag page. And don’t take my word for it: You will also find some third party quotes on lazyblorg I could dig out.

What Org-mode elements are supported by lazyblorg?

The Python parser implements a sub-set of Org-mode syntax. See Orgmode Elements for a list of supported elements. As a fall-back for all other Org-mode elements, pandoc is used which works quite well.

Please do leave an empty line between two different syntax elements such as paragraphs, lists, blocks, and so forth.

An Org-mode test-file (for unit testing) containing all implemented Org-mode syntax elements can be found here.

This test-file produces an example HTML entry that can be found here.

Where can I find support for lazyblorg?

In short: please do help yourself. :-)

Long: I developed lazyblorg for my own purposes and therefore it is optimized for my own requirements only. If you find lazyblorg cool and you want to use it on your own, I am totally OK with that. However, I can not offer much time in supporting other requirements than my own. If you did not catch this by yourself: I am lazy.

Is lazyblorg in active development? What are the future plans?

This section was updated on 2016-11-18:

Currently: yes (heavy) :-)

My general plan:

  • Add features to lazyblorg as long as I feel the urge to.
  • Be open to enhancements done by others on github.
  • If lazyblorg reaches a state, where I do not need anything additional, let’s keep it that way: development stopped because it reached sufficient perfection :-)

See also Roadmap with all kind of information about the development (plans, documentation, …).

Already accomplished:

  • develop lazyblorg to be able to replace my current web page and its blog.
  • ATOM/RSS
  • tag-pages
  • Auto-tags
  • lists
  • Pandoc fall-back for unknown Org-mode elements
  • include image files

Next:

  • overview pages (monthly, yearly)
  • more auto-tags
  • internal refactoring (object containing all constants, …)

Is there any documentation about the internals of lazyblorg?

Yes, please do read the Wiki.

Lazyblorg uses what technology?

  • input files: Org-mode files of version 8.x or higher
  • processing: Python 3.x
    • some dependencies on libraries, nothing fancy
    • I started with Python 2.x and ported lazyblorg to Python 3 in 2018-09 via https://github.com/novoid/lazyblorg/issues/22
  • output files: static HTML5, CSS3

Why didn’t you use HTML export/org-publish/Elisp/…?

Please do read my statement on GitHub.

Isn’t the generating process quite slow?

As of 2018-07-25, the parser and htmlizer is performing pretty well in my opinion on intel i5-4250U (intel NUC Haswell), 16 GB RAM, hard-disk (no SSD). When I re-generate my whole blog, I currently get this summary output:

Parsed 25 Org-mode files with 641744 lines (in 6.91 seconds)
Generated 590 articles: 17 persistent, 475 temporal, 97 tag-pages, the entry page, and also scaled 3 images (in 43.41 seconds)

Update 2021-11-14: I switched to AMD Ryzen 7 4800U with 32GB of RAM and the same hard-disk (no SSD). Of course, I added more Org content, got rid of some rarely used tags, and index much more files.

The output for the end-to-end tests is now:

Parsed 9 Org-mode files with 2757 lines (in 0.42 seconds)
Built index for 556694 files (in 21.53 seconds)
Generated 37 articles: 3 persistent, 28 temporal, 5 tag-pages, the entry page, and scaled 0 images (in 27.14 seconds)

And for my current blog it is:

Parsed 23 Org-mode files with 714065 lines (in 1.96 seconds)
Built index for 555302 files (in 3.36 seconds)
Generated 730 articles: 34 persistent, 620 temporal, 75 tag-pages, the entry page, and scaled 0 images (in 71.27 seconds)

An example run with scaling 11 images:

Parsed 23 Org-mode files with 735384 lines (in 2.62 seconds)
Built index for 568965 files (in 3.76 seconds)                                                                                      
Generated 752 articles: 35 persistent, 641 temporal, 75 tag-pages, the entry page, and scaled 11 images (in 83.74 seconds)

Can I use the Org-mode parser (in Python) for other purposes as well?

Yes, please do read the Wiki and lib/orgparser.py. Although, you have to modify it a bit since I filter out headings that meet the criteria of being a blog article.

You also have to know that I did not write a clean parser (separate lexical and syntactic analysis) for Org mode. I used the naïve line-by-line method in order to get the sub-set Org mode syntax done quickly. There certainly is a downside of this method in terms of capability (blank line between different Org mode elements) and probably also maintainability (the main parsing function with its many helper functions is hard to grasp).

Please also note that this parser only implements a sub-set of Org-mode syntax (see Orgmode Elements). For the rest, I am using Pandoc which works quite well.

However, so far, accepting its syntax limitation, my parser works quite well for lazyblorg so that there is not that much pain point to change anything about it.

If you are looking for other and more general Org mode syntax parsers, please do read this page and discussions like this reddit thread.

This issue contains a discussion on generalizing the Org mode parser of lazyblorg and move it to an external package. TL;DR: this conversation which resulted in a huge (but good) plan ended up being too much effort for me/lazyblorg.

I do have a question but it is not listed here. Where to ask?

Just drop me a line: lazyblorg <at-sign> Karl <minus-sign> Voit <dot> at

⚠️ **GitHub.com Fallback** ⚠️