--------------------------------- 8< ---------------------------------

#+TITLE: Literate Programming for configuration settings
#+AUTHOR: Vladimir Lomov
#+OPTIONS: toc:nil

* Literate Programming

I'm trying to use the Literate Programming to describe my set up of
Openbox and my workflow with Linux.

The main problem is with Openbox. I set up convenient (for me)
keybindings, like "W-x f k" to launch Krusader file manager, and now I
want to describe all my keybindings.

I see this as follow: from one source I get Org table (keybind and
description) and xml code (to be included into ~rc.xml~ using noweb).

At first, I thought about table in org file with three columns:

| Keybind | Code | Description |

but I don't know how to exclude second column in html export and how
to generate xml code excluding the third column.

So I decided to use plain txt files with the same information.

My question is: how to get table in html export and xml file with

I wrote two shell scripts, first gives org table from txt file, the
second generates xml code from the same txt file, but can't figure out
how to use them with org.

(My next step would be to put both: plain txt file content and shell
script code into one org file, if my idea would work.)

** Example

Below is example of plain text file. I don't need ~example.txt~
except for shell script to generate org table and xml code, if it is
possible to get both without extracting text file it would be great.

#+name: example.txt
#+begin_src text :exports none :tangle example.txt
"Alt-F2"        '<action name="execute"><command>gmrun</command></action>'      
"Run gmrun, very useful tool"
"Alt-F4"        '<action name="Close"/>'        "Close application window"
"Alt-F9"        '<action name="Iconify"/>'      "Iconify to task bar"
"Alt-Tab"       '<action name="NextWindow"/>'   "Switch focus to next window"
"Alt-S-Tab"     '<action name="PreviousWindow"/>'       "Switch focus to 
previous window"
"Alt-space"     '<action><menu>client-menu</menu></action>'     "Show 
application window menu"

This shell script used standalone gives correct org table. I also
don't need it except it generates org table.

#+name: txt2org-table
#+begin_src sh :exports none

# Read a txt file and write to stdout it as Org table.


# Each line has three fields: keystroke, xml code and description. For table 
the 1 and 3 are needed.

echo "|  Keybind   |     Description      |"
echo "+------------+----------------------|"
while IFS='     ' read -r kb code descr
  [[ ${kb} = \#* ]] && continue
  echo "| ${kb//\"/~} | ${descr//\"} |"
done < "${_data}"
echo "+------------+----------------------|"

exit 0

** My real goal

Ideally I want to have a table (like <<example.txt>>) in org file, when
I export org file to html there must be table with "Keybind" and
"Description" and the same org file should generate ~rc.xml~ (I assume
it is possible to insert results of script run in place of <<NOWEB>>).

Thanks in advance, Vladimir Lomov

P.S. Sorry if I description were to obscure.

P.P.S. Side note: why then 'tangled' example.txt the first line is empty one?

<kceee^> I hate users
<knghtbrd> you sound like a sysadmin already!

Reply via email to