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;
}