Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mojomojo::formatter::wiki(3pm) [debian man page]

MojoMojo::Formatter::Wiki(3pm)				User Contributed Perl Documentation			    MojoMojo::Formatter::Wiki(3pm)

NAME
MojoMojo::Formatter::Wiki - Handle interpage linking. DESCRIPTION
This formatter handles intra-Wiki links specified between double square brackets or parentheses: [[wiki link]] or ((another wiki link)). It will also indicate missing links with a question mark and a link to the edit page. Links can be implicit (like the two above), where the path is derived from the link text by replacing spaces with underscores (<a href="wiki_link">wiki link</a>), or explicit, where the path is specified before a '|' sign: [[/explicit/path|Link text goes here]] Note that external links have a different syntax: [Link text](http://foo.com). METHODS
format_content_order Format order can be 1-99. The Wiki formatter runs on 10. strip_pre Replace <pre ... with a placeholder reinsert_pre Put pre and lang back into place. format_content Calls the formatter. Takes a ref to the content as well as the context object. format_link <c> <wikilink> <base> [<link_text>] Format a wikilink as an HTML hyperlink with the given link_text. If the wikilink doesn't exist, it will be rendered as a hyperlink to an .edit page ready to be created. Since there is no difference in syntax between new and existing links, some abiguities my occur when it comes to characters that are invalid in URLs. For example, * [[say "NO" to #8]] should be rendered as "<a href="say_%22NO%22_to_%238">say "NO" to #8</a>" * [[100% match]] should be rendered as "<a href="100%25_match>100% match</a>", URL-escaping the '%' * but what about a user pasting an existing link, "[[say_%22NO%22_to_%238]]"? We shouldn't URL-escape the '%' or '#' here. * for links with explicit link text, we should definitiely not URL-escape the link: "[[say_%22NO%22_to_%238|say "NO" to #8]]" This is complicated by the fact that '#' can delimit the start of the anchor portion of a link. * "[[Mambo #5]]" - URL-escape '#' => Mambo_%235 * "[[Mambo#origins]]" - do not URL-escape * "[[existing/link#Introduction|See the Introduction]]" - definitely do not URL-escape Since escaping is somewhat magic and therefore potentially counter-intuitive, we will: * only URL-escape '#' if it follows a whitespace directly * always URL-escape '%' unless it is followed by two uppercase hex digits * always escape other characters that are invalid in URLs expand_wikilink <wikilink> Replace "_" with spaces and unescape URL-encoded characters find_links <content> <page> Find wiki links in content. Return a listref of linked (existing) and wanted pages. SEE ALSO
MojoMojo, Module::Pluggable::Ordered AUTHORS
Marcus Ramberg <mramberg@cpan.org> LICENSE
This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2010-05-23 MojoMojo::Formatter::Wiki(3pm)

Check Out this Related Man Page

Wiki::Toolkit::Formatter::Multiple(3pm) 		User Contributed Perl Documentation		   Wiki::Toolkit::Formatter::Multiple(3pm)

NAME
Wiki::Toolkit::Formatter::Multiple - Allows a Wiki::Toolkit wiki to use more than one formatter. DESCRIPTION
A "dummy" formatter for Wiki::Toolkit. Passes methods through to other Wiki::Toolkit formatters, depending on supplied metadata. SYNOPSIS
use Wiki::Toolkit::Formatter::Multiple; use Wiki::Toolkit::Formatter::Pod; use Wiki::Toolkit::Formatter::UseMod; my $pod_fmtr = Wiki::Toolkit::Formatter::Pod->new( node_prefix => "wiki.cgi?node=", ); my $usemod_fmtr = Wiki::Toolkit::Formatter::UseMod->new( node_prefix => "wiki.cgi?node=", extended_links => 1, allowed_tags => [ qw( p b i div br ) ], ); my $formatter = Wiki::Toolkit::Formatter::Multiple->new( documentation => $pod_fmtr, discussion => $usemod_fmtr, _DEFAULT => $usemod_fmtr, ); my $wiki = Wiki::Toolkit->new( store => ..., formatter => $formatter ); my $output = $wiki->format( "This is some discussion.", { formatter => "discussion" } ); METHODS
new my $formatter = Wiki::Toolkit::Formatter::Multiple->new( label_1 => Formatter1->new( ... ), label_2 => Formatter2->new( ... ), _DEFAULT => Wiki::Toolkit::Formatter::Default->new, ); You may supply as many formatter objects as you wish. They don't have to be of different classes; you may just wish to, for example, permit different HTML tags to be used on different types of pages. The "labels" supplied as the keys of the parameter hash should be unique. When you write a node, you should store a key-value pair in its metadata where the key is "formatter" and the value is the label of the formatter that should be used to render that node. The "_DEFAULT" label is special - it defines the formatter that will be used for any node that does not have a "formatter" stored in its metadata. The "_DEFAULT" formatter, if not supplied to "->new", will default to the very basic Wiki::Toolkit::Formatter::Default. format( $raw, \%metadata ) my $output = $formatter->format( "Here is some text.", undef, { formatter => "discussion" } ); Uses the value of "formatter" given in the metadata to decide which of the formatter objects passed on instantiation to use, then uses it to format the provided rawwikitext. The "undef" second element of the parameter array in the example is there because when this is called from a Wiki::Toolkit object, the wiki object passes itself in as the second parameter. find_internal_links( $raw, $metadata ) SEE ALSO
Wiki::Toolkit AUTHOR
Kake Pugh <kake@earth.li> SUPPORT
Bug reports, questions and feature requests should go to cgi-wiki-dev@earth.li COPYRIGHT
Copyright (C) 2003-4 Kake Pugh. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2011-09-25 Wiki::Toolkit::Formatter::Multiple(3pm)
Man Page