「モジュール:Wd」の版間の差分

en:Module:Wd 2017年5月17日 (水) 06:18(UTC)より
template>K-iczn
(en:Module:Wd 2017年5月12日 (金) 08:40(UTC)より)
template>K-iczn
(en:Module:Wd 2017年5月17日 (水) 06:18(UTC)より)
1行目: 1行目:
-- Original module located at [[:en:Module:Wd]].
-- Original module located at [[:en:Module:Wd]] and [[:en:Module:Wd/i18n]].


local p = {}
local p = {}
163行目: 163行目:
function extraRequiredParameterError(param)
function extraRequiredParameterError(param)
return applyStringParams(i18n['errors']['extra-required-parameter'], param)
return applyStringParams(i18n['errors']['extra-required-parameter'], param)
end
function getOrdinalSuffix(num)
return i18n.getOrdinalSuffix(num)
end
function addDelimiters(num)
return i18n.addDelimiters(num)
end
function replaceDecimalMark(num)
return mw.ustring.gsub(num, "[.]", i18n['numeric']['decimal-mark'], 1)
end
-- used for cleaner output when subst:ituting this module
function replaceHTMLSpaces(str)
return mw.ustring.gsub(str, " ", " ")
end
function buildWikilink(target, label)
if target == label then
return "[[" .. target .. "]]"
else
return "[[" .. target .. "|" .. label .. "]]"
end
end
end


224行目: 249行目:
end
end


function getHookName(param, index)
function parseWikidataURL(url)
if hookNames[param] then
local i, j
return hookNames[param][index]
elseif string.len(param) > 2 then
if url:match('^http[s]?://') then
return hookNames[string.sub(param, 1, 2).."\\d"][index]
i, j = url:find("Q")
else
return nil
end
end
 
function parseWikidataURL(url)
local i, j
if url:match('^http[s]?://') then
i, j = url:find("Q")
if i then
if i then
339行目: 354行目:
if link then
if link then
if title then
if title then
return " " .. "[[" .. title .. "|" .. (label or title) .. "]]"
return " " .. buildWikilink(title, (label or title))
end
end
if not label then
if not label then
return " " .. "[[d:" .. itemID .. "|" .. itemID .. "]]"
return " " .. buildWikilink("d:" .. itemID, itemID)
end
end
end
end
352行目: 367行目:
return " " .. unit
return " " .. unit
end
function getOrdinalSuffix(num)
return i18n.getOrdinalSuffix(num)
end
function addDelimiters(num)
return i18n.addDelimiters(num)
end
function replaceDecimalMark(num)
return mw.ustring.gsub(num, "[.]", i18n['numeric']['decimal-mark'], 1)
end
-- used for cleaner output when subst:ituting this module
function replaceHTMLSpaces(str)
return mw.ustring.gsub(str, " ", " ")
end
end


413行目: 411行目:
return false
return false
end
function getHookName(param, index)
if hookNames[param] then
return hookNames[param][index]
elseif string.len(param) > 2 then
return hookNames[string.sub(param, 1, 2).."\\d"][index]
else
return nil
end
end
end


