SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミング
Kiwamu Okabe
 
8F Emacs seminar 1st
8F Emacs seminar 1st8F Emacs seminar 1st
8F Emacs seminar 1st
toshi_pp
 
長いの
長いの長いの
長いの
emasaka
 
Gitコマンド勉強会 第2回 stash
Gitコマンド勉強会 第2回 stashGitコマンド勉強会 第2回 stash
Gitコマンド勉強会 第2回 stash
Kazuki Sakai
 
MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0
Satoshi Kume
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法
Hiroki Mizuno
 

Was ist angesagt? (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個の方法
 

Ähnlich wie Wiki設置するならgitit!

ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
 
Git pyfes201207-presen
Git pyfes201207-presenGit pyfes201207-presen
Git pyfes201207-presen
Kouhei Maeda
 
Vagrant を Web開発環境に使う
Vagrant を Web開発環境に使うVagrant を Web開発環境に使う
Vagrant を Web開発環境に使う
Masashi Shinbara
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo
 

Ähnlich wie 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と実用例
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

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