SlideShare a Scribd company logo
1 of 17
Download to read offline
Middlemanで個人ページを
作っている話
Github Pages, TravisCI, Middleman で独自ドメインサイト
2014-08-23 Fri. @tmd45
社内勉強会#202 LightningTalks
社内勉強会#194 Github Pages
すーさんの発表おさらい①
★ Github Pagesとは
○ Githubリポジトリの静的コンテンツ(HTMLとか)をWeb
ページとして公開できるホスティング機能
○ 決まった形式でリポジトリを作るだけ
■ User Page(Organization Page)
■ Project Page ←こっち使う話だった
○ 普通の公開リポジトリだから普通に無料
○ 独自ドメインも使えるよ
社内勉強会#194 Github Pages
すーさんの発表おさらい②
★ Middlemanとは
○ 静的サイトジェネレータ(コマンドラインツール)
○ RubyGemsで配布されている
○ 拡張機能や追加のGemを使える(Gemfileで管理)
■ gem "middleman-blog" でブログも生成できる
○ Sinatra(RubyのWebフレームワーク)ベース
■ 開発に ERB とか使える
■ サーバ機能があるから開発環境でかんたん確認
○ 丁寧な日本語翻訳サイトでわかりやすい!
■ http://middlemanapp.com/jp/
個人ページを運用しています
個人ページでやってること
★ Github Pages の User Page を利用
○ {github-id}.github.io リポジトリの master ブランチが公開
ディレクトリ(gh-pages ブランチではない)
★ Middlemanでサイト開発
○ source ブランチで開発して、origin/source ブランチに
push
★ Travis CIでデプロイ
○ `$ middleman build`で生成した静的ファイルだけ master
に push すればいいんだけど面白くないので
○ これをやるのにちょっと面倒な工夫が必要
★ 独自ドメイン設定
ちょっと面倒な工夫とは
★ Travis CIにやらせること
○ origin/source ブランチへの push をトリガーにして .travis.
yml の指示通りに `middleman build` を実行する
○ build した静的ファイルを origin/master に push する
■ あとは Github がよしなにしてくれる
★ 問題点
○ Travisくんは master に push があると build してくれようと
する
■ ?!
ちょっと面倒な工夫とは
tmd45.github.io
source ブランチ
middleman ソース開発
source ブランチ
master ブランチ
①push
②検知してbuild実行
③masterにpush
④masterへのpush を検知して…
ちょっと面倒な工夫とは
https://twitter.com/hiro_asari/statuses/418587151748845569
ちょっと面倒な工夫とは
★ 解決法?
○ masterブランチへの自動コミット時にTravis CIにbuildさせ
ないようにする設定
■ Travis での master コミットのメッセージに "[ci skip]"
を含める
■ source, master ブランチ双方の .travis.yml に「source
ブランチだけ build して」って指定する
★ 参考にした
○ Middleman の記事更新を Travis-CI でする
■ 上記の後者を採用している
■ いま考えたら [ci skip] のほうが楽そう…
■ あとはGithubの設定でメインリポジトリ変えるとか
ちょっと面倒な工夫とは
★ .travice.yml (source ブランチに用意)
…
script: bundle exec middleman build
branches:
only:
- source
…
after_success:
- cd build
- echo -e "---nbranches:n only:n - source" > .travis.yml
- git add -A
- git commit -m 'Update'
- '[ $GH_TOKEN ] && git push --quiet https://$GH_TOKEN@github.
com/tmd45/tmd45.github.io.git 2> /dev/null'
↓こっちはmasterへのコミット内容
LTで済む話じゃなかった
/(^o^)\ナンテコッタイ
\(^o^)/トランザム!
★ そもそも Github Pages のことは公式の Help に丁
寧にかかれてるのでそこ読めばいいよ
○ https://pages.github.com/
○ カスタムドメインについての説明は以下にある
■ https://help.github.com/articles/setting-up-a-custom-
domain-with-github-pages
Github Pages で独自ドメイン
Github Pages で独自ドメイン
★ 公開リポジトリ※に CNAME ファイルを作る
○ 内容はドメインを書けばいい(プロトコルは含めない)
■ $ echo 'tmd45.jp' > CNAME
○ commit して push → リポジトリの設定から確認
★ DNSの設定を変更する
○ サブドメインかどうかとかで違うので詳細はヘルプ参照
○ 自分の場合はGehirnのDNSサービスで `Apex Alias` と
いうのを使って tmd45.github.io に向けるというのをやっ
ている
■ このへんのキーワードでggrといいデース
★ Middlemanのドキュメントの
○ 基礎→テンプレート→Markdownの項があるので読め
○ 他にも対応しているテンプレート言語と必要なRubyGems
が一覧になってるよ!
★ SyntaxHighlightとかもできる
○ なんか最新のは設定ファイル(config.rb)に `activate:
syntax` って書くだけでよさそう?
○ https://github.com/middleman/middleman-syntax
markdownとか使いたい人
オシャレなページにしたい?
★ gem 'bootstrap-sass'
○ twitter bootstrap を sass で使える gem
★ gem 'zurui-sass-middleman'
○ 少ない手間と知識でそれなりに見せる、ズルいデザイン
テクニックを簡単に適用できるmixinのgem
★ あとはbootstrapの事例サイトを眺めながら素人な
りに頑張ってデザインしました^q^
○ web font入れてみたり
○ 背景をパララックスさせてみたり
自分のhubページつくろう
★ ブログとかツイッターとかあれとかこれとかをまと
めておく
○ そのURLさえ公開しとけば良いべ!ってページ
★ 個人的には activity をリストアップしておくのが
良かった
○ イベント参加とかの記録
○ イベントに参加するとページ更新のためにpushする
■ そういうのないと放置気味になるし(笑)
★ middlemanはフロントエンドのちょっとした勉強に
便利…かも
○ Gemで簡単に拡張できるしね
以上です★
今回文字ばかりですみませんでした!
ご清聴(?)ありがとうございました!!
m(_ _)m

