Difference between revisions of "Mediawiki.el"

From WikEmacs
Jump to navigation Jump to search
m
(→‎Setup: MELPA has the latest package)
 
(22 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>
  
=== key binding for open current editing file in web browser? ===
+
=== Edit or Create a page in a web browser ===
  
bind {{Function|mediawiki-browse}} to some key chord. The following
+
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
 +
 
 +
<syntaxhighlight lang="lisp">
 +
(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))))
 +
</syntaxhighlight>
 +
 
 +
Call {{Function| yyr-mediawiki-browser-edit/create-page}}
 +
 
 +
=== Key binding to open current editing file in web browser ===
 +
 
 +
Bind {{Function|mediawiki-browse}} to some key chord. The following
 
uses {{Keys|C-c o}}
 
uses {{Keys|C-c o}}
  
Line 92: 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 99: 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