Detta är dokumentationssidan för Modul:link
Kan användas av moduler eller mallar för att länka en textsträng om det är möjligt, annars lämna den olänkad, samt svara på om en textsträng över huvud taget kan länkas. Hanterar specialfall som "", "-" och "?". Används typiskt av grammmatikmoduler men används med fördel av alla typer av mallar och moduler där motsvarande funktionalitet är väntad.
Från modul:
local lk = require("Modul:link")
local can_create_page = lk.isValidLinkTarget("sidnamn") -- true
local cannot_create_page = lk.isValidLinkTarget("[[sidnamn]]") -- false
local modified_string = lk.link("sidnamn") -- [[sidnamn]]
local unmodified_string = lk.link("[[sidnamn]]") -- [[sidnamn]]
local special_case_1 = lk.link("") --  
local special_case_2 = lk.link("-") -- –
local special_case_3 = lk.link("?") -- ?
local anchor = lk.link("[[sidnamn]]", sv) -- [[sidnamn#Svenska|sidnamn]]
local anchor_other_text_1 = lk.link("[[sidnamn]]et", sv) -- [[sidnamn#Svenska|sidnamn]]et
local anchor_other_text_2 = lk.link("[[sidnamn|sidnamnet]]", sv) -- [[sidnamn#Svenska|sidnamnet]]
Från mall:
{{#invoke:link|isValidLinkTarget|sidnamn}} -- true
{{#invoke:link|isValidLinkTarget|[[sidnamn]]}} -- false
{{#invoke:link|link|sidnamn}} -- [[sidnamn]]
{{#invoke:link|link|[[sidnamn]]}} -- [[sidnamn]]
{{#invoke:link|link|}} --  
{{#invoke:link|link|-}} -- –
{{#invoke:link|link|?}} -- ?
{{#invoke:link|link|[[sidnamn]]|sv}} -- [[sidnamn#Svenska|sidnamn]]
{{#invoke:link|link|[[sidnamn]]et|sv}} -- [[sidnamn#Svenska|sidnamn]]et
{{#invoke:link|link|[[sidnamn|sidnamnet]]|sv}} -- [[sidnamn#Svenska|sidnamnet]]
All tests passed. (refresh)
Text
Expected
Actual
test01_basic:
mut.link("ord")
[[ord]]
[[ord]]
Text
Expected
Actual
test02_special_cases:
mut.link("-")
–
–
mut.link("?")
?
?
mut.link("")
Text
Expected
Actual
test03_namespaces:
mut.link(":Kategori:Index")
[[:Kategori:Index]]
[[:Kategori:Index]]
mut.link("w:Portal:Huvudsida")
[[w:Portal:Huvudsida]]
[[w:Portal:Huvudsida]]
mut.link(":en:Wiktionary:Main Page")
[[:en:Wiktionary:Main Page]]
[[:en:Wiktionary:Main Page]]
Text
Expected
Actual
test04_links_with_special_chars:
mut.link("abc#åäö")
[[abc#åäö]]
[[abc#åäö]]
mut.link("...")
[[...]]
[[...]]
mut.link("(")
[[(]]
[[(]]
mut.link("\"")
[["]]
[["]]
Text
Expected
Actual
test05_phrases:
mut.link("compound word")
[[compound word]]
[[compound word]]
mut.link("[[Surt, sa räven]]")
[[Surt, sa räven]]
[[Surt, sa räven]]
mut.link("[[Surt, sa räven om rönnbären.]]")
[[Surt, sa räven om rönnbären.]]
[[Surt, sa räven om rönnbären.]]
mut.link("[[veni, vidi, vici]]")
[[veni, vidi, vici]]
[[veni, vidi, vici]]
Text
Expected
Actual
test06_multiword:
mut.link("ord1, ord2")
[[ord1]], [[ord2]]
[[ord1]], [[ord2]]
mut.link("[[ord1]], ord2")
[[ord1]], [[ord2]]
[[ord1]], [[ord2]]
mut.link("[[frasord1, frasord2]], ord1, [[ord2]]")
[[frasord1, frasord2]], [[ord1]], [[ord2]]
[[frasord1, frasord2]], [[ord1]], [[ord2]]
Text
Expected
Actual
test07_already_linked_should_not_double_link:
mut.link("[[ord]]")
[[ord]]
[[ord]]
mut.link("[[ord|text]]")
[[ord|text]]
[[ord|text]]
mut.link("[[ord]]<sup>1</sup>")
[[ord]]<sup>1</sup>
[[ord]]<sup>1</sup>
Text
Expected
Actual
test08_invalid_titles:
mut.link(".")
.
.
mut.link("..")
..
..
mut.link(":")
:
:
mut.link("> abc")
> abc
> abc
Text
Expected
Actual
test09_anchors:
mut.link("[[ord]]", "en")
[[ord#Engelska|ord]]
[[ord#Engelska|ord]]
mut.link("ord", "en")
[[ord#Engelska|ord]]
[[ord#Engelska|ord]]
mut.link("[[ord1]], ord2", "en")
[[ord1#Engelska|ord1]], [[ord2#Engelska|ord2]]
[[ord1#Engelska|ord1]], [[ord2#Engelska|ord2]]
mut.link("[[w:ord]]", "en")
[[w:ord]]
[[w:ord]]
mut.link("[[Wiktionary:ord]]", "en")
[[Wiktionary:ord]]
[[Wiktionary:ord]]
mut.link("[[mumsa i|mumsa i sig]]", "en")
[[mumsa i#Engelska|mumsa i sig]]
[[mumsa i#Engelska|mumsa i sig]]
mut.link("[[Sverige]]s", "sv")
[[Sverige#Svenska|Sverige]]s
[[Sverige#Svenska|Sverige]]s
mut.link("[[skratte#Bokmål|skratte]]", "no")
[[skratte#Bokmål|skratte]]
[[skratte#Bokmål|skratte]]
mut.link("[[Surt, sa räven|Nåt helt annat]]")
[[Surt, sa räven|Nåt helt annat]]
[[Surt, sa räven|Nåt helt annat]]
mut.link("[[veni, vidi, vici|nåt helt annat]]")
[[veni, vidi, vici|nåt helt annat]]
[[veni, vidi, vici|nåt helt annat]]
mut.link("[[Surt, sa räven|Nåt helt annat]]", "en")
[[Surt, sa räven#Engelska|Nåt helt annat]]
[[Surt, sa räven#Engelska|Nåt helt annat]]
mut.link("[[veni, vidi, vici|nåt helt annat]]", "en")
[[veni, vidi, vici#Engelska|nåt helt annat]]
[[veni, vidi, vici#Engelska|nåt helt annat]]
mut.link("[[abc▶]]", "en")
[[abc▶#Engelska|abc▶]]
[[abc▶#Engelska|abc▶]]
mut.link("[[abc▶]]", "en")
[[abc▶#Engelska|abc▶]]
[[abc▶#Engelska|abc▶]]
Text
Expected
Actual
test10_do_add_anchor_even_if_pagename_equals_word:
mut.link("link/dok", "en")
[[link/dok#Engelska|link/dok]]
[[link/dok#Engelska|link/dok]]
mut.link("[[link/dok]]", "en")
[[link/dok#Engelska|link/dok]]
[[link/dok#Engelska|link/dok]]
mut.link("link/dok, [[link/dok]]", "en")
[[link/dok#Engelska|link/dok]], [[link/dok#Engelska|link/dok]]
[[link/dok#Engelska|link/dok]], [[link/dok#Engelska|link/dok]]
Text
Expected
Actual
test11_entry_name_should_be_used:
mut.link("abdērītānus", "la")
[[abderitanus#Latin|abdērītānus]]
[[abderitanus#Latin|abdērītānus]]
mut.link("[[abdērītānus]]", "la")
[[abderitanus#Latin|abdērītānus]]
[[abderitanus#Latin|abdērītānus]]
mut.link("[[abdērītānus#Latin|madeup]]", "la")
[[abderitanus#Latin|madeup]]
[[abderitanus#Latin|madeup]]
Text
Expected
Actual
test12_multiword_with_anchors:
mut.link("[[multiple]] [[word]]s", "en")
[[multiple#Engelska|multiple]] [[word#Engelska|word]]s
[[multiple#Engelska|multiple]] [[word#Engelska|word]]s
mut.link("[[abdērītānus1]] [[abdērītānus2]]", "la")
[[abderitanus1#Latin|abdērītānus1]] [[abderitanus2#Latin|abdērītānus2]]
[[abderitanus1#Latin|abdērītānus1]] [[abderitanus2#Latin|abdērītānus2]]
mut.link("[[abdērītānus1#Latin|madeup1]] [[abdērītānus2#Latin|madeup2]]", "la")
[[abderitanus1#Latin|madeup1]] [[abderitanus2#Latin|madeup2]]
[[abderitanus1#Latin|madeup1]] [[abderitanus2#Latin|madeup2]]