Home
Random
Synthetic human-like fakes
Against synthetic human-like fakes
Laws against synthesis
Biblical connection - Revelation 13 and Daniel 7
FacePinPoint.com used to exist
Adequate Porn Watcher AI (concept)
How to protect yourself and others from covert modeling
Mediatheque
Glossary
Resources
Bibles and churches
Marketing against synthetic filth
About the SSF! wiki
#SSF! In other languages
Stop Synthetic Filth! wordpress in English #SSF!
Arrรชtons les saletรฉs synthรฉtiques! accueil
Stoppi synteettiselle saastalle! kotisivu
Stoppa syntetisk orenhet! hemsida
Stopp sรผnteetisele saastale! koduleht
Recent changes
Special pages
Community portal
Settings
About Stop Synthetic Filth! wiki
Disclaimers
Stop Synthetic Filth! wiki
Search
User menu
Talk
Contributions
Log in
Editing
Module:Hatnote
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Advanced
Special characters
Help
Heading
Level 2
Level 3
Level 4
Level 5
Format
Insert
Latin
Latin extended
IPA
Symbols
Greek
Greek extended
Cyrillic
Arabic
Arabic extended
Hebrew
Bangla
Tamil
Telugu
Sinhala
Devanagari
Gujarati
Thai
Lao
Khmer
Canadian Aboriginal
Runes
ร
รก
ร
ร
ร
รข
ร
รค
ร
รฃ
ว
ว
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ร
รฅ
ฤ
ฤ
ฤ
ฤ
ร
รง
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ร
รฉ
ร
รจ
ร
รช
ร
รซ
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ฤ
ฤข
ฤฃ
ฤ
ฤ
ฤ
ฤก
ฤค
ฤฅ
ฤฆ
ฤง
ร
รญ
ร
รฌ
ร
รฎ
ร
รฏ
ฤจ
ฤฉ
ว
ว
ฤช
ฤซ
ฤฌ
ฤญ
ฤฐ
ฤฑ
ฤฎ
ฤฏ
ฤด
ฤต
ฤถ
ฤท
ฤน
ฤบ
ฤป
ฤผ
ฤฝ
ฤพ
ล
ล
ล
ล
ร
รฑ
ล
ล
ล
ล
ร
รณ
ร
รฒ
ร
รด
ร
รถ
ร
รต
ว
ว
ล
ล
ล
ล
วช
วซ
ล
ล
ล
ล
ล
ล
ล
ล
ล
ล
ล
ล
ล
ล
ล
ลก
ศ
ศ
ศ
ศ
ลค
ลฅ
ร
รบ
ร
รน
ร
รป
ร
รผ
ลจ
ลฉ
ลฎ
ลฏ
ว
ว
ลช
ลซ
ว
ว
ว
ว
ลฌ
ลญ
ลฒ
ลณ
ลฐ
ลฑ
ลด
ลต
ร
รฝ
ลถ
ลท
ลธ
รฟ
ศฒ
ศณ
ลน
ลบ
ลฝ
ลพ
ลป
ลผ
ร
รฆ
วข
วฃ
ร
รธ
ล
ล
ร
ร
รฐ
ร
รพ
ฦ
ษ
Formatting
Links
Headings
Lists
Files
Discussion
Description
What you type
What you get
Italic
''Italic text''
Italic text
Bold
'''Bold text'''
Bold text
Bold & italic
'''''Bold & italic text'''''
Bold & italic text
-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the {{hatnote}} and {{format link}} meta-templates and includes -- -- helper functions for other Lua hatnote modules. -- -------------------------------------------------------------------------------- local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg local mArguments -- lazily initialise [[Module:Arguments]] local yesno -- lazily initialise [[Module:Yesno]] local p = {} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to false. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink{link = page} end return ret end function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink{link = link, display = display} end return links end function p.makeWikitextError(msg, helpLink, addTrackingCategory, title) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- [[Module:Yesno]], and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') title = title or mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' ([[' .. helpLink .. '|help]])' else helpText = '' end -- Make the category text. local category if not title.isTalkPage -- Don't categorise talk pages and title.namespace ~= 2 -- Don't categorise userspace and yesno(addTrackingCategory) ~= false -- Allow opting out then category = 'Hatnote templates with errors' category = string.format( '[[%s:%s]]', mw.site.namespaces[14].name, category ) else category = '' end return string.format( '<strong class="error">Error: %s%s.</strong>%s', msg, helpText, category ) end function p.disambiguate(page, disambiguator) -- Formats a page title with a disambiguation parenthetical, -- i.e. "Example" โ "Example (disambiguation)". checkType('disambiguate', 1, page, 'string') checkType('disambiguate', 2, disambiguator, 'string', true) disambiguator = disambiguator or 'disambiguation' return string.format('%s (%s)', page, disambiguator) end -------------------------------------------------------------------------------- -- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " ยง " as a separator rather than the standard MediaWiki "#". Used in -- the {{format link}} template. -------------------------------------------------------------------------------- function p.formatLink(frame) -- The formatLink export function, for use in templates. yesno = require('Module:Yesno') local args = getArgs(frame) local link = args[1] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format link#Errors', args.category ) end return p._formatLink{ link = link, display = args[2], italicizePage = yesno(args.italicizepage), italicizeSection = yesno(args.italicizesection), } end local function italicize(s) -- Italicize a string. return '<i>' .. s .. '</i>' end local function maybeItalicize(s, shouldItalicize) -- italicize s if s is a string and the shouldItalicize parameter is true. if s and shouldItalicize then return italicize(s) else return s end end local function parseLink(link) -- Parse a link and return a table with the link's components. -- These components are: -- - link: the link, stripped of any initial colon (always present) -- - page: the page name (always present) -- - section: the page name (may be nil) -- - display: the display text, if manually entered after a pipe (may be nil) link = removeInitialColon(link) -- Find whether a faux display value has been added with the {{!}} magic -- word. local prePipe, display = link:match('^(.-)|(.*)$') link = prePipe or link -- Find the page, if it exists. -- For links like [[#Bar]], the page will be nil. local preHash, postHash = link:match('^(.-)#(.*)$') local page if not preHash then -- We have a link like [[Foo]]. page = link elseif preHash ~= '' then -- We have a link like [[Foo#Bar]]. page = preHash end -- Find the section, if it exists. local section if postHash and postHash ~= '' then section = postHash end return { link = link, page = page, section = section, display = display, } end function p._formatLink(options) -- The formatLink export function, for use in modules. checkType('_formatLink', 1, options, 'table') checkTypeForNamedArg('_formatLink', 'link', options.link, 'string', false) checkTypeForNamedArg( '_formatLink', 'display', options.display, 'string', true ) checkTypeForNamedArg( '_formatLink', 'italicizePage', options.italicizePage, 'boolean', true ) checkTypeForNamedArg( '_formatLink', 'italicizeSection', options.italicizeSection, 'boolean', true ) local parsed = parseLink(options.link) local display = options.display or parsed.display -- Deal with the case where we don't have to pipe the link if not display and not parsed.section and not options.italicizePage then return string.format('[[:%s]]', parsed.link) end -- Find the display text for piped links if not display then local page = maybeItalicize(parsed.page, options.italicizePage) local section = maybeItalicize(parsed.section, options.italicizeSection) if not page then display = string.format('ยง %s', section) elseif section then display = string.format('%s ยง %s', page, section) else display = page end end return string.format('[[:%s|%s]]', parsed.link, display) end -------------------------------------------------------------------------------- -- Hatnote -- -- Produces standard hatnote text. Implements the {{hatnote}} template. -------------------------------------------------------------------------------- function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) options = options or {} local classes = {'hatnote', 'navigation-not-searchable'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '<div role="note" class="%s">%s</div>', table.concat(classes, ' '), s ) end return p
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
--------------------------------------------------------------------------------
-- Module:Hatnote --
-- --
-- This module produces hatnote links and links to related articles. It --
-- implements the {{hatnote}} and {{format link}} meta-templates and includes --
-- helper functions for other Lua hatnote modules. --
--------------------------------------------------------------------------------
local
libraryUtil
=
require
(
'libraryUtil'
)
local
checkType
=
libraryUtil
.
checkType
local
checkTypeForNamedArg
=
libraryUtil
.
checkTypeForNamedArg
local
mArguments
-- lazily initialise [[Module:Arguments]]
local
yesno
-- lazily initialise [[Module:Yesno]]
local
p
=
{
}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local
function
getArgs
(
frame
)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
ืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืืื
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0
0
0
1:0
Summary:
Please note that all contributions to Stop Synthetic Filth! wiki are considered to be released under the Creative Commons Attribution-ShareAlike (see
SSF:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Debug console
* The module exports are available as the variable "p", including unsaved modifications. * Precede a line with "=" to evaluate it as an expression or use print(). Use mw.logObject() for tables. * Use mw.log() and mw.logObject() in module code to send messages to this console.
Module:Hatnote/doc
(
view source
)