ホーム
おまかせ表示
ログイン
設定
信号機Wikiについて
免責事項
信号機Wiki
検索
「
モジュール:SignalinstWiki
」を編集中
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
-- 万能系のLuaメソッドをモジュールとして定義する local p = {} -- モジュール用パッケージを用意 --[[ テスト用関数 ]] function p.test(frame) return "Hello World!" end --[[ 指定した区切り文字で区切られたリストを認識し、その区切り文字で分解。 区切った後にその中身をSemantic Mediawikiのプロパティとして使用可能な 文字列にして返します。 例:「メーカー」というプロパティに「小糸工業、京三製作所、日本信号」と登録する場合 {{#invoke:SignalinstWiki|getProperties|メーカー|小糸工業、京三製作所、日本信号|、}} ]] function p.getProperties(frame) local propertyName = frame.args[1] local propertyValue = frame.args[2] local propertySplit = frame.args[3] -- デフォルト値を指定 if propertyName == nil or propertyName == '' then return nil end if propertyValue == nil or propertyValue == '' then return nil end if propertySplit == nil or propertySplit == '' then propertySplit = "、" end -- 元の propertyValue に「など」が含まれているかチェック local hasNado = false if string.find(propertyValue, "など") then hasNado = true end -- Valueを分割 local splitValues = {} local pattern = "(.-)" .. propertySplit -- propertyValue の末尾に propertySplit を追加することで、最後の要素が正しく取得されるようにする for part in string.gmatch(propertyValue .. propertySplit, pattern) do -- 各要素の前後の空白をトリム(取り除く) local trimmedPart = part:match("^%s*(.-)%s*$") -- ここで「など」を空文字列に置き換える処理 -- 各部分から「など」を削除してからリストに追加する trimmedPart = string.gsub(trimmedPart, "など", "") if trimmedPart ~= '' then -- 空文字列でない場合のみ追加 table.insert(splitValues, trimmedPart) end end -- Semantic Mediawiki のプロパティ形式に変換して連結する local smwProperties = {} for _, value in ipairs(splitValues) do table.insert(smwProperties, "[[" .. propertyName .. "::" .. value .. "]]") end -- ここで最終的な文字列を構築 local finalOutput = table.concat(smwProperties, propertySplit) -- もし元の propertyValue に「など」が含まれていた場合、最終出力の末尾に追加 if hasNado then -- 結合された文字列が空でない場合のみ、区切り文字を付けて「など」を追加 if finalOutput ~= '' then finalOutput = finalOutput .. "など" else -- 全くプロパティが生成されなかった場合でも「など」だけ返す finalOutput = "など" end end return finalOutput end return p
編集内容の要約:
信号機Wikiへの投稿はすべて、クリエイティブ・コモンズ 表示-継承 (詳細は
信号機Wiki:著作権
を参照)のもとで公開したと見なされることにご注意ください。
自分が書いたものが他の人に容赦なく編集され、自由に配布されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。
著作権保護されている作品は、許諾なしに投稿しないでください!
ウィキを自動編集スパムから保護するために、下のCAPTCHAを解決してください。
キャンセル
編集の仕方
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
モジュール:SignalinstWiki/doc
(
編集
)