モジュール:81プロフィール
表示
このモジュールはTemplate:81プロフィールの内部で使用されています。
使い方
[編集]書式
[編集]{{#invoke:81プロフィール|getid|ページ名}}
Template:81プロフィール/一覧を読み込んだ上で与えられたページ名にリンクしている項目を検索します。合致するリンクが見つかった場合は81プロデュースの公式サイトにある声優のプロフィールのURLを生成して返します。見つからなかった場合はエラーメッセージを返します。
ページ名の指定を省略した場合は、代わりに現在のページ名(サブページ名)で検索を行います。
local listpage = 'Template:81プロフィール/一覧'
local urlFormat = 'https://www.81produce.co.jp/actor_search/index.php/item?id=%s'
local yesno = require('モジュール:Yesno')
local function getId(title, frame)
local count = 0
local text = frame:expandTemplate{ title = listpage }
for linktitle in text:gmatch('%[%[(.-)[%]|]') do
count = count + 1
if title == linktitle then
return urlFormat:format(count), title
end
end
end
local function main(frame)
local title = mw.text.trim(frame.args[1] or '')
if title == '' then
title = mw.title.getCurrentTitle().subpageText
end
local url = getId(title, frame)
if not url then
return '' -- 'IDの取得に失敗'
elseif yesno(frame.args.plainurl) then
return url
end
local label = mw.text.trim(frame.args[2] or '')
if label == '' then
label = title
end
label = label:gsub('[ _]%(.-%)$', '')
return string.format('[%s %s] - [[81プロデュース]]の公式サイト', url, label)
end
return { main = main }