SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Wiki設置するな
Wiki設置するな
   らgitit!
   らgitit!
 とっても簡単だよ!こわくないよ!

  Kiwamu Okabe
1/18

   ぼくのスペック
twitter: @master_q
ふだんはDebian
前の仕事でNetBSD使ってた
今プロニート
2/18

    Wiki何使ってます?
pukiwiki?
hiki?
github?
google code?
redmine?
3/18

   gititはいかが?

    http://gitit.net

がデモサイト。

 https://github.com/jgm/gitit

がソースコード置き場。
4/18

  gititのうれしいコト
wikiデータがgit管理
git cloneして文書更新できる
専用プロセスだからfcgi不要
文法がmarkdown(変更可能)
プラグイン拡張できる!
5/18

        設置手順
Debian squeezeの場合、、、
 $   sudo apt-get install haskell-platform
 $   cabal update
 $   cabal install --reinstall -fhighlighting pandoc
 $   cabal install gitit



これだけ!(たぶん。。。)
6/18

   え、、、Haskell?
流行の関数型ですよ!奥さん!!!
7/18

    使い方

 $ mkdir mywiki
 $ cd mywiki
 $ ~/.cabal/bin/gitit
 ...別のコンソールで...
 $ chromium http://localhost:5001/

うわー簡単!
8/18

こんな初期ページ
9/18

      ディレクトリ構成

 - mywiki/static:
    静的データ置き場(cssとか画像ファイルとか)
 - mywiki/templates:
     ~/.cabal/share/gitit-X.X/data/templates
    にある*.stテンプレートファイルの変更
 - mywiki/wikidata:
     Wikiページ内容(git管理)


staticとかtemplatesとか編集すれ
ばオシャレくなるハズ
10/18

   プラグイン作る#1
ふつーはPageTransformで。
11/18

    プラグイン作る#2

 $ cd mywiki/
 $ mkdir plugins
 $ vi plugins/TwitterUrl.hs
 module TwitterUrl (plugin) where
 import Network.Gitit.Interface

 plugin :: Plugin
 plugin = mkPageTransform twitterurlize

 twitterurlize :: Inline -> Inline
 twitterurlize (Str ('@':x)) =
   Link [Str ('@':x)] ("http://twitter.com/" ++ x, '@':x)
 twitterurlize x = x




テキトーにプラグイン作って
12/18

      プラグイン作る#3

$ cp ~/.cabal/share/gitit-0.8/data/default.conf ./
$ vi default.conf
--snip--
plugins: plugins/TwitterUrl.hs
--snip--
$ ~/.cabal/bin/gitit -f default.conf



コンパイルしないで置いただけな
のに。。。
13/18

   プラグイン作る#4
"@master_q"とか書くと、、、
14/18

   プラグイン作る#5
やった!twitterっぽいリンクになっ
てる!
15/18

        実地:daemon化
$ cat gitit_daemon.sh
#!/bin/sh
--snip--
start() {
       echo -n "Starting $NAME: "
       $SSD --start --pidfile $PIDFILE --make-pidfile --background 
         --user hoge --chdir $TOPDIR --exec $PROG -- $OPTION
       RETVAL=$?
       echo
       return $RETVAL
}
--snip--
16/18

      実地:VirtualHost

$ pwd
/etc/apache2/sites-enabled
$ cat wiki
<VirtualHost *:80>
       ServerName wiki.masterq.net
--snip--
       ProxyPassReverse / http://127.0.0.1:5001
       RewriteRule ^(.*) http://127.0.0.1:5001$1 [P]
--snip--
</VirtualHost>
17/18

        最後に宣伝
初心者Haskell勉強会やってま
す。僕が参加者に教えてもらう会!
 前回議事録: http://bit.ly/jnonaP
 次回: http://partake.in/events/8ccdc151-b758-47af-9ff2-91216bd5d3c4




次回は第四回です。いつも横浜近
辺開催。是非!
18/18

参考

- daemon化スクリプト:
    http://bit.ly/mFfv6f
- gititプラグインのしくみ:
    http://bit.ly/khbwwJ
- 実戦配備詳細:
    http://bit.ly/jXDY8Z

Más contenido relacionado

La actualidad más candente

Pd Kai#3 Startup Process
Pd Kai#3 Startup ProcessPd Kai#3 Startup Process
Pd Kai#3 Startup Processnagachika t
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングKiwamu Okabe
 
