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.