Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Link summary

Permanently protected module
From Wikipedia, the free encyclopedia
require("strict")
local str = require("Module:String")

local p = {}

-- Template with placeholders: {{DOMAIN}} for domain, {{ENCODED}} for URL-encoded domain
local template = [=[
{{DOMAIN}}:
<small>
Linksearch [[Special:LinkSearch/*.{{DOMAIN}}|en]] [[Special:Search/insource:%22{{DOMAIN}}%22|(insource)]] -
[[:m:Special:LinkSearch/*.{{DOMAIN}}|meta]] -
[[:de:Special:LinkSearch/*.{{DOMAIN}}|de]] -
[[:fr:Special:LinkSearch/*.{{DOMAIN}}|fr]] -
[[:simple:Special:LinkSearch/*.{{DOMAIN}}|simple]] -
[[:wikt:en:Special:LinkSearch/*.{{DOMAIN}}|wikt:en]] -
[[:wikt:fr:Special:LinkSearch/*.{{DOMAIN}}|wikt:fr]] •
[https://spamcheck.toolforge.org/by-domain?q={{DOMAIN}} Spamcheck] •
[https://blocked-links-log.toolforge.org/index.pl?url={{DOMAIN}} blacklist hits] •
[https://wikipediatools.appspot.com/linksearch.jsp?link={{DOMAIN}} MER-C X-wiki] •
[https://global-search.toolforge.org/?q={{ENCODED}} gs] •
Reports: [[WP:WikiProject_Spam/LinkSearch/{{DOMAIN}}|Links on en]] -
[[WP:WikiProject Spam/LinkReports/{{DOMAIN}}|COIBot]] -
[[WP:WikiProject Spam/Local/{{DOMAIN}}|COIBot-Local]] •
Discussions: [[Special:WhatLinksHere/Wikipedia:WikiProject_Spam/LinkReports/{{DOMAIN}}|tracked]] -
[{{ADVANCED}} advanced] -
[{{RSN}} RSN] •
COIBot-[[:m:User:COIBot/LinkReports/{{DOMAIN}}|Link]],
[[:m:User:COIBot/Local/{{DOMAIN}}|Local]], &
[[:m:User:COIBot/XWiki/{{DOMAIN}}|XWiki]] Reports -
Wikipedia: [[Special:Search/{{DOMAIN}}|en]] - [[:fr:Special:Search/{{DOMAIN}}|fr]] - [[:de:Special:Search/{{DOMAIN}}|de]] •
Google: [https://www.google.com/search?num=100&hl=en&rls=en&q={{DOMAIN}} search] •
[https://www.google.com/search?num=100&hl=en&rls=en&q={{DOMAIN}}+site:wikimedia.org meta] •
Domain: [https://whois.domaintools.com/{{DOMAIN}} domaintools] •
[https://aboutus.com/{{DOMAIN}} AboutUs.com]
</small>
]=]

function p.main(frame)
    -- Get the domain from the first argument
    local domain = frame:getParent().args[1] or ''
    return p.summary(domain)
end

function p.summary(domain)
    -- Escape asterisks (wildcards shouldn't become bullet points)
    local processed = mw.ustring.lower(mw.text.trim(domain)):gsub("%*", "&#42;")
    -- Some special one-offs for encoding
    local encoded = mw.uri.encode(processed, "PATH")
    local advanced = tostring(mw.uri.fullUrl("Special:Search", "ns4=1&ns5=1&search=%22" .. processed .. "%22&fulltext=Advanced+search"))
    local rsn = tostring(mw.uri.fullUrl("Special:Search", "prefix=Wikipedia%3AReliable+sources%2FNoticeboard&fulltext=Search+the+noticeboard+archives&fulltext=Search&ns0=1&ns4=1&ns8=1&ns14=1&search=%22" .. processed .. "%22"))

    local output = template
    	:gsub("\n", " ")
        :gsub("{{DOMAIN}}", str._escapePattern(processed))
        :gsub("{{ENCODED}}", str._escapePattern(encoded))
        :gsub("{{ADVANCED}}", str._escapePattern(advanced))
        :gsub("{{RSN}}", str._escapePattern(rsn))
    return output
end

return p