Isaax Public API IoTデバイスを管理する
Isaax Public API IoTデバイスを管理するIsaax Public API IoTデバイスを管理する
Isaax Public API IoTデバイスを管理するTomoyuki Sugita
 
8F Emacs seminar 1st
8F Emacs seminar 1st8F Emacs seminar 1st
8F Emacs seminar 1sttoshi_pp
 
長いの
長いの長いの
長いのemasaka
 
いい感じにグラフ描きたい
いい感じにグラフ描きたいいい感じにグラフ描きたい
いい感じにグラフ描きたいkatsuyoshiozaki
 
Hakyllで遊んでみた。
Hakyllで遊んでみた。Hakyllで遊んでみた。
Hakyllで遊んでみた。Tomohiko Himura
 
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作るKenichiro MATOHARA
 
Gitコマンド勉強会 第2回 stash
Gitコマンド勉強会 第2回 stashGitコマンド勉強会 第2回 stash
Gitコマンド勉強会 第2回 stashKazuki Sakai
 
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみるオープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみるKenichiro MATOHARA
 
MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0Satoshi Kume
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0Kiwamu Okabe
 
Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話yaegashi
 
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...Kenichiro MATOHARA
 
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるRaspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるKenichiro MATOHARA
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法Hiroki Mizuno
 

La actualidad más candente (20)

Pd Kai#3 Startup Process
Pd Kai#3 Startup ProcessPd Kai#3 Startup Process
Pd Kai#3 Startup Process
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミング
 
Isaax Public API IoTデバイスを管理する
Isaax Public API IoTデバイスを管理するIsaax Public API IoTデバイスを管理する
Isaax Public API IoTデバイスを管理する
 
8F Emacs seminar 1st
8F Emacs seminar 1st8F Emacs seminar 1st
8F Emacs seminar 1st
 
長いの
長いの長いの
長いの
 
いい感じにグラフ描きたい
いい感じにグラフ描きたいいい感じにグラフ描きたい
いい感じにグラフ描きたい
 
Hakyllで遊んでみた。
Hakyllで遊んでみた。Hakyllで遊んでみた。
Hakyllで遊んでみた。
 
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
 
Hakyll
HakyllHakyll
Hakyll
 
Gitコマンド勉強会 第2回 stash
Gitコマンド勉強会 第2回 stashGitコマンド勉強会 第2回 stash
Gitコマンド勉強会 第2回 stash
 
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみるオープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
 
MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話
 
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
 
Intel graphics
Intel graphicsIntel graphics
Intel graphics
 
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるRaspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみる
 
RgGen ご紹介
RgGen ご紹介RgGen ご紹介
RgGen ご紹介
 
JTF 2013
JTF 2013JTF 2013
JTF 2013
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法
 

Similar a Wiki設置するならgitit!

ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
Git pyfes201207-presen
Git pyfes201207-presenGit pyfes201207-presen
Git pyfes201207-presenKouhei Maeda
 
とある受託ベンダの開発環境
とある受託ベンダの開発環境とある受託ベンダの開発環境
とある受託ベンダの開発環境Tomoki Hasegawa
 
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境Kazuhiro Nishiyama
 
Vagrant を Web開発環境に使う
Vagrant を Web開発環境に使うVagrant を Web開発環境に使う
Vagrant を Web開発環境に使うMasashi Shinbara
 
Google container builderと友だちになるまで
Google container builderと友だちになるまでGoogle container builderと友だちになるまで
Google container builderと友だちになるまでlestrrat
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Preferred Networks
 
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Kazuo Asano (@kazuo_asa)
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションKazuhiro Hara
 
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料Toshimichi Suekane
 
Gitを使ってみませんか
Gitを使ってみませんかGitを使ってみませんか
Gitを使ってみませんかAtsuhiro Takiguchi
 
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングmbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングKiwamu Okabe
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜Sotaro Omura
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 

Similar a Wiki設置するならgitit! (20)

ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
Git pyfes201207-presen
Git pyfes201207-presenGit pyfes201207-presen
Git pyfes201207-presen
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
 
とある受託ベンダの開発環境
とある受託ベンダの開発環境とある受託ベンダの開発環境
とある受託ベンダの開発環境
 
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境
 
Yesod on Heroku
Yesod on HerokuYesod on Heroku
Yesod on Heroku
 
Capistrano
CapistranoCapistrano
Capistrano
 
Vagrant を Web開発環境に使う
Vagrant を Web開発環境に使うVagrant を Web開発環境に使う
Vagrant を Web開発環境に使う
 
Google container builderと友だちになるまで
Google container builderと友だちになるまでGoogle container builderと友だちになるまで
Google container builderと友だちになるまで
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
 
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
 
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
 
Gitを使ってみませんか
Gitを使ってみませんかGitを使ってみませんか
Gitを使ってみませんか
 
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングmbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミング
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
Ansible2.0と実用例
Ansible2.0と実用例Ansible2.0と実用例
Ansible2.0と実用例
 

Último

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Último (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Wiki設置するならgitit!

  • 1. Wiki設置するな Wiki設置するな らgitit! らgitit! とっても簡単だよ!こわくないよ! Kiwamu Okabe
  • 2. 1/18 ぼくのスペック twitter: @master_q ふだんはDebian 前の仕事でNetBSD使ってた 今プロニート
  • 3. 2/18 Wiki何使ってます? pukiwiki? hiki? github? google code? redmine?
  • 4. 3/18 gititはいかが? http://gitit.net がデモサイト。 https://github.com/jgm/gitit がソースコード置き場。
  • 5. 4/18 gititのうれしいコト wikiデータがgit管理 git cloneして文書更新できる 専用プロセスだからfcgi不要 文法がmarkdown(変更可能) プラグイン拡張できる!
  • 6. 5/18 設置手順 Debian squeezeの場合、、、 $ sudo apt-get install haskell-platform $ cabal update $ cabal install --reinstall -fhighlighting pandoc $ cabal install gitit これだけ!(たぶん。。。)
  • 7. 6/18 え、、、Haskell? 流行の関数型ですよ!奥さん!!!
  • 8. 7/18 使い方 $ mkdir mywiki $ cd mywiki $ ~/.cabal/bin/gitit ...別のコンソールで... $ chromium http://localhost:5001/ うわー簡単!
  • 10. 9/18 ディレクトリ構成 - mywiki/static: 静的データ置き場(cssとか画像ファイルとか) - mywiki/templates: ~/.cabal/share/gitit-X.X/data/templates にある*.stテンプレートファイルの変更 - mywiki/wikidata: Wikiページ内容(git管理) staticとかtemplatesとか編集すれ ばオシャレくなるハズ
  • 11. 10/18 プラグイン作る#1 ふつーはPageTransformで。
  • 12. 11/18 プラグイン作る#2 $ cd mywiki/ $ mkdir plugins $ vi plugins/TwitterUrl.hs module TwitterUrl (plugin) where import Network.Gitit.Interface plugin :: Plugin plugin = mkPageTransform twitterurlize twitterurlize :: Inline -> Inline twitterurlize (Str ('@':x)) = Link [Str ('@':x)] ("http://twitter.com/" ++ x, '@':x) twitterurlize x = x テキトーにプラグイン作って
  • 13. 12/18 プラグイン作る#3 $ cp ~/.cabal/share/gitit-0.8/data/default.conf ./ $ vi default.conf --snip-- plugins: plugins/TwitterUrl.hs --snip-- $ ~/.cabal/bin/gitit -f default.conf コンパイルしないで置いただけな のに。。。
  • 14. 13/18 プラグイン作る#4 "@master_q"とか書くと、、、
  • 15. 14/18 プラグイン作る#5 やった!twitterっぽいリンクになっ てる!
  • 16. 15/18 実地:daemon化 $ cat gitit_daemon.sh #!/bin/sh --snip-- start() { echo -n "Starting $NAME: " $SSD --start --pidfile $PIDFILE --make-pidfile --background --user hoge --chdir $TOPDIR --exec $PROG -- $OPTION RETVAL=$? echo return $RETVAL } --snip--
  • 17. 16/18 実地:VirtualHost $ pwd /etc/apache2/sites-enabled $ cat wiki <VirtualHost *:80> ServerName wiki.masterq.net --snip-- ProxyPassReverse / http://127.0.0.1:5001 RewriteRule ^(.*) http://127.0.0.1:5001$1 [P] --snip-- </VirtualHost>
  • 18. 17/18 最後に宣伝 初心者Haskell勉強会やってま す。僕が参加者に教えてもらう会! 前回議事録: http://bit.ly/jnonaP 次回: http://partake.in/events/8ccdc151-b758-47af-9ff2-91216bd5d3c4 次回は第四回です。いつも横浜近 辺開催。是非!
  • 19. 18/18 参考 - daemon化スクリプト: http://bit.ly/mFfv6f - gititプラグインのしくみ: http://bit.ly/khbwwJ - 実戦配備詳細: http://bit.ly/jXDY8Z