Homepage: http://www.neilvandyke.org/kbdraw
Author: Neil W. Van Dyke
Updated:
Generates html to render a keyboard layout
`kbdraw.el' takes a specification of a keyboard layout as an Emacs Lisp s-expression and generates HTML code to render the layout in a Web browser. This is something I hacked up in a few hours to help me in designing keyboard layouts and showing the layouts to other people via the Web. You can either include the HTML in your Web pages, or take a screenshot of the HTML as viewed in your own Web browser and publish it in PNG/JPEG/GIF form. For a demo, do M-x kbdraw-sample RET. The sample keyboard defined in `kbdraw-sample-1' will be displayed in your Web browser via `browse-url'. This package requires a little bit of Emacs Lisp knowledge on the part of the user. The following rough grammar spec might help. See `kbdraw-sample-1' for an example. BOARD ::= { BOARD-ELEMENT }+ BOARD-ELEMENT ::= KEY-WIDTH-DEFAULT | ROW | VSPACE KEY-WIDTH-DEFAULT ::= (key-width-default WIDTH) ROW ::= (row { ROW-ELEMENT }+ ) VSPACE ::= (vspace) ROW-ELEMENT ::= KEY | HSPACE KEY ::= KEYNAME | (KEYNAME &optional SHIFTED-KEYNAME WIDTH) KEYNAME ::= STRING SHIFTED-KEYNAME ::= KEYNAME | nil WIDTH ::= INTEGER HSPACE ::= (hspace &optional WIDTH) One way you *may* wish to use this package is to have a file such as `my-keyboard.el' that defines the keyboard that will be rendered to `my-keyboard.html'. Then you can eval the buffer or Lisp form to update the HTML file. (require 'kbdraw) (let ((kbdraw-board-color "black") (kbdraw-key-color "white") (kbdraw-label-color "#f00000")) (kbdraw-preview "my-keyboard.html" '((key-width-default 4) (row "7" "8" "9") (row "4" "5" "6") (row "1" "2" "3") (row ("0" nil 8) "Enter")))) Or just bang around, er, *rapid prototype* in the `*scratch*' buffer: (kbdraw-preview "foo.html" '((row "A" "B" "See"))) Please note that this was a quick&dirty package, and I'm no longer using or maintaining it.