コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
カテゴリ一覧
信号灯器
レンズ
アーム
フード(庇)
金具
信号柱
信号機メーカー
警交仕規
制御機
信号制御
設置方法
音響装置
管理番号
周辺物
交差点
その他
俗語集
俗語
編集方針等
利用規約
編集方針
コミュニティポータル
信号機Wikiを二次利用する
ヘルプ
著作権について
お問い合わせ
信号機Wiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
モジュール:SignalinstWiki
」を編集中
モジュール
議論
English
閲覧
編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
履歴表示
更新
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
表示
サイドバーに移動
非表示
警告:
ログインしていません。編集を行うと、あなたの 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
(
編集
)