OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Indexing markup... emacs


Reading a very good emacs blog
I found the guy has a book, $5 US
http://ergoemacs.org/emacs/buy_xah_emacs_tutorial.html

The blog is good, I'm finding the tutorial really handy

Quick lesson in macros. Docbook indexing.

Highlight the term, M-x pi
with or without s (for secondary term)

Enjoy.


(defun pi (class start end)
  "Markup for docbook index, optional secondary term"
  (interactive "sEnter s for secondary : \nr")
  (let* (
	 (idxterm  (buffer-substring start end))  ; the indexed term
	 (termlen (length idxterm))              ; len of above
	 (pms (concat "<indexterm><primary>" idxterm "</primary>"))
	 (sms "<secondary>")
	 (sme "</secondary>")
	 (pme "</indexterm>")
	 (pml (length pms)) ;; primary length
	 (sml (length sms))  ;; secondary length
	 ) ;; end of local vars
  (goto-char (- end termlen ))(insert pme )
    (goto-char start)(insert pms)
    (when (equal "s" class) ;; if secondary wanted
	   (insert (concat sms sme )))
    (setq newpoint
	  (if (equal "s" class)
	      (+ (length pms) (length sms)) ;; insert point for secondary
	    (+ (length pms) (length pme))
	    ))
    (goto-char (+ (region-beginning) newpoint))
))

regards

--
Dave Pawson
XSLT XSL-FO FAQ.
http://www.dpawson.co.uk


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]