Previous: Projects and Subdirectories, Up: Projects


6.4 Listing of Available Options for Projects

This is a listing of all of the various options (or, more accurately: attributes) that may be specified in muse-project-alist.

Each muse-project-alist entry looks like this:

       (PROJECT-NAME (SOURCES)
         OUTPUTS)

We refer to these names below.

“Attributes”, which compose SOURCES and OUTPUTS, are a pair of values. The first value is a keyword, like :default. The second part is the value associated with that keyword, such as the text “index”. If you are familiar with Emacs Lisp property lists, the concept is similar to that, except that in the SOURCES section, single directories can be interspersed with two-value attributes.

Project Name

This is a string that indicates the name of the project. It is primarily used for publishing interwiki links with the muse-wiki.el module.

Sources

This part of a muse-project-alist entry consists of two-value attributes, and also directory names. If you are publishing a book, the order of directories and attributes is significant.

The minimal content for the sources section is a list of directories.

:book-chapter
Indicates a new chapter of a book. The text of the title of the chapter comes immediately after this keyword.
:book-end
Indicates the end of a book. Directories listed after this one are ignored when publishing a book. The value “t” (without quotes) should come immediately after this keyword.
:book-funcall
A function to call while publishing a book. This is useful for doing something just after a particular chapter.
:book-part
Indicates the beginning of a new part of the book. The text of the title should come immediately after this keyword.
:book-style
Indicate a particular publishing style to use for this part of the book. If this is specified, it should come just after a :part attribute.
:default
The default page to visit when browsing a project. Also, if you are using the muse-wiki.el module, publishing a link to just a project's name will cause it to link to this default file.
:force-publish
This specifies a list of pages which should be published every time a project is published (by using C-c C-p, for example), regardless of whether their contents have changed. This is useful for updating Index pages, pages that use the <include> tag, and other pages that have dynamically-generated content.
:major-mode
This specifies the major mode to use when visiting files in this project. The default is muse-mode.
:nochapters
This indicates that while publishing a book, do not automatically create chapters. Values which may follow this are nil (the default, which means that we automatically create chapters), or non-nil, which means that we manually specify chapters with the :book-chapter attribute,
:publish-project
Indicates which function we should call when publishing a project.
:set
This specifies a list of variables and values to set when publishing a project. The list should be a property list, which is in the form:
          (VAR1 VALUE1 VAR2 VALUE2 ...)

:visit-link
Specifies the function to call when visiting a link. The default is muse-visit-link-default. The arguments for that function should be (1) the link and (2) whether to visit the link in a new window.

Outputs

This part of a muse-project-alist entry is composed of lists of attributes. Each list is called an “output style”.

The minimal content for an output style is a :base attribute and a :path attribute.

:base
Publishing style to use, such as “html”, “docbook”, or “pdf”.
:base-url
An external URL which can be used to access published files. This is mainly used by the muse-wiki module when publishing links between two separate projects, if the projects are served on different domains.

It is also used by the muse-journal module to create the RSS or RDF output.

:exclude
Exclude items matching a regexp from being published. The regexp should usually begin with "/".
:include
Only include items matching a regexp when publishing. The regexp should usually begin with "/".
:path
The directory in which to store published files.
:timestamps
A file containing the timestamps (that is, time of creation) for files in this project. It might eventually used by the muse-blosxom module, but this option is not currently in use by any Muse code.