Am 21.05.2012 18:55, schrieb Platonides:
On 21/05/12 18:41, David J. Biesack wrote:
Is there a bot which will repair external URL
coded links to the same wikinand rewrite them as wiki links?
For example, if MediaWikis were installed in
www.example.com/wiki and pages contains
links using external link notation
blah
http://www.example.com/wiki/Some_page blah
blah [
http://www.example.com/wiki/Some_page some text] blah
blah [
http://www.example.com/wiki/Some_page#some_section some text] blah
then the "What links here" feature would not work because such links are not
recognized.
The bot would replace those with wiki links:
blah [[Some page]] blah
blah [[Some page | some text]] blah
blah [[Some page#some_section | some text]] blah or blah {{there|some section|Some
page | some text}} blah
In addition, if the link is to a section of the current page, i.e. on [[Some page]],
the second link would be updated as
{{here|some section|some text}}
There may need to be some way to disable this (i.e. in help or project pages
that discuss link notation).
You could perform it using pywikipedia and some ugly
regex.
It's
http://www.mediawiki.org/wiki/Manual:Pywikipediabot
and the regex shouldnt be that ugly. At least if you dont want to do
everything in one strike. I'd start with
"\[http://www.example.com/wiki/(.*?)#(.*?) (.*?)\]" "[[\1#\2 | \3]]"
(or
"{{there|\2|\1 | \3}}" if you prefer; I dont know any way to check if
the link is to a section on the current page though; maybe with
Extension:ParserFunctions: {{#ifeq: {{NAMESPACE}}:{{PAGENAME}} | \1 |
{{here|\2|\3}} and some kind of substitution (safesubst?); one of the
guys on our wiki probably could do this)
Then:
"\[http://www.example.com/wiki/(.*?) (.*?)\]" "[[\1 | \2]]"
and last:
"http://www.example.com/wiki/(.*?)" "[[\1]]"
Since you can tell the bot which pages to work on, you can exclude pages
in help and project namespaces by simply telling it to work on the
article namespace:
replace.py -start:! -regex "\[http://www.example.com/wiki/(.*?)#(.*?)
(.*?)\]" "[[\1#\2 | \3]]" -summary:"internal links format"
Maybe
http://www.mediawiki.org/wiki/Extension:Replace_Text could do the
trick too, but I havent tried that Extension yet.