File Coverage

blib/lib/Text/Amuse/Compile/MuseHeader.pm
Criterion Covered Total %
statement 117 122 95.9
branch 39 46 84.7
condition 8 12 66.6
subroutine 26 26 100.0
pod 5 5 100.0
total 195 211 92.4


line stmt bran cond sub pod time code
1             package Text::Amuse::Compile::MuseHeader;
2              
3 58     58   386 use Moo;
  58         121  
  58         372  
4 58     58   17384 use Types::Standard qw/HashRef Bool Str ArrayRef/;
  58         121  
  58         503  
5 58     58   45649 use Text::Amuse::Functions qw/muse_format_line/;
  58         140  
  58         3441  
6 58     58   350 use Text::Amuse::InlineElement;
  58         153  
  58         100369  
7              
8             =head1 NAME
9              
10             Text::Amuse::Compile::MuseHeader - Module to parse muse metadata
11              
12             =head1 DESCRIPTION
13              
14             This class is still a work in progress.
15              
16             =head1 METHODS
17              
18             =head2 new(\%header)
19              
20             Constructor. It accepts only one mandatory argument with the output of
21             muse_fast_scan_header (an hashref).
22              
23             =head2 wants_slides
24              
25             Return true if slides are needed. False if C<#slides> is not present
26             or "no" or "false".
27              
28             =head2 header
29              
30             The cleaned and lowercased header. Directives with underscores are
31             ignored.
32              
33             =head2 title
34              
35             Verbatim header field
36              
37             =head2 subtitle
38              
39             Verbatim header field
40              
41             =head2 listtitle
42              
43             Verbatim header field
44              
45             =head2 listing_title
46              
47             Return listtitle if set, title otherwise.
48              
49             =head2 author
50              
51             Verbatim header field
52              
53             =head2 language
54              
55             Defaults to en if not present.
56              
57             =head2 topics
58              
59             An arrayref with topics from C, C and C
60             fields. The C field is meant to be reserved from fixed category
61             list, so it splits at space too, while the others split at semicolon
62             (if present) or at comma.
63              
64             =head2 authors
65              
66             An arrayref with the authors from C and C
67             fields.
68              
69             Fields split at semicolon if present, otherwise at comma.
70              
71             =head2 topics_as_html_list
72              
73             Same as C, but returns a plain list of HTML formatted topics.
74              
75             =head2 authors_as_html_list
76              
77             Same as C, but returns a plain list of HTML formatted authors.
78              
79             =head2 tex_metadata
80              
81             Return an hashref with the following keys: C C<author> </td> </tr> <tr> <td class="h" > <a name="82">82</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> C<subject> C<keywords> with the values LaTeX escaped, mapping to the </td> </tr> <tr> <td class="h" > <a name="83">83</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> relevant headers values for setting PDF metadata. </td> </tr> <tr> <td class="h" > <a name="84">84</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="85">85</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head1 INTERNALS </td> </tr> <tr> <td class="h" > <a name="86">86</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="87">87</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =head2 BUILDARGS </td> </tr> <tr> <td class="h" > <a name="88">88</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="89">89</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> Moo-ifies the constructor. </td> </tr> <tr> <td class="h" > <a name="90">90</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="91">91</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> =cut </td> </tr> <tr> <td class="h" > <a name="92">92</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="93">93</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub BUILDARGS { </td> </tr> <tr> <td class="h" > <a name="94">94</a> </td> <td class="c3" > 356 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#94-1"> 356 </a> </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#94-1"> 1 </a> </td> <td > 438372 </td> <td class="s"> my ($class, $hash) = @_; </td> </tr> <tr> <td class="h" > <a name="95">95</a> </td> <td class="c3" > 356 </td> <td class="c0" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#95-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1432 </td> <td class="s"> if ($hash) { </td> </tr> <tr> <td class="h" > <a name="96">96</a> </td> <td class="c3" > 356 </td> <td class="c0" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#96-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1746 </td> <td class="s"> die "Argument must be an hashref" unless ref($hash) eq 'HASH'; </td> </tr> <tr> <td class="h" > <a name="97">97</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="98">98</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> else { </td> </tr> <tr> <td class="h" > <a name="99">99</a> </td> <td class="c0" > <a href="#106"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> die "Missing argument"; </td> </tr> <tr> <td class="h" > <a name="100">100</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="101">101</a> </td> <td class="c3" > 356 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1892 </td> <td class="s"> my $directives = { %$hash }; </td> </tr> <tr> <td class="h" > <a name="102">102</a> </td> <td class="c3" > 356 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 918 </td> <td class="s"> my %lowered; </td> </tr> <tr> <td class="h" > <a name="103">103</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> DIRECTIVE: </td> </tr> <tr> <td class="h" > <a name="104">104</a> </td> <td class="c3" > 356 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1500 </td> <td class="s"> foreach my $k (keys %$directives) { </td> </tr> <tr> <td class="h" > <a name="105">105</a> </td> <td class="c3" > 994 </td> <td class="c0" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#105-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 2638 </td> <td class="s"> if ($k =~ m/_/) { </td> </tr> <tr> <td class="h" > <a name="106">106</a> </td> <td class="c0" > <a href="#107"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> warn "Ignoring $k directive with underscore\n"; </td> </tr> <tr> <td class="h" > <a name="107">107</a> </td> <td class="c0" > <a href="#111"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> next DIRECTIVE; </td> </tr> <tr> <td class="h" > <a name="108">108</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="109">109</a> </td> <td class="c3" > 994 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2278 </td> <td class="s"> my $lck = lc($k); </td> </tr> <tr> <td class="h" > <a name="110">110</a> </td> <td class="c3" > 994 </td> <td class="c0" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#110-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 2425 </td> <td class="s"> if (exists $lowered{$lck}) { </td> </tr> <tr> <td class="h" > <a name="111">111</a> </td> <td class="c0" > <a href="#147"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> warn "Overwriting $lck, directives are case insensitive!\n"; </td> </tr> <tr> <td class="h" > <a name="112">112</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="113">113</a> </td> <td class="c3" > 994 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2532 </td> <td class="s"> $lowered{$lck} = $directives->{$k}; </td> </tr> <tr> <td class="h" > <a name="114">114</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="115">115</a> </td> <td class="c3" > 356 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2384 </td> <td class="s"> my %args = (header => { %lowered }); </td> </tr> <tr> <td class="h" > <a name="116">116</a> </td> <td class="c3" > 356 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1098 </td> <td class="s"> foreach my $f (qw/title listtitle subtitle author/) { </td> </tr> <tr> <td class="h" > <a name="117">117</a> </td> <td class="c3" > 1424 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#117-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--condition.html#117-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 7061 </td> <td class="s"> if (exists $lowered{$f} and </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--condition.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="118">118</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> defined $lowered{$f} and </td> </tr> <tr> <td class="h" > <a name="119">119</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $lowered{$f} =~ m/\w/) { </td> </tr> <tr> <td class="h" > <a name="120">120</a> </td> <td class="c3" > 528 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1743 </td> <td class="s"> $args{$f} = $lowered{$f}; </td> </tr> <tr> <td class="h" > <a name="121">121</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="122">122</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> else { </td> </tr> <tr> <td class="h" > <a name="123">123</a> </td> <td class="c3" > 896 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2120 </td> <td class="s"> $args{$f} = ''; </td> </tr> <tr> <td class="h" > <a name="124">124</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="125">125</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="126">126</a> </td> <td class="c3" > 356 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6651 </td> <td class="s"> return \%args; </td> </tr> <tr> <td class="h" > <a name="127">127</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="128">128</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="129">129</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has title => (is => 'ro', isa => Str, required => 1); </td> </tr> <tr> <td class="h" > <a name="130">130</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has subtitle => (is => 'ro', isa => Str, required => 1); </td> </tr> <tr> <td class="h" > <a name="131">131</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has listtitle => (is => 'ro', isa => Str, required => 1); </td> </tr> <tr> <td class="h" > <a name="132">132</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has author => (is => 'ro', isa => Str, required => 1); </td> </tr> <tr> <td class="h" > <a name="133">133</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="134">134</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has header => (is => 'ro', isa => HashRef[Str]); </td> </tr> <tr> <td class="h" > <a name="135">135</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="136">136</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has language => (is => 'lazy', isa => Str); </td> </tr> <tr> <td class="h" > <a name="137">137</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="138">138</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_language { </td> </tr> <tr> <td class="h" > <a name="139">139</a> </td> <td class="c3" > 31 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#139-1"> 31 </a> </td> <td >   </td> <td > 10601 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="140">140</a> </td> <td class="c3" > 31 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 96 </td> <td class="s"> my $lang = 'en'; </td> </tr> <tr> <td class="h" > <a name="141">141</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # language treatment </td> </tr> <tr> <td class="h" > <a name="142">142</a> </td> <td class="c3" > 31 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#142-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 155 </td> <td class="s"> if (my $lang_orig = $self->header->{lang}) { </td> </tr> <tr> <td class="h" > <a name="143">143</a> </td> <td class="c3" > 22 </td> <td class="c0" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#143-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 126 </td> <td class="s"> if ($lang_orig =~ m/([a-z]{2,3})/) { </td> </tr> <tr> <td class="h" > <a name="144">144</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 60 </td> <td class="s"> $lang = $1; </td> </tr> <tr> <td class="h" > <a name="145">145</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="146">146</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> else { </td> </tr> <tr> <td class="h" > <a name="147">147</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 0 </td> <td class="s"> warn qq[Garbage $lang_orig found in #lang, using "en" instead\n]; </td> </tr> <tr> <td class="h" > <a name="148">148</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="149">149</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="150">150</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> else { </td> </tr> <tr> <td class="h" > <a name="151">151</a> </td> <td class="c3" > 9 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 746 </td> <td class="s"> warn "No language found, assuming english\n"; </td> </tr> <tr> <td class="h" > <a name="152">152</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="153">153</a> </td> <td class="c3" > 31 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 555 </td> <td class="s"> return $lang; </td> </tr> <tr> <td class="h" > <a name="154">154</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="155">155</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="156">156</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has wants_slides => (is => 'lazy', isa => Bool); </td> </tr> <tr> <td class="h" > <a name="157">157</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="158">158</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_wants_slides { </td> </tr> <tr> <td class="h" > <a name="159">159</a> </td> <td class="c3" > 41 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#159-1"> 41 </a> </td> <td >   </td> <td > 5282 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="160">160</a> </td> <td class="c3" > 41 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 68 </td> <td class="s"> my $bool = 0; </td> </tr> <tr> <td class="h" > <a name="161">161</a> </td> <td class="c3" > 41 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#161-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 172 </td> <td class="s"> if (my $slides = $self->header->{slides}) { </td> </tr> <tr> <td class="h" > <a name="162">162</a> </td> <td class="c3" > 31 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#162-1"> 100 </a> </td> <td class="c0" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--condition.html#162-1"> 66 </a> </td> <td >   </td> <td >   </td> <td > 224 </td> <td class="s"> if (!$slides or $slides =~ /^\s*(no|false)\s*$/si) { </td> </tr> <tr> <td class="h" > <a name="163">163</a> </td> <td class="c3" > 13 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 27 </td> <td class="s"> $bool = 0; </td> </tr> <tr> <td class="h" > <a name="164">164</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="165">165</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> else { </td> </tr> <tr> <td class="h" > <a name="166">166</a> </td> <td class="c3" > 18 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 38 </td> <td class="s"> $bool = 1; </td> </tr> <tr> <td class="h" > <a name="167">167</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="168">168</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="169">169</a> </td> <td class="c3" > 41 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 532 </td> <td class="s"> return $bool; </td> </tr> <tr> <td class="h" > <a name="170">170</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="171">171</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="172">172</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has is_deleted => (is => 'lazy', isa => Bool); </td> </tr> <tr> <td class="h" > <a name="173">173</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="174">174</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_is_deleted { </td> </tr> <tr> <td class="h" > <a name="175">175</a> </td> <td class="c3" > 303 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#175-1"> 303 </a> </td> <td >   </td> <td > 71689 </td> <td class="s"> return !!shift->header->{deleted}; </td> </tr> <tr> <td class="h" > <a name="176">176</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="177">177</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="178">178</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has cover => (is => 'lazy', isa => Str); </td> </tr> <tr> <td class="h" > <a name="179">179</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="180">180</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_cover { </td> </tr> <tr> <td class="h" > <a name="181">181</a> </td> <td class="c3" > 291 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#181-1"> 291 </a> </td> <td >   </td> <td > 12816 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="182">182</a> </td> <td class="c3" > 291 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#182-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1522 </td> <td class="s"> if (my $cover = $self->header->{cover}) { </td> </tr> <tr> <td class="h" > <a name="183">183</a> </td> <td class="c3" > 59 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#183-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 501 </td> <td class="s"> if ($cover =~ m/\A </td> </tr> <tr> <td class="h" > <a name="184">184</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ( </td> </tr> <tr> <td class="h" > <a name="185">185</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> [a-zA-Z0-9] </td> </tr> <tr> <td class="h" > <a name="186">186</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> [a-zA-Z0-9-]* </td> </tr> <tr> <td class="h" > <a name="187">187</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> [a-zA-Z0-9] </td> </tr> <tr> <td class="h" > <a name="188">188</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> \.(jpe?g|png) </td> </tr> <tr> <td class="h" > <a name="189">189</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> )\z </td> </tr> <tr> <td class="h" > <a name="190">190</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> /x) { </td> </tr> <tr> <td class="h" > <a name="191">191</a> </td> <td class="c3" > 48 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#191-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 623 </td> <td class="s"> if (-f $cover) { </td> </tr> <tr> <td class="h" > <a name="192">192</a> </td> <td class="c3" > 47 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1020 </td> <td class="s"> return $cover; </td> </tr> <tr> <td class="h" > <a name="193">193</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="194">194</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="195">195</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="196">196</a> </td> <td class="c3" > 244 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 3476 </td> <td class="s"> return ''; </td> </tr> <tr> <td class="h" > <a name="197">197</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="198">198</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="199">199</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has coverwidth => (is => 'lazy', isa => Str); </td> </tr> <tr> <td class="h" > <a name="200">200</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="201">201</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="202">202</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_coverwidth { </td> </tr> <tr> <td class="h" > <a name="203">203</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # compare with TemplateOptions </td> </tr> <tr> <td class="h" > <a name="204">204</a> </td> <td class="c3" > 49 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#204-1"> 49 </a> </td> <td >   </td> <td > 4435 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="205">205</a> </td> <td class="c3" > 49 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#205-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 611 </td> <td class="s"> if ($self->cover) { </td> </tr> <tr> <td class="h" > <a name="206">206</a> </td> <td class="c3" > 47 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#206-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 433 </td> <td class="s"> if (my $width = $self->header->{coverwidth}) { </td> </tr> <tr> <td class="h" > <a name="207">207</a> </td> <td class="c3" > 6 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#207-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 39 </td> <td class="s"> if ($width =~ m/\A[01](\.[0-9][0-9]?)?\z/) { </td> </tr> <tr> <td class="h" > <a name="208">208</a> </td> <td class="c3" > 5 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 66 </td> <td class="s"> return $width; </td> </tr> <tr> <td class="h" > <a name="209">209</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="210">210</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> else { </td> </tr> <tr> <td class="h" > <a name="211">211</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 78 </td> <td class="s"> warn "Invalid measure passed for coverwidth, should be 0.01 => 1.00\n"; </td> </tr> <tr> <td class="h" > <a name="212">212</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="213">213</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="214">214</a> </td> <td class="c3" > 42 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 544 </td> <td class="s"> return 1; </td> </tr> <tr> <td class="h" > <a name="215">215</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="216">216</a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 37 </td> <td class="s"> return 0; </td> </tr> <tr> <td class="h" > <a name="217">217</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="218">218</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="219">219</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has nocoverpage => (is => 'lazy', isa => Bool); </td> </tr> <tr> <td class="h" > <a name="220">220</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="221">221</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_nocoverpage { </td> </tr> <tr> <td class="h" > <a name="222">222</a> </td> <td class="c3" > 290 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#222-1"> 290 </a> </td> <td >   </td> <td > 10194 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="223">223</a> </td> <td class="c3" > 290 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4450 </td> <td class="s"> return !!$self->header->{nocoverpage}; </td> </tr> <tr> <td class="h" > <a name="224">224</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="225">225</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="226">226</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has notoc => (is => 'lazy', isa => Bool); </td> </tr> <tr> <td class="h" > <a name="227">227</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="228">228</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_notoc { </td> </tr> <tr> <td class="h" > <a name="229">229</a> </td> <td class="c3" > 288 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#229-1"> 288 </a> </td> <td >   </td> <td > 8445 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="230">230</a> </td> <td class="c3" > 288 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4232 </td> <td class="s"> return !!$self->header->{notoc}; </td> </tr> <tr> <td class="h" > <a name="231">231</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="232">232</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="233">233</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has nofinalpage => (is => 'lazy', isa => Bool); </td> </tr> <tr> <td class="h" > <a name="234">234</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="235">235</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_nofinalpage { </td> </tr> <tr> <td class="h" > <a name="236">236</a> </td> <td class="c3" > 288 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#236-1"> 288 </a> </td> <td >   </td> <td > 7859 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="237">237</a> </td> <td class="c3" > 288 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4214 </td> <td class="s"> return !!$self->header->{nofinalpage}; </td> </tr> <tr> <td class="h" > <a name="238">238</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="239">239</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="240">240</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has impressum => (is => 'lazy', isa => Bool); </td> </tr> <tr> <td class="h" > <a name="241">241</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="242">242</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_impressum { </td> </tr> <tr> <td class="h" > <a name="243">243</a> </td> <td class="c3" > 288 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#243-1"> 288 </a> </td> <td >   </td> <td > 8673 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="244">244</a> </td> <td class="c3" > 288 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4323 </td> <td class="s"> return !!$self->header->{impressum}; </td> </tr> <tr> <td class="h" > <a name="245">245</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="246">246</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="247">247</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has continuefootnotes => (is => 'lazy', isa => Bool ); </td> </tr> <tr> <td class="h" > <a name="248">248</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has centerchapter => (is => 'lazy', isa => Bool ); </td> </tr> <tr> <td class="h" > <a name="249">249</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has centersection => (is => 'lazy', isa => Bool ); </td> </tr> <tr> <td class="h" > <a name="250">250</a> </td> <td class="c3" > 288 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#250-1"> 288 </a> </td> <td >   </td> <td > 8485 </td> <td class="s"> sub _build_continuefootnotes { shift->_look_at_header('continuefootnotes') } </td> </tr> <tr> <td class="h" > <a name="251">251</a> </td> <td class="c3" > 294 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#251-1"> 294 </a> </td> <td >   </td> <td > 8820 </td> <td class="s"> sub _build_centerchapter { shift->_look_at_header('centerchapter') } </td> </tr> <tr> <td class="h" > <a name="252">252</a> </td> <td class="c3" > 294 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#252-1"> 294 </a> </td> <td >   </td> <td > 9502 </td> <td class="s"> sub _build_centersection { shift->_look_at_header('centersection') } </td> </tr> <tr> <td class="h" > <a name="253">253</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="254">254</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _look_at_header { </td> </tr> <tr> <td class="h" > <a name="255">255</a> </td> <td class="c3" > 876 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#255-1"> 876 </a> </td> <td >   </td> <td > 2105 </td> <td class="s"> my ($self, $key) = @_; </td> </tr> <tr> <td class="h" > <a name="256">256</a> </td> <td class="c3" > 876 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 12769 </td> <td class="s"> return !!$self->header->{$key}; </td> </tr> <tr> <td class="h" > <a name="257">257</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="258">258</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="259">259</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has topics => (is => 'lazy', isa => ArrayRef); </td> </tr> <tr> <td class="h" > <a name="260">260</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="261">261</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_topics { </td> </tr> <tr> <td class="h" > <a name="262">262</a> </td> <td class="c3" > 259 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#262-1"> 259 </a> </td> <td >   </td> <td > 3630 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="263">263</a> </td> <td class="c3" > 259 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 481 </td> <td class="s"> my @topics; </td> </tr> <tr> <td class="h" > <a name="264">264</a> </td> <td class="c3" > 259 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 731 </td> <td class="s"> foreach my $field (qw/cat sorttopics topics/) { </td> </tr> <tr> <td class="h" > <a name="265">265</a> </td> <td class="c3" > 777 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1502 </td> <td class="s"> push @topics, $self->_parse_topic_or_author($field); </td> </tr> <tr> <td class="h" > <a name="266">266</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="267">267</a> </td> <td class="c3" > 259 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 3761 </td> <td class="s"> return \@topics; </td> </tr> <tr> <td class="h" > <a name="268">268</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="269">269</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="270">270</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> has authors => (is => 'lazy', isa => ArrayRef); </td> </tr> <tr> <td class="h" > <a name="271">271</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="272">272</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _build_authors { </td> </tr> <tr> <td class="h" > <a name="273">273</a> </td> <td class="c3" > 259 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#273-1"> 259 </a> </td> <td >   </td> <td > 4998 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="274">274</a> </td> <td class="c3" > 259 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 501 </td> <td class="s"> my @authors; </td> </tr> <tr> <td class="h" > <a name="275">275</a> </td> <td class="c3" > 259 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 755 </td> <td class="s"> foreach my $field (qw/authors sortauthors/) { </td> </tr> <tr> <td class="h" > <a name="276">276</a> </td> <td class="c3" > 518 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1458 </td> <td class="s"> push @authors, $self->_parse_topic_or_author($field); </td> </tr> <tr> <td class="h" > <a name="277">277</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="278">278</a> </td> <td class="c3" > 259 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 3866 </td> <td class="s"> return \@authors; </td> </tr> <tr> <td class="h" > <a name="279">279</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="280">280</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="281">281</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub authors_as_html_list { </td> </tr> <tr> <td class="h" > <a name="282">282</a> </td> <td class="c3" > 71 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#282-1"> 71 </a> </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#282-1"> 1 </a> </td> <td > 1309 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="283">283</a> </td> <td class="c3" > 71 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1420 </td> <td class="s"> return $self->_html_strings($self->authors); </td> </tr> <tr> <td class="h" > <a name="284">284</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="285">285</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="286">286</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub topics_as_html_list { </td> </tr> <tr> <td class="h" > <a name="287">287</a> </td> <td class="c3" > 71 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#287-1"> 71 </a> </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#287-1"> 1 </a> </td> <td > 1317 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="288">288</a> </td> <td class="c3" > 71 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1263 </td> <td class="s"> return $self->_html_strings($self->topics); </td> </tr> <tr> <td class="h" > <a name="289">289</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="290">290</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="291">291</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _html_strings { </td> </tr> <tr> <td class="h" > <a name="292">292</a> </td> <td class="c3" > 142 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#292-1"> 142 </a> </td> <td >   </td> <td > 3964 </td> <td class="s"> my ($self, $list) = @_; </td> </tr> <tr> <td class="h" > <a name="293">293</a> </td> <td class="c3" > 142 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 217 </td> <td class="s"> my @out; </td> </tr> <tr> <td class="h" > <a name="294">294</a> </td> <td class="c3" > 142 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 353 </td> <td class="s"> foreach my $el (@$list) { </td> </tr> <tr> <td class="h" > <a name="295">295</a> </td> <td class="c3" > 26 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 7755 </td> <td class="s"> push @out, muse_format_line(html => $el); </td> </tr> <tr> <td class="h" > <a name="296">296</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="297">297</a> </td> <td class="c3" > 142 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6726 </td> <td class="s"> return @out; </td> </tr> <tr> <td class="h" > <a name="298">298</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="299">299</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="300">300</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub listing_title { </td> </tr> <tr> <td class="h" > <a name="301">301</a> </td> <td class="c3" > 255 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#301-1"> 255 </a> </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#301-1"> 1 </a> </td> <td > 544 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="302">302</a> </td> <td class="c3" > 255 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#302-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 1235 </td> <td class="s"> if (length($self->listtitle)) { </td> </tr> <tr> <td class="h" > <a name="303">303</a> </td> <td class="c3" > 1 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4 </td> <td class="s"> return $self->listtitle; </td> </tr> <tr> <td class="h" > <a name="304">304</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="305">305</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> else { </td> </tr> <tr> <td class="h" > <a name="306">306</a> </td> <td class="c3" > 254 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1155 </td> <td class="s"> return $self->title; </td> </tr> <tr> <td class="h" > <a name="307">307</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="308">308</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="309">309</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="310">310</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub tex_metadata { </td> </tr> <tr> <td class="h" > <a name="311">311</a> </td> <td class="c3" > 254 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#311-1"> 254 </a> </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#311-1"> 1 </a> </td> <td > 6000 </td> <td class="s"> my $self = shift; </td> </tr> <tr> <td class="h" > <a name="312">312</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my %out = ( </td> </tr> <tr> <td class="h" > <a name="313">313</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> title => $self->listing_title, </td> </tr> <tr> <td class="h" > <a name="314">314</a> </td> <td class="c3" > 254 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 4240 </td> <td class="s"> author => (scalar(@{$self->authors}) ? join('; ', @{$self->authors}) : $self->author), </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 2 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 39 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="315">315</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> subject => $self->subtitle, </td> </tr> <tr> <td class="h" > <a name="316">316</a> </td> <td class="c3" > 254 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#316-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 989 </td> <td class="s"> keywords => (scalar(@{$self->topics}) ? join('; ', @{$self->topics}) : ''), </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 254 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 9711 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 8 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 282 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="317">317</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ); </td> </tr> <tr> <td class="h" > <a name="318">318</a> </td> <td class="c3" > 254 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 6905 </td> <td class="s"> foreach my $k (keys %out) { </td> </tr> <tr> <td class="h" > <a name="319">319</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # just escape </td> </tr> <tr> <td class="h" > <a name="320">320</a> </td> <td class="c3" > 1016 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 57696 </td> <td class="s"> $out{$k} = Text::Amuse::InlineElement->new(string => $out{$k}, </td> </tr> <tr> <td class="h" > <a name="321">321</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> type => 'text', </td> </tr> <tr> <td class="h" > <a name="322">322</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> fmt => 'ltx')->stringify; </td> </tr> <tr> <td class="h" > <a name="323">323</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="324">324</a> </td> <td class="c3" > 254 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 21466 </td> <td class="s"> return \%out; </td> </tr> <tr> <td class="h" > <a name="325">325</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="326">326</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="327">327</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub _parse_topic_or_author { </td> </tr> <tr> <td class="h" > <a name="328">328</a> </td> <td class="c3" > 1295 </td> <td >   </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--subroutine.html#328-1"> 1295 </a> </td> <td >   </td> <td > 2440 </td> <td class="s"> my ($self, $field) = @_; </td> </tr> <tr> <td class="h" > <a name="329">329</a> </td> <td class="c3" > 1295 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2425 </td> <td class="s"> my $header = $self->header; </td> </tr> <tr> <td class="h" > <a name="330">330</a> </td> <td class="c3" > 1295 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 3715 </td> <td class="s"> my %fields = ( </td> </tr> <tr> <td class="h" > <a name="331">331</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> cat => 1, </td> </tr> <tr> <td class="h" > <a name="332">332</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sorttopics => 1, </td> </tr> <tr> <td class="h" > <a name="333">333</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sortauthors => 1, </td> </tr> <tr> <td class="h" > <a name="334">334</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> topics => 1, </td> </tr> <tr> <td class="h" > <a name="335">335</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> authors => 1, </td> </tr> <tr> <td class="h" > <a name="336">336</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ); </td> </tr> <tr> <td class="h" > <a name="337">337</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> die "Called _parse_topic_or_author for unknown field $field" </td> </tr> <tr> <td class="h" > <a name="338">338</a> </td> <td class="c3" > 1295 </td> <td class="c0" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#338-1"> 50 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 2747 </td> <td class="s"> unless $fields{$field}; </td> </tr> <tr> <td class="h" > <a name="339">339</a> </td> <td class="c3" > 1295 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 1628 </td> <td class="s"> my @out; </td> </tr> <tr> <td class="h" > <a name="340">340</a> </td> <td class="c3" > 1295 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#340-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 2449 </td> <td class="s"> if (exists $header->{$field}) { </td> </tr> <tr> <td class="h" > <a name="341">341</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 47 </td> <td class="s"> my $string = $header->{$field}; </td> </tr> <tr> <td class="h" > <a name="342">342</a> </td> <td class="c3" > 22 </td> <td class="c0" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#342-1"> 50 </a> </td> <td class="c0" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--condition.html#342-1"> 33 </a> </td> <td >   </td> <td >   </td> <td > 106 </td> <td class="s"> if (defined $string and length $string) { </td> </tr> <tr> <td class="h" > <a name="343">343</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 88 </td> <td class="s"> my $separator = qr{\s*\,\s*}; </td> </tr> <tr> <td class="h" > <a name="344">344</a> </td> <td class="c3" > 22 </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#344-1"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td > 102 </td> <td class="s"> if ($field eq 'cat') { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c3" > <a href="blib-lib-Text-Amuse-Compile-MuseHeader-pm--branch.html#-2"> 100 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="345">345</a> </td> <td class="c3" > 4 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 13 </td> <td class="s"> $separator = qr{[\s;,]+}; </td> </tr> <tr> <td class="h" > <a name="346">346</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="347">347</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif ($string =~ m/\;/) { </td> </tr> <tr> <td class="h" > <a name="348">348</a> </td> <td class="c3" > 15 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 57 </td> <td class="s"> $separator = qr{\s*\;\s*}; </td> </tr> <tr> <td class="h" > <a name="349">349</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="350">350</a> </td> <td class="c3" > 22 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 232 </td> <td class="s"> @out = grep { /\w/ } split(/$separator/, $string); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c3" > 61 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 176 </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="351">351</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="352">352</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="353">353</a> </td> <td class="c3" > 1295 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td > 2997 </td> <td class="s"> return @out; </td> </tr> <tr> <td class="h" > <a name="354">354</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="355">355</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="356">356</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 1; </td> </tr> </table> </body> </html>