Jumat, 25 September 2026
02:04 WIB
TERKINI
Bandar Lampung Inovasi Pendidikan Lampung: Guru Ahli Mengajar Lintas Sekolah Tingkatkan Mutu Nasional Bandar Lampung Tragedi Kelengkeng di Lampung Tengah: Siswa 9 Tahun Meninggal, Program MBG Dievaluasi Account KG Media ID: Satu Akun untuk Seluruh Ekosistem Digital Kompas Gramedia Otomotif EXOBOT: Bukti Ambisi Arab Saudi di Pasar Mobil Listrik Dunia Olahraga Modernisasi Pendataan Atlet: KONI Lampung Buka Pendaftaran Daring Porprov X 2026 Olahraga Porprov X Lampung 2026: Pendaftaran Peserta Resmi Dibuka Secara Daring Eropa & Amerika Delegasi AS Walk Out Saat Presiden Iran Kecam Serangan di Sidang PBB Eropa & Amerika Presiden Iran Kecam AS di PBB: Kami Korban Terorisme, Bukan Pelaku Internasional Ekspresi Tak Terduga Donald Trump Kala Pesawat Pengebom B-1 Meraung di Udara Hukum Mobil Halangi Ambulans Pasien Kritis di Surakarta: Sorotan Pentingnya Prioritas Jalan dan Sanksi Hukum Bandar Lampung Inovasi Pendidikan Lampung: Guru Ahli Mengajar Lintas Sekolah Tingkatkan Mutu Nasional Bandar Lampung Tragedi Kelengkeng di Lampung Tengah: Siswa 9 Tahun Meninggal, Program MBG Dievaluasi Account KG Media ID: Satu Akun untuk Seluruh Ekosistem Digital Kompas Gramedia Otomotif EXOBOT: Bukti Ambisi Arab Saudi di Pasar Mobil Listrik Dunia Olahraga Modernisasi Pendataan Atlet: KONI Lampung Buka Pendaftaran Daring Porprov X 2026 Olahraga Porprov X Lampung 2026: Pendaftaran Peserta Resmi Dibuka Secara Daring Eropa & Amerika Delegasi AS Walk Out Saat Presiden Iran Kecam Serangan di Sidang PBB Eropa & Amerika Presiden Iran Kecam AS di PBB: Kami Korban Terorisme, Bukan Pelaku Internasional Ekspresi Tak Terduga Donald Trump Kala Pesawat Pengebom B-1 Meraung di Udara Hukum Mobil Halangi Ambulans Pasien Kritis di Surakarta: Sorotan Pentingnya Prioritas Jalan dan Sanksi Hukum

Modul:Delink

Wikimedia module

