#!/usr/bin/perl # workaround for dzil package dump_org_structure; BEGIN { $dump_org_structure::VERSION = '0.04'; } # ABSTRACT: Dump Org document structure use 5.010; use strict; use warnings; use open qw(:std :utf8); use Log::Any qw($log); use String::Escape qw(elide printable); use Org::Parser; use Org::Dump; my $input = [<>]; close STDIN; close ARGV; # so perl doesn't add ", <> line xx" upon dying my $doc = Org::Parser->new->parse($input); print Org::Dump::dump_element($doc); __END__ =pod =head1 NAME dump_org_structure - Dump Org document structure =head1 VERSION version 0.04 =head1 SYNOPSIS $ dump-org-structure foo.org $ dump-org-structure < bar.org Given an Org document like this: * Andi Angkasa - email :: andi@example.com - birthday :: [1981-03-31 ] will output something like: Document: Headline: l=1 (title) Text: "Andi Angkasa" (children) List: D(-) indent=0 ListItem: - (description term) Text: "email" (children) Text: " andi@example.com\n" ListItem: - (description term) Text: "birthday" (children) Text: " " Timestamp: dt=1981-03-31T00:00:00 "[1981-03-31 Tue]" Text: "\n" =head1 DESCRIPTION This script parse input using L<Org::Parser> and dump the structure in an outline format. This script is mostly used for debugging. =head1 SEE ALSO L<Org::Parser> =head1 AUTHOR Steven Haryanto <stevenharyanto@gmail.com> =head1 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. =cut