++ed by:
Marco Pessotto

NAME

Text::Amuse - Perl module to generate HTML and LaTeX documents from Emacs Muse markup.

VERSION

Version 0.04

SYNOPSIS

Typical usage which should illustrate all the public methods

    use Text::Amuse;
    my $doc = Text::Amuse->new(file => "test.muse");
    
    # get the title, author, etc. as an hashref
    my $html_directives = $doc->header_as_html;
    
    # get the table of contents
    my $html_toc = $doc->toc_as_html;
    
    # get the body
    my $html_body = $doc->as_html;
    
    # same for LaTeX
    my $latex_directives = $doc->header_as_latex;
    my $latex_body = $doc->as_latex;
    
    # do we need a \tableofcontents ?
    my $wants_toc = $doc->wants_toc; # (boolean)
    
    # files attached
    my @images = $doc->attachments;
    
    # at this point you can inject the values in a template, which is left
    # to the user. See the bundled muse-quick.pl for a real-life usage.
    

CONSTRUCTOR

new (file => $file)

Create a new Text::Amuse object. You should pass the named parameter file, pointing to a muse file to process. Please note that you can't pass a string. Build a wrapper going through a temporary file if you need to pass strings.

document

Accessor to the Text::Amuse::Document object. [Internal]

HTML output

as_html

Output the HTML document (and cache it in the object)

header_as_html

The directives of the document in HTML (title, authors, etc.), returned as an hashref.

Please note that the keys are not escaped nor manipulated.

toc_as_html

Return the HTML formatted ToC, as a string.

as_splat_html

Return a list of strings, each of them is a html page resulting from the splitting of the as_html output. Linked footnotes as inserted at the end of each page.

raw_html_toc

Return an internal representation of the ToC

LaTeX output

as_latex

Output the (Xe)LaTeX document (and cache it in the object), as a string.

wants_toc

Return true if a toc is needed because we found some headings inside.

header_as_latex

The LaTeX formatted header, as an hashref. Keys are not interpolated in any way.

Helpers

attachments

Report the attachments (images) found, as a list. This can be invoked only after a call (direct or indirect) to as_html or as_latex, or any other operation which scans the body, otherwise you'll get an empty list.

language_code

The language code of the document. This method will looks into the header of the document, searching for the keys lang or language, defaulting to en.

language

Same as above, but returns the human readable version, notably used by Babel, Polyglossia, etc.

DIFFERENCES WITH THE ORIGINAL EMACS MUSE MARKUP

Inline markup

Underlining has been dropped.

Emphasis and strong can also be written with tags, like <em>emphasis</em>, <strong>strong</strong> and <code>code</code>.

Added tag <sup> and <sub> for superscript and subscript.

Block markup

Description lists have been dropped. (Lists work as usual).

The only tables supported are the native one (with ||| as separator).

Others

Anchors are unsupported (mainly because of the confusing syntax and the PDF output).

Embedded lisp code and syntax highlight is not supported.

Exoteric stuff like citing from other resources is not supported.

The scope of this module is not to replicate all the features of the original implementation, but to use the markup for a wiki (as opposed as a personal and private wiki).

AUTHOR

Marco Pessotto, <melmothx at gmail.com>

BUGS

Please report any bugs or feature requests to the author's email. If you find a bug, please provide a minimal muse file which reproduces the problem (so I can add it to the test suite).

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Text::Amuse

Repository available at Gitorious: https://gitorious.org/text-amuse

SEE ALSO

The original documentation for the Emacs Muse markup can be found at: http://mwolson.org/static/doc/muse/Markup-Rules.html

LICENSE

This module is free software and is published under the same terms as Perl itself.




Hosting generously
sponsored by Bytemark