| Perl6-Pod documentation | Contained in the Perl6-Pod distribution. |
Perl6::Pod::FormattingCode::D - Definition
A D<formatting code|formatting codes;formatters> provides a way
to add inline mark-up to a piece of text.
The D<> formatting code indicates that the contained text is a
definition, introducing a term that the adjacent text
elucidates. It is the inline equivalent of a =defn block.
For example:
There ensued a terrible moment of D<coyotus interruptus>: a brief
suspension of the effects of gravity, accompanied by a sudden
to-the-camera realisation of imminent downwards acceleration.
A definition may be given synonyms, which are specified after a vertical bar and separated by semicolons:
A D<formatting code|formatting codes;formatters> provides a way
to add inline mark-up to a piece of text.
A definition would typically be rendered in italics or <dfn>...</dfn>
tags and will often be used as a link target for subsequent instances of the
term (or any of its specified synonyms) within a hypertext.
D<photo|picture>
Render xhtml:
<dfn>photo</dfn>
D<photo|picture>
Render xml:
photo
http://zag.ru/perl6-pod/S26.html, Perldoc Pod to HTML converter: http://zag.ru/perl6-pod/, Perl6::Pod::Lib
Zahatski Aliaksandr, <zag@cpan.org>
Copyright (C) 2009-2011 by Zahatski Aliaksandr
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.
| Perl6-Pod documentation | Contained in the Perl6-Pod distribution. |
#=============================================================================== # # DESCRIPTION: definition formatting code # # AUTHOR: Aliaksandr P. Zahatski, <zahatski@gmail.com> #=============================================================================== #$Id$ package Perl6::Pod::FormattingCode::D; use strict; use warnings; use Perl6::Pod::FormattingCode; use base 'Perl6::Pod::FormattingCode';
sub split_text_entry { my ( $self, $str ) = @_; my ( $dfn, $synonyms ) = split( /\s*\|\s*/, $str ); for ( $dfn, $synonyms ) { next unless defined $_; s/^\s+//; s/\s+$//; } wantarray() ? ( $dfn, $synonyms ) : $dfn; } sub on_para { my ( $self, $parser, $txt ) = @_; my $attr = $self->attrs_by_name; my ($dfn, $synonyms ) = $self->split_text_entry($txt); $attr->{synonyms} = $synonyms; return $dfn; }
sub to_xhtml { my ( $self, $parser, @in ) = @_; my @content = $parser->_make_events(@in); return $parser->mk_element('dfn')->add_content(@content); }
sub to_docbook { my ( $self, $parser, @in ) = @_; [ $parser->_make_events(@in) ]; } 1; __END__