sub single_narrative()

in ARCHIVE/OLD-from-apache-cms/lib/view.pm [30:93]


sub single_narrative {
    my %args = @_;
    my $file = "content$args{path}";
    my $template = $args{template};
    $args{path} =~ s/\.mdtext$/\.html/;
    $args{breadcrumbs} = breadcrumbs($args{path});
    $args{svninfo} = svninfo($file);

    read_text_file $file, \%args;

    $args{refs} = {};

    # render tip box with reference to Confluence export
    # if translation for a page is still pending
    if($args{headers}->{translation_pending}) {
        $args{oldpage} = "/site/" . basename($args{path});
    }

    # ensure loading child pages
    my $page_path = $file;
    $page_path =~ s/\.[^.]+$//;
    if (-d $page_path) {
        $args{children} = {};
        for my $f (grep -f, glob "$page_path/*.mdtext") {
            $f =~ m!/([^/]+)\.mdtext$! or die "Bad filename: $f\n";
            $args{children}->{$1} = read_ref_page_data($f);
            $args{refs}->{$1} = $args{children}->{$1};
        }
    }

    # ensure loading pages referenced with ref.XXX.*    
    while( $args{content} =~ /refs\.([^.]+)\./g ) {
        my $label = $1;
        if(!$args{refs}->{$label}) {
            my $refPagePath;
            find(sub {
                if(!$refPagePath && $_ eq "$label.mdtext") {
                    $refPagePath = $File::Find::name;
                }
            }, "content");
            
            if($refPagePath) {
                $args{refs}->{$label} = read_ref_page_data($refPagePath);
            }
        }
    }

#	$args{sidenav} = {};
#	read_text_file "templates/sidenav.mdtext", $args{sidenav} ;

#	select STDOUT ;
#	$| = 1 ;
#	for my $ke (keys %args) {
#		print STDOUT "$ke \n";
#	}

    # use the content as a template if it contains Django templates
    if ($args{content} =~ /\{[{%][^}]*[%}]\}/) {
        print STDOUT "Applying $args{path} as a Django template\n";
        $args{content} = Dotiac::DTL->new(\$args{content})->render(\%args);
    }
    
    return Dotiac::DTL::Template($template)->render(\%args), html => \%args;
}