This is a really simple mode to edit pages on Oddmuse wikis (such as EmacsWiki) using GNU Emacs.
(require 'oddmuse) (setq url-proxy-services '(("http" . "your.proxy.host:portnumber")) ; if needed (oddmuse-mode-initialize)
If you plan to edit EmacsWiki, continue reading.
Some wikis, such as EmacsWiki, use a text captcha to protect pages from being edited. The following code bypasses this test:
(add-hook 'oddmuse-mode-hook (lambda () (unless (string-match "question" oddmuse-post) (when (string-match "EmacsWiki" oddmuse-wiki) (setq oddmuse-post (concat "uihnscuskc=1;" oddmuse-post))) (when (string-match "OddmuseWiki" oddmuse-wiki) (setq oddmuse-post (concat "ham=1;" oddmuse-post))))))
‘M-x oddmuse-edit’ to get started. Use
EmacsWiki as the wiki and
SandBox as the page to edit. ☺
‘C-c C-o’ to follow links, use
‘C-u C-c C-o’ to specify the target page yourself, and use
‘C-c C-c’ to save changes.
You can use
‘M-x oddmuse-post’ in any buffer. It doesn’t have to be in Oddmuse Mode.
Note: if post doesn’t work, check if you should use the captcha-bypassing code above.
At the bottom of
oddmuse.el is the following code that bootstraps itself to the EmacsWiki:
From the end of the line just press
Current oddmuse.el uses url.el which is a standard library of Emacs22. If you use Emacs21, use oddmuse-curl.el instead. It requires #curl# (a command-line http client, amongst many other things).
curlfor URL retriever. (deprecated)
If you use
oddmuse-curl.el on Windows, you’ll need to install
curl and use a decent shell for
(setq explicit-shell-file-name "cmd.exe") (setq shell-command-switch "/e:4096 /c")
So, in order to submit patches, bugs or anything else related to OddmuseMode, please try to use as much as you can savannah’s services.
Project page: http://savannah.nongnu.org/projects/oddmuse-el
Wouldn’t it be cool if one could use the usual footnote-mode commands to create footnotes in oddmuse page, if they are not too “unwiki”?
e.g. Here [#1] is an example for a footnote is oddmuse. Footnotes: [:1] no, it's actually here.
If we really wanted footnotes, we should support them better. In fact, there’s an Oddmuse extension that does just that. I just didn’t install it on this site. And to be honest, I see no need for them on the web: I believe footnotes belong to the world of print instead of the world of hypertext. See the Style section in Community:FootNote. – AlexSchroeder
(please do not modify this section. I am trying to track all OddmuseMode contributors and their contributions just in case I need it).
--- oddmuse.el 2009-02-22 18:22:58.000000000 -0400 +++ oddmuse.el 2009-06-11 10:25:42.000000000 -0400 @@ -228,6 +228,9 @@ (defvar oddmuse-revision-check-regexp "^\\(generator\\|last-modified\\|revision\\).+" "A revision check regexp used to show prompt.") +(defvar oddmuse-imenu-regexp "^\\(=+\\)\\s-*\\(.*?\\)\\s-*\\1" + "A regular expression for headings to be added to an index menu.") + (defvar oddmuse-minor nil "Is this editing a minor change ?") @@ -287,7 +290,9 @@ (set (make-local-variable 'oddmuse-minor) oddmuse-use-always-minor)) - (setq indent-tabs-mode nil)) + (setq indent-tabs-mode nil + imenu-generic-expression + (list (list nil oddmuse-imenu-regexp 2)))) (autoload 'sgml-tag "sgml-mode" t)