Mediawiki.el

From WikEmacs
Revision as of 21:37, 12 March 2014 by Holocronweaver (talk | contribs) (move known bug from discussion to main page)
Jump to navigation Jump to search
mediawiki.el
Description Mediawiki interface and markup mode
Author Jerry et al
Maintainer Mark A. Hershberger
Source https://code.launchpad.net/~hexmode/mediawiki-el/trunk
Part of Emacs no

Mediawiki.el is a package to help add content to any mediawiki site including WikEmacs. It comes with a Major Mode to support editing Mediawiki markup.

Setup

Install mediawiki.el from el-get or ELPA.

If you are using emacs-24, you could do the following: Edit your .emacs file like this:

(require 'package)
(package-initialize)
;; Not sure which one should come first, but you certainly one of these.
;; As of sept. 2012, this package is not in ELPA
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/") t)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)

Then, either use the menu Options->Manage Emacs Packages or type M-X package-list-packages

  • search mediawiki and click on it

... almost done.


Site requirements

The MediaWiki site that you wish to edit must have its API enabled:

$wgEnableAPI=true;

Customization

M-x load-library RET mediawiki RET
Load the library
M-x customize-variable RET mediawiki-site-alist
Configure as follows and save your settings
Site Name: WikEmacs
URL: http://wikemacs.org/w/
Username: InCognito
Password: s!cr!t
First Page: Main Page
You can provide "Username" and "Password" in your .authinfo file. home directory.

Alternatively you can add this snippet of Emacs Lisp code to your .emacs:

(require 'mediawiki)

(setq mediawiki-site-alist '(("Wikipedia" "http://en.wikipedia.org/w/ "" "" "Main Page") ; put your user name and password
                             ("WikEmacs" "http://wikemacs.org/w/" "" "" "Main Page")))

;; Emacs users care more for WikEmacs than Wikipedia :-). 
;; In any case, do not forget the slash at the end of the URL.
(setq mediawiki-site-default "WikEmacs")

You can naturally add more MediaWiki sites to the mediawiki-site-alist variable.

Usage

M-x mediawiki-site
Choose a site (say "WikEmacs") for the current session.
[C-c C-o] (or M-x mediawiki-open)
Open a page. To edit the main page, type "Main Page". Make your edits.
[C-x C-s] (or M-x mediawiki-save)
Submit your modifications.
[C-c C-c] (or M-x mediawiki-save-and-bury)
Submit modifications and bury the buffer.

Helpful Keybindings

[C-return] (or M-x mediawiki-open-page-at-point)
Follow or browse to a WikiLink.
[M-g] (or M-x mediawiki-reload)
Reload a page

Customizations

Word Wrap

Mediawiki sites are generally unfilled: do not add hard line breaks within a paragraph. There are various ways to wrap lines visually while you edit. For example in Emacs 24 you may want to enable Visual Line mode with a mode hook:

(setq mediawiki-mode-hook (lambda ()
                            (visual-line-mode 1)))

Edit or Create a page in a web browser

Right now Mediawiki.el fails silently whenever the site asks for number challenge (spam protection). The following snippet allows you to edit/create a page in a web browser

(defun yyr-mediawiki-browser-edit/create-page (page &optional site)
  "Edit a page in browser, asks for page name (sitename also if needed)"
  (interactive "sPage name (words): ")
  (let* ((site (mediawiki-prompt-for-site))
         (url (mediawiki-site-extract site 1))
         (index "index.php?title=")
         (et "&action=edit"))
    (funcall 'browse-url
             (message "%s%s%s%s"
                      url index (mediawiki-translate-pagename page) et))))

Call yyr-mediawiki-browser-edit/create-page

Key binding to open current editing file in web browser

Bind mediawiki-browse to some key chord. The following uses [C-c o]

(define-key mediawiki-mode-map (kbd "C-c o") 'mediawiki-browse)

Known Bugs

  • Version 2.2.2 works fine on GNU Emacs 24.0.94.1 (i386-mingw-nt5.1.2600) when there is no challenge (e.g. arithmetic problem). But when external links are added, so there is a challenge, mediawiki doesn't alert the user or show the arithmetic problem. The only evidence of failure is that the page is never updated.

External Links