.|title|abstract Main.pm|HTML::WebMake::Main|module documentation PerlCodeLibrary.pm|HTML::WebMake::PerlCodeLibrary|module documentation Content.pm|HTML::WebMake::Content|module documentation webmake|webmake(1)|manual page lang_tag.wmk|lang_tag.wmk|allow WebMake to support multi-language output dump_vars.wmk|dump_vars.wmk|dump all WebMake variables and content items sitetree.wmk|sitetree.wmk|WebMake tag to generate a per-page sitemap navtree.wmk|navtree.wmk|WebMake tag to generate an alternative per-page sitemap xsl.wmk|xsl.wmk|apply an XSL stylesheet to XML data, using Sablotron rssbox.wmk|rssbox.wmk|include RSS feeds into your documents safe_tag.wmk|safe_tag.wmk|Tag to ''make safe'' WebMake, EtText or HTML data thumbnail_tag.wmk|thumbnail_tag.wmk|Tag to create ''thumbnail'' links for photo albums download_tag.wmk|download_tag.wmk|Tag for quick download links to files csvtable_tag.wmk|csvtable_tag.wmk|define a HTML table using comma-separated values wwwtable_tag.wmk|wwwtable_tag.wmk|easier HTML table generation using ''freetable'' editbuttons.wmk|editbuttons.wmk|''Edit'' buttons on rendered output <{perl # define a quick tag to mark up screenshots with a nice border. # If I ever get around to make parameterised content references this taglib-style # clunkiness will not be necessary ;) define_empty_tag ("shot", \&make_shot, qw(src)); sub make_shot { my ($tag, $attrs, $text, $self) = @_; return qq{
}; } ''; }> <{perl my @all_files = get_list("all_files"); my @all_pods = get_list("all_pods"); my @all_sects = get_list("all_sections"); foreach my $sectname (@all_sects) { my @files_in_sect = (); foreach my $pg (@all_files, @all_pods) { next unless (get_content ("$pg.section") eq $sectname); push (@files_in_sect, $pg); } @files_in_sect = content_names_to_objects (@files_in_sect); @files_in_sect = sort_content_objects ('score title', @files_in_sect); @files_in_sect = content_objects_to_names (@files_in_sect); set_list ("$sectname.files", @files_in_sect); push (@all_files, "index_$sectname.txt"); } set_list ("all_files", @all_files); ''; }>
    <{perl my @all_sects = get_list("all_sections"); foreach my $sectname (@all_sects) { my @section_list = (); foreach my $pg (get_list ("$sectname.files")) { set_content ("item", $pg); push (@section_list, get_content ("index_template")); } set_content ("section", $sectname); set_content ("section_title", get_content ($sectname)); set_list ("section_list", @section_list); $_ .= get_content ("index_section_template"); } $_; }>
    <{perl my @section_list = (); my $sectname = "${sectname}"; # expanded from for tag above $_ = ''; foreach my $pg (get_list ("$sectname.files")) { set_content ("item", $pg); $_ .= get_content ("index_template"); } $_; }>
${header}${mainsitemap}${footer} ${prevtext} | ${nexttext} ${header}${${pg}}${footer} ${header}${${pg}.txt}${footer} ${header}${index}${footer} ${header}


<{perlout foreach my $sectname (get_list ("all_sections")) { my $pg = "index_$sectname.txt"; print "

". get_content("$pg.title"). "

". get_content($pg). "
\n"; foreach $pg (get_list ("$sectname.files")) { my $shortpg = $pg; $shortpg =~ s/\.txt$//; print "

". get_content("$pg.title"). "

". get_content($pg). "
\n"; } } }> ${footer}