モジュール:山岳一覧
表示
モジュールの解説[作成]
local function join(list)
local text=""
for _,v in ipairs(list) do
text=text..v
end
return text
end
return {
_=function(frame)
local ruby=require("Module:Ruby")
local html={}
for line in string.gmatch(mw.text.trim(frame:getParent().args[2]),"[^\n]+") do
local ss=mw.text.split(mw.text.trim(line),",")
local t=mw.text.split(mw.text.trim(ss[1]),"/")
local p=mw.text.split(mw.text.trim(ss[2]),"/")
local color=180-(tonumber(ss[4])-1000)/9
local title=mw.title.new("File:"..string.gsub(ss[3],"%%2[cC]",","))
local file=nil
if title~=nil then
file=title.file
end
table.insert(html,mw.text.tag("div",{style="text-align:center;background:linear-gradient(0deg,hsl("..color..",75%,85%), hsl("..color..",97%,97%));border:1px solid hsl("..color..",70%,70%);margin:2px;padding:0.2em;width:10em;min-width:168px;"},
mw.text.tag("div",{style="height:2.5em;"},mw.text.tag("span",{style=mw.ustring.len(t[1])>=7 and "font-size:80%;" or ""},"[["..t[#t>=3 and 3 or 1].."|"..ruby(t[1],t[2]).."]]"))..
mw.text.tag("div",{style="height:1.5em;font-size:80%;"},ss[4].." m")..
mw.text.tag("div",{style="width:160px;margin:auto;overflow:hidden;"},
file~=nil and mw.text.tag("div",{style="position:relative;left:"..math.floor(80-60*file.width/file.height).."px;"},"[[Image:"..ss[3].."|x120px]]") or ""
)..
mw.text.tag("div",{style="height:1.5em;font-size:70%;"},string.gsub(ss[5],"/","/"))..
mw.text.tag("div",{style="height:1.5em;text-align:right;font-size:50%;",class="plainlinks"},"地図:[https://maps.gsi.go.jp/#15/"..p[2].."/"..p[1].." 地理院] [https://openstreetmap.jp/map#zoom=15&lat="..p[2].."&lon="..p[1].." OSM]")
))
end
return mw.text.tag("div",{style="display:flex;flex-wrap:wrap;"},join(html))
end
}