A Book Produced Using Org

Via:

I am happy to share with fellow Orgers my recent book — Ending Malnutrition: from commitment to action — published by the Food and Agriculture Organisation of the United Nations, Rome and Tulika Books, New Delhi (http://www.fao.org/3/a-i4921e.pdf), The book was written and produced entirely in Org.

This would not have been possible without the terrific support provided by this community. Over the last few months, I have come to this mailing list with several queries about how to do something or the other, and people have very patiently provided solutions and suggestions.

I would like to thank everyone for their patience and their support.

Vikas


From acknowledgements of the book:

In addition, for all the statistical work and writing, the authors relied on R (www.r-project.org), org (www.orgmode.org), and LaTeX. All three are open source projects, freely made available by very vibrant communities of developers. During the course of the work, we often drew on support from these communities.

ADDEUNDUM: <2015-09-21 Mon>

The author just released the source code for the book!

Literate DevOps: My OS X Development System

Setting up a development system is a non-trivial investment.

This document captures the steps required and automates as much as possible. The project has other formats, too.

The Style Guide is a must read for the operator.

Org-Mode converted this manual, tedious, and error prone task to a semi-automated, nearly reproducible, and error-less process, for me. This document has never been beta tested; I am it’s only user.

org-scraps Notes 30D36486-3578-4C0D-B16F-CE89A283358A

  • catch the file name during export
    • Code block specific header arguments are evaluated before execution of the source block. The arguments seem to be symbols, strings, or Emacs-Lisp SEXPs.
    • Here is an example of an inline source block that gets the name of this file and returns it: "/Users/gcr/tmp/scratch.org"
    • Using Emacs-Lisp in header arguments introduces great flexibility.
  • export of inline code blocks which are silent
    • Configure a document so that results are included in the document if it is being exported. This is a dynamic decision. It probably relies on org-export-current-backend now. Another example of Elisp configuring a header arg.
  • mentions of file names in file contents
    • Literate example using table defintions, sh, find, and dot.
    • An example that demonstrates a lot with a little.
  • inline code block
    • Develop a philosophy of what to evaluate and when.
    • They are as easy as 6 .
  • recutils
    • Great example of using output to a file and a file as input via header args.
    • Demonstrate usage of Recutils.
  • SQL — example reading org-mode table into sql
    • Show how Org-Mode Table data is converted to SQL data.
    • This is the essence of how data is brokered in the “BabelVM”.

org-scraps Notes 6CBD47FB-80AD-41DC-9E0C-482FE1C230E6

  • About
    • org-scraps is a collection of Org-Mode demonstrations published by Eric Schulte. All of my experience with Org-Mode Literate Programming is working on my Emacs configuration for Literate Programming. Wanting to address my limited experience I am working through each example in org-scraps. Org-Scraps is weaved to HTML files published here.
  • Approach
    • Evaluate each example.
    • Verify identical result.
    • Update notes on approach.
    • After every reconfiguration re-evaluate DONE examples to verify identical result.
    • Scraps are under-documented. Important ideas are explored often without explicit mention. Sometimes it is obvious; other times not.
  • simple short R block
    • “value table org replace” is probably the best :results configuration for source blocks. Replace table with scalar for in-line source blocks.
  • two blocks and a table
    • Programmatically create tables with org-sbe and #+TBLFM.
  • a table with tags
    • Special blocks like TBLNAME are taggable, for example with :noexport:.
  • shell script output not in table
    • Evaluating a sh SB generates a table with the captured output from echo, with 1 row for each call.
    • Scalar output demands replaceable formatting.
  • space around exported code blocks
    • org-babel-remove-result works no matter where the RESULT block is located. It doesn’t have to immediately follow the Source-Block.
  • scheme sessions
    • ob-scheme allows two sessions with the same name when they were started with different interpreters.

Org2Blog DITAA Test

+--------+   +-------+    +-------+
|        | --+ ditaa +--> |       |
|  Text  |   +-------+    |diagram|
|Document|   |!magic!|    |       |
|     {d}|   |       |    |       |
+---+----+   +-------+    +-------+
    :                         ^
    |       Lots of work      |
    +-------------------------+

0AE23A91-0184-4D16-93F8-8A7D73A6B3E2.png

The test succeeded by turning off thumbnail images.

Migrating to Org2Blog

WordPress is a powerful and satisfying writing and publishing platform. After learning Org-Mode, I wanted to use Org-Mode for writing and WordPress for publishing. Org2Blog makes that easy.

WordPress easily exports your posts to XML. Org2Blog-Importers converts them to Org-Mode via Pandoc. Tonight I converted them here. Any future modifications belong in these documents with publishing to WordPress.

I tested both publishing new posts and modifying and re-publishing old posts and both worked correctly.