# GNU ELPA - muse

## muse

Description
Authoring and publishing tool for Emacs
Latest
muse-3.20.2.tar, 2018-Mar-24, 890 KiB
Maintainer
Michael Olson <mwolson@gnu.org>
http://mwolson.org/projects/EmacsMuse.html
Browse ELPA's repository
CGit or Gitweb

To install this package, run in Emacs:

M-x package-install RET muse RET

## Full description

Muse is a tool for easily authoring and publishing documents.  It
allows for rapid prototyping of hyperlinked text, which may then be
exported to multiple output formats, such as HTML, LaTeX, and Texinfo.

The markup rules used by Muse are intended to be very friendly to
people familiar with Emacs.  See the included manual for more
information.



## Old versions

 muse-3.20.1.tar 2018-Mar-07 890 KiB muse-3.20.tar 2012-Nov-29 890 KiB

## News

Emacs Muse NEWS --- History of user-visible changes    -*- outline -*-

* Changes in Muse 3.20

** Fix bug with duplicates in completing-read of wiki page names.

** Mark some tags as dangerous for text by untrusted contributors.

** Implement <div> tag.

** When viewing a page, publish it first.

** Include non-working alpha of Ikiwiki publishing.

** Make it easier to browse published PDF files.

** Fix bug with C-c C-v on a file not part of any project.

** Add workaround for Emacs 23 and htmlize issue.

** muse-latex2png: Fix handling of filenames with spaces in them.

** muse-colors: Separate highlighting rules according to major mode.

** muse-latex: Make lecture notes and slides work with images,

** Publishing

*** Fix end-of-line conversion bug when using Windows.

*** Fix bug where dates in journal entries could be published incorrectly.

*** Preserve the value of muse-current-project.

*** Conditionally interpret local variables.

*** Values set by file-local variables trump project variables.

*** muse-latex: Fix publishing of tags inside of <slide> tags.

*** Render <example> correctly in slides.

*** Fix bug in publishing of table.el style tables.

*** Fix bug where the first paragraph would not be published properly
if it started with a link.

** Build system

*** Makefile.defs.default (INFODIR): Place files in .../share/info.

** Manual

* Changes in Muse 3.12

** New interactive function muse-update-values': Call this after
changing muse-project-alist, in order to update various autogenerated
values.

** Tag attributes may now span multiple lines.

** Don't keep track of undo data when publishing.
This should yield a speed-up.

** Build system

*** Add support for the DESTDIR variable, which allows the destination
directory to be easily set.

** Muse Mode highlighting (lisp/muse-colors.el)

*** Display message when muse-colors-toggle-inline-images is called.

** ConTeXt publishing (lisp/muse-context.el)

*** Fix publishing bug in Windows.

** HTML publishing (lisp/muse-html.el)

*** Fix bug where nested class tags were not working.

*** Fix error that occurred when a class tag had no name element.
In this case, we do not publish the tag at all.

** LaTeX publishing (lisp/muse-latex.el)

*** Escape specials in image filenames properly
Previously, it was not possible to escape "/", "#", or "|" in image
filenames.  In order to make this work, be certain that you have the

\def\museincludegraphics{%
\begingroup
\catcode\|=0
\catcode\\=12
\catcode\#=12
\includegraphics[width=0.75\textwidth]
}

*** Escape specials in the title string in headers
In order to achieve this effect in custom headers, replace

\title{<lisp>(muse-publishing-directive "title")</lisp>}

with

