コンテンツにスキップ
サイドバーの切り替え
検索
日本語
アカウント作成
個人用ツール
アカウント作成
ログイン
ログアウトした編集者のページ
もっと詳しく
トーク
投稿記録
案内
メインページ
人気のページ
利用規約
最近の出来事
最近の更新
おまかせ表示
お問い合わせ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
他言語版
「
モジュール:Authority control/auxiliary
」を編集中
モジュール
議論
English
閲覧
ソースを編集
履歴表示
その他
閲覧
ソースを編集
履歴表示
2023年3月6日 (月) 19:50時点における
Authority control>MSGJ
による版
(rearrange functions, remove BNF, add label to ISIL)
(差分) ← 古い版 |
最新版
(
差分
) |
新しい版 →
(
差分
)
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
require('strict') local p = {} --[[======================================================]] --[[ Format validation functions ]] --[[======================================================]] p.botanistV = function(id) return mw.ustring.match(id,"^[%u%l%d%. '-]+$") end p.validateIsni = function(id) --Validate ISNI (and ORCID) and retuns it as a 16 characters string or returns false if it's invalid. See http://support.orcid.org/knowledgebase/articles/116780-structure-of-the-orcid-identifier id = id:gsub( '[ %-]', '' ):upper() if not id:match( '^%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d[%dX]$' ) then return false end local total = 0 for i = 1, 15 do local digit = id:byte( i ) - 48 --Get integer value total = (total + digit) * 2 end local remainder = total % 11 local result = (12 - remainder) % 11 local checkdigit if result == 10 then checkdigit = 'X' else checkdigit=tostring( result ) end if checkdigit ~= string.char( id:byte( 16 ) ) then return false end return id end local function splitLccn(id) if id:match( '^%l%l?%l?%d%d%d%d%d%d%d%d%d?%d?$' ) then id = id:gsub( '^(%l+)(%d+)(%d%d%d%d%d%d)$', '%1/%2/%3' ) end if id:match( '^%l%l?%l?/%d%d%d?%d?/%d+$' ) then return mw.text.split( id, '/' ) end return false end p.lccnV = function(id) local function append(str, c, length) while str:len() < length do str = c..str end return str end local parts = splitLccn(id) --e.g. n78039510 if not parts then return false end local lccnType = parts[1] ~= 'sh' and 'names' or 'subjects' return lccnType .. '/' .. parts[1] .. parts[2] .. append( parts[3], '0', 6 ) end p.WorldCatLCCN = function(id) local lccnParts = splitLccn(id) if lccnParts and lccnParts[1] ~= 'sh' then return lccnParts[1]..lccnParts[2]..'-'..lccnParts[3] else return false end end p.orcidV = function(id) id = p.validateIsni(id) if not id then return false end return id:sub( 1, 4 )..'-'..id:sub( 5, 8 )..'-'..id:sub( 9, 12 )..'-'..id:sub( 13, 16 ) end p.tlsV = function(id) id = id:gsub(' +', '_') local idlen = mw.ustring.len(id) if idlen < 4 or idlen > 90 then return false end local regex = '^%u'..string.rep("[%w_',%.%-%(%)%*%/–&]", idlen - 1)..'$' if not mw.ustring.match(id,regex ) then return false end return id end p.worldcatidV = function(id) if not id:match( '^viaf%-%d+$' ) and not id:match( '^lccn%-n[a-z]?[0-9%-]+$' ) and not id:match( '^n[cps]%-.+$' ) then return false end return mw.uri.encode(id, 'PATH') end p.zbmathV = function(id) local ps = {'%l[%l%-]*', '%.%l[%l%-]*', '%.%d*'} return id:match( '^'..ps[1]..'$' ) -- prefix with no capture options or id:match( '^'..ps[1]..ps[2]..'$' ) -- prefix with first capture option or id:match( '^'..ps[1]..ps[3]..'$' ) -- prefix with second capture option or id:match( '^'..ps[1]..ps[2]..ps[3]..'$' ) -- prefix and both capture options end --[[======================================================]] --[[ Custom link functions ]] --[[======================================================]] p.ISILlink = function(id,label) if not id:match('^%D%D?%D?%D?%-.+$') then return false end for _,prefix in ipairs({'AT','AU','BE','CA','CH','DE','FI','FR','IT','KR','NZ','US','ZDB'}) do if id:match('^'..prefix..'%-') then return '<span class="uid">[https://w3id.org/isil/'..id..' ' .. (label or 'ISIL') .. ']</span>' end end return '[[International Standard Identifier for Libraries and Related Organizations|ISIL]]\n**<span class="uid">' .. id .. '</span>' end p.uscgLink = function(id) local id2 = id:match( '^[1-7]%-%d%d?%d?%d?%d?$' ) or id:match( '^[1-7]%-%d%d?%d?%d?%d?%.%d*[1-9]$' ) if id2 then return '<span class="uid">[https://www.navcen.uscg.gov/pdf/lightlists/LightList%20V'..mw.ustring.sub(id2,1,1)..'.pdf '..id2..']</span>' else return false end end return p
編集内容の要約:
Wikiminatiへの投稿はすべて、クリエイティブ・コモンズ 表示-継承 (詳細は
Wikiminati:著作権
を参照)のもとで公開したと見なされることにご注意ください。 自分が書いたものが他の人に容赦なく編集され、自由に配布されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。
著作権保護されている作品は、許諾なしに投稿しないでください!
編集を中止
編集の仕方
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
モジュール:Authority control/auxiliary/doc
(
編集
)