262
269
Choose the development version if you want to live on the bleeding edge
263
270
of Muse development or try out new features before release.
265
@cindex arch revision control system, using
266
The Arch revision control system allows you to retrieve previous
267
versions and select specific features and bug fixes. If you would like
268
to contribute to Muse development, it is highly recommended that you use
269
Arch, but this is not a requirement.
271
If you are new to Arch, you might find this tutorial helpful:
272
@uref{http://mwolson.org/projects/ArchTutorial.html}.
274
Downloading the Muse module with Arch and staying up-to-date involves
272
@cindex git version control system, using
273
The git version control system allows you to keep up-to-date with the
274
latest changes to the development version of Muse. It also allows you
275
to contribute changes (via commits, if you are have developer access to
276
the repository, or via patches, otherwise). If you would like to
277
contribute to Muse development, it is highly recommended that you use
280
If you are new to git, you might find this tutorial helpful:
281
@uref{http://www.kernel.org/pub/software/scm/git/docs/tutorial.html}.
283
Downloading the Muse module with git and staying up-to-date involves
275
284
the following steps.
281
@item Debian and Ubuntu: @kbd{apt-get install tla}.
282
@item Other distributions: see @uref{http://www.gnuarch.org/gnuarchwiki/Getting_Arch}.
290
@item Debian and Ubuntu: @kbd{apt-get install git-core}.
291
@item Windows: @uref{http://git.or.cz/gitwiki/WindowsInstall}.
292
@item Other operating systems: download, compile, and install the source
293
from @uref{http://www.kernel.org/pub/software/scm/git/}, or find a git
294
package for your operating system.
285
@item Register the archive.
287
tla register-archive -f http://mwolson.org/archives/2006
290
You might ask why there is a mention of the year ``2006'' in the name of
291
the archive. This year is not very significant---it only means that I
292
created this archive in 2006. I used to create a new archive every
293
year, but this was a hassle for people who were trying to track
294
development of Muse, so I have stopped doing it.
296
@item Download the Muse package.
298
# Download Muse into the @file{muse} directory.
299
tla get mwolson@@gnu.org--2006/muse--main--1.0 muse
297
@item Download the Muse development branch.
299
If you have developer access to Muse, do:
302
git clone ssh://repo.or.cz/srv/git/muse-el.git muse
308
git clone git://repo.or.cz/muse-el.git muse
311
If you are behind a restrictive firewall, and do not have developer
312
access, then do the following instead:
315
git clone http://repo.or.cz/r/muse-el.git muse
302
318
@item List upstream changes that are missing from your local copy.
303
319
Do this whenever you want to see whether new changes have been committed
320
to Muse. If you wish, you may skip this step and proceed directly to
307
324
# Change to the source directory you are interested in.
310
# Display the summary of changes
311
tla missing --summary
327
# Fetch new changes from the repository, but don't apply them yet
330
# Display log messages for the new changes
314
@cindex updating Muse with Arch
315
@item Update to the latest version by replaying missing changes.
334
``origin'' is git's name for the location where you originally got Muse
335
from. You can change this location at any time by editing the
336
@file{.git/config} file in the directory where the Muse source was
339
@cindex updating Muse with git
340
@item Update to the latest version by pulling in any missing changes.
347
git will show how many files changed, and will provide a visual display
348
for how many lines were changed in each file.
323
There are other ways to interact with the Muse archive.
352
There are other ways to interact with the Muse repository.
326
@item Browse arch repository: @uref{http://archzoom.mwolson.org/}
355
@item Browse git repo: @uref{http://repo.or.cz/w/muse-el.git}
327
356
@item Latest development snapshot: @uref{http://mwolson.org/static/dist/muse-latest.tar.gz}
328
357
@item Latest development snapshot (zip file): @uref{http://mwolson.org/static/dist/muse-latest.zip}
331
The latest development snapshot will be kept up-to-date since it is
332
updated at the same time as the Arch repository.
360
The latest development snapshot can lag behind the git repo by as much
361
as 20 minutes, but never more than that.
363
@subheading Becoming a Muse developer
364
@cindex developer, becoming
366
If you want commit access to the shared Muse repository, then register
367
an account at @uref{http://repo.or.cz} (be sure to add an SSH key), and
368
contact the current maintainer at @email{mwolson@@gnu.org}. It would be
369
best to send some patches to the @email{muse-el-discuss@@gna.org}
370
mailing list first, so that he knows that you know what you are doing.
371
@xref{Getting Help and Reporting Bugs}, for instructions on subscribing
374
You must also be willing to sign a copyright assignment for your changes
375
to Muse, since Muse is a GNU project. The current maintainer will
376
assist you in this process if you contact him.
378
For information on committing changes to Muse and performing
379
development, please consult
380
@uref{http://emacswiki.org/cgi-bin/wiki/MuseDevelopment}.
334
382
@node Installation, Getting Started, Obtaining Muse, Top
335
383
@comment node-name, next, previous, up
379
437
If you wish to install Muse to different locations than the defaults
380
438
specify, edit @file{Makefile.defs} accordingly.
382
Run @code{make} as a normal user.
440
Run @code{make} as a normal user, if you haven't done so already.
384
442
Run @code{make install} as the root user if you have chosen installation
385
443
locations that require root permissions.
446
@cindex ELPA package for Muse
448
For those used to installing software packages, there will be a
449
@code{muse} package available in the Emacs Lisp Package Archive
450
(abbreviated ``ELPA'') as of the 3.10 release of Muse. This package
451
will be compiled and installed automatically in a user-specific
452
location. For more information on ELPA, see
453
@uref{http://tromey.com/elpa/}.
388
455
@node Getting Started, Projects, Installation, Top
389
456
@comment node-name, next, previous, up
1462
1530
Other languages also have tags that cause source code to be evaluated.
1463
1531
@xref{Tag Summary}, for details.
1465
@node Comments, Tag Summary, Embedded Lisp, Markup Rules
1533
@node Citations, Comments, Embedded Lisp, Markup Rules
1534
@comment node-name, next, previous, up
1535
@section Support for citing other resources
1537
@cindex tags, <cite>
1541
Here is an example of what citations look like in a Muse document.
1549
Some text before <cite>Miller1999</cite> and after the citation.
1551
This is an author-only citation <cite type="author">Miller1999</cite>.
1553
And this is a year-only citation <cite type="year">Miller1999</cite>.
1555
Finally, this is a multi-head citation
1556
<cite>Miller1999,Andrews2005</cite>.
1559
@subheading Overview
1561
The @code{#bibsource} directive defines the source of the
1562
bibliographies. The following sources are possible.
1565
@item DocBook + RefDB:
1568
@item LaTeX + bibtex:
1569
the name of an appropriate bibtex file
1571
@item LaTeX + RefDB:
1572
if the input file is called "foo.muse", then set this to "foo.bib"
1575
Citations are encoded as @verb{|<cite>|} elements which enclose the
1576
citation keys as they are defined in the bibliography file or database.
1577
In multi-head citations, the citation keys have to be separated by
1578
colons or semicolons. The @code{latex} and @code{docbook} styles
1579
translate these to the proper separator automatically.
1581
The @verb{|<cite>|} elements take an optional ``type'' attribute that
1582
defines how the citation is rendered. If the attribute is missing,
1583
you'll get a regular citation according to the bibliography style,
1584
e.g.'' (Miller et al., 1999)''. If the attribute is set to "author",
1585
only the name of the author(s) will be rendered. Accordingly, "year"
1586
will cause the year to be printed. This is useful to create citations
1590
Miller et al. had already shown in a previous publication (1999) that
1591
this is not going to work.
1594
Remember that refdb-mode (the Emacs interface to RefDB) can retrieve
1595
references by simply marking the citation key and running the
1596
@code{refdb-getref-by-field-on-region} command. Later versions of
1597
@code{refdb-mode} will also allow to insert references as Muse citations
1598
(which is already implemented for DocBook, TEI, and LaTeX documents).
1600
You may have noticed that there is no element to indicate the position
1601
of the bibliography. The latter is always created at a valid position
1602
close to the end of the document. The functions
1603
@code{muse-docbook-bibliography} and @code{muse-latex-bibliography} are
1604
called in the header or footer to generate this content, so it is
1605
possible to change the exact position.
1607
@node Comments, Tag Summary, Citations, Markup Rules
1466
1608
@comment node-name, next, previous, up
1467
1609
@section Lines to omit from published output
1468
1610
@cindex comments
1745
1900
You will need to have @command{pyblosxom.cgi} or @command{blosxom.cgi}
1746
1901
installed on a machine that you have upload access to.
1903
The major difficulty in both of these programs is specifying the date of
1904
the entries. Both programs rely on the file modification time rather
1905
than any data contained in the entries themselves. A plugin is needed
1906
in order for these programs to be able to get the correct date.
1908
@subheading PyBlosxom
1910
There are two different ways of accomplishing this in pyblosxom. The
1911
first way involves gathering the timestamps (as specified by the
1912
@code{#date} directive) into one file and then sending that file along
1913
with published entries to the webserver.
1915
The second will read each file at render time and parse the
1916
@code{#postdate} directive. Muse will translate the @code{#date}
1917
directive into @code{#postdate} at publish time, so you don't have to do
1920
@subsubheading Placing timestamps in one file
1748
1922
The following additional components are required in order to make the
1749
1923
date of blog entries display as something sensible.
1778
1951
directory to where your Muse files are, execute @file{getstamps.py}, and
1779
1952
then move the generated timestamps file to your publishing directory.
1954
@subsubheading Getting timestamp from entry while rendering
1956
Alternately, the pyblosxom metadate plugin may be used. On the plus
1957
side, there is no need to run a script to gather the date. On the
1958
downside, each entry is read twice rather than once when the page is
1959
rendered. Set the value of @code{muse-blosxom-use-metadate} to non-nil
1960
to enable adding a @code{#postdate} directive to all published files.
1964
M-x customize-variable RET muse-blosxom-use-metadate RET
1967
With the metadate plugin installed in pyblosxom, the date set in this
1968
directive will be used instead of the file's modification time. The
1969
plugin is included with Muse at @file{contrib/pyblosxom/metadate.py}.
1973
It is also possible to use Blosxom, which is written in Perl, to serve
1974
blog entries that were published with Muse. The steps are as follows.
1978
Download and install blosxom from @url{http://blosxom.sourceforge.net/}.
1981
Install the metadate plugin. It is available in
1982
@file{contrib/blosxom/metadate_0_0_3}.
1985
Every time you make a new blog entry, change to the blosxom data
1986
directory and execute the @file{contrib/blosxom/getstamps.pl} script.
1987
This script has only recently been made, and may still have some bugs,
1988
so use with caution.
1781
1992
@node Blosxom Entries, Blosxom Options, Blosxom Requirements, Blosxom
1782
1993
@comment node-name, next, previous, up
1783
1994
@subsection Format of a Blosxom entry and automation
1785
1996
Each Blosxom file must include `#date yyyy-mm-dd', or optionally the
1786
longer `#date yyyy-mm-dd-hh-mm', a title (using the #title directive),
1787
plus whatever normal content is desired.
1997
longer `#date yyyy-mm-dd-hh-mm', a title (using the @code{#title}
1998
directive), plus whatever normal content is desired.
1789
2000
The date directive is not used directly by @command{pyblosxom.cgi} or
1790
2001
this program. You need to have the two additional items from the former
1960
2171
This may be text or a filename.
1964
@node DocBook, HTML, Book, Publishing Styles
2174
@node ConTeXt, DocBook, Book, Publishing Styles
2175
@comment node-name, next, previous, up
2176
@section Publishing ConTeXt documents
2178
This publishing style is capable of producing ConTeXt or PDF documents.
2180
If you wish to publish PDF documents based on ConTeXt, you will need to
2181
have it installed. For Debian and Ubuntu, this can be accomplished by
2182
installing the ``texlive'' package.
2184
@subheading Styles provided
2188
@cindex publishing styles, context
2190
Publish a ConTeXt document.
2192
@cindex publishing styles, context-pdf
2194
Publish a PDF document, using an external ConTeXt document conversion
2197
@cindex publishing styles, context-slides
2198
@item context-slides
2199
Produce slides from a ConTeXt document.
2201
Here is an example of a slide.
2206
[[Some-sort-of-cute-image.png]]
2211
- Another bullet point.
2218
@cindex publishing styles, context-slides-pdf
2219
@item context-slides-pdf
2220
Publish a PDF document of ConTeXt slides.
2224
@subheading Options provided
2228
@item muse-context-extension
2229
Default file extension for publishing ConTeXt files.
2231
@item muse-context-pdf-extension
2232
Default file extension for publishing ConTeXt files to PDF.
2234
@item muse-context-pdf-program
2235
The program that is called to generate PDF content from ConTeXt content.
2237
@item muse-context-pdf-cruft
2238
Extensions of files to remove after generating PDF output successfully.
2240
@item muse-context-header
2241
Header used for publishing ConTeXt files.
2243
This may be text or a filename.
2245
@item muse-context-footer
2246
Footer used for publishing ConTeXt files.
2248
This may be text or a filename.
2250
@item muse-context-markup-regexps
2251
List of markup regexps for identifying regions in a Muse page.
2253
For more on the structure of this list,
2254
@xref{muse-publish-markup-regexps}.
2256
@item muse-context-markup-functions
2257
An alist of style types to custom functions for that kind of text.
2259
For more on the structure of this list,
2260
@xref{muse-publish-markup-functions}.
2262
@item muse-context-markup-strings
2263
Strings used for marking up text.
2265
These cover the most basic kinds of markup, the handling of which
2266
differs little between the various styles.
2268
@item muse-context-slides-header
2269
Header for publishing a presentation (slides) using ConTeXt.
2271
Any of the predefined modules, which are available in the
2272
tex/context/base directory, can be used by writing a "module" directive
2273
at the top of the Muse file; if no such directive is provided, module
2274
pre-01 is used. Alternatively, you can use your own style ("mystyle",
2275
in this example) by replacing "\usemodule[]" with "\input mystyle".
2277
This may be text or a filename.
2279
@item muse-context-slides-markup-strings
2280
Strings used for marking up text in ConTeXt slides.
2282
@item muse-context-markup-specials-document
2283
A table of characters which must be represented specially.
2284
These are applied to the entire document, sans already-escaped
2287
@item muse-context-markup-specials-example
2288
A table of characters which must be represented specially.
2289
These are applied to @verb{|example>|} regions.
2291
With the default interpretation of @verb{|<example>|} regions, no
2292
specials need to be escaped.
2294
@item muse-context-markup-specials-literal
2295
A table of characters which must be represented specially.
2296
This applies to =monospaced text= and @verb{|<code>|} regions.
2298
@item muse-context-markup-specials-url
2299
A table of characters which must be represented specially.
2300
These are applied to URLs.
2302
@item muse-context-markup-specials-image
2303
A table of characters which must be represented specially.
2304
These are applied to image filenames.
2306
@item muse-context-permit-contents-tag
2307
If nil, ignore @verb{|<contents>|} tags. Otherwise, insert table of
2310
Most of the time, it is best to have a table of contents on the
2311
first page, with a new page immediately following. To make this
2312
work with documents published in both HTML and ConTeXt, we need to
2313
ignore the @verb{|<contents>|} tag.
2315
If you don't agree with this, then set this option to non-nil,
2316
and it will do what you expect.
2320
@node DocBook, HTML, ConTeXt, Publishing Styles
1965
2321
@comment node-name, next, previous, up
1966
2322
@section Publishing in DocBook XML form
2271
2647
@item muse-journal-html-entry-template
2272
2648
Template used to publish individual journal entries as HTML.
2650
This may be text or a filename.
2274
2652
@item muse-journal-latex-section
2275
2653
Template used to publish a LaTeX section.
2277
2655
@item muse-journal-latex-subsection
2278
2656
Template used to publish a LaTeX subsection.
2280
@item muse-journal-latex-markup-tags
2281
A list of tag specifications, for specially marking up LaTeX.
2658
@item muse-journal-markup-tags
2659
A list of tag specifications, for specially marking up Journal entries.
2283
2661
@xref{muse-publish-markup-tags}, for more information.
2663
This is used by @code{journal-latex} and its related styles, as well as
2664
the @code{journal-rss-entry} style, which both @code{journal-rdf} and
2665
@code{journal-rss} use.
2285
2667
@item muse-journal-rdf-extension
2286
2668
Default file extension for publishing RDF (RSS 1.0) files.
3520
@node Getting Help and Reporting Bugs, History, Extending Muse, Top
3907
@node Miscellaneous, Getting Help and Reporting Bugs, Extending Muse, Top
3908
@comment node-name, next, previous, up
3909
@chapter Miscellaneous add-ons, like a minor mode
3912
* Muse List Edit Minor Mode:: Edit lists easily in other major modes.
3915
@node Muse List Edit Minor Mode, , , Miscellaneous
3916
@comment node-name, next, previous, up
3917
@section Edit lists easily in other major modes
3918
@cindex muse-list-edit-minor-mode
3920
@code{muse-list-edit-minor-mode} is meant to be used with other major
3921
modes, such as Message (for composing email) and debian-changelog-mode
3922
(for editing debian/changelog files).
3924
It implements practically perfect support for editing and filling lists.
3925
It can even handle nested lists. In addition to Muse-specific list
3926
items ("-", numbers, definition lists, footnotes), it can also handle
3927
items that begin with "*" or "+". Filling list items behaves in the
3928
same way that it does in Muse, regardless of whether filladapt is also
3929
enabled, which is the primary reason to use this tool.
3931
@subheading Installation
3933
To use it, add ``(require 'muse-mode)'' to your Emacs customization file
3934
and add the function @code{turn-on-muse-list-edit-minor-mode} to any
3935
mode hooks where you wish to enable this minor mode.
3937
@subheading Keybindings
3939
@code{muse-list-edit-minor-mode} uses the following keybindings.
3943
@item M-RET (`muse-l-e-m-m-insert-list-item')
3944
Insert a new list item at point, using the indentation level of the
3947
@item C-< (`muse-l-e-m-m-decrease-list-item-indent')
3948
Decrease indentation of the current list item.
3950
@item C-> (`muse-l-e-m-m-increase-list-item-indent')
3951
Increase indentation of the current list item.
3955
@subheading Functions
3957
@defun muse-list-edit-minor-mode
3958
This is a global minor mode for editing files with lists.
3959
It is meant to be used with other major modes, and not with Muse mode.
3961
Interactively, with no prefix argument, toggle the mode.
3962
With universal prefix @var{arg} turn mode on.
3963
With zero or negative @var{arg} turn mode off.
3965
This minor mode provides the Muse keybindings for editing lists,
3966
and support for filling lists properly.
3968
It recognizes not only Muse-style lists, which use the "-"
3969
character or numbers, but also lists that use asterisks or plus
3970
signs. This should make the minor mode generally useful.
3972
Definition lists and footnotes are also recognized.
3974
Note that list items may omit leading spaces, for compatibility
3975
with modes that set @code{left-margin}, such as
3976
@code{debian-changelog-mode}.
3979
@defun turn-on-muse-list-edit-minor-mode
3980
Unconditionally turn on Muse list edit minor mode.
3983
@defun turn-off-muse-list-edit-minor-mode
3984
Unconditionally turn off Muse list edit minor mode.
3987
@node Getting Help and Reporting Bugs, History, Miscellaneous, Top
3521
3988
@comment node-name, next, previous, up
3522
3989
@chapter Getting Help and Reporting Bugs
3523
3990
@cindex help, getting