Difference between revisions of "Mediawiki.el"

From WikEmacs
Jump to navigation Jump to search
(snippet)
(→‎Setup: MELPA has the latest package)
 
(21 intermediate revisions by 11 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)
 +
(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 29: Line 50:
 
:: '''Password''': ''s!cr!t''
 
:: '''Password''': ''s!cr!t''
 
:: '''First Page''': ''Main Page''
 
:: '''First Page''': ''Main Page''
: You can provide "Username" and "Password" in your [[.authinfo]] file. home directory.
+
: You can provide "Username" and "Password" in your [[.authinfo]] file, located in you home directory. For a MediaWiki, .authinfo lines have the form:
 +
<syntaxhighlight lang="text">
 +
machine https://mymediawiki.com/wiki/ login myUsername password myPassword
 +
</syntaxhighlight>
  
 
Alternatively you can add this snippet of Emacs Lisp code to your
 
Alternatively you can add this snippet of Emacs Lisp code to your
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 if not using .authinfo
                             ("WikEmacs" "http://wikemacs.org/w/" "" "" "Main Page")))
+
                             ("WikEmacs" "http://wikemacs.org/" "" "" "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 67: Line 92:
 
; {{CommandKeys|M-g|mediawiki-reload}}
 
; {{CommandKeys|M-g|mediawiki-reload}}
 
: Reload a page
 
: Reload a page
 +
 +
; {{CommandKeys|Tab|mediawiki-mediawiki-goto-next-link}}
 +
: Get to next link
  
 
==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 106:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Edit or Create a page in 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
 
(spam protection). The following snippet allows you to edit/create a
 
(spam protection). The following snippet allows you to edit/create a
page
+
page in a web browser
  
 
<syntaxhighlight lang="lisp">
 
<syntaxhighlight lang="lisp">
Line 100: Line 125:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Call {{Function| yyr-mediawiki-browser-edit/create-page}}  
+
Call {{Function| yyr-mediawiki-browser-edit/create-page}}
  
=== key binding for 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 138:
 
</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 145:
 
*[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]]

Latest revision as of 15:14, 8 April 2015

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)
(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, located in you home directory. For a MediaWiki, .authinfo lines have the form:
machine https://mymediawiki.com/wiki/ login myUsername password myPassword

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 if not using .authinfo
                             ("WikEmacs" "http://wikemacs.org/" "" "" "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
[Tab] (or M-x mediawiki-mediawiki-goto-next-link)
Get to next link

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