Jump to content

User:AnomieBOT/source/d/Nowiki.pm/doc

From Wikipedia, the free encyclopedia
< User:AnomieBOT‎ | source‎ | d‎ | Nowiki.pm

NAME

[edit]

d::Nowiki - AnomieBOT decorator for nowiki (and other content) stripping

SYNOPSIS

[edit]
 use AnomieBOT::API;
 
 $api = new AnomieBOT::API('conf.ini', 1);
 $api->decorators(qw/d::Nowiki/);

DESCRIPTION

[edit]

d::Nowiki contains utility functions for manipulating nowiki tags in the page, for use by an AnomieBOT task. When "d::Nowiki" is used as a decorator on the API object, the following methods are available.

METHODS PROVIDED

[edit]
$api->get_token_for( $content )
Returns the opaque token to be used for the specified content. Modulo hash collisions, the same token will not be returned for different contents; the same token will be returned for identical values of content.
$api->get_token_regex()
Returns a regular expression that will match tokens.
$api->strip_regex( $re, $wikitext )
$api->strip_regex( $re, $wikitext, \%mapping )
Given some wikitext and a regular expression, replaces all text matching the regex with an opaque token. If the optional \%mapping hashref is provided, the mappings of the tokens back to the removed text will be added to that hashref (and that hashref will be returned as the second value).
Returns a list of two values: The wikitext with matches replaced and a hashref mapping tokens back to the removed text. In a scalar context, returns just the text.
Notes:
  • The returned text may contain unusual characters such as \x02 and \x03. MediaWiki doesn't like to save these, so this should help prevent your saving a broken page.
  • If you apply this function multiple times, it would be best to apply $api->replace_stripped in the reverse order.
$api->replace_stripped( $wikitext, \%mapping )
$api->replace_stripped( $wikitext, \%mapping, ... )
Searches $wikitext for tokens defined in the mapping hashrefs, and replaces them with the original text. If multiple mapping hashrefs are given, they are processed in the order given. In other words, this is correct:
 ($text,$mapping1) = $api->strip_regex($re1, $text);
 ($text,$mapping2) = $api->strip_regex($re2, $text);
 $text = $api->replace_stripped($text, $mapping2, $mapping1);
Returns the corrected wikitext.
$api->strip_tags( \@tags, $wikitext )
$api->strip_tags( \@tags, $wikitext, \%mapping )
Given some wikitext, replaces the specified XML-like tags with an opaque token. To also strip comments, include the special tag "!--". You can then process the wikitext without worrying about affecting things you shouldn't and call $api->replace_stripped when done.
Returns the same as strip_regex, which in fact it uses internally.
Note that this doesn't handle #tags. Use strip_templates from d::Templates for that.
$api->extension_tags( )
$api->extension_tags( $reload )
Return the current list of XML-like extension tags, plus "!--".
$api->strip_nowiki( $wikitext )
$api->strip_nowiki( $wikitext, \%mapping )
Given some wikitext, replaces nowikis, pres, and comments with an opaque token. You can then process the wikitext without worrying about affecting things you shouldn't and call $api->replace_nowiki when done.
Returns the same as strip_tags, which in fact it uses internally.
$api->replace_nowiki( $wikitext, $nowiki_hashref )
Exists as an alias for replace_stripped for backwards compatibility.
[edit]

Copyright 2008–2013 Anomie

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.