\title{<lisp>(muse-publish-escape-specials-in-string
(muse-publishing-directive "title") 'document)</lisp>}

*** Default to using UTF-8 rather than latin1 in headers.

*** Fix publishing bug in Windows.

*** Escape backslash as \textbackslash{} in monospace regions.

** Publish embedded LaTeX content to a PNG file (lisp/muse-latex2png.el)

*** Detect whether the tag ends at the end of a line.
If not, do not use "$$" to publish it. ** Muse Mode (lisp/muse-mode.el) *** New option: muse-insert-url-initial-input' specifies the initial text to use when reading a URL. *** Fix bug with browsing anchors that come after a link to them. *** Fix bug involving filling and paragraphs next to headings. *** Fill definition lists with two initial spaces in lines after the definition list term. ** Project support (lisp/muse-project.el) *** Fix issue that occurred when saving several files at once, where only one of them would make it into the project file-alist. *** If the PAGE argument to muse-project-page-file' is nil, then return the first directory of the project. *** Fix bug where directory names without slashes in projects were not being recognized. ** Publishing (lisp/muse-publish.el) *** New tag <br> represents a line break when publishing. This is supported in all publishing styles except for DocBook, which has no notion of line breaks without stylesheet hacks. *** Treat "---" as an mdash. Before, it would publish as an mdash followed by a single dash. *** Escape specials properly in footnotes in several styles. *** Fix bug with publishing plain URLs. *** Fix bad escaping of image links. *** Save match adta in muse-publish-classify-url'. ** Wiki-like behavior (lisp/muse-wiki.el) *** Display <nop> tags correctly. *** Publish <nop> tags correctly. * Changes in Muse 3.11 ** Update my example settings in examples/mwolson. ** Fix several bugs with setting muse-file-extension to something else. If you have both muse-file-extension set to some string, and muse-mode-auto-p set to non-nil, please set muse-mode-auto-p to nil from now on. This was a workaround that some people used to deal with a bug that has now been fixed. ** Support for serving published Muse files with Blosxom. See the end of the Blosxom Requirements section of the Muse manual for details. ** The metadate plugin for PyBlosxom is now included with Muse in contrib/pyblosxom/metadate.py. ** Compatibility fixes for Emacs21 and XEmacs *** Use copy-tree instead of copy-alist. *** Correctly require derived.el. *** Deal with the lack of a delete-and-extract-region' function in XEmacs by making muse-delete-and-extract-region'. *** Fix XEmacs and Texinfo publishing bug. *** Deal with lack of autoloads for the man' function in some Emacs variants. *** Fix XEmacs compilation error in muse-import-xml.el. ** Muse Mode highlighting (lisp/muse-colors.el) *** Fix display bug where emphasis becomes unhighlighted when moving around the buffer. ** ConTeXt publishing (lisp/muse-context.el) *** Add support for #module directive. Consult the ConTeXt section of the Muse manual for details. ** DocBook publishing (lisp/muse-docbook.el) *** Fix bug with paragraphs after <verse> tags. ** HTML publishing (lisp/muse-html.el) *** Fix bug with links not being interpreted in titles. This fix also takes care of some additional escaping issues that were addressed in the previous release by a different means. ** Journal (lisp/muse-journal.el) *** Fix bug with title anchors and CJK. *** Fix bug with summarized entries. ** LaTeX publishing (lisp/muse-latex.el) *** Remove footnote references from headings. The reason for this is that LaTeX will throw errors during the publishing process if they exist. ** Publishing (lisp/muse-publish.el) *** Fix serious bug in definition list publishing. We were skipping past the initial indented line, and that was causing an erroneous blockquote to be inserted. *** Revert fix for escaping bug involving headings and the <contents> tag, because it was buggy. This is instead handled by muse-html.el now. ** Texinfo publishing (lisp/muse-texinfo.el) *** Make url, link, and link-and-anchor output look better in texi2html output, for people who want to run that command on texi output produced by Muse. ** XML publishing (lisp/muse-xml.el) *** Add support for <cite> tag. *** Bump the version of etc/muse.rnc to 1.1 to reflect support for <cite>. ** Muse Manual (texi/muse.texi) *** Document support for citations in new Citations section. *** Document how to use the Pyblosxom metadate plugin in the Blosxom Requirements section. * Changes in Muse 3.10 ** Relicense to GPLv3. ** Muse's source code development is now being managed with git. Instructions for participating in Muse development using git are available in the "Development" section of the Muse manual. This yields not only speed improvements, but also space efficiency improvements. One person has found that Arch took 300MB to store one of Muse's branches, but git takes only 4MB. The information to store the entire Muse development history only takes up 8.6MB. If you are a Muse developer, please consult http://emacswiki.org/cgi-bin/wiki/MuseDevelopment for instructions on using git, and how to gain access to the shared Muse repository. ** Remove unused markers when we are done with them. This can speed up the publishing process. ** Build system *** Rename Makefile.defs to Makefile.defs.default. Now, there is a Makefile.defs.default file included with Muse, rather than Makefile.defs. If you want to make changes to this file, first copy it to Makefile.defs, and then make your changes there. If you do not need to make any changes, there is no need to copy the file. *** Indicate dependencies between Emacs Lisp files, so that Muse can be recompiled without running "make clean" after an update. *** Don't activate VC when publishing files. This avoids some annoying messages when building QuickStart in the examples directory. *** Make installing info files easier for XEmacs users. There is now a commented-out install-info definition in Makefile.defs.default, along with commented instructions. ** Quickstart guide (examples/QuickStart.muse) *** Fix some typos. ** Core functionality (lisp/muse.el) *** Work around a bad bug in color-theme.el involving its overwriting of the replace-in-string' function. *** Fix a bug where Muse would lock up if muse-project-alist is nil. *** New option: muse-completing-read-function. Function to call when prompting user to choose between a list of options. This should take the same arguments as completing-read'. One possible value for this is 'ido-completing-read. The default value is 'completing-read. *** Make inserting file contents and writing files to be faster. This involves defining the functions muse-insert-file-contents' and muse-write-file'. Consult their documentation for details. ** Muse Mode highlighting (lisp/muse-colors.el) *** Comments are now colored. *** Fix bug with using <lisp> tags in #title directives. Now any <lisp> tags in #title directives are guaranteed to be evaluated after any other <lisp> tags that are nearby. ** ConTeXt publishing (lisp/muse-context.el) *** New file courtesy of Jean Magnan de Bornier that publishes files in the ConTeXt format. See the ConTeXt section of the Muse manual for details on its use. ** Journal (lisp/muse-journal.el) *** Fix bug causing RDF output to have invalid syntax. *** Make RSS output look nicer by adding some newlines. *** Allow <lisp> and <markup> tags to be used in entry templates. *** Fix escaping bugs in entry template text, quote-of-the-day, and title. *** Mark up the <qotd> tag as if it <quote> were used. *** New style journal-rss-entry indicates how we are to mark up individual RSS and RDF entries. *** Set muse-journal-rdf-summarize-entries' to nil by default. ** HTML publishing (lisp/muse-html.el) *** Add xhtml1.0 style, which is an alias for the xhtml style. *** Add xhtml1.1 style for those who want XHTML 1.1 compliant output. *** When publishing <contents>, only strip links from titles, rather than every tag. ** Muse Mode (lisp/muse-mode.el) *** Add new minor mode called muse-list-edit-minor-mode. See the "Muse List Edit Minor Mode" section of the manual for details. *** Don't try to indent line before inserting a comment. ** Publish embedded LaTeX content to a PNG file (lisp/muse-latex2png.el) *** Support ConTeXt. ** Project settings (lisp/muse-project.el) *** Handle nested projects correctly. Now it is possible to have the directories of a project be the subdirectories of another project. Previously, it depended on the order that the projects were defined. *** Set project-specific variables at publish time as well as display time. Previously, the variable settings specified by the :set attribute in muse-project-alist projects were being ignored at publish time, but applied in Muse mode. Now they are applied at both times. *** Fix bug when publishing a file that has multiple styles. *** Fix bug when trying to publish a file in a project with multiple directories. *** Fix bug where links between files did not work if muse-file-extension is nil. *** Ignore .git metadata directories when looking for project files. ** Publishing (lisp/muse-publish.el) *** Add <cite> tag. See "Tag Summary" in the manual for details on its use. *** Fix bug where Muse locks up when trying to publish a malformed table. *** Fix bug where tags other than <markup> and <lisp> were being acted on in headers and footers. *** Fix bug involving use of <lisp> inside of an <include> file. *** Fix bug with nested list items that have an extra blank in front. This was causing Muse to lock up when publishing some files. *** Fix bug with definition list publishing when there are empty terms. *** Fix bug where output from <verse> did not match output from verse syntax. *** Fix bug where directives were leaking out of <include> regions. *** Fix escaping bug involving headings and the <contents> tag. *** [Developers] Automatically widen before evaluating <lisp> contents. ** Wiki (lisp/muse-wiki.el) *** Fix a bug with three-part links that have descriptions. *** (muse-wiki-resolve-project-page): If the project argument is nil, default to the current project instead of the first project entry in muse-project-alist. ** Common functionality used by XML-based styles (lisp/muse-xml-common.el) *** Don't escape parentheses in URLs. * Changes in Muse 3.03 ** An emacs-wiki migration guide is available in etc/emacs-wiki-migration.txt. ** Ideas for the future and planned time of implementation can be found in etc/IDEAS.muse. ** Core functionality (lisp/muse.el) *** Fix an XEmacs beta byte-compiler issue. *** Fix failure to recognize the .muse file extension. Handle the case where the user customizes the file extension. *** It is now easier to indicate that Muse should not use a file extension. Just do the following. (setq muse-file-extension nil muse-mode-auto-p t) If you visit a Muse file in your .emacs, however, and do not want a file extension, then you must still do the following beforehand. (add-hook 'find-file-hooks 'muse-mode-maybe) *** Allow tab characters in explicit links. *** Escape brackets in links, and then un-escape them when displaying the link in a buffer of publishing it. This allows brackets to be safely used in link descriptions and links, as long as you use C-c TAB l', C-c TAB u', C-c C-e', or automatic Planner annotations. *** Ensure that no recursive load situation can take place. ** Blosxom publishing (lisp/muse-blosxom.el) *** New option: muse-blosxom-use-tags. This specifies whether or not we are using tags. Tags allow a page to belong to multiple categories, but they do not rely on the directory structure for categorization. *** Use find-file' as the browsing function. *** New example script: contrib/pyblosxom/make-blog. This shows how to invoke contrib/pyblosxom/getstamps.py. ** Book publishing (lisp/muse-book.el) *** It is now possible to publish a book using a muse-project-alist entry. See the "Book" section of the manual for details and an example. ** DocBook publishing (lisp/muse-docbook.el) *** A bug with multiple-stanza verses has been fixed. ** HTML publishing (lisp/muse-html.el) *** Make sure spaces in URLs get escaped properly. *** Make the Table of Contents CSS easier to customize. For an example, see examples/mwolson/stylesheets/screen.css. *** Make Table of Contents publishing work with Planner. *** Fix a paragraph detection bug for paragraphs that occur after verses. *** New tag: <src> This tag is used to colorize (using HTML) source code of any language for which Emacs has a mode available. The "lang" attribute determines the mode to call on the region. Muse will look for the LANG-mode function, call it, and then call htmlize. You will need htmlize 1.34 or later for this to work. If a non-HTML publishing style is used, this will be published the same as an <example> region. ** Importing LaTeX documents (lisp/muse-import-latex.el) *** Rename from muse-convert.el, since Muse can now import other formats as well. ** Journal (lisp/muse-journal.el) *** New option: muse-journal-rss-heading-regexp. Determine the regexp to use when searching for an RSS heading. *** Make sure that the date is in a format that RSS readers can handle. ** LaTeX publishing (lisp/muse-latex.el) *** New publishing styles: slides and slides-pdf. This allows you to use Beamer to publish slides. *** New publishing styles: lecture-notes and lecture-notes-pdf. These are similar to the slides styles, but are suitable for publishing lecture notes. *** New option: muse-latex-pdf-program. The program to call in order to generate PDF content from LaTeX content. *** New option: muse-latex-pdf-cruft. The extensions of files to remove after generating PDF output successfully. *** Improve escaping of specials. *** Use \label{} and \ref{} for anchors and anchor references. *** Emphasize table elements. *** Improve table generation. *** Use \url{} to publish bare URLs. *** Handle case where a Muse page begins with a quote character. *** Handle case where the path to the Muse source contains a tilde character in one of the parent directories. It is still possible to run into this problem if you publish outside of a directory that has a tilde, but with a source file that does have one -- this was deemed to be a very unlikely case. *** Display footnotes when we have both a URL and description. This makes the URLs show up on printed documents in a sensible fashion. *** Escape the "@" character in the entire document. *** Make images take up 75% of the width of the page. *** New option: muse-latex-permit-contents-tag. This specifies whether we should take action on the <contents> tag. *** Allow for definitions to be separated from their terms, much like the way HTML does it by default, if the user puts a blank line or a line break between the term and the definition. If the term and definition are on the same line, they will be that way in the output as well. *** Publish comments using the "%" character, rather than a custom Latex command. ** Publish embedded LaTeX content to a PNG file (lisp/muse-latex2png.el) *** The <latex> tag has been modified to work with styles other than just HTML. It will even leave the region alone if you are publishing a Latex-based publishing style. *** New tag: <math> The <math> tag acts similarly to the <latex> tag, except that it surrounds the region with "" characters first, and makes the resulting image inline. If the first line of the <math> tag begins with 6 spaces, then surround the region with "$$" (or an equivalent markup) instead.  This
has the effect of "centering" the output on its own line.

** Muse Manual (muse.texi)

The rationale for this is that Muse may one day be included with
Emacs, so it should use the same manual license that Emacs itself
uses.  At this point, the matter is not open to debate, unless the FSF
brings it up.

*** Use better style for subsections.

*** Make sure the PDF file for the manual is properly generated.

**** Mention how to customize the WikiName recognition.

*** Extending Muse

**** Move "Common Elements" and "Deriving Styles" chapters here.

*** Tag Summary

**** Mention new tags and updated syntax for some tags.

** Muse Mode (lisp/muse-mode.el)

*** C-c TAB' now inserts an object, prompting the user for which type.
C-c TAB l' inserts a relative link.
C-c TAB t' inserts a Muse tag.
C-c TAB u' inserts a URL.

These keybindings may be modified by editing muse-insert-map'.  Note
that the prompt you get when you hit C-c TAB' will not change.

*** New list-oriented keybindings:
M-RET' inserts a list item.
C->' increases list item indentation.
C-<' decreases list item indentation.

*** Slightly improved speed of flyspell integration

*** Implement searching through Muse files.

**** C-c C-s' performs a search through Muse files.

**** New option: muse-grep-command.
Customize this to specify the command used for searching.  In
particular, "glimpse" is handy.  Check the documentation for this
command for details.

*** Changed keybindings:
C-c C-b' is now muse-find-backlinks'
C-c C-v' is now muse-browse-result'

*** The C-c C-M-t' keybinding can be used in place of C-c C-S-t',
since the latter is not available on some terminals.

*** Remove the C-c C-c keybinding, since it conflicts with other
modes like Planner.

*** Don't require muse-publish.el, since publishing and viewing Muse
files are supposed to be completely separable.

*** Speed up searching for next and previous references.

*** Make filling definition lists work better.

*** Make editing existing links with C-c C-e' work better.

*** Make browsing the resulting page with C-c C-v' work better.

*** Don't throw an error if doing flyspell or following link at
beginning of buffer.

*** When publishing a file with C-c C-t', consult muse-project-alist
and use its publishing styles to intelligently prompt the user as to
the publishing style and output directory.

The old behavior of allowing the file to be published anywhere and
with any style has been moved to C-c C-T'.

*** Clicking mouse-2' now does the right thing when
mouse-yank-at-point is non-nil.

** Muse Mode highlighting (lisp/muse-colors.el)

*** New option: muse-colors-inline-images.
This determines whether or not to inline an image when viewing Muse
source.  The default is to enable this behavior.  This feature is
currently considered to be in a beta state, because finding the real
paths of images consistently has not been worked out.

**** New option: muse-colors-inline-image-method.
This determines how to find an image that we want to inline.  The
default is to look in the current directory.  If set to
'muse-colors-use-publishing-directory, it will look in the directory
where the current page will be published.

**** New function: muse-colors-toggle-inline-images.
This toggles whether images are inlined.

*** Make links blue by default, like most other Emacs modes do.

*** Don't cause a long delay when highlighting remote (Tramp,

*** Make faces conform the namespace better.
muse-link-face' is renamed to muse-link'.
muse-bad-link-face' is renamed to muse-bad-link'.
muse-verbatim-face' is renamed to muse-verbatim'.

*** Handle muse-emphasis faces better.

*** Source-level change: The regexps in muse-colors-markup' are now
permitted to have non-shy groupings.

** New modules

*** lisp/muse-groff.el --  This introduces the publishing styles
"groff" and "groff-pdf".

*** lisp/muse-import-docbook.el -- Convert Docbook XML into Muse format.

*** lisp/muse-import-xml.el -- Helper file for muse-import-docbook.el.

*** lisp/muse-latex2png.el -- Publish embedded LaTeX content to a PNG file.
This introduces the <latex> tag.

*** lisp/muse-xml-common.el -- Common functionality used by XML-based
publishing styles, such as HTML, XML, and DocBook.

*** experimental/muse-mathml.el -- This introduces the "mathml"
publishing style and the <mathml> tag.

*** experimental/muse-protocol-iw.el: Implements a simpler URL-like
interwiki protocol that handles subdirectories.

*** experimental/muse-split.el -- Splits published Muse files into several
smaller files.

** Project settings (lisp/muse-project.el)

*** Introduce the with-muse-project' macro, which makes it easier
to switch to a given Muse project and execute some code.

*** Fix an error with custom-quote'.

*** Ignore buffers that have no associated filename.
This fixes an annoyance where Muse prompts to save BBDB and ERC
buffers before publishing.

*** If we cannot find a project to publish, indicate this in an
error message.  This fixes an infinite loop.

*** Update the file-alist whenever a Muse file is saved.

*** Prevent infinite recursion when updating the file alist.

these for Darcs, SVN, Mercurial, and Bazaar.  Also, don't erroneously
ignore files with "#" in them.

*** Make links to subdirectories work.
The idea is to include as much of the path that is needed in order to
disambiguate the link.  For example: "web/TestPage".

*** New variable: muse-current-output-style.
This holds the output style that is currently being used to publish a
file.

*** Permit non-Muse files in projects to be linked to.

*** Handle relative links to other Muse pages.
Relative links are prefixed with "./" or "../".

*** New option: muse-project-publish-private-files
If this is non-nil (the default), files will be published even if they
have "o-r" permissions set (that is, if no one except the owner and
possibly group are allowed to read them).  To get back the old
behavior, set this to nil.

*** Publishing functions can now be customized on per-project basis
You can now use :publish-project and :publish to specify what function
to call for publishing entire projects or just a single file.
:publish-project is meant to be specified in the first part of a
project entry, along with the directories.  :publish is meant to be
used in a (optionally derived) publishing style: after specifying such
a style, use its name in the latter part of a project entry.

** Publishing (lisp/muse-publish.el)

*** Implement escaping of specials throughout the entire document.
This makes it much easier to publish documents to multiple kinds of
formats, since you no longer have to worry about putting <verbatim>
around specials.

*** Make escaping of specials context-sensitive.
Muse now realizes that URLs, normal document text, <example> regions,
and the like have different special characters to escape.

*** Support nested lists.
Muse now determines the nested level of a list by its initial
whitespace.  Ordered lists, unordered lists, and definition lists can
all be nested.  It is even possible to force a line break in a list
item by inserting a blank line on the same level between the lines.
Blockquotes may also be nested inside of a list.

*** It is now possible to force images to not be inlined.
To accomplish this, place the text "URL:" immediately in front of the

Example: [[URL:http://example.org/image.png]]

*** New interactive function: muse-publish-region.
This command publishes the current region, prompting for the title of
the page (if any) and the style to use.

This is handy for firing off quick blog entries and pasting the result
into a web browser -- for this use case, it is recommended to use the
blosxom-html or blosxom-xhtml styles, as they omit the large header
and footer.

*** Additional arguments for <literal> tag.
The optional "style" and "exact" attributes may now be specified,
which cause text to only be included if the current publishing style
matches some criteria -- the text will be removed otherwise.

Omitting these attributes causes <literal> to behave the same as
usual.

*** Table improvements

**** Support orgtbl-mode style tables.
Here is a quick example of what they look like.  For additional
information, consult the Org Mode manual.

| Name | Phone | Age |
|------+-------+-----|
| Pete |  1234 |  25 |
| Sara |  4321 |  22 |

If you are used to the way that Org Mode publishes these tables, then
customize muse-html-table-attributes' to:

in order to get a similar kind of output.

**** Support table.el-style tables.
tables that are in the format used by table.el.

Currently, table.el tables can only be published for publishing styles
based on HTML, LaTeX, or DocBook.

**** Allow empty elements in tables.

**** Allow initial and trailing whitespace in tables, but strip it
out of the published result.

**** If the #disable-tables publishing directive exists on the current
Muse page, do not generate a table.

*** Require at least once space after "::" in definition lists, so
we avoid an ambiguity with interwiki link syntax.

*** Handle nested emphasis types better.
It should now publish exactly the way it looks in Muse Mode.

*** Preserve whitespace around emdash.
This allows for more flexibility, since some people seem to prefer to
have the emdash directly against the surrounding text, while others
like it to be spaced.

*** Fix paragraph detection when block-level markup comes immediately
after a paragraph.  Examples of block-level markup are: <example>,
verses, lists.

*** Allow the <lisp> tag to take the "markup" attribute.
see the Tag Summary section in the manual for details.

*** Publish image links with descriptions as captioned images.
This has been implemented for all Muse publishing styles.

The major change is that image links with descriptions will be
centered and the description will be displayed just below the image as
a "caption".  Thus, it is meant to only be used as its own paragraph,
not surrounded by other text.  Images without descriptions may still
have surrounding text.

*** Make comments higher priority than tags when publishing,
so that Muse comments within tags get stripped out.

*** Handle properly comments that have no text.

*** Distinguish links and footnotes better.

*** Do the right thing when a footnote reference exists but has no
corresponding footnote.

*** Simplify markup string for anchors.

*** Allow text like "%N%" in markup strings.
This makes it much easier to re-use the same text or put strings in
a different order.

*** Create parent directories when publishing for the first time.

*** Handle case where we are trying to publish a file that has not
been saved.

*** Fix XEmacs issue where text at beginning of buffer is read-only.

*** Allow publishing styles to specify a function to use for
escaping specials in a particular context.  This is especially handy
for HTML URLs, since they have a larger subset of special characters
than normal characters.

See muse-xml-decide-specials' in muse-xml-common.el for details.
This functionality already exists for escaping specials in strings.

*** Don't give an error when trying to define or derive an existing
style.  Just replace it.

*** Get rid of a warning that occurs when batch publishing.

*** Ignore list items that are part of higher-priority constructs
like emphasis.

*** Don't markup emdash in a link, since otherwise it will be
incorrectly escaped.

*** Improve the published descriptions for implicit links and explicit

*** For headers and footers, use a better algorithm to detect whether
we have been given a filename or the real contents.

*** New option: muse-publish-date-format.
Format string of the date used when publishing files.

This specifies which tags may be used when publishing headers and
footers.

*** New option: muse-publish-contents-depth.
This specifies the maximum depth of headings to include with
<contents> tags.

*** Allow muse-publish-markup-buffer' to work even if the buffer
is not associated with a file.

*** Fix a compilation bug with XEmacs beta.

'url-with-image to indicate URLs that have an image as their
description.

*** Self-nested tags are now supported.
Tags with the same name can now be nested inside one another.  This
only applies to the new <quote> tag and the <class> tag currently, but
it may be useful for custom tags as well.

To activate this, set the 4th element in a muse-publish-markup-tag'
to non-nil.  Note that this involved a change to the structure of
muse-publish-markup-tag', so be sure to change any custom tags
appropriately.

*** Fix bug with WikiName link descriptions and PDF output.

*** New convenience function: muse-style-derived-p
The new muse-style-derived-p function allows you to make custom tags
or inline <lisp> code that acts differently depending on whether the
current style is derived from (or equal to) another style.

For an example of its use, see muse-publish-latex-tag' in
lisp/muse-latex2png.el.

*** New tags, see the Tag Summary section in the manual for details

**** <comment> -- Designate entire regions as comments.

**** <include> -- Insert the given file at publish time.

**** <markup> -- Mark up the text between the initial and ending tags.

**** <perl> -- Evaluate perl code.

**** <python> -- Evaluate python code.

**** <quote> -- Publish the region as a blockquote.

**** <ruby> -- Evaluate ruby code.

** Texinfo publishing (lisp/muse-texinfo.el)

*** Escape commas in URLs.

*** Make it so that links to other info or PDF documents use the proper
suffix.

*** Handle case where the path to the Muse source contains a tilde
character in one of the parent directories.  It is still possible to
run into this problem if you publish outside of a directory that has a
tilde, but with a source file that does have one -- this was deemed to
be a very unlikely case.

** URL protocols (lisp/muse-protocols.el)

DOI's (digitial object identifiers) are a standard identifier used in
the publishing industry.

*** Add support for "dict:" URLs.
This is used to look up terms on the Wikipedia website.

**** New option: muse-wikipedia-country.
This specified the country code to use for Wikipedia.

*** Add support for "woman:" URLs.
"woman" links are opened with Emacs' internal manpage viewer.

** Wiki (lisp/muse-wiki.el)

*** Three-part links (example: Project::File#anchor) now work.

*** New option: muse-wiki-wikiword-match-project-files.
Whether to extend WikiName functionality to also match
existing filenames, regardless of whether they are named in
WikiWord format.

If non-nil, Muse will color and publish implicit links to any
file in your project.  The default is nil.

Whether to ignore implicit links to the current page.

If non-nil, Muse will not recognize implicit links to the current
page, both when formatting and publishing.

*** For interwiki links, prefer files that have the same file extension
as the current file.

*** Check the entire explicit link for a project name or complete
interwiki link, not just part of it.  This allows page names with
invalid WikiName characters to be referred to by using an explicit

*** If the document does not have a valid title string, use the
empty string.

*** Take the value of muse-wiki-hide-nop-tag' into account.

*** Match filenames in the project before the general WikiWord
regexp.

*** Fix some bugs.

** XML publishing (lisp/muse-xml.el)

*** The Muse XML schema has been moved from examples/muse.rnc
to etc/muse.rnc.

*** Update muse.rnc to handle nested list items.

*** Fix table generation when some attributes are not given.

* Changes in Muse 3.02.8

** Building Muse

*** Compile the contents of the contrib directory.

*** The debian/ directory has been moved into its own branch.
It is now available at mwolson@gnu.org--2006/muse--debian--0.

*** Further parametrize the build system, so that it can be easily
used by other Emacs Lisp projects.

** CGI library (contrib/cgi.el)

*** Make this not depend on cl.el at runtime.

*** Re-add the example calendar application.

** HTTP daemon (contrib/httpd.el)

*** Update this to work with newer versions of Emacs.

* Changes in Muse 3.02.7

** Muse Mode highlighting (lisp/muse-colors.el)

*** Fix bug that caused Muse not to work with recent builds of Emacs 22.

* Changes in Muse 3.02.6

** Building Muse

file at build time.

** HTML publishing (lisp/muse-html.el)

*** Don't escape "%" and "+" in URLs.

** Muse Mode (lisp/muse-mode.el)

*** <lisp> tags are now evaluated at display time.
The actual contents of the buffer will not change, just the displayed
text.  To toggle this behavior, set muse-colors-evaluate-lisp-tags'.

** Publishing (lisp/muse-publish.el)

*** When errors happen during publishing, a more explanatory message
is displayed.

*** It is now possible to specify non-breaking-space with "~~"
(two tildes).  This helps prevent proper names from being split up in
the output.

*** Escape specials in all forms of emphasis.

*** Escape "[" and "]" in links that are entered using muse-make-link.

*** Errors from invalid lisp code in a <lisp> tag will be published
as a comment.  If you have muse-publish-comments-p' set to nil, the
effect is to remove the error message.

*** Fix several publishing issues involving comments and numbered lists.

** Wiki (lisp/muse-wiki.el)

now handled properly.

** XML publishing (lisp/muse-xml.el)

*** The XML publishing style is now considered stable.
Its schema is available in examples/muse.rnc'.

* Changes in Muse 3.02.5

** LaTeX publishing (lisp/muse-latex.el)

*** Use a better algorithm for determining how many times we need to
2 passes.

** Muse Mode (lisp/muse-mode.el)

*** The 3 levels of emphasis now have corresponding muse-emphasis-N faces.
This permits the user to customize them, which may be useful if a font
does not have italic and/or bold versions.

*** Visiting pages with anchors works better.

*** Fix fill bug with semicolons in the middle of paragraphs.

*** Fix a bug with editing the link at point.

*** Fix a display bug with text like =<verbatim><example></verbatim>=.

** Project settings (lisp/muse-project.el)

*** Fix an edge case that yielded a stringp: nil error.

*** Prevent auto-save files from being recognized as Muse files.

** Wiki (lisp/muse-wiki.el)

*** By default, WikiWords can have consecutive capital letters.

*** Fix an error that occurs when muse-colors is not loaded.

*** It is now possible to specify a suffix for WikiWord links.
For example: WikiName''''s.  The WikiName part will be displayed and
colored as a link, but the "s" will be left alone.

* Changes in Muse 3.02.02

** Configuration

*** A bug with customizing muse-project-alist' has been fixed.

*** We use a file extension for Muse files by default.
To obtain the old behavior, set muse-file-extension' to nil and
muse-mode-auto-p' to t.

To go along with the new behavior, be sure to rename all of your Muse
files to have a ".muse" extension.

*** New option: muse-wiki-ignore-bare-project-names'.
This causes Muse to ignore bare project names if specified.  The
default is to turn bare project names into links.

*** New option: muse-publish-comments-p'.
This causes Muse to publish comments as markup.  The default is to
remove comments before publishing rather than trying to mark them up.

*** New option: muse-wiki-allow-nonexistent-wikiword'.
Enabling this will cause WikiWords with no corresponding file to be
colored as bad links.  The default is not to color them and turn them

** Muse Mode (lisp/muse-mode.el)

*** An error with intangible links has been fixed.

*** Visiting a page with an anchor works better than before.

*** Flyspell behaves better with Emacs21 than before.

*** Links to nonexistent files will be colored red by default.
This happened previously, but the algorithm was buggy and didn't cover

** Project handling (lisp/muse-project.el)

*** A convenience macro called with-muse-project' has been added.
This allows a code block to be executed after changing the current
Muse project.  It is analogous to emacs-wiki's
with-emacs-wiki-project' function.

** Publishing (lisp/muse-publish.el)

*** An issue involving anchors at the end of a line has been

*** Non-word characters are now allowed before an anchor.

*** Comments may now be published, if desired.
This behavior may be controlled with the muse-publish-comments-p'
option.  The default is to remove comments before publishing rather
than trying to mark them up.

*** Publishing directives may now include a dash character.

** LaTeX publishing (lisp/muse-latex.el)

*** A bug with footnotes has been addressed.
An attempt has been made to make generated footnote markup look more
"natural" to experienced LaTeX users.

*** Table headers are underlined and table footers are overlined.

*** PDF publishing will cause pdflatex to be called as needed.
The previous behavior was to always call pdflatex twice.  Currently,
if pdflatex succeeds, it will not be called again.  Otherwise, call it
up to three times.

*** Escaping of special characters should be drastically improved.
An attempt has been made to get escaping done right in most contexts.
The only quirk is that you must surround dollar signs with equal signs
to ensure escaping.  This makes publishing PDF documents much more
useful.

** Texinfo publishing (lisp/muse-texinfo.el.el)

*** An attempt was made to hone some of the markup.

* Changes in Muse 3.02.01

** Muse Mode (lisp/muse-mode.el)

*** Links should no longer prevent moving the point, and help text for
links should no longer cause errors to occur.

** Project handling (lisp/muse-project.el)

*** muse-project-alist' -- This variable should now save customizations
to the correct form in the .emacs file.  Before, it was saving an
intermediate form of the variable.

If you have used the customize interface in the previous release of
Muse to set muse-project-alist', please do the following to import

- Move the point to where muse-project-alist' is set.
- Type M-: (setq muse-project-alist-using-customize t) RET'.
- Type C-M-x'.
- Type M-x customize-save-variable RET muse-project-alist RET'.

*** muse-project-alist' -- A bug involving the deleting of items
using Emacs21 and XEmacs21 has been fixed.

** Publishing (lisp/muse-publish.el)

*** If 2 or more blank lines separate list or table items, each item
will be published in a separate list or table.

*** The #date directive is now populated by default with the last
modified time of each file, rather than the current time of day.  To
use this value, add '<lisp>(muse-publishing-directive "date")<lisp>'

** HTML publishing (lisp/muse-html.el)

*** muse-xhtml-style-sheet' -- New option that indicates the style
settings to use for XHTML documents.  This may be either a filename or
a string of stylesheet settings.

* Changes in Muse 3.02

** New modules

*** lisp/muse-wiki.el --- Provide automatic linking for WikiWords and
Project names from muse-project-alist' are available for InterWiki
linking by default.  The list of InterWiki names and handlers may be
customized through muse-wiki-interwiki-alist'.

WikiWords that do not correspond with real files will not be displayed
as links nor published as links.  It is expected that this behavior
will be made optional in future versions of Muse.

**** This module includes a few helper functions that may be added to
muse-publish-desc-transforms' in order to modify link descriptions at
publish time.

introduced.  Explicit links are surrounded by brackets, i.e.
and email addresses that are not surrounded by brackets: they will not
be colorized or published if surrounded by double-quotes.

***** muse-wiki-publish-pretty-title' causes words to be Title-cased,
ignoring words like the' and at' which should not be changed.

***** muse-wiki-publish-pretty-interwiki' changes the delimiter of
interwiki links according to the text of the
muse-wiki-interwiki-replacement' option.

*** lisp/muse-protocols.el --- URL protocols that Muse recognizes.
This automatically-included module provides an easily customizable
list of URL protocols, how to browse them, and how to resolve them for
publishing.  Customize muse-url-protocols' to add and remove
protocols.

** Compatibility fixes

*** Muse has been tested with XEmacs 21.4, both Mule and non-Mule versions.
There are no known problems remaining.  To make things work by
default, the iso-8859-1 charset is used as a default option in some
places.

** Configuration

*** muse-file-extension' -- New option that allows the file extension
for Muse files to be specified.  For example, setting this to "muse"
assumes that you have renamed your Muse files with a ".muse"
extension.  Using this (and setting muse-mode-auto-p' to nil) will
prevent miscellaneous non-Muse files from being accidentally opened in
Muse Mode.

*** muse-ignored-extensions' -- New option that determines which file
extensions to omit from the ending of a Muse page name.

*** muse-ignored-extensions-regexp' -- This is no longer customizable.
It will be automatically generated from muse-file-extension' and
muse-ignored-extensions'.

*** muse-project-alist' -- The customize interface for this option has
been greatly improved, and much effort has been spent in order to make
this user-friendly.

*** The :force-publish' tag may be specified in muse-project-alist'.
This causes a particular list of files to be re-created every time the
publishing process is invoked, even if they haven't been changed
according to their timestamps.  One use for this is to keep an index
of available pages by adding the following to a file in this list.

<lisp>(muse-index-as-string t t t)</lisp>

*** muse-project-ignore-regexp' -- By default, version control directories
are now included in this regexp so that they don't appear when you hit
C-c C-f to browse files in a project.

*** The muse-project-alist-styles' and muse-project-alist-dirs' functions
may be used in muse-project-alist' to recursively add styles and
directory listings for a given directory.  The following is an
example.  We use a backtick instead of a single quote to begin the
list.

(setq muse-project-alist
(("Blog"
(,@(muse-project-alist-dirs "~/proj/wiki/blog")  ;; base dir
:default "guestbook")

,@(muse-project-alist-styles "~/proj/wiki/blog"  ;; base dir
;; output dir
"~/personal-site/site/blog"
;; style
"my-blosxom"))))

Note that if you use the customize interface for muse-project-alist',
you will still have to manually add information for any new
sub-directories.

** Debian packaging

*** Debian packages for Muse have entered Debian unstable, thanks

It is possible to roll your own Muse packages if you want to do so.
Packages may be built by using make debrelease', once the proper
options in Makefile.defs are set.  Revisions may be built using make
debrevision'.

The manual and relevant documentation files have been included with
the Debian package for Muse.

** Muse Mode (lisp/muse-mode.el)

*** Allow use of Muse with outline-minor-mode.

*** Filling text does the right thing with list items and footnotes.
List items and footnotes will no longer be concatenated when hitting
M-q in the midst of consecutive items.

*** Links will never be split in the middle when using Fill.

*** Some flyspell crash issues were addressed.
Using intangible text can cause strange problems with flyspell mode.
Hence, by default, the intangible property will be ignored.  A new
option called muse-mode-intangible-links' indicates whether this
should be the case.

*** Links will no longer be highlighted by flyspell.
If you're using XEmacs or Emacs 22, flyspell will ignore links,
unclickable.  If you're using Emacs 21, flyspell will continue to
interfere with links.  If you know how to fix this, please send a
patch!

*** A few edge cases for emphasis and underlining have been addressed.

*** <example>, <verbatim>, and =surrounded text= are now colored using
the new face muse-verbatim-face'.

*** All marked up text properties, like emphasis and underlining,
will be removed for the text between <example>, <verbatim>, <code>,
<literal>, and <lisp> tags.

*** Links to temporary files may be visited.
A "temporary file" in this case is a buffer that is not associated
with any file.  For some dynamic content import scripts with Planner,

*** Typing "#title" should never crash Emacs anymore.

** Muse manual (muse.texi)

*** Document WikiNames.

*** Bring up-to-date with latest features.

*** Massively update Common Elements section.

*** New Directives section.
This describes the use of #title and #author, as well as other
directives that may be used.

Describes the use of "; comment text".

** Publishing (lisp/muse-publish.el)

*** The order of rules should be much improved.
This means that emphasis characters like *' and _' will never be
interpreted as such if they are within links.

*** The user will be notified when muse-publish-this-file' fails to
publish the current file.  This happens when the timestamp of the
current file indicates that it is up-to-date.

*** Special characters are escaped in link descriptions and links on a
more consistent basis.  What defines a "special character" varies
according to the publishing style.

*** Errors that occur during publish time will cause a warning to be
displayed prominently, rather than being ignored.  It should no longer
be possible to mess up a Muse source file by tweaking the Muse
publishing process.

*** Errors in <lisp> tags cause a warning to be displayed and
return "<!--INVALID LISP CODE-->".  Muse will try to continue
publishing the page.

*** An emdash ("--") can now be used after a list, as long as there is
a blank line between the end of the list and the emdash.

*** The <code> tag has been introduced.
It does the same thing that =equal signs= do: escape specials and
publish as teletype text.  Use it for short command snippets and the
like.  <example> is a better choice for large blocks of code, since it
preserves whitespace.

*** An edge case involving links at the beginning of a paragraph

*** An edge case involving consecutive directives of the same size

*** Every publishing style is now capable of specifying strings to use
for sections beyond the third level.

*** Every publishing style may specify an end-of-section string.
This is used, for example, by the experimental XML style and the
DocBook style.

*** Every publishing style may specify a method of handling "internal
the current page.

*** Every publishing style may specify a link suffix to use.
This allows the file extensions in links to other Muse files to be
different from their actual extension.  Blosxom makes use of this
(since its published files are .txt and the dynamically-generated
output is .html), and it could come in handy for PHP stuff.

If a link suffix is not specified via :link-suffix, the value of
:suffix will be used.

** Blosxom publishing (lisp/muse-blosxom.el)

*** muse-blosxom-new-entry: A #category directive is added by default.
Nothing is done with this yet, but it could be handy for tag-based
(multiple category) blogging, once we figure out a good way to do that
in both Muse and Pyblosxom.  Ideas are welcome, and patches even more
so.

** DocBook publishing (lisp/muse-docbook.el)

*** The markup has been comprehensively improved.
Published documents will now pass validation tests and look better in
general.

*** It is now possible to specify the encoding of DocBook documents.
The default encoding is utf-8.

*** Footnotes will be embedded into paragraphs, since this is
The DocBook Way.

*** Tables will be sorted by section.
Headers first, then footers, then the rest of the table.

*** Anchors are now handled correctly and publish to the best available

** HTML publishing (lisp/muse-html.el)

*** Fix minor issue with anchors.

*** Paragraph publishing will no longer insert <div> tags before images.
This was causing too much hassle for some programs that were trying to
extend Muse, like the Muse port of Planner.

*** The &', <', and '>' characters will be escaped using their specific
HTML escape codes, rather than with "&#NNN;".  This makes the
published output display correctly in more web browsers.

*** Use HTML 4.0 Transitional by default for muse-html-header'.

*** Include empty alt element in markup string for images that lack a
description.

*** Tables will be sorted by section.
Headers first, then footers, then the rest of the table.

*** muse-xhtml-extension' -- The default extension for XHTML publishing.
This is a new option.

** Journal publishing (lisp/muse-journal.el)

*** Use "div class=..." rather than "div id=..." for sections.

** LaTeX publishing (lisp/muse-latex.el)

*** A newline will be appended to the default footer for the latex and
latexpdf publishing styles.  This keeps the PDF-building process from
failing due to lack of a newline at end of file.

*** Anchors and links to them now work properly.

*** When generating PDF files, call pdflatex twice.
is due to be published.

*** PDF files with spaces may be published.
A bug preventing this has been fixed.

*** Teletype text is now published using \\texttt{...}.

*** An attempt has been made to escape special characters more
consistently.

** Texinfo publishing (lisp/muse-texinfo.el)

*** Fix a fatal error that occurs when publishing tables.

*** Generate the contents in the header by default rather than the footer.
This is the way that most Texinfo manuals do it.

*** The info-pdf publishing style currently produces the best PDF output
on the maintainer's machine, so it is now used to publish the PDF
version of the Muse Manual.

*** The characters {' and }' will be treated as special characters that
need to be escaped at publish-time.

*** Improve dots and enddots markup strings.

*** Surround underlined text with "_" since Texinfo doesn't seem to have
any better options for producing underlined text.

*** Anchors and links to them now work properly.

`