597行目: 605行目:
if snak.snaktype == 'value' then
if snak.snaktype == 'value' then
if snak.datavalue.type == 'string' then
if snak.datavalue.type == 'string' then
return snak.datavalue.value
if link and snak.datatype == 'url' then
-- create link explicitly
if raw then
-- will render as a linked number like [1]
return "[" .. snak.datavalue.value .. "]"
else
return "[" .. snak.datavalue.value .. " " .. snak.datavalue.value .. "]"
end
else
return snak.datavalue.value
end
elseif snak.datavalue.type == 'monolingualtext' then
elseif snak.datavalue.type == 'monolingualtext' then
if anyLang then
if anyLang then
775行目: 793行目:
if not raw then
if not raw then
if link then
if link then
calendar = " ([["..i18n['datetime']['julian-calendar'].."|"..i18n['datetime']['julian'].."]])"
calendar = " ("..buildWikilink(i18n['datetime']['julian-calendar'], i18n['datetime']['julian'])..")"
else
else
calendar = " ("..i18n['datetime']['julian']..")"
calendar = " ("..i18n['datetime']['julian']..")"
796行目: 814行目:
if ce then
if ce then
if link then
if link then
ce = "[[" .. i18n['datetime']['common-era'] .. "|" .. ce .. "]]"
ce = buildWikilink(i18n['datetime']['common-era'], ce)
end
end
suffix = suffix .. " " .. ce
suffix = suffix .. " " .. ce
966行目: 984行目:
if raw then
if raw then
if link then
if link then
return "[[d:" .. itemID .. "|" .. itemID .. "]]"
return buildWikilink("d:" .. itemID, itemID)
else
else
return itemID
return itemID
986行目: 1,004行目:
if link then
if link then
if title then
if title then
value = "[[" .. title .. "|" .. (value or title) .. "]]"
value = buildWikilink(title, (value or title))
elseif not value then
elseif not value then
value = "[[d:" .. itemID .. "|" .. itemID .. "]]"
value = buildWikilink("d:" .. itemID, itemID)
end
end
elseif not value then
elseif not value then
1,436行目: 1,454行目:
if snaks[aliasesP.archiveURL]      then params[i18n['cite']['archive-url']]  = self.conf:getValue(snaks[aliasesP.archiveURL])                      end
if snaks[aliasesP.archiveURL]      then params[i18n['cite']['archive-url']]  = self.conf:getValue(snaks[aliasesP.archiveURL])                      end
if snaks[aliasesP.archiveDate]    then params[i18n['cite']['archive-date']] = self.conf:getValue(snaks[aliasesP.archiveDate])                      end
if snaks[aliasesP.archiveDate]    then params[i18n['cite']['archive-date']] = self.conf:getValue(snaks[aliasesP.archiveDate])                      end
if snaks[aliasesP.author]          then params[i18n['cite']['author']]      = self.conf:getValue(snaks[aliasesP.author])                           end
if snaks[aliasesP.author]          then params[i18n['cite']['author']]      = self.conf:getValue(snaks[aliasesP.author], false, self.linked)       end -- link = true/false
if snaks[aliasesP.publisher]      then params[i18n['cite']['publisher']]    = self.conf:getValue(snaks[aliasesP.publisher])                       end
if snaks[aliasesP.publisher]      then params[i18n['cite']['publisher']]    = self.conf:getValue(snaks[aliasesP.publisher], false, self.linked)   end -- link = true/false
if snaks[aliasesP.quote]          then params[i18n['cite']['quote']]        = self.conf:getValue(snaks[aliasesP.quote], false, false, false, true) end  -- anyLang = true
if snaks[aliasesP.quote]          then params[i18n['cite']['quote']]        = self.conf:getValue(snaks[aliasesP.quote], false, false, false, true) end  -- anyLang = true
if snaks[aliasesP.language] then
if snaks[aliasesP.language] then
snakValue = self.conf:getValue(snaks[aliasesP.language])
snakValue = self.conf:getValue(snaks[aliasesP.language], false, self.linked) -- link = true/false
if self.conf.langName ~= snakValue then
if self.conf.langName ~= snakValue then
1,462行目: 1,480行目:
if snaks[aliasesP.referenceURL] and snaks[aliasesP.title] then
if snaks[aliasesP.referenceURL] and snaks[aliasesP.title] then
url  = self.conf:getValue(snaks[aliasesP.referenceURL])
url  = self.conf:getValue(snaks[aliasesP.referenceURL])
title = self.conf:getValue(snaks[aliasesP.title], false, false, false, true)
title = self.conf:getValue(snaks[aliasesP.title], false, false, false, true) -- anyLang = true
leadParams[#leadParams + 1] = "[" .. url .. " " .. title .. "]"
leadParams[#leadParams + 1] = "[" .. url .. " " .. title .. "]"
1,475行目: 1,493行目:
if property ~= "" then
if property ~= "" then
snakValue, lang = self.conf:getValue(v, false, (i == aliasesP.statedIn), false, true)  -- link = true/false, anyLang = true
snakValue, lang = self.conf:getValue(v, false, self.linked or (i == aliasesP.statedIn) or (i == aliasesP.referenceURL), false, true)  -- link = true/false, anyLang = true
if lang and lang ~= self.conf.langCode then
if lang and lang ~= self.conf.langCode then
1,894行目: 1,912行目:
if _.curState.linked then
if _.curState.linked then
if ID:sub(1,1) == "P" then
if ID:sub(1,1) == "P" then
label = "[[d:Property:" .. ID .. "|" .. ID .. "]]"
label = buildWikilink("d:Property:" .. ID, ID)
else
else
label = "[[d:" .. ID .. "|" .. ID .. "]]"
label = buildWikilink("d:" .. ID, ID)
end
end
else
else
1,910行目: 1,928行目:
if _.curState.linked and label ~= "" then
if _.curState.linked and label ~= "" then
label = "[[d:" .. label .. "|" .. label .. "]]"
label = buildWikilink("d:" .. label, label)
end
end
1,922行目: 1,940行目:
if _.curState.linked and label ~= "" then
if _.curState.linked and label ~= "" then
label = "[[d:Property:" .. ID .. "|" .. label .. "]]"
label = buildWikilink("d:Property:" .. ID, label)
end
end
end
end
1,952行目: 1,970行目:
if _.curState.linked and title then
if _.curState.linked and title then
label = "[[" .. title .. "|" .. (label or title) .. "]]"
label = buildWikilink(title, (label or title))
else
else
label = label or title or ""
label = label or title or ""
匿名利用者