#!/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