Wikibooks:Canale IRC/Script - Wikibooks, manuali e libri di testo liberi
Vai al contenuto
Wikibooks, manuali e libri di testo liberi.
Wikibooks:Canale IRC
Questa è una raccolta di script da utilizzare in IRC sul
chan di Wikibooks
Wikilinks
modifica sorgente
Questo script è un riadattamento per il
chan di Wikibooks
di uno script per
Chatzilla
Funziona con il client
Chatzilla
e trasforma i link secondo la sintassi wiki per i collegamenti.
Funzionalità
modifica sorgente
Trasforma i
link semplici
come [[prova]] e [[prova|testo]];
Trasforma gli
interlink
come [[w:prova]] e [[w:prova|testo]];
Effettua link ai
template'
Grassetto'
, ad esempio {{
Ciao
}}.
Installazione
modifica sorgente
Per installarlo, copiare lo script sottostante in un file sul disco rigido chiamato wikilinks.js e poi aggiungere questo script all'elenco di script da eseguire all'avvio di Chatzilla (
Chatzilla
->
Preferences...
->
Startup
Sorgente
modifica sorgente
//***********************************************
// IceKarma's WikiLinks script for ChatZilla
// Version 1.2
// 1.2 by James Ross: fix the normal links by shunting the
// word-hyphenator as well.
// Version 2.0
// 2.0 By Glen Mailer:
// - Converted to new plugin API
// - Ripped out a whole load of unused stuff
// - Also Made to fit chatzilla coding pedantics
// 2.1 By Alphax:
// - Added basic template linking functionality
// 2.2 By Alphax:
// - subst: and pipes now handled correctly in templates
// 2.3 by Pathoschild:
// - reverted to 2.2 (2.3 broke all links with non-interlanguage prefixes)
// - fixed mailto: wikilink glitch (based on 2.3 code by Stigmj)
// 2.4 By Stigmj:
// - added support for handling mirc-colors.
// 2.5 By GeorgeMoney:
// - fixed for change in API
// 2.6 By Pathoschild:
// - fix broken interwiki prefix ([[w:foo]]);
// - add support for namespace template syntax;
// - fix modifiers msg, msgnw, raw; correct int (points to "mediawiki:foo", not "template:int:foo");
// - don't link parameters: {{[[template:foo|foo]]|bar}}.
// 2.7 By Pathoschild:
// - added support for external link syntax.
// This file is hereby placed by the authors into the public domain.
//Adapted for #wikibooks-it chan from Ramac
plugin
id
"WikiLinks"
plugin
prefary
"class"
"wiki-link"
""
],
];
//
// Plugin management
//
plugin
init
function
init
glob
plugin
major
plugin
minor
plugin
version
plugin
major
"."
plugin
minor
plugin
description
"Munges wikiML links to be clickable in the output window"
plugin
prefary
plugin
prefary
concat
plugin
prefary
);
plugin
disable
function
disable
()
client
munger
delRule
"wiki-link"
);
client
munger
delRule
"wiki-template-link"
);
client
munger
delRule
"wiki-external-link"
);
client
commandManager
removeCommands
plugin
commands
);
display
plugin
id
" v"
plugin
version
" disabled."
);
return
true
plugin
enable
function
enable
()
client
munger
addRule
"wiki-link"
/(\[(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\[(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*[^\]]+(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\](?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\])/
insertWikiLink
10
10
);
client
munger
addRule
"wiki-template-link"
/(\{(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\{(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*[^\}]+(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\}(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\})/
insertWikiTemplateLink
10
10
);
client
munger
addRule
"wiki-external-link"
/(\[http:\/\/[^\s]+ [^\]]+\])/
insertWikiExtLink
10
10
);
var
cmdary
"wiki-links-class"
cmdClass
CMD_CONSOLE
"[]"
],
];
plugin
commands
client
commandManager
defineCommands
cmdary
);
display
plugin
id
" v"
plugin
version
" enabled."
);
return
true
//
// Mungers
//
function
insertWikiLink
matchText
containerTag
data
mungerEntry
var
wikiLink
matchText
var
linkTitle
wikiLink
matchText
replace
/^\[(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\[(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*/
""
);
wikiLink
wikiLink
replace
/(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\](?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\]$/
""
);
linkTitle
wikiLink
// fix bad links (but leave linkTitle)
wikiLink
wikiLink
replace
/^w:/
""
);
if
linkTitle
match
/\|/
))
var
ary
linkTitle
match
/^(.*?)\|(.*)$/
);
wikiLink
ary
];
linkTitle
ary
];
wikiLink
escape
wikiLink
replace
/ /g
"_"
));
var
anchor
document
createElementNS
"http://www.w3.org/1999/xhtml"
"html:a"
);
anchor
setAttribute
"href"
"http://it.wikibooks.org/wiki/"
wikiLink
);
anchor
setAttribute
"class"
"chatzilla-link "
plugin
prefs
"class"
]);
mungerEntry
enabled
false
data
inLink
true
client
munger
munge
linkTitle
anchor
data
);
mungerEntry
enabled
true
delete
data
inLink
//insertHyphenatedWord(linkTitle, anchor, data);
containerTag
appendChild
document
createTextNode
"[["
));
containerTag
appendChild
anchor
);
containerTag
appendChild
document
createTextNode
"]]"
));
function
insertWikiTemplateLink
matchText
containerTag
data
mungerEntry
var
wikiLink
matchText
var
linkTitle
wikiLink
matchText
replace
/^\{(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\{(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*/
""
);
wikiLink
wikiLink
replace
/(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\}(?:[\x1f\x02\x0f\x03\x16]\d{1,2})*\}$/
""
);
linkTitle
wikiLink
// fix parameters
if
linkTitle
match
/^[^\|]+\|/
))
linkParam
linkTitle
replace
/^[^\|]+\|(.*)$/
"|$1"
);
linkTitle
linkTitle
replace
/^([^\|]+)\|.*$/
"$1"
);
wikiLink
linkTitle
else
linkParam
false
// fix bad links (but leave linkTitle)
wikiLink
wikiLink
replace
/^(?:template|msgnw|raw|subst):/
""
);
// modifiers
// set namespace by syntax
if
wikiLink
match
/^:[a-z\s]*:?/i
))
wikiLink
wikiLink
replace
/^:([a-z\s]+):/i
"$1:"
);
// most ns
wikiLink
wikiLink
replace
/^:/
""
);
// main
else
if
wikiLink
match
/^int:/i
))
wikiLink
wikiLink
replace
/^int:/i
"MediaWiki:"
);
// fix modifier
else
wikiLink
wikiLink
replace
/^/
"Template:"
);
// construct link
wikiLink
escape
wikiLink
replace
/ /g
"_"
));
var
anchor
document
createElementNS
"http://www.w3.org/1999/xhtml"
"html:a"
);
anchor
setAttribute
"href"
"http://it.wikibooks.org/wiki/"
wikiLink
);
anchor
setAttribute
"class"
"chatzilla-link "
plugin
prefs
"class"
]);
mungerEntry
enabled
false
data
inLink
true
client
munger
munge
linkTitle
anchor
data
);
mungerEntry
enabled
true
delete
data
inLink
//insertHyphenatedWord(linkTitle, anchor, data);
containerTag
appendChild
document
createTextNode
"{{"
));
containerTag
appendChild
anchor
);
if
linkParam
containerTag
appendChild
document
createTextNode
linkParam
));
containerTag
appendChild
document
createTextNode
"}}"
));
function
insertWikiExtLink
matchText
containerTag
data
mungerEntry
var
wikiExtLink
matchText
var
linkTitle
matchText
// separate link and text
wikiExtLink
wikiExtLink
replace
/^\[(http:\/\/[^\s]+)\s+.*$/
"$1"
);
linkTitle
linkTitle
replace
/^\[http:\/\/[^\s]+ ([^\]]+)\]$/
"$1"
);
// create link
var
anchor
document
createElementNS
"http://www.w3.org/1999/xhtml"
"html:a"
);
anchor
setAttribute
"href"
wikiExtLink
);
anchor
setAttribute
"class"
"chatzilla-link "
plugin
prefs
"class"
]);
anchor
setAttribute
"style"
"text-decoration: none; color: #36b; margin-left:2px;"
);
mungerEntry
enabled
false
data
inLink
true
client
munger
munge
linkTitle
anchor
data
);
mungerEntry
enabled
true
delete
data
inLink
// show link syntax
containerTag
appendChild
anchor
);
// add external link icon
var
img
document
createElementNS
"http://www.w3.org/1999/xhtml"
"html:img"
);
img
setAttribute
"src"
'http://upload.wikimedia.org/wikipedia/commons/4/44/External.png'
);
containerTag
appendChild
img
);
//
// Commands
//
function
cmdClass
if
null
!=
linkclass
plugin
prefs
"class"
linkclass
display
"Current value: "
plugin
prefs
"class"
);
Estratto da "
Wikibooks
Canale IRC/Script
Aggiungi argomento