This is EmacsWiki, produced by makeinfo version 4.6 from EmacsWiki.texi.
File: EmacsWiki, Node: Top, Next: Overview, Up: (dir)
Overview
********
Emacs Wiki
==========
Introduction
------------
Emacs Wiki is an editing mode, which allow one to create collections of
hyperlinked documents - a Website - in a very intuitive way.
It is also the base for Planner a component of a PIM for Emacs, visit
*note PlannerEtAl: (PlannerEtAl)Top. to read about the big picture.
Shortcuts
---------
*Wiki Markup (EmacsWiki.texi#Markup)*
How to add design to a *note EmacsWiki: (EmacsWiki)Top. Page.
*Emacs Wiki Tags (EmacsWiki.texi#Tags)*
"HTML-like" Tags which can be put into your Emacs
Wiki page to acomplish advanced functions.
Overview
--------
An Emacs mode for maintaining a local Wiki database.
Wiki is a hypertext and a content management system: Normal users are
encouraged to enhance the hypertext by editing and refactoring existing
wikis and by adding more. This is made easy by requiring a certain way
of writing the wikis. It is not as complicated as a markup language
such as HTML. The general idea is to write plain ASCII.
Words with mixed case such as [Non-existent link] are [Non-existent
link]. [Non-existent link] are links you can follow. If a wiki with
that name exists, you will be taken there. If such a does not exist,
following the link will create a new wiki for you to fill.
[Non-existent link] for non-existing wikis are rendered as links with
class "nonexistent", and are also displayed in a warning color so that
you can see whether following the link will lead you anywhere or not.
Markup - how to make it look nice
---------------------------------
Here is a description of the default markup rules:
Headings
* First level
** Second level
*** Third level
Note that the first level is actually indicated using H2, so that
it doesn't appear at the same level as the page heading (which
conceptually titles the section of that Wiki page).
Horizontal rules
----
Emphasis
*emphasis*
**strong emphasis**
***very strong emphasis***
_underlined text_
=verbatim=
. For this, the following special
markup exists, which is reminiscent of e-mail quotations:
> A line of Emacs verse;
> forgive its being so terse.
You can also use the
tag, if you prefer:
A line of Emacs verse;
forgive its being so terse.
Literal paragraphs
Use the HTML tags tags.
The shorcut for doing this is to use the
Some literal text or code here.
Lists
* bullet list
1. Enumerated list
*Term*
A definition list
Blank lines between list elements are
optional, but required between members of a
definition list.
Tables
There are two forms of table markup supported.
If Takaaki Ota's table.el package is
available, then simply create your tables using
his package, and they will be rendered into
the appropriate HTML.
If table.el is not available, then only very
simple table markup is supported. The
attributes of the table are kept in
`emacs-wiki-table-attributes'. The syntax is:
Double bars || Separate header fields
Single bars | Separate body fields
Here are more | body fields
Triple bars ||| Separate footer fields
Other paragraph markup applies to both styles,
meaning that if six or more columns of
whitespace precedes the first line of the
table, it will be centered, and if any
whitespace at all precedes first line, it will
occur in a blockquote.
Anchors and tagged links
#example If you begin a line with
"#anchor"---where anchor can be any word that
doesn't contain whitespace---it defines an
anchor at that point into the document. This
anchor text is not displayed.
You can reference an anchored point in another
page (or even in the current page) using
[Non-existent link]. The #anchor will never be
displayed in HTML, whether at the point of
definition or reference, but it will cause
browsers to jump to that point in the document.
Redirecting to another page or URL
Sometimes you may wish to redirect someone to
another page. To do this, put:
at the top of the page. If the (concat "This form gets" "inserted")
Special handling of WikiNames
If you need to add a plural at the end of
a [Non-existent link], separate it with
four single quotes `(WikiName'''s)' or
make it an explicit link `[[WikiName]]s)'.
To prevent a link name (of any type) from
being treated as such, surround it with
`equals' (to display it in monotype), or
prefix it with the tag == to escape it
from WikiName markup.
Special Wiki links
Besides the normal [Non-existent link]
type links, emacs-wiki also supports
extended links:
[[link text][optional link description]]
An extended link is always a link, no
matter how it looks. This means you can
use any file in your
`emacs-wiki-directories' as a Wiki file.
If you provide an optional description,
that's what will be shown instead of the
link text. This is very useful for
providing textual description of URLs.
See the documentation to
emacs-wiki-image-regexp for how to inline
files and images.
[Non-existent link] names
There are times when you will want to
constantly reference pages on another
website. Rather than repeating the URL
ad nauseum, you can define an
[Non-existent link] name. This is a set
of [Non-existent link] to URL
correlations, that support textual
substitution using #anchor names (which
are appended to the URL). For example,
MeatballWiki
(http://www.usemod.com/cgi-bin/mb.pl?MeatballWiki)
is defined in the variable
`emacs-wiki-interwiki-names'. It means
you can reference the page "[Non-existent
link]" on MeatballWiki
(http://www.usemod.com/cgi-bin/mb.pl?MeatballWiki)
using this syntax:
MeatballWiki#MeatBall
In the resulting HTML, the link is simply
shown as "MeatballWiki
(http://www.usemod.com/cgi-bin/mb.pl?MeatballWiki):[Non-existent
link]".
Tags - Escaping and enhancing Markup
------------------------------------
Here is a summary of the default tags. This
includes the dangerous tags listed in `emacs-wiki-dangerous-tags',
which may not be used by outsiders.
*verbatim*
Protects against highlighting and wiki
interpretation, and escapes any
characters which have special meaning to
the publishing format. For HTML, this
means characters like '<' are escaped as
HTML entities.
*example*
Like verbatim, but typesets in HTML using
the block. In this case, line numbering is not available.
*bookmarks*
Insert bookmarks at the location of
the tag from the given bookmarks
file. Required attribute "file"
specifies which file to read
from, and the optional attribute
"type" may be one of: adr (for
Opera), lynx, msie, ns, xbel or
xmlproc. The default type is
"xbel". The optional attribute
"folder" may be used to specify
which folder (and its children)
should be inserted.
Note that xml-parse.el version 1.5
(available from my website) and the
xbel-utils package (available at
least to Debian users) is required
for this feature to work.
Interwiki - Referring to other Sites/Wikis
------------------------------------------
(defcustom emacs-wiki-interwiki-names
'(("GnuEmacs" . "http://www.gnu.org/software/emacs/emacs.html")
("TheEmacsWiki" .
(lambda (tag)
(concat "http://www.emacswiki.org/cgi-bin/wiki.pl?"
(or tag "SiteMap"))))
("MeatballWiki" .
(lambda (tag)
(concat "http://www.usemod.com/cgi-bin/mb.pl?"
(or tag "MeatballWiki")))))
"A table of [Non-existent link] that
refer to external entities. The
format of this table is an alist, or
series of cons cells. Each cons
cell must be of the form:
(WIKINAME . STRING-OR-FUNCTION)
The second part of the cons cell may
either be a STRING, which in most cases should be a URL, or a FUNCTION.
If a function, it will be called with one argument: the tag applied to
the Interwiki name, or nil if no tag was used. If the cdr was a STRING
and a tag is used, the tag is simply appended.
Here are some examples:
(\"JohnWiki\" . \"http://alice.dynodns.net/wiki?\")
Referring to `[[JohnWiki#EmacsModules]]'
then really means:
http://alice.dynodns.net/wiki?EmacsModules
(http://alice.dynodns.net/wiki?EmacsModules)
If a function is used for the replacement
text, you can get creative depending on what the tag is. Tags may
contain any alphabetic character, any number, % or _. If you need
other special characters, use % to specify the hex code, as in %2E.
All browsers should support this."
:type '(repeat (cons (string :tag "WikiName")
(choice (string :tag "URL") function)))
:group 'emacs-wiki)
Wiki Projects
-------------
From the emacs-wiki.el file:
----------------------------
Commentary:
...........
Wiki is a concept, more than a
thing. It is a way of creating
document pages using plain text
markup and simplified hyperlinking.
By typing a name in [Non-existent
link], a hyperlink is automatically
created to the document
"[Non-existent link]". Pressing
return on that name will create the
file if it doesn't exist, or visit
it if it does.
The markup used by emacs-wiki is
intended to be very friendly to
people familiar with Emacs. Type
C-h v emacs-wiki-publishing-markup
after this mode is loaded for how to
get started.
**** Startup
To begin using emacs-wiki, put this
in your .emacs file:
(load "emacs-wiki")
Now you can type M-x
emacs-wiki-find-file, give it a
[Non-existent link] (or just hit
return) and start typing!
You should also type M-x
customize-group, and give the name
"emacs-wiki". Change it to suite
your preferences. Each of the
options has its own documentation.
**** Keystroke summary
Here is a summary of keystrokes
available in every Wiki buffer:
C-c C-a jump to an index of all
the Wiki pages C-c C-b show all
pages that reference this page C-c
C-s search for a word in your
Wiki pages C-c C-f jump to
another Wiki page; prompts for the
name C-c C-l highlight/refresh
the current buffer C-c C-p
publish any Wiki pages that have
changed as HTML C-c C-r rename
wiki link at point C-c C-v change
wiki project C-c C-D delete wiki
link at point (binding will only
work on X) C-c = diff this page
against the last backup version TAB
move to the next Wiki reference
S-TAB move to the previous Wiki
reference
**** Using pcomplete
If you have pcomplete loaded, you
can type M-TAB to complete Wiki
names. Hitting M-TAB twice or more
time in succession, will cycle
through all of the possibilities.
You can download pcomplete from my
Website:
http://www.gci-net.com/~johnw/emacs.html
(http://www.gci-net.com/~johnw/emacs.html)
**** [Non-existent link] support
If you use a [Non-existent link]
(C-x 4 a) within one of your Wiki
directories, it will be used for
notifying visitors to your wiki of
recent changes.
**** Changing title or stylesheet
For convenience, if you want to
change the visible title, or the
stylesheet, used by a certain Wiki
page during HTML publishing, just
put:
#title Hello there
#style hello.css
at the top of the page.
**** `' tags can
be used, not only to evaluate forms for
insertion at that point, but to
influence the publishing process in
many ways. Here's another way to
change a page's stylesheet:
(ignore
;; use special.css for this Wiki page
(set (make-variable-buffer-local 'emacs-wiki-style-sheet)
""))
The 'ignore' is needed so nothing is
inserted where the `' tag
occurred. Also, there should be no
blank lines before or after the tag
(to avoid empty paragraphs from
being created). The best place to
put this would be at the very top or
bottom of the page.
**** Sub-lists?
There is no inherent support for
sub-lists, since I couldn't think of
a simple way to do it. But if you
really need them, here's a trick you
can use:
- Hello
- There
- My friend
Tag Table:
Node: Top74
Ref: Markup1656
Ref: Tags11138
End Tag Table