Dokumentasi modullihatsuntingriwayatsegarkan
WarningModul Lua ini digunakan pada sekitar 870.000 halaman, atau sekira 20% dari keseluruhan halaman.
Untuk mencegah suntingan mengganggu skala besar dan beban peladen, setiap perubahan harus diuji di subhalaman /bak pasir atau /kasus uji Modul:Delink, atau bak pasir modul Anda. Perubahan yang telah diuji kemudian dapat ditambahkan ke halaman ini dalam satu suntingan. Pertimbangkan untuk mendiskusikan perubahan di halaman pembicaraan sebelum mengimplementasikannya.
Dokumentasi di atas ditransklusikan dari Modul:Delink/doc. (sunting | riwayat)
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
-- This module de-links most wikitext.
require("strict")
localp={}
localgetArgs
localfunctiondelinkReversePipeTrick(s)
ifs:match("^%[%[|.*[|\n]")then-- Check for newlines or multiple pipes.
returns
else
returns:match("%[%[|(.*)%]%]")
end
end
localfunctiondelinkPipeTrick(s)
-- We need to deal with colons, brackets, and commas, per [[Help:Pipe trick]].
-- First, remove the text before the first colon, if any.
ifs:match(":")then
s=s:match("%[%[.-:(.*)|%]%]")
-- If there are no colons, grab all of the text apart from the square brackets and the pipe.
else
s=s:match("%[%[(.*)|%]%]")
end
-- Next up, brackets and commas.
ifs:match("%(.-%)$")then-- Brackets trump commas.
s=s:match("(.-) ?%(.-%)$")
elseifs:match(",")then-- If there are no brackets, display only the text before the first comma.
s=s:match("(.-),.*$")
end
returns
end
-- Return wikilink target |wikilinks=target
localfunctiongetDelinkedTarget(s)
localresult=s
-- Deal with the reverse pipe trick.
ifresult:match("%[%[|")then
returndelinkReversePipeTrick(result)
end
result=mw.uri.decode(result,"PATH")-- decode percent-encoded entities. Leave underscores and plus signs.
result=mw.text.decode(result,true)-- decode HTML entities.
-- Check for bad titles. To do this we need to find the
-- title area of the link, i.e. the part before any pipes.
localtarget_area
ifresult:match("|")then-- Find if we're dealing with a piped link.
target_area=result:match("^%[%[(.-)|.*%]%]")
else
target_area=result:match("^%[%[(.-)%]%]")
end
-- Check for bad characters.
ifmw.ustring.match(target_area,"[%[%]<>{}%%%c\n]")andmw.ustring.match(target_area,"[%[%]<>{}%%%c\n]")~="?"then
returns
end
returntarget_area
end
localfunctiongetDelinkedLabel(s)
localresult=s
-- Deal with the reverse pipe trick.
ifresult:match("%[%[|")then
returndelinkReversePipeTrick(result)
end
result=mw.uri.decode(result,"PATH")-- decode percent-encoded entities. Leave underscores and plus signs.
result=mw.text.decode(result,true)-- decode HTML entities.
-- Check for bad titles. To do this we need to find the
-- title area of the link, i.e. the part before any pipes.
localtarget_area
ifresult:match("|")then-- Find if we're dealing with a piped link.
target_area=result:match("^%[%[(.-)|.*%]%]")
else
target_area=result:match("^%[%[(.-)%]%]")
end
-- Check for bad characters.
ifmw.ustring.match(target_area,"[%[%]<>{}%%%c\n]")andmw.ustring.match(target_area,"[%[%]<>{}%%%c\n]")~="?"then
returns
end
-- Check for categories, interwikis, and files.
localcolon_prefix=result:match("%[%[(.-):.*%]%]")or""-- Get the text before the first colon.
localns=mw.site.namespaces[colon_prefix]-- see if this is a known namespace
ifmw.language.isKnownLanguageTag(colon_prefix)or(nsand(ns.canonicalName=="File"orns.canonicalName=="Category"))then
return""
end
-- Remove the colon if the link is using the [[Help:Colon trick]].
ifresult:match("%[%[:")then
result="[["..result:match("%[%[:(.*%]%])")
end
-- Deal with links using the [[Help:Pipe trick]].
ifmw.ustring.match(result,"^%[%[[^|]*|%]%]")then
returndelinkPipeTrick(result)
end
-- Find the display area of the wikilink
ifresult:match("|")then-- Find if we're dealing with a piped link.
result=result:match("^%[%[.-|(.+)%]%]")
-- Remove new lines from the display of multiline piped links,
-- where the pipe is before the first new line.
result=result:gsub("\n","")
else
result=result:match("^%[%[(.-)%]%]")
end
returnresult
end
localfunctiondelinkURL(s)
-- Assume we have already delinked internal wikilinks, and that
-- we have been passed some text between two square brackets [foo].
-- If the text contains a line break it is not formatted as a URL, regardless of other content.
ifs:match("\n")then
returns
end
-- Check if the text has a valid URL prefix and at least one valid URL character.
localvalid_url_prefixes={"//","http://","https://","ftp://","gopher://","mailto:","news:","irc://"}
localurl_prefix
for_,vinipairs(valid_url_prefixes)do
ifmw.ustring.match(s,'^%['..v..'[^"%s].*%]')then
url_prefix=v
break
end
end
-- Get display text
ifnoturl_prefixthen
returns
end
s=s:match("^%["..url_prefix.."(.*)%]")-- Grab all of the text after the URL prefix and before the final square bracket.
s=s:match('^.-(["<> ].*)')or""-- Grab all of the text after the first URL separator character ("<> ).
s=mw.ustring.match(s,"^%s*(%S.*)$")or""-- If the separating character was a space, trim it off.
locals_decoded=mw.text.decode(s,true)
ifmw.ustring.match(s_decoded,"%c")then
returns
end
returns_decoded
end
localfunctiondelinkLinkClass(text,pattern,delinkFunction)
iftype(text)~="string"then
error("Upaya untuk menghapus tautan dari masukan yang bukan string.",2)
end
iftype(pattern)~="string"ormw.ustring.sub(pattern,1,1)~="^"then
error('Pola tidak valid terdeteksi. Pola harus dimulai dengan "^".',2)
end
-- Iterate over the text string, and replace any matched text. using the 
-- delink function. We need to iterate character by character rather 
-- than just use gsub, otherwise nested links aren't detected properly.
localresult=""
whiletext~=""do
-- Replace text using one iteration of gsub.
text=mw.ustring.gsub(text,pattern,delinkFunction,1)
-- Append the left-most character to the result string.
result=result..mw.ustring.sub(text,1,1)
text=mw.ustring.sub(text,2,-1)
end
returnresult
end
functionp._delink(args)
localtext=args[1]or""
ifargs.refs=="yes"then
-- Remove any [[Help:Strip markers]] representing ref tags. In most situations 
-- this is not a good idea - only use it if you know what you are doing!
text=mw.ustring.gsub(text,"UNIQ%w*%-ref%-%d*%-QINU","")
end
ifargs.comments~="no"then
text=text:gsub("<!%-%-.-%-%->","")-- Remove html comments.
end
ifargs.wikilinks~="no"andargs.wikilinks~="target"then
-- De-link wikilinks and return the label portion of the wikilink.
text=delinkLinkClass(text,"^%[%[.-%]%]",getDelinkedLabel)
elseifargs.wikilinks=="target"then
-- De-link wikilinks and return the target portions of the wikilink.
text=delinkLinkClass(text,"^%[%[.-%]%]",getDelinkedTarget)
end
ifargs.urls~="no"then
text=delinkLinkClass(text,"^%[.-%]",delinkURL)-- De-link URLs.
end
ifargs.whitespace~="no"then
-- Replace single new lines with a single space, but leave double new lines
-- and new lines only containing spaces or tabs before a second new line.
text=mw.ustring.gsub(text,"([^\n\t][ \t]*)\n([ \t]*[^\n\t])","%1 %2")
text=text:gsub("[ \t]+"," ")-- Remove extra tabs and spaces.
end
returntext
end
functionp.delink(frame)
ifnotgetArgsthen
getArgs=require('Modul:Arguments').getArgs
end
returnp._delink(getArgs(frame,{wrappers='Templat:Delink'}))
end
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan