Commit | Line | Data |
---|---|---|
b616daaf JH |
1 | =head1 NAME |
2 | ||
3 | basic.pod - Test of various basic POD features in translators. | |
4 | ||
5 | =head1 HEADINGS | |
6 | ||
7 | Try a few different levels of headings, with embedded formatting codes and | |
8 | other interesting bits. | |
9 | ||
10 | =head1 This C<is> a "level 1" heading | |
11 | ||
12 | =head2 ``Level'' "2 I<heading> | |
13 | ||
14 | =head3 Level 3 B<heading I<with C<weird F<stuff "" (double quote)>>>> | |
15 | ||
16 | =head4 Level "4 C<heading> | |
17 | ||
18 | Now try again with B<intermixed> F<text>. | |
19 | ||
20 | =head1 This C<is> a "level 1" heading | |
21 | ||
22 | Text. | |
23 | ||
24 | =head2 ``Level'' 2 I<heading> | |
25 | ||
26 | Text. | |
27 | ||
28 | =head3 Level 3 B<heading I<with C<weird F<stuff>>>> | |
29 | ||
30 | Text. | |
31 | ||
32 | =head4 Level "4 C<heading> | |
33 | ||
34 | Text. | |
35 | ||
36 | =head1 LINKS | |
37 | ||
38 | These are all taken from the Pod::Parser tests. | |
39 | ||
40 | Try out I<LOTS> of different ways of specifying references: | |
41 | ||
42 | Reference the L<manpage/section> | |
43 | ||
b616daaf JH |
44 | Reference the L<"manpage"/section> |
45 | ||
46 | Reference the L<manpage/"section"> | |
47 | ||
b616daaf JH |
48 | Now try it using the new "|" stuff ... |
49 | ||
50 | Reference the L<thistext|manpage/section>| | |
51 | ||
52 | Reference the L<thistext | manpage / section>| | |
53 | ||
54 | Reference the L<thistext| manpage/ section>| | |
55 | ||
56 | Reference the L<thistext |manpage /section>| | |
57 | ||
b616daaf JH |
58 | Reference the L<thistext|manpage/"section">| |
59 | ||
60 | Reference the L<thistext| | |
61 | manpage/ | |
62 | section>| | |
63 | ||
b616daaf JH |
64 | And then throw in a few new ones of my own. |
65 | ||
66 | L<foo> | |
67 | ||
68 | L<foo|bar> | |
69 | ||
70 | L<foo/bar> | |
71 | ||
72 | L<foo/"baz boo"> | |
73 | ||
74 | L</bar> | |
75 | ||
76 | L</"baz boo"> | |
77 | ||
78 | L</baz boo> | |
79 | ||
80 | L<foo bar/baz boo> | |
81 | ||
b616daaf JH |
82 | L<"boo var baz"> |
83 | ||
84 | L<bar baz> | |
85 | ||
b616daaf JH |
86 | L</boo>, L</bar>, and L</baz> |
87 | ||
88 | L<fooZ<>bar> | |
89 | ||
90 | L<Testing I<italics>|foo/bar> | |
91 | ||
92 | L<foo/I<Italic> text> | |
93 | ||
94 | L<fooE<verbar>barZ<>/Section C<with> I<B<other> markup>> | |
95 | ||
96 | L<Nested L<http://www.perl.org/>|fooE<sol>bar> | |
97 | ||
98 | =head1 OVER AND ITEMS | |
99 | ||
100 | Taken from Pod::Parser tests, this is a test to ensure that multiline | |
101 | =item paragraphs get indented appropriately. | |
102 | ||
103 | =over 4 | |
104 | ||
105 | =item This | |
106 | is | |
107 | a | |
108 | test. | |
109 | ||
110 | =back | |
111 | ||
112 | There should be whitespace now before this line. | |
113 | ||
114 | Taken from Pod::Parser tests, this is a test to ensure the nested =item | |
115 | paragraphs get indented appropriately. | |
116 | ||
117 | =over 2 | |
118 | ||
119 | =item 1 | |
120 | ||
121 | First section. | |
122 | ||
123 | =over 2 | |
124 | ||
125 | =item a | |
126 | ||
127 | this is item a | |
128 | ||
129 | =item b | |
130 | ||
131 | this is item b | |
132 | ||
133 | =back | |
134 | ||
135 | =item 2 | |
136 | ||
137 | Second section. | |
138 | ||
139 | =over 2 | |
140 | ||
141 | =item a | |
142 | ||
143 | this is item a | |
144 | ||
145 | =item b | |
146 | ||
147 | this is item b | |
148 | ||
149 | =item c | |
150 | ||
151 | =item d | |
152 | ||
153 | This is item c & d. | |
154 | ||
155 | =back | |
156 | ||
157 | =back | |
158 | ||
159 | Now some additional weirdness of our own. Make sure that multiple tags | |
160 | for one paragraph are properly compacted. | |
161 | ||
162 | =over 4 | |
163 | ||
164 | =item "foo" | |
165 | ||
166 | =item B<bar> | |
167 | ||
168 | =item C<baz> | |
169 | ||
170 | There shouldn't be any spaces between any of these item tags; this idiom | |
171 | is used in perlfunc. | |
172 | ||
173 | =item Some longer item text | |
174 | ||
175 | Just to make sure that we test paragraphs where the item text doesn't fit | |
176 | in the margin of the paragraph (and make sure that this paragraph fills a | |
177 | few lines). | |
178 | ||
179 | Let's also make it multiple paragraphs to be sure that works. | |
180 | ||
181 | =back | |
182 | ||
183 | Test use of =over without =item as a block "quote" or block paragraph. | |
184 | ||
185 | =over 4 | |
186 | ||
187 | This should be indented four spaces but otherwise formatted the same as | |
188 | any other regular text paragraph. Make sure it's long enough to see the | |
189 | results of the formatting..... | |
190 | ||
191 | =back | |
192 | ||
193 | Now try the same thing nested, and make sure that the indentation is reset | |
194 | back properly. | |
195 | ||
196 | =over 4 | |
197 | ||
198 | =over 4 | |
199 | ||
200 | This paragraph should be doubly indented. | |
201 | ||
202 | =back | |
203 | ||
204 | This paragraph should only be singly indented. | |
205 | ||
206 | =over 4 | |
207 | ||
208 | =item | |
209 | ||
210 | This is an item in the middle of a block-quote, which should be allowed. | |
211 | ||
212 | =item | |
213 | ||
214 | We're also testing tagless item commands. | |
215 | ||
216 | =back | |
217 | ||
218 | Should be back to the single level of indentation. | |
219 | ||
220 | =back | |
221 | ||
222 | Should be back to regular indentation. | |
223 | ||
224 | Now also check the transformation of * into real bullets for man pages. | |
225 | ||
226 | =over | |
227 | ||
228 | =item * | |
229 | ||
230 | An item. We're also testing using =over without a number, and making sure | |
231 | that item text wraps properly. | |
232 | ||
233 | =item * | |
234 | ||
235 | Another item. | |
236 | ||
237 | =back | |
238 | ||
239 | and now test the numbering of item blocks. | |
240 | ||
241 | =over 4 | |
242 | ||
243 | =item 1. | |
244 | ||
245 | First item. | |
246 | ||
247 | =item 2. | |
248 | ||
249 | Second item. | |
250 | ||
251 | =back | |
252 | ||
253 | =head1 FORMATTING CODES | |
254 | ||
255 | Another test taken from Pod::Parser. | |
256 | ||
257 | This is a test to see if I can do not only C<$self> and C<method()>, but | |
258 | also C<< $self->method() >> and C<< $self->{FIELDNAME} >> and | |
259 | C<< $Foo <=> $Bar >> without resorting to escape sequences. If | |
260 | I want to refer to the right-shift operator I can do something | |
261 | like C<<< $x >> 3 >>> or even C<<<< $y >> 5 >>>>. | |
262 | ||
263 | Now for the grand finale of C<< $self->method()->{FIELDNAME} = {FOO=>BAR} >>. | |
264 | And I also want to make sure that newlines work like this | |
265 | C<<< | |
266 | $self->{FOOBAR} >> 3 and [$b => $a]->[$a <=> $b] | |
267 | >>> | |
268 | ||
269 | Of course I should still be able to do all this I<with> escape sequences | |
270 | too: C<$self-E<gt>method()> and C<$self-E<gt>{FIELDNAME}> and | |
271 | C<{FOO=E<gt>BAR}>. | |
272 | ||
273 | Dont forget C<$self-E<gt>method()-E<gt>{FIELDNAME} = {FOO=E<gt>BAR}>. | |
274 | ||
275 | And make sure that C<0> works too! | |
276 | ||
277 | Now, if I use << or >> as my delimiters, then I have to use whitespace. | |
278 | So things like C<<$self->method()>> and C<<$self->{FIELDNAME}>> wont end | |
279 | up doing what you might expect since the first > will still terminate | |
280 | the first < seen. | |
281 | ||
282 | Lets make sure these work for empty ones too, like C<< >> and C<< >> >> | |
283 | (just to be obnoxious) | |
284 | ||
285 | The statement: C<This is dog kind's I<finest> hour!> is a parody of a | |
286 | quotation from Winston Churchill. | |
287 | ||
288 | The following tests are added to those: | |
289 | ||
290 | Make sure that a few othZ<>er odd I<Z<>things> still work. This should be | |
291 | a vertical bar: E<verbar>. Here's a test of a few more special escapes | |
292 | that have to be supported: | |
293 | ||
294 | =over 3 | |
295 | ||
296 | =item E<amp> | |
297 | ||
298 | An ampersand. | |
299 | ||
300 | =item E<apos> | |
301 | ||
302 | An apostrophe. | |
303 | ||
304 | =item E<lt> | |
305 | ||
306 | A less-than sign. | |
307 | ||
308 | =item E<gt> | |
309 | ||
310 | A greater-than sign. | |
311 | ||
312 | =item E<quot> | |
313 | ||
314 | A double quotation mark. | |
315 | ||
316 | =item E<sol> | |
317 | ||
318 | A forward slash. | |
319 | ||
320 | =back | |
321 | ||
322 | Try to get this bit of text over towards the edge so S<|that all of this | |
323 | text inside SE<lt>E<gt> won't|> be wrapped. Also test the | |
324 | |sameE<nbsp>thingE<nbsp>withE<nbsp>non-breakingS< spaces>.| | |
325 | ||
326 | There is a soft hyE<shy>phen in hyphen at hy-phen. | |
327 | ||
328 | This is a test of an X<index entry>index entry. | |
329 | ||
330 | =head1 VERBATIM | |
331 | ||
332 | Throw in a few verbatim paragraphs. | |
333 | ||
334 | use Term::ANSIColor; | |
335 | print color 'bold blue'; | |
336 | print "This text is bold blue.\n"; | |
337 | print color 'reset'; | |
338 | print "This text is normal.\n"; | |
339 | print colored ("Yellow on magenta.\n", 'yellow on_magenta'); | |
340 | print "This text is normal.\n"; | |
341 | print colored ['yellow on_magenta'], "Yellow on magenta.\n"; | |
342 | ||
343 | use Term::ANSIColor qw(uncolor); | |
344 | print uncolor '01;31', "\n"; | |
345 | ||
346 | But this isn't verbatim (make sure it wraps properly), and the next | |
347 | paragraph is again: | |
348 | ||
349 | use Term::ANSIColor qw(:constants); | |
350 | print BOLD, BLUE, "This text is in bold blue.\n", RESET; | |
351 | ||
352 | use Term::ANSIColor qw(:constants); $Term::ANSIColor::AUTORESET = 1; print BOLD BLUE "This text is in bold blue.\n"; print "This text is normal.\n"; | |
353 | ||
354 | (Ugh, that's obnoxiously long.) Try different spacing: | |
355 | ||
356 | Starting with a tab. | |
357 | Not | |
358 | starting | |
359 | with | |
360 | a | |
361 | tab. But this should still be verbatim. | |
362 | As should this. | |
363 | ||
364 | This isn't. | |
365 | ||
366 | This is. And this: is an internal tab. It should be: | |
367 | |--| <= lined up with that. | |
368 | ||
369 | (Tricky, but tabs should be expanded before the translator starts in on | |
370 | the text since otherwise text with mixed tabs and spaces will get messed | |
371 | up.) | |
372 | ||
2da3dd12 AMS |
373 | And now we test verbatim paragraphs right before a heading. Older |
374 | versions of Pod::Man generated two spaces between paragraphs like this | |
375 | and the heading. (In order to properly test this, one may have to | |
376 | visually inspect the nroff output when run on the generated *roff | |
377 | text, unfortunately.) | |
378 | ||
379 | =head1 CONCLUSION | |
380 | ||
381 | That's all, folks! | |
382 | ||
b616daaf | 383 | =cut |