More Related Content

Similar to Middlemanで個人ページを作っている話(2014/8/23 社内勉強会LT)

VimとRubyのアツい関係
VimとRubyのアツい関係VimとRubyのアツい関係
VimとRubyのアツい関係
Misao X
 
個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編
Koichi Shiraishi
 
Git hub pagesで告知サイトを作ってみた
Git hub pagesで告知サイトを作ってみたGit hub pagesで告知サイトを作ってみた
Git hub pagesで告知サイトを作ってみた
Soudai Sone
 

Similar to Middlemanで個人ページを作っている話(2014/8/23 社内勉強会LT) (17)

201806 hugo で静的サイト作ってみた
201806 hugo で静的サイト作ってみた201806 hugo で静的サイト作ってみた
201806 hugo で静的サイト作ってみた
 
VimとRubyのアツい関係
VimとRubyのアツい関係VimとRubyのアツい関係
VimとRubyのアツい関係
 
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
 
2015.04.19 WordBench 埼玉 Git & WordPress
2015.04.19 WordBench 埼玉 Git & WordPress2015.04.19 WordBench 埼玉 Git & WordPress
2015.04.19 WordBench 埼玉 Git & WordPress
 
RubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書くRubyでGUIアプリケーションを書く
RubyでGUIアプリケーションを書く
 
今さら聞けない人のためのGit超入門 2019/11/21
今さら聞けない人のためのGit超入門 2019/11/21今さら聞けない人のためのGit超入門 2019/11/21
今さら聞けない人のためのGit超入門 2019/11/21
 
MediaWiki Tips for saveMLAK - wikibana
MediaWiki Tips for saveMLAK - wikibanaMediaWiki Tips for saveMLAK - wikibana
MediaWiki Tips for saveMLAK - wikibana
 
今さら聞けない人のためのGit超入門 2020/12/19
今さら聞けない人のためのGit超入門 2020/12/19今さら聞けない人のためのGit超入門 2020/12/19
今さら聞けない人のためのGit超入門 2020/12/19
 
今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門
 
個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編
 
今さら聞けない人のためのGit超入門 GitLab 13対応版
今さら聞けない人のためのGit超入門 GitLab 13対応版今さら聞けない人のためのGit超入門 GitLab 13対応版
今さら聞けない人のためのGit超入門 GitLab 13対応版
 
20130608 git-3
20130608 git-320130608 git-3
20130608 git-3
 
Yapc2012資料
Yapc2012資料Yapc2012資料
Yapc2012資料
 
GitHub Handson
GitHub HandsonGitHub Handson
GitHub Handson
 
Github pagesで独自ドメインのサイトを作る
Github pagesで独自ドメインのサイトを作るGithub pagesで独自ドメインのサイトを作る
Github pagesで独自ドメインのサイトを作る
 
Githubサービスについて
GithubサービスについてGithubサービスについて
Githubサービスについて
 
Git hub pagesで告知サイトを作ってみた
Git hub pagesで告知サイトを作ってみたGit hub pagesで告知サイトを作ってみた
Git hub pagesで告知サイトを作ってみた
 

More from Yoko TAMADA

My HTML Dark Past(2017/12/08 社内LT大会)
My HTML Dark Past(2017/12/08 社内LT大会)My HTML Dark Past(2017/12/08 社内LT大会)
My HTML Dark Past(2017/12/08 社内LT大会)
Yoko TAMADA
 

More from Yoko TAMADA (7)

エラーメッセージと仲良くなる(2018/6/29 e-Navigator勉強会#3)
エラーメッセージと仲良くなる(2018/6/29 e-Navigator勉強会#3)エラーメッセージと仲良くなる(2018/6/29 e-Navigator勉強会#3)
エラーメッセージと仲良くなる(2018/6/29 e-Navigator勉強会#3)
 
Archive: Android アプリ開発入門(2015/6/19 社内勉強会)
Archive: Android アプリ開発入門(2015/6/19 社内勉強会)Archive: Android アプリ開発入門(2015/6/19 社内勉強会)
Archive: Android アプリ開発入門(2015/6/19 社内勉強会)
 
My HTML Dark Past(2017/12/08 社内LT大会)
My HTML Dark Past(2017/12/08 社内LT大会)My HTML Dark Past(2017/12/08 社内LT大会)
My HTML Dark Past(2017/12/08 社内LT大会)
 
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
 
Archive: Git 入門(2014/1/10 社内勉強会)
Archive: Git 入門(2014/1/10 社内勉強会)Archive: Git 入門(2014/1/10 社内勉強会)
Archive: Git 入門(2014/1/10 社内勉強会)
 
HTTP/2 in nginx(2016/3/11 社内勉強会)
HTTP/2 in nginx(2016/3/11 社内勉強会)HTTP/2 in nginx(2016/3/11 社内勉強会)
HTTP/2 in nginx(2016/3/11 社内勉強会)
 
Git&GitHubで共同作業〜入門編
Git&GitHubで共同作業〜入門編Git&GitHubで共同作業〜入門編
Git&GitHubで共同作業〜入門編
 

Recently uploaded

Recently uploaded (11)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
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...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: 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
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: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
 

Middlemanで個人ページを作っている話(2014/8/23 社内勉強会LT)