Module:Redirect hatnote: Difference between revisions
From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
Content added Content deleted
(add kerning for redir titles beginning or ending with apostrophes or quotation marks, as at Neighbourhood and Kurtis Blow) |
(Updated from sandbox: Rewrote p._quote to use mw.html, divided functions into helper functions and main functions, and tweaked getTitle) |
||
Line 13: | Line 13: | ||
local p = {} |
local p = {} |
||
-------------------------------------------------------------------------------- |
|||
-- Helper functions |
|||
-------------------------------------------------------------------------------- |
|||
local function getTitle(...) |
local function getTitle(...) |
||
--Calls mw.title.new and returns either a title object, or nil on error |
|||
local success, titleObj = pcall(mw.title.new, ...) |
local success, titleObj = pcall(mw.title.new, ...) |
||
return success and titleObj or nil |
|||
⚫ | |||
return titleObj |
|||
else |
|||
⚫ | |||
return nil |
|||
--Wraps titles in quotation marks. If the title starts/ends with a quotation |
|||
--mark, kerns that side as with {{-'}} |
|||
local quotationMarks = { |
|||
⚫ | |||
} |
|||
local quoteLeft, quoteRight = -- Test if start/end are quotation marks |
|||
⚫ | |||
⚫ | |||
if quoteLeft or quoteRight then |
|||
title = mw.html.create("span"):wikitext(title) |
|||
end |
end |
||
if quoteLeft then title:css("padding-left", "0.15em") end |
|||
if quoteRight then title:css("padding-right", "0.15em") end |
|||
return '"' .. tostring(title) .. '"' |
|||
end |
end |
||
-------------------------------------------------------------------------------- |
|||
-- Main functions |
|||
-------------------------------------------------------------------------------- |
|||
function p.redirect(frame) |
function p.redirect(frame) |
||
Line 119: | Line 141: | ||
return mHatnote._hatnote(text, mhOptions) .. category |
return mHatnote._hatnote(text, mhOptions) .. category |
||
⚫ | |||
⚫ | |||
⚫ | |||
local style = "" |
|||
-- If string starts with anything in quotationMarks, kern to same degree {{-'}} does |
|||
⚫ | |||
style = "padding-left:0.15em;" |
|||
end |
|||
-- Likewise if it ends with any of them |
|||
⚫ | |||
style = style .. "padding-right:0.15em;" |
|||
end |
|||
return style ~= "" and '"<span style="' .. style .. '">' .. title .. '</span>"' or '"' .. title .. '"' |
|||
end |
end |
||