NAME
Org::Export::HTML - Export Org document to HTML
VERSION
version 0.03
SYNOPSIS
use Org::Export::HTML qw(export_org_to_html);
# non-OO interface
my $res = export_org_to_html(
source_file => 'todo.org', # or source_str
#target_file => 'todo.html', # defaults return the HTML in $res->[2]
#html_title => 'My Todo List', # defaults to file name
#include_tags => [...], # default exports all tags.
#exclude_tags => [...], # behavior mimics emacs's include/exclude rule
#css_url => '/path/to/my/style.css', # default none
#naked => 0, # if set to 1, no HTML/HEAD/BODY will be output.
);
die "Failed" unless $res->[0] == 200;
# OO interface
my $oeh = Org::Export::HTML->new();
my $html = $oeh->export($doc); # $doc is Org::Document object
DESCRIPTION
Export Org format to HTML. Currently very barebones; this module is more
of a proof-of-concept for Org::Parser. For any serious exporting,
currently you're better-off using Emacs' org-mode HTML export facility.
This module uses Log::Any logging framework.
This module uses Moo for object system.
This module's functions have Sub::Spec specs.
ATTRIBUTES
naked => BOOL
If set to true, export_document() will not output HTML/HEAD/BODY
wrapping element. Default is false.
include_tags => ARRAYREF
Works like Org's 'org-export-select-tags' variable. See
export_org_to_html() for more details.
exclude_tags => ARRAYREF
After 'include_tags' is evaluated, all subtrees that are marked by any
of the exclude tags will be removed from export.
html_title => STR
Title to use in TITLE element. If unset, defaults to "(no title)" when
exporting.
css_url => STR
If set, export_document() will output a LINK element pointing to this
CSS.
METHODS
$oeh->export($doc)
Export an Org document into HTML. $org is Org::Document object. Returns
$html, which is the HTML string. Dies on error.
$oeh->export_document($doc) => $html
Given an Org::Element::Block element, export it to HTML. Override this
in subclass to provide custom behavior.
$oeh->export_block($elem) => $html
Given an Org::Element::Block element, export it to HTML. Override this
in subclass to provide custom behavior.
$oeh->export_short_example($elem) => $html
Given an Org::Element::ShortExample element, export it to HTML. Override
this in subclass to provide custom behavior.
$oeh->export_comment($elem) => $html
Given an Org::Element::Comment element, export it to HTML. Override this
in subclass to provide custom behavior.
$oeh->export_drawer($elem) => $html
Given an Org::Element::Drawer element, export it to HTML. Override this
in subclass to provide custom behavior.
$oeh->export_footnote($elem) => $html
Given an Org::Element::Footnote element, export it to HTML. Override
this in subclass to provide custom behavior.
$oeh->export_headline($elem) => $html
Given an Org::Element::Headline element, export it to HTML. Override
this in subclass to provide custom behavior.
$oeh->export_list($elem) => $html
Given an Org::Element::List element, export it to HTML. Override this in
subclass to provide custom behavior.
$oeh->export_list_item($elem) => $html
Given an Org::Element::ListItem element, export it to HTML. Override
this in subclass to provide custom behavior.
$oeh->export_radio_target($elem) => $html
Given an Org::Element::RadioTarget element, export it to HTML. Override
this in subclass to provide custom behavior.
$oeh->export_setting($elem) => $html
Given an Org::Element::Setting element, export it to HTML. Override this
in subclass to provide custom behavior.
$oeh->export_table($elem) => $html
Given an Org::Element::Table element, export it to HTML. Override this
in subclass to provide custom behavior.
$oeh->export_table_row($elem) => $html
Given an Org::Element::TableRow element, export it to HTML. Override
this in subclass to provide custom behavior.
$oeh->export_table_cell($elem) => $html
Given an Org::Element::TableCell element, export it to HTML. Override
this in subclass to provide custom behavior.
$oeh->export_table_vline($elem) => $html
Given an Org::Element::TableVLine element, export it to HTML. Override
this in subclass to provide custom behavior.
$oeh->export_target($elem) => $html
Given an Org::Element::Target element, export it to HTML. Override this
in subclass to provide custom behavior.
$oeh->export_text($elem) => $html
Given an Org::Element::Text element, export it to HTML. Override this in
subclass to provide custom behavior.
$oeh->export_time_range($elem) => $html
Given an Org::Element::TimeRange element, export it to HTML. Override
this in subclass to provide custom behavior.
$oeh->export_timestamp($elem) => $html
Given an Org::Element::Timestamp element, export it to HTML. Override
this in subclass to provide custom behavior.
$oeh->export_link($elem) => $html
Given an Org::Element::Link element, export it to HTML. Override this in
subclass to provide custom behavior.
FUNCTIONS
None is exported by default, but they can be.
export_org_to_html(%args) -> [STATUS_CODE, ERR_MSG, RESULT]
Export Org document to HTML.
This is the non-OO interface. For more customization, consider
subclassing Org::Export::HTML.
Returns a 3-element arrayref. STATUS_CODE is 200 on success, or an error
code between 3xx-5xx (just like in HTTP). ERR_MSG is a string containing
error message, RESULT is the actual result.
Arguments ("*" denotes required arguments):
* css_url => *str*
Add a link to CSS document.
* exclude_tags => *array*
Exclude trees that carry one of these tags.
After 'include_tags' is evaluated, all subtrees that are marked by
any of the exclude tags will be removed from export.
* html_title => *str*
HTML document title, defaults to source_file.
* include_tags => *array*
Include trees that carry one of these tags.
Works like Org's 'org-export-select-tags' variable. If the whole
document doesn't have any of these tags, then the whole document
will be exported. Otherwise, trees that do not carry one of these
tags will be excluded. If a selected tree is a subtree, the heading
hierarchy above it will also be selected for export, but not the
text below those headings.
* naked => *bool*
Don't wrap exported HTML with HTML/HEAD/BODY elements.
* source_file => *str*
Source Org file to export.
* source_str => *str*
Alternatively you can specify Org string directly.
* target_file => *str*
HTML file to write to.
If not specified, HTML string will be returned.
SEE ALSO
Org::Parser
AUTHOR
Steven Haryanto
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Steven Haryanto.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.