Difference between revisions of "Mediawiki.el"

From WikEmacs
Jump to navigation Jump to search
(grammer fixes)
(move known bug from discussion to main page)
(15 intermediate revisions by 10 users not shown)
Line 2: Line 2:
 
|name=mediawiki.el
 
|name=mediawiki.el
 
|description=Mediawiki interface and markup mode
 
|description=Mediawiki interface and markup mode
 +
|author= Jerry et al
 
|maintainer=Mark A. Hershberger
 
|maintainer=Mark A. Hershberger
 
|source=https://code.launchpad.net/~hexmode/mediawiki-el/trunk
 
|source=https://code.launchpad.net/~hexmode/mediawiki-el/trunk
Line 16: Line 17:
  
 
Install '''mediawiki.el''' from [[el-get]] or [[ELPA]].
 
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:
 +
<syntaxhighlight lang="lisp">
 +
(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)
 +
</syntaxhighlight>
 +
 +
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:
 +
 +
<pre>
 +
$wgEnableAPI=true;
 +
</pre>
  
 
==Customization==
 
==Customization==
Line 37: Line 61:
 
(require 'mediawiki)
 
(require 'mediawiki)
  
(setq mediawiki-site-alist '(("Wikipedia" "http://en.wikipedia.org/w" "" "" "Main Page")
+
(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")))
 
                             ("WikEmacs" "http://wikemacs.org/w/" "" "" "Main Page")))
  
;; Emacs users care more for WikEmacs than Wikipedia :-)
+
;; 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")
 
(setq mediawiki-site-default "WikEmacs")
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 57: Line 82:
 
: Submit your modifications.
 
: Submit your modifications.
  
; {{CommandKeys|C-c|mediawiki-save-and-bury}}
+
; {{CommandKeys|C-c C-c|mediawiki-save-and-bury}}
 
: Submit modifications and bury the buffer.
 
: Submit modifications and bury the buffer.
  
Line 69: Line 94:
  
 
==Customizations==
 
==Customizations==
=== Word Wrapping ===
+
=== Word Wrap ===
Mediawiki sites are generally [[Fill | unfilled ]].
 
[[Newline character]] are not used for breaking paragraphs. Emacs does supports [[word wrap]] but from [Emacs 24].
 
  
==== Emacs 24 ====
+
Mediawiki sites are generally [[Emacs_Terminology#Fill |unfilled]]: do not add hard line breaks within a paragraph. There are various ways to wrap lines [[Emacs_Terminology#Screen Lines |visually]] while you edit. For example in Emacs 24 you may want to enable [[Visual Line]] mode with a [[mode hook]]:
You may want to turn on word wrapping.
 
  
 
<syntaxhighlight lang="lisp">
 
<syntaxhighlight lang="lisp">
Line 81: Line 103:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Edit or Create a page in web browser ===
+
=== Edit or Create a page in a web browser ===
  
 
Right now '''Mediawiki.el''' fails silently whenever the site asks for number challenge
 
Right now '''Mediawiki.el''' fails silently whenever the site asks for number challenge
Line 100: Line 122:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Call {{Function| yyr-mediawiki-browser-edit/create-page}}  
+
Call {{Function| yyr-mediawiki-browser-edit/create-page}}
  
=== key binding to open current editing file in web browser? ===
+
=== Key binding to open current editing file in web browser ===
  
bind {{Function|mediawiki-browse}} to some key chord. The following
+
Bind {{Function|mediawiki-browse}} to some key chord. The following
 
uses {{Keys|C-c o}}
 
uses {{Keys|C-c o}}
  
Line 113: Line 135:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
+
==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==
 
==External Links==
Line 120: Line 142:
 
*[https://launchpad.net/mediawiki-el Project Page]
 
*[https://launchpad.net/mediawiki-el Project Page]
  
 
[[Category:Wikemacs]]
 
[[Category:Markup Modes]]
 
[[Category:Wikemacs Contributor]]
 
[[Category:Wikemacs Contributor]]
 
[[Category:Markup Modes]]
 
 
[[Category:Third Party Package]]
 
[[Category:Third Party Package]]
 
[[Category:Markup languages]]
 
[[Category:Markup languages]]

Revision as of 21:37, 12 March 2014

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