emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Vladimir Lomov <lomov.vl@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Lieterate Programming for configuration settings
Date: Mon, 5 Mar 2012 17:09:14 +0900	[thread overview]
Message-ID: <20120305080914.GC862@smoon> (raw)

Hello,

--------------------------------- 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
code?

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"
#+end_src

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
#!/bin/bash

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

_data="$1"

###
# 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
do
  [[ ${kb} = \#* ]] && continue
  echo "| ${kb//\"/~} | ${descr//\"} |"
done < "${_data}"
echo "+------------+----------------------|"

exit 0
#+end_src

** 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	other threads:[~2012-03-05  8:09 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-05  8:09 Vladimir Lomov [this message]
2012-03-05 14:58 ` Lieterate Programming for configuration settings Eric Schulte
2012-03-06 23:57   ` Vladimir Lomov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120305080914.GC862@smoon \
    --to=lomov.vl@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).