aboutsummaryrefslogtreecommitdiff
path: root/README.org
blob: c87c34b9c91e0d13ff3a4384771e729eb54f0fb4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#+title: wiki.el - an Emacs wiki mode for editing and browsing wiki files
#+author: Yuchen Pei
#+language: en

NOTE: this project is very much WIP.

* Intro
  :PROPERTIES:
  :UPDATED:  [2023-07-23 Sun 17:56]
  :END:

wiki.el is an Emacs wiki mode for editing and browsing wiki files.
There are several goals and areas of emphasis that differentiates it
from other packages handling wiki.

First, it aims at a unified approach to various wiki markups and
engines. On the markup front it will support standard or default
markups of various wiki engines, as well as standalone markups like
creole.

On the engine front it will support fetching and browsing wiki titles
from various engines, as well as locally. Down the road we would like
to develop a minor mode that can help with link navigation and
browsing for non-wiki markups like markdown and rst. It remains to be
determined whether submitting edited wiki entries directly from emacs
is feasible under this unified approach.

Second, it aims to be close to the Emacs core, including not only
using as many builtin features as possible and needed, but also
working in a similar way to core packages. Specifically, an org-like
set of navigation and editing features belongs to the second category.

As a non-goal, wiki.el does not try to come up with its own markup
rules or languages, nor does it attempt to export wiki files to other
formats.

Currently supported features:

- Font-locking for basic mediawiki markups to the extent that
  Wikipedia titles are readable: headings, emphasis, linking,
  reference, etc.
- Fetching and link jumping work for mediawiki, oddmuse and moinmoin
  sites. Files are saved locally, that may be used for caching.
- Outline and imenu integration.

* Install and use
  :PROPERTIES:
  :UPDATED:  [2023-07-23 Sun 18:08]
  :END:

Clone, require, M-x:

#+begin_src emacs-lisp
(add-to-list 'load-path "~/.emacs.d/lisp/wiki.el")
(require 'wiki)
#+end_src

Some entry points:
- ~wiki-<site-name>-fetch~: fetch a title from a wiki site. These
  functions are defined by the macro ~defun-wiki-fetchers~, for all
  sites in the alist ~wiki-sites~. For example
  - M-x ~wiki-wikipedia-en-fetch~ RET Emacs RET
  - M-x ~wiki-parabolawiki-fetch~ RET Installation Guide RET
  - M-x ~wiki-libreplanet-fetch~ RET Group:Freedom Ladder RET
  - M-x ~wiki-emacswiki-fetch~ RET SandBox RET
- ~wiki-open-url~: fetches a title from a url. Example:
  - M-x ~wiki-open-url~ https://libreplanet.org/wiki/Group_talk:Freedom_Ladder RET

* Prior Art
  :PROPERTIES:
  :UPDATED:  [2023-07-23 Sun 17:55]
  :END:

EmacsWiki has [[https://www.emacswiki.org/emacs/WikiModes][a list of wiki modes]], classified under two categories:

#+begin_quote
1. The first kind allows you to download a page from a remote wiki,
   edit it using Emacs, and submit it back to the wiki.
2. The second kind allows you to treat local files as a local wiki
   without using a browser. Usually these modes allow you to publish
   the local wiki as a set of static HTML pages.
#+end_quote

wiki.el mainly falls under the first category, though it cannot be
used for submitting back to wiki yet. The modes listed under the first
category are mostly specialised to one engine / markup.

wiki.el also supports editing local files as a local wiki, with native
linking support, though it does not aim to contain features for
exporting and publication.

* Copyright and contact
  :PROPERTIES:
  :UPDATED:  [2023-07-23 Sun 17:18]
  :END: