SlideShare une entreprise Scribd logo
1  sur  57
MediaWiki Tips
for saveMLAK
   [[利用者:Ninomy]]
      2011-08-27
        Wikiばな
自己紹介
●   Ninomy (にのみー) といいます
    ●   [[User:Ninomy]] or @ninomy
●   ウィキメディアンです (2004-)
    ●   日本語版ウィキブックス (フリー教科書)
    ●   日本語版ウィクショナリー (フリー多機能辞典)
        –   etc.
●   ふだんは東京で大学生 (B4) やってます
    ●   きのう院試がおわりました
●   saveMLAKでは (いまは) 特になにもしてません
    ●   sysopは持ってます
もくじ
●   MediaWikiのかんたんなご紹介

●   管理者

●   メインページ
もくじ
●   MediaWikiのかんたんなご紹介

●   管理者

●   メインページ
MediaWiki
●   オープンソースのウィキエンジン
    ●   Wikipedia
    ●   Wikimedia projects
    ●   Wikia
    ●   アンサイクロペディア
    ●   チャクウィキ
    ●   SaveMLAK (+SMW)
        –   etc.


    http://www.mediawiki.org/
MediaWiki の特徴
●   編集履歴の管理    ●   多言語対応
●   ウォッチリスト    ●   ユーザ管理
●   名前空間       ●   リダイレクト
●   テンプレート     ●   全文検索
●   署名         ●   キャッシュ
●   TeX        ●   ファイル管理
●   拡張機能            など
MediaWiki の特徴
●   編集履歴の管理    ●   多言語対応
●   ウォッチリスト    ●   ユーザ管理
●   名前空間       ●   リダイレクト
●   テンプレート     ●   全文検索
●   署名         ●   キャッシュ
●   TeX        ●   ファイル管理
●   拡張機能            など
もくじ
●   MediaWikiのかんたんなご紹介

●   管理者

●   メインページ
そもそも
●   MediaWikiでできること
    ●   記事を読む
    ●   記事を書く
    ●   記事の移動
    ●   記事を消す
    ●   ファイルのアップロード
    ●   ファイルの閲覧・編集(上書き)
    ●   ファイルの削除
    ●   ユーザ管理
デフォルトで入っている
  権限は何種類?
read edit createpage createtalk move movefile move-
subpages move-rootuserpages createaccount upload
reupload        reupload-own          reupload-shared
upload_by_url     editprotected    delete    bigdelete




               55+
deletedhistory deletedtext undelete browsearchive
mergehistory protect block blockemail hideuser
userrights        userrights-interwiki        rollback
markbotedits patrol editinterface editusercssjs
editusercss         edituserjs       suppressrevision
deleterevision    siteadmin    import    importupload
trackback unwatchedpages bot purge minoredit
nominornewtalk        noratelimit      ipblock-exempt
proxyunbannable autopatrol
apihighlimits writeapi suppressredirect
autoconfirmed emailconfirmed
利用者グループ
●   おもなもの:
    ●   匿名利用者               See also:
                            [[Special:UserGroupRights]]
    ●   利用者
        –   アカウント作成後4日以内の利用者
        –   自動承認された利用者
    ●   管理者 (sysop)
    ●   ビューロクラット (bureaucrat)
    ●   ボット (bot)
●   必要に応じて新規追加も可能
    ●   LocalSettings.php の編集が必要
    ●   「スタッフ」とか
利用者グループと権限のイメージ
ビューロクラット     権限操作 利用者名変更

         削除 復帰 投稿ブロック ページ保護
 管理者       保護ページの編集  編集の差し戻し


   登録利用者          半保護ページの編集


       新規登録利用者
                   匿名利用者
        記事の移動          記事の閲覧
        ウォッチリスト        記事の編集
各論
利用者 (user)
●   匿名利用者
    ●   ページの読み書き
●   アカウント作成後4日以内の登録利用者
    ●   ページの移動 (名前変更)
    ●   スパム認証がなくなる
●   自動承認された利用者
    ●   半保護されたページも編集できる
管理者 (sysop)
●   ページの削除
●   削除した版の閲覧・復帰
●   編集制限
    ●   投稿ブロック
        –   ユーザ単位
    ●   編集保護・半保護
        –   ページ単位・ユーザ権限単位
●   保護されたページの編集
●   システムメッセージの編集
●   編集の差し戻し
●   編集の巡回 (パトロール)
ビューロクラット (bureaucrat)
●   「管理者」の上位権限
    ●   管理者権限を持っていることが必要
●   ユーザ権限操作
    ●   他人を管理者・ビューロクラット・ボットにする
●   利用者名変更
    ●   利用者名を変更して利用者ページを移動する
ボット (bot)
●   大量編集をする自動プログラム
    ●   昔は「最近の更新」がボットで埋まった
●   ボットフラグのついたアカウントの編集は,
    「最近の更新」ではデフォルトで非表示になる
    ●   フラグの付与は慎重に
管理者って偉いの?
利用者権限とコミュニティ運営


      サーバ管理者
     ビューロクラット
        管理者
       登録利用者
      新規登録利用者

       匿名利用者

   MediaWikiシステムの権限階層
利用者権限とコミュニティ運営

       プロジェクト
         運営者

     ビューロクラット
       管理者
      登録利用者
      新規登録利用者

      匿名利用者

  一般的なコミュニティの`ヒエラルキー'
      (発言力・影響力)
管理者の位置づけ
●   `sysop'権限をもつ人
    ●   あえて「シスオペ」と呼ぶ人も
    ●   sysop = system operator
    ●   Administratorとも
●   管理操作を「する人」
    ●   「決める人」ではない
    ●   プロジェクト運営者でもない
        –   例: Ninomy
誰が管理者になるの?
●   「誰でもいい」とするコミュニティもある
●   管理権限の濫用があっても困る
    ●   問題なさそうな人に権限を与える
        –   コミュニティベースだったり
        –   トップダウンだったり
●   信頼関係が成立していることが必要
    ●   あるいはサイト運営者から信頼されていること
    ●   管理者・ビューロクラット間は相互監視の関係
管理者って偉いの?
●   プロジェクト運営上は一般利用者と同じ発言力
    ●   みんなで決めたことを決まった通りに実行するだけ
    ●   ウィキ運営上の `雑用係'
        –   荒らし対応でむしろ本来の仕事ができなくなることも
    ●   管理者操作に関する議論のまとめ役にはなる
        –   その他の議論では必ずしもそうではない
●   コミュニティ内での「偉さ」とMediaWiki権限の
    有無は独立
    ●   ただし実際の運用をどうするかはプロジェクトしだい
    ●   ビューロクラットなどの上位権限も同様
saveMLAKの管理者
●   管理者14人(うちビューロクラット6人)
●   ビューロクラットが必要だと思った人に必要に
    応じて管理者権限を与えているらしい
    ●   僕が管理者になった理由:
         なってくれと言われたから
    ●   システムメッセージの多言語化などやりました
    ●   プロジェクト運営の議論には絡んでません
●   ビューロクラットはコアメンバーが持っている
    ●   変な人はまず管理者になれない
まとめ
●   MediaWikiの管理者は偉くない
●   管理者権限であることとプロジェクト運営上の
    「偉さ」は独立
●   具体的運用法はコミュニティしだい
もくじ
●   MediaWikiのかんたんなご紹介

●   管理者

●   メインページ
メインページ
Topics:
●   いきさつ
●   しくみ
●   つくりかた
メインページへの要求
●   多言語対応
    ●   日本語/英語/中国語それぞれのメインページ
    ●   スタイルは統一させたい
●   SaveMLAKじゃない!saveMLAKだ!
    ●   MediaWikiデフォルトでは記事名前空間の一文字目
        は大文字でなくてはならない
課題と解法
●   同じ修正を複数のページでやるのはバカらしい
    ●   統一したページスタイルの情報は一元化
    ●   本文の情報は言語別に管理
    解法: テンプレートによる部品化

●   大文字始まりがMediaWikiデフォルトの制約
    解法: LocalSettings.phpとCSSの編集
大文字始まりについて
SaveMLAK → saveMLAK
●   MediaWikiの記事名は基本的に大文字始まり
●   LocalSettings.php で小文字始まりを有効に
        $wgCapitalLinks = false;
●   別解: ページ名表示を上書きできるようにする
        {{DISPLAYTITLE:saveMLAK}}
    ●   ただしこの方法は大きな書き換えはできない
        –   IPod   → iPod    は OK
        –   IPhone → Android は NG
    ●   許可するには LocalSettings.php の編集が必要
        $wgRestrictDisplayTitle = false;
CSS
●   MediaWikiのCSSもWikiページ上で編集可能
    ●   [[MediaWiki:Common.css]] (共通CSS)
    ●   [[MediaWiki:Vector.css]] (Vectorスキン用CSS)
        –   編集には管理者権限が必要です
●   登録ユーザが個人的にCSSを編集することも
    ●   [[利用者:だれそれ/Vector.css]]
テンプレートによる
 ページの部品化
ソースを見てみよう




 テンプレート呼出
テンプレート
●   テンプレート:名前空間のページ
●   {{hogehoge}}と記述すると[[テンプレー
    ト:hogehoge]]の内容がそのまま埋め込まれる
●   定型文の挿入や統一されたスタイルの表の挿入
    などに使うのがふつう
一般的なテンプレートのつかいかた
[[テンプレート:メインページ]]
本当の姿
       ●   枠だけ
       ●   さらに本文と
           見出しを呼び
           出している
つまり
日本語の
 英語の

メインページの要求
             {{メインページ}}   日本語の
                          英語の
             (デザイン枠)の要求
                          本文の要求

                          本文の出力
本文の管理
本文の管理
●   表示したい言語の本文を表示させたい
    ●   英語版を表示したいのに日本語表示じゃ困る
●   本文はメインページの子構造とみる
    ●   サブページでまとめて管理
サブページ
●   文書の階層構造(木構造)
    Hoge
        Hoge/fuga
        Hoge/piyo
          Hoge/piyo/foo
        Hoge/bar
●   デフォルトでは記事名前空間では無効
    ●   LocalSettings.phpの編集が必要です
          $wgNamespacesWithSubpages[NS_MAIN] = 1;
xx語版     デザイン
メインページ


 /見出しリスト

   /本文



  oo語版
メインページ


 /見出しリスト

   /本文
なぜ可能なのか?
{{Hoge}}
  [[テンプレート:Hoge]]を読み込む
{{:Hoge}}
  [[Hoge]]を読み込む
{{/Hoge}}
  表示させたいページのサブページからHogeを探して
  [[xx/Hoge]]を読む
  –   {{:xx/Hoge}}と書くのと同じ
  –   `呼び出したページ'ではなく`表示させるべきページ'の
      サブページを呼び出すところがミソ
saveMLAKメインページ構造
●   saveMLAK         ●   saveMLAK/en
●   saveMLAK/h       ●   saveMLAK/en/h
●   saveMLAK/area    ●   saveMLAK/en/area
●   saveMLAK/whole   ●   saveMLAK/en/whole
●   saveMLAK/types   ●   saveMLAK/en/types
      etc.                 etc.
テンプレート
  Tips
テンプレート引数
●   テンプレートには引数を渡すことが可能
    ●   {{Hoge|わたし|Ninomy}}と書くと
        –   [[テンプレート:Hoge]]に
        –   第1引数として文字列`わたし'
        –   第2引数として文字列`Ninomy'を渡す
    ●   テンプレート側では
        –   「{{{1}}}は{{{2}}}です」などと書かれていて
        –   該当箇所に対応する文字列を埋め込んで
        –   「わたしはNinomyです」が返ってくる
    ●   テンプレート側で変数名を指定することも可能
        –   「{{{who}}}は{{{name}}}です」なら
        –   {{Hoge|who=わたし|name=Ninomy}} と呼び出す
パーサ関数と条件文
●   引数の値に応じて条件分岐や代数演算が可能
●   [[saveMLAK/h]]では switch 文を使用
     C言語の switch-case 文に相当
     {{#switch:{{{1}}}
     |hoge=AAA
     |fuga=BBB
     |CCC}}

     {{Hoge|hoge}} → AAA
     {{Hoge|fuga}} → BBB
     {{Hoge|piyo}} → CCC
<noinclude>
<noinclude>...</noinclude>
●   テンプレートページには書くが他ページからの読み
    込み時は無視
<includeonly>...</includeonly>
●   読み込み専用で,テンプレートページに表示させな
    い
<onlyinclude>...</onlyinclude>
●   テンプレートページの中のその部分だけを読み込ま
    せる
マジックワード
●   サイトやページの情報を取得して表示する
     {{PAGENAME}}: ページ名
     {{NUMBEROFARTICLES}}: 記事の総数
       etc.
くわしくは
●   Wikipediaを参照してください
    ●   [[w:Help:テンプレート]]
    ●   [[w:Help:条件文]]
    ●   [[w:Help:マジックワード]]
ということは
わざわざサブページ使わなくても
●   {{メインページ|ja}}などと引数に言語名書け
    ばよかった
●   というかむしろ同じ内容で別言語が同じページ
    にまとまってた方が管理はラク
別解

              デザイン
  xx語版
メインページ           /見出し


                 /本文1


  oo語版           /本文2
メインページ
自己弁護
●   テンプレート引数やパーサ関数を多用すると,
    慣れた人じゃないと何やってるかも読めない
    ●   引数が増えるぶん[[テンプレート:メインページ]]
        の中身は複雑になる
    ●   触る人がほぼ固定されてるなら問題ない……
まとめ
●   メインページはサイトの顔なので適切にアクセ
    スコントロールしましょう
●   テンプレートを使って部品化すると管理がラク
    です
●   うまく部品化しないと面倒なことになります

Contenu connexe

Tendances

20160121 hachioji mt_cloud_handson
20160121 hachioji mt_cloud_handson20160121 hachioji mt_cloud_handson
20160121 hachioji mt_cloud_handsonSix Apart
 
141115 making web site
141115 making web site141115 making web site
141115 making web siteHimi Sato
 
20160927 okubo mt_cloud_handson
20160927 okubo mt_cloud_handson20160927 okubo mt_cloud_handson
20160927 okubo mt_cloud_handsonSix Apart
 
Movable Type as a Playground
Movable Type as a PlaygroundMovable Type as a Playground
Movable Type as a PlaygroundTaku AMANO
 
Ocs2013 tokyo spring_plone
Ocs2013 tokyo spring_ploneOcs2013 tokyo spring_plone
Ocs2013 tokyo spring_ploneManabu Terada
 
2011 10-satalabo-naaon
2011 10-satalabo-naaon2011 10-satalabo-naaon
2011 10-satalabo-naaonNaoki Okino
 
Movable Typeの権限と承認フロー
Movable Typeの権限と承認フローMovable Typeの権限と承認フロー
Movable Typeの権限と承認フローHajime Fujimoto
 
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~Takeuchi Yuichi
 
WordPressの権限・承認フロー
WordPressの権限・承認フローWordPressの権限・承認フロー
WordPressの権限・承認フローYuusuke Yoshida
 
eZ Publish 2012年5月勉強会 - サイトアクセス
eZ Publish 2012年5月勉強会 - サイトアクセスeZ Publish 2012年5月勉強会 - サイトアクセス
eZ Publish 2012年5月勉強会 - サイトアクセスericsagnes
 
Word Press on Movable Type
Word Press on Movable TypeWord Press on Movable Type
Word Press on Movable TypeHajime Fujimoto
 
WordPressでCSSプリプロセッサ入門
WordPressでCSSプリプロセッサ入門WordPressでCSSプリプロセッサ入門
WordPressでCSSプリプロセッサ入門Sou Lab
 
20161115 okubo mt_cloud_handson
20161115 okubo mt_cloud_handson20161115 okubo mt_cloud_handson
20161115 okubo mt_cloud_handsonSix Apart
 
MovableTypeとWordPressの比較
MovableTypeとWordPressの比較MovableTypeとWordPressの比較
MovableTypeとWordPressの比較Hirofumi Nakahashi
 
Word press をはじめたら覚えておきたい7つの事
Word press をはじめたら覚えておきたい7つの事Word press をはじめたら覚えておきたい7つの事
Word press をはじめたら覚えておきたい7つの事Seiichiro Mishiba
 
はじめてのWordPress勉強会 vol.01 Word Pressの概要
はじめてのWordPress勉強会 vol.01 Word Pressの概要はじめてのWordPress勉強会 vol.01 Word Pressの概要
はじめてのWordPress勉強会 vol.01 Word Pressの概要MoritaMasahiro
 
CSS3の最新事情
CSS3の最新事情CSS3の最新事情
CSS3の最新事情Makoto Kato
 

Tendances (19)

20160121 hachioji mt_cloud_handson
20160121 hachioji mt_cloud_handson20160121 hachioji mt_cloud_handson
20160121 hachioji mt_cloud_handson
 
141115 making web site
141115 making web site141115 making web site
141115 making web site
 
20160927 okubo mt_cloud_handson
20160927 okubo mt_cloud_handson20160927 okubo mt_cloud_handson
20160927 okubo mt_cloud_handson
 
Movable Type as a Playground
Movable Type as a PlaygroundMovable Type as a Playground
Movable Type as a Playground
 
Ocs2013 tokyo spring_plone
Ocs2013 tokyo spring_ploneOcs2013 tokyo spring_plone
Ocs2013 tokyo spring_plone
 
2011 10-satalabo-naaon
2011 10-satalabo-naaon2011 10-satalabo-naaon
2011 10-satalabo-naaon
 
Movable Typeの権限と承認フロー
Movable Typeの権限と承認フローMovable Typeの権限と承認フロー
Movable Typeの権限と承認フロー
 
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~
プラグイン作者脳になろう ~実案件で学ぶプラグイン開発フロー~
 
WordPressの権限・承認フロー
WordPressの権限・承認フローWordPressの権限・承認フロー
WordPressの権限・承認フロー
 
eZ Publish 2012年5月勉強会 - サイトアクセス
eZ Publish 2012年5月勉強会 - サイトアクセスeZ Publish 2012年5月勉強会 - サイトアクセス
eZ Publish 2012年5月勉強会 - サイトアクセス
 
Word Press on Movable Type
Word Press on Movable TypeWord Press on Movable Type
Word Press on Movable Type
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
 
WordPressでCSSプリプロセッサ入門
WordPressでCSSプリプロセッサ入門WordPressでCSSプリプロセッサ入門
WordPressでCSSプリプロセッサ入門
 
20161115 okubo mt_cloud_handson
20161115 okubo mt_cloud_handson20161115 okubo mt_cloud_handson
20161115 okubo mt_cloud_handson
 
WordPressって何
WordPressって何WordPressって何
WordPressって何
 
MovableTypeとWordPressの比較
MovableTypeとWordPressの比較MovableTypeとWordPressの比較
MovableTypeとWordPressの比較
 
Word press をはじめたら覚えておきたい7つの事
Word press をはじめたら覚えておきたい7つの事Word press をはじめたら覚えておきたい7つの事
Word press をはじめたら覚えておきたい7つの事
 
はじめてのWordPress勉強会 vol.01 Word Pressの概要
はじめてのWordPress勉強会 vol.01 Word Pressの概要はじめてのWordPress勉強会 vol.01 Word Pressの概要
はじめてのWordPress勉強会 vol.01 Word Pressの概要
 
CSS3の最新事情
CSS3の最新事情CSS3の最新事情
CSS3の最新事情
 

Similaire à MediaWiki Tips for saveMLAK - wikibana

eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」ericsagnes
 
20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminar20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminarSix Apart
 
20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn SeminarSix Apart
 
20141101 handson
20141101 handson20141101 handson
20141101 handsonSix Apart
 
20141206 handson
20141206 handson20141206 handson
20141206 handsonSix Apart
 
マルチサイトの構築
マルチサイトの構築マルチサイトの構築
マルチサイトの構築Yoshitaka KATO
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスericsagnes
 
DW テンプレートをマスターして 楽々サイトメンテナンス
DW テンプレートをマスターして 楽々サイトメンテナンスDW テンプレートをマスターして 楽々サイトメンテナンス
DW テンプレートをマスターして 楽々サイトメンテナンスAkira Maruyama
 
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Kenji Shirane
 
2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinigTom Hayakawa
 
20151206 hamamatsu handson
20151206 hamamatsu handson20151206 hamamatsu handson
20151206 hamamatsu handsonSix Apart
 
2006 07 29_xtc2006_x_cube_template
2006 07 29_xtc2006_x_cube_template2006 07 29_xtc2006_x_cube_template
2006 07 29_xtc2006_x_cube_templateTom Hayakawa
 
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライドeZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライドericsagnes
 
WordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshopWordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshoptakashi ono
 
DjangoでさくっとWeb アプリケーション開発をする話
DjangoでさくっとWeb アプリケーション開発をする話DjangoでさくっとWeb アプリケーション開発をする話
DjangoでさくっとWeb アプリケーション開発をする話Nakazawa Yuichi
 
ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回Hitsuji
 
Contao Open Source CMS / 3.3と、その向こう
Contao Open Source CMS / 3.3と、その向こうContao Open Source CMS / 3.3と、その向こう
Contao Open Source CMS / 3.3と、その向こうTakahiro Kambe
 
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in OkazakiEtsushi Ishii
 

Similaire à MediaWiki Tips for saveMLAK - wikibana (20)

eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
 
20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminar20140924 mt cloud_handson_seminar
20140924 mt cloud_handson_seminar
 
20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar
 
20141101 handson
20141101 handson20141101 handson
20141101 handson
 
20141206 handson
20141206 handson20141206 handson
20141206 handson
 
Webteko 20090925
Webteko 20090925Webteko 20090925
Webteko 20090925
 
マルチサイトの構築
マルチサイトの構築マルチサイトの構築
マルチサイトの構築
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
 
DW テンプレートをマスターして 楽々サイトメンテナンス
DW テンプレートをマスターして 楽々サイトメンテナンスDW テンプレートをマスターして 楽々サイトメンテナンス
DW テンプレートをマスターして 楽々サイトメンテナンス
 
Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
 
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~
 
2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig
 
20151206 hamamatsu handson
20151206 hamamatsu handson20151206 hamamatsu handson
20151206 hamamatsu handson
 
2006 07 29_xtc2006_x_cube_template
2006 07 29_xtc2006_x_cube_template2006 07 29_xtc2006_x_cube_template
2006 07 29_xtc2006_x_cube_template
 
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライドeZ Publish 2012年8月勉強会 - テンプレートオーバーライド
eZ Publish 2012年8月勉強会 - テンプレートオーバーライド
 
WordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshopWordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshop
 
DjangoでさくっとWeb アプリケーション開発をする話
DjangoでさくっとWeb アプリケーション開発をする話DjangoでさくっとWeb アプリケーション開発をする話
DjangoでさくっとWeb アプリケーション開発をする話
 
ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回
 
Contao Open Source CMS / 3.3と、その向こう
Contao Open Source CMS / 3.3と、その向こうContao Open Source CMS / 3.3と、その向こう
Contao Open Source CMS / 3.3と、その向こう
 
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
 

MediaWiki Tips for saveMLAK - wikibana

  • 1. MediaWiki Tips for saveMLAK [[利用者:Ninomy]] 2011-08-27 Wikiばな
  • 2. 自己紹介 ● Ninomy (にのみー) といいます ● [[User:Ninomy]] or @ninomy ● ウィキメディアンです (2004-) ● 日本語版ウィキブックス (フリー教科書) ● 日本語版ウィクショナリー (フリー多機能辞典) – etc. ● ふだんは東京で大学生 (B4) やってます ● きのう院試がおわりました ● saveMLAKでは (いまは) 特になにもしてません ● sysopは持ってます
  • 3. もくじ ● MediaWikiのかんたんなご紹介 ● 管理者 ● メインページ
  • 4. もくじ ● MediaWikiのかんたんなご紹介 ● 管理者 ● メインページ
  • 5. MediaWiki ● オープンソースのウィキエンジン ● Wikipedia ● Wikimedia projects ● Wikia ● アンサイクロペディア ● チャクウィキ ● SaveMLAK (+SMW) – etc. http://www.mediawiki.org/
  • 6. MediaWiki の特徴 ● 編集履歴の管理 ● 多言語対応 ● ウォッチリスト ● ユーザ管理 ● 名前空間 ● リダイレクト ● テンプレート ● 全文検索 ● 署名 ● キャッシュ ● TeX ● ファイル管理 ● 拡張機能 など
  • 7. MediaWiki の特徴 ● 編集履歴の管理 ● 多言語対応 ● ウォッチリスト ● ユーザ管理 ● 名前空間 ● リダイレクト ● テンプレート ● 全文検索 ● 署名 ● キャッシュ ● TeX ● ファイル管理 ● 拡張機能 など
  • 8. もくじ ● MediaWikiのかんたんなご紹介 ● 管理者 ● メインページ
  • 9. そもそも ● MediaWikiでできること ● 記事を読む ● 記事を書く ● 記事の移動 ● 記事を消す ● ファイルのアップロード ● ファイルの閲覧・編集(上書き) ● ファイルの削除 ● ユーザ管理
  • 11. read edit createpage createtalk move movefile move- subpages move-rootuserpages createaccount upload reupload reupload-own reupload-shared upload_by_url editprotected delete bigdelete 55+ deletedhistory deletedtext undelete browsearchive mergehistory protect block blockemail hideuser userrights userrights-interwiki rollback markbotedits patrol editinterface editusercssjs editusercss edituserjs suppressrevision deleterevision siteadmin import importupload trackback unwatchedpages bot purge minoredit nominornewtalk noratelimit ipblock-exempt proxyunbannable autopatrol apihighlimits writeapi suppressredirect autoconfirmed emailconfirmed
  • 12. 利用者グループ ● おもなもの: ● 匿名利用者 See also: [[Special:UserGroupRights]] ● 利用者 – アカウント作成後4日以内の利用者 – 自動承認された利用者 ● 管理者 (sysop) ● ビューロクラット (bureaucrat) ● ボット (bot) ● 必要に応じて新規追加も可能 ● LocalSettings.php の編集が必要 ● 「スタッフ」とか
  • 13. 利用者グループと権限のイメージ ビューロクラット 権限操作 利用者名変更 削除 復帰 投稿ブロック ページ保護 管理者 保護ページの編集 編集の差し戻し 登録利用者 半保護ページの編集 新規登録利用者 匿名利用者 記事の移動 記事の閲覧 ウォッチリスト 記事の編集
  • 15. 利用者 (user) ● 匿名利用者 ● ページの読み書き ● アカウント作成後4日以内の登録利用者 ● ページの移動 (名前変更) ● スパム認証がなくなる ● 自動承認された利用者 ● 半保護されたページも編集できる
  • 16. 管理者 (sysop) ● ページの削除 ● 削除した版の閲覧・復帰 ● 編集制限 ● 投稿ブロック – ユーザ単位 ● 編集保護・半保護 – ページ単位・ユーザ権限単位 ● 保護されたページの編集 ● システムメッセージの編集 ● 編集の差し戻し ● 編集の巡回 (パトロール)
  • 17. ビューロクラット (bureaucrat) ● 「管理者」の上位権限 ● 管理者権限を持っていることが必要 ● ユーザ権限操作 ● 他人を管理者・ビューロクラット・ボットにする ● 利用者名変更 ● 利用者名を変更して利用者ページを移動する
  • 18. ボット (bot) ● 大量編集をする自動プログラム ● 昔は「最近の更新」がボットで埋まった ● ボットフラグのついたアカウントの編集は, 「最近の更新」ではデフォルトで非表示になる ● フラグの付与は慎重に
  • 20. 利用者権限とコミュニティ運営 サーバ管理者 ビューロクラット 管理者 登録利用者 新規登録利用者 匿名利用者 MediaWikiシステムの権限階層
  • 21. 利用者権限とコミュニティ運営 プロジェクト 運営者 ビューロクラット 管理者 登録利用者 新規登録利用者 匿名利用者 一般的なコミュニティの`ヒエラルキー' (発言力・影響力)
  • 22. 管理者の位置づけ ● `sysop'権限をもつ人 ● あえて「シスオペ」と呼ぶ人も ● sysop = system operator ● Administratorとも ● 管理操作を「する人」 ● 「決める人」ではない ● プロジェクト運営者でもない – 例: Ninomy
  • 23. 誰が管理者になるの? ● 「誰でもいい」とするコミュニティもある ● 管理権限の濫用があっても困る ● 問題なさそうな人に権限を与える – コミュニティベースだったり – トップダウンだったり ● 信頼関係が成立していることが必要 ● あるいはサイト運営者から信頼されていること ● 管理者・ビューロクラット間は相互監視の関係
  • 24. 管理者って偉いの? ● プロジェクト運営上は一般利用者と同じ発言力 ● みんなで決めたことを決まった通りに実行するだけ ● ウィキ運営上の `雑用係' – 荒らし対応でむしろ本来の仕事ができなくなることも ● 管理者操作に関する議論のまとめ役にはなる – その他の議論では必ずしもそうではない ● コミュニティ内での「偉さ」とMediaWiki権限の 有無は独立 ● ただし実際の運用をどうするかはプロジェクトしだい ● ビューロクラットなどの上位権限も同様
  • 25. saveMLAKの管理者 ● 管理者14人(うちビューロクラット6人) ● ビューロクラットが必要だと思った人に必要に 応じて管理者権限を与えているらしい ● 僕が管理者になった理由: なってくれと言われたから ● システムメッセージの多言語化などやりました ● プロジェクト運営の議論には絡んでません ● ビューロクラットはコアメンバーが持っている ● 変な人はまず管理者になれない
  • 26. まとめ ● MediaWikiの管理者は偉くない ● 管理者権限であることとプロジェクト運営上の 「偉さ」は独立 ● 具体的運用法はコミュニティしだい
  • 27. もくじ ● MediaWikiのかんたんなご紹介 ● 管理者 ● メインページ
  • 28. メインページ Topics: ● いきさつ ● しくみ ● つくりかた
  • 29. メインページへの要求 ● 多言語対応 ● 日本語/英語/中国語それぞれのメインページ ● スタイルは統一させたい ● SaveMLAKじゃない!saveMLAKだ! ● MediaWikiデフォルトでは記事名前空間の一文字目 は大文字でなくてはならない
  • 30. 課題と解法 ● 同じ修正を複数のページでやるのはバカらしい ● 統一したページスタイルの情報は一元化 ● 本文の情報は言語別に管理 解法: テンプレートによる部品化 ● 大文字始まりがMediaWikiデフォルトの制約 解法: LocalSettings.phpとCSSの編集
  • 32. SaveMLAK → saveMLAK ● MediaWikiの記事名は基本的に大文字始まり ● LocalSettings.php で小文字始まりを有効に $wgCapitalLinks = false; ● 別解: ページ名表示を上書きできるようにする {{DISPLAYTITLE:saveMLAK}} ● ただしこの方法は大きな書き換えはできない – IPod → iPod は OK – IPhone → Android は NG ● 許可するには LocalSettings.php の編集が必要 $wgRestrictDisplayTitle = false;
  • 33. CSS ● MediaWikiのCSSもWikiページ上で編集可能 ● [[MediaWiki:Common.css]] (共通CSS) ● [[MediaWiki:Vector.css]] (Vectorスキン用CSS) – 編集には管理者権限が必要です ● 登録ユーザが個人的にCSSを編集することも ● [[利用者:だれそれ/Vector.css]]
  • 36. テンプレート ● テンプレート:名前空間のページ ● {{hogehoge}}と記述すると[[テンプレー ト:hogehoge]]の内容がそのまま埋め込まれる ● 定型文の挿入や統一されたスタイルの表の挿入 などに使うのがふつう
  • 39. 本当の姿 ● 枠だけ ● さらに本文と 見出しを呼び 出している
  • 40. つまり 日本語の 英語の メインページの要求 {{メインページ}} 日本語の 英語の (デザイン枠)の要求 本文の要求 本文の出力
  • 42. 本文の管理 ● 表示したい言語の本文を表示させたい ● 英語版を表示したいのに日本語表示じゃ困る ● 本文はメインページの子構造とみる ● サブページでまとめて管理
  • 43. サブページ ● 文書の階層構造(木構造) Hoge Hoge/fuga Hoge/piyo Hoge/piyo/foo Hoge/bar ● デフォルトでは記事名前空間では無効 ● LocalSettings.phpの編集が必要です $wgNamespacesWithSubpages[NS_MAIN] = 1;
  • 44. xx語版 デザイン メインページ /見出しリスト /本文 oo語版 メインページ /見出しリスト /本文
  • 45. なぜ可能なのか? {{Hoge}} [[テンプレート:Hoge]]を読み込む {{:Hoge}} [[Hoge]]を読み込む {{/Hoge}} 表示させたいページのサブページからHogeを探して [[xx/Hoge]]を読む – {{:xx/Hoge}}と書くのと同じ – `呼び出したページ'ではなく`表示させるべきページ'の サブページを呼び出すところがミソ
  • 46. saveMLAKメインページ構造 ● saveMLAK ● saveMLAK/en ● saveMLAK/h ● saveMLAK/en/h ● saveMLAK/area ● saveMLAK/en/area ● saveMLAK/whole ● saveMLAK/en/whole ● saveMLAK/types ● saveMLAK/en/types etc. etc.
  • 48. テンプレート引数 ● テンプレートには引数を渡すことが可能 ● {{Hoge|わたし|Ninomy}}と書くと – [[テンプレート:Hoge]]に – 第1引数として文字列`わたし' – 第2引数として文字列`Ninomy'を渡す ● テンプレート側では – 「{{{1}}}は{{{2}}}です」などと書かれていて – 該当箇所に対応する文字列を埋め込んで – 「わたしはNinomyです」が返ってくる ● テンプレート側で変数名を指定することも可能 – 「{{{who}}}は{{{name}}}です」なら – {{Hoge|who=わたし|name=Ninomy}} と呼び出す
  • 49. パーサ関数と条件文 ● 引数の値に応じて条件分岐や代数演算が可能 ● [[saveMLAK/h]]では switch 文を使用 C言語の switch-case 文に相当 {{#switch:{{{1}}} |hoge=AAA |fuga=BBB |CCC}} {{Hoge|hoge}} → AAA {{Hoge|fuga}} → BBB {{Hoge|piyo}} → CCC
  • 50. <noinclude> <noinclude>...</noinclude> ● テンプレートページには書くが他ページからの読み 込み時は無視 <includeonly>...</includeonly> ● 読み込み専用で,テンプレートページに表示させな い <onlyinclude>...</onlyinclude> ● テンプレートページの中のその部分だけを読み込ま せる
  • 51. マジックワード ● サイトやページの情報を取得して表示する {{PAGENAME}}: ページ名 {{NUMBEROFARTICLES}}: 記事の総数 etc.
  • 52. くわしくは ● Wikipediaを参照してください ● [[w:Help:テンプレート]] ● [[w:Help:条件文]] ● [[w:Help:マジックワード]]
  • 54. わざわざサブページ使わなくても ● {{メインページ|ja}}などと引数に言語名書け ばよかった ● というかむしろ同じ内容で別言語が同じページ にまとまってた方が管理はラク
  • 55. 別解 デザイン xx語版 メインページ /見出し /本文1 oo語版 /本文2 メインページ
  • 56. 自己弁護 ● テンプレート引数やパーサ関数を多用すると, 慣れた人じゃないと何やってるかも読めない ● 引数が増えるぶん[[テンプレート:メインページ]] の中身は複雑になる ● 触る人がほぼ固定されてるなら問題ない……
  • 57. まとめ ● メインページはサイトの顔なので適切にアクセ スコントロールしましょう ● テンプレートを使って部品化すると管理がラク です ● うまく部品化しないと面倒なことになります