rabbit-slide-znz-rubykansai81-octopress-to-jekyll 2018.03.17

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 168505eb0ad8cce62f56622a2c2cf08501935e81
4
+ data.tar.gz: 9c026c312479a2580e5b4bd170230eab294274dd
5
+ SHA512:
6
+ metadata.gz: 2d53e34794880850558284ee9f4d26ef5e2d6e7e26e70c34a589cd814a32ea346af50810f43516a49bcc1c5229591b01ce17402d8d155597ddb916fbed8d6f7a
7
+ data.tar.gz: 5df519f44bbe1bd93697cf4c3f9cd7c75ee758184dad0852a77de221436f103a4eaf9389aabe48840d9b2783304f67c9af22bbeb516931cd47078660625d8f11
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ octopress-to-jekyll.md
@@ -0,0 +1,23 @@
1
+ # ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
2
+
3
+ 個人ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行したので、その際に苦労した点や工夫した点を紹介します。
4
+
5
+ ## 作者向け
6
+
7
+ ### 表示
8
+
9
+ rake
10
+
11
+ ### 公開
12
+
13
+ rake publish
14
+
15
+ ## 閲覧者向け
16
+
17
+ ### インストール
18
+
19
+ gem install rabbit-slide-znz-rubykansai81-octopress-to-jekyll
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide-znz-rubykansai81-octopress-to-jekyll.gem
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("YOUR THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
@@ -0,0 +1,20 @@
1
+ ---
2
+ id: rubykansai81-octopress-to-jekyll
3
+ base_name: octopress-to-jekyll
4
+ tags:
5
+ - jekyll
6
+ presentation_date: 2018/03/17
7
+ version: 2018.03.17
8
+ licenses: []
9
+ slideshare_id: octopress-2-github-pages-jekyll-3-amp-netlify
10
+ speaker_deck_id: buroguwo-octopress-2-plus-github-pages-kara-jekyll-3-plus-amp-plus-netlify-niyi-xing-sitahua
11
+ ustream_id:
12
+ vimeo_id:
13
+ youtube_id:
14
+ author:
15
+ markup_language: :markdown
16
+ name: Kazuhiro NISHIYAMA
17
+ email: zn@mbf.nifty.com
18
+ rubygems_user: znz
19
+ slideshare_user: znzjp
20
+ speaker_deck_user: znz
@@ -0,0 +1,194 @@
1
+ # ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
2
+
3
+ author
4
+ : Kazuhiro NISHIYAMA
5
+
6
+ content-source
7
+ : 第81回 Ruby関西 勉強会
8
+
9
+ date
10
+ : 2018/03/17
11
+
12
+ allotted-time
13
+ : 15m
14
+
15
+ theme
16
+ : lightning-simple
17
+
18
+ # 自己紹介
19
+
20
+ - Ruby コミッターなど
21
+ - Twitter, GitHub: `@znz`
22
+ - <https://blog.n-z.jp>
23
+
24
+ # Jekyll とは?
25
+
26
+ - markdown などから静的なサイトを生成するもの
27
+ - GitHub Pages などでホスティングできる
28
+ - 動的なコンテンツは JavaScript や外部サイトを使う
29
+ - <https://jekyllrb.com/>
30
+
31
+ # Octopress とは?
32
+
33
+ - Jekyll 2.x ベースのブログ生成ソフト
34
+ - Octopress 3.0 も開発されたが止まっている
35
+ - そのため Octopress のバージョンアップではなく Jekyll 直接に移行
36
+ - <https://github.com/imathis/octopress>
37
+
38
+ # GitHub Pages とは?
39
+
40
+ - GitHub の静的ファイルホスティングサービス
41
+ - git push するだけで反映される
42
+ - jekyll などの自動ビルドも可能
43
+ - プラグインなどが制限されている
44
+ - 手元や CI で生成して生成物を push も可能
45
+
46
+ # GitHub Pages とは?
47
+
48
+ - 独自ドメインはそのままだと https 対応できない
49
+ - Cloudflare などの CDN と組み合わせる例が多い
50
+
51
+ # Netlify とは?
52
+
53
+ - 静的なサイトのホスティングサービス
54
+ - 動的なもの (問い合わせフォームなど) も少し対応しているらしい (未使用)
55
+ - Git 連携あり
56
+ - CDN あり
57
+ - 独自ドメインでも https 対応可能
58
+
59
+ # Amplify for Jekyll とは?
60
+
61
+ - Jekyll の AMP (Accelerated Mobile Pages) 対応テーマ
62
+ - <https://github.com/ageitgey/amplify>
63
+ - 基本的に AMP のみのサイト用
64
+ - amp-jekyll gem (プラグイン) とは別
65
+ - <https://github.com/juusaw/amp-jekyll>
66
+
67
+ # AMP とは?
68
+
69
+ - Accelerated Mobile Pages の略
70
+ - 高速なモバイル対応サイトを作れる仕組み
71
+ - 制限された AMP HTML で書く
72
+ - 動的なものは AMP 側で対応しているもののみ
73
+ - amp-iframe である程度は独自の javascript も可能
74
+ - <https://www.ampproject.org/ja/>
75
+
76
+ # なぜ amplify?
77
+
78
+ - ほぼ文字コンテンツだけなので AMP 対応だけで良い
79
+ - 別対応は面倒
80
+ - amp-jekyll gem は AMP 対応は別 URL で生成
81
+
82
+ # なぜ amplify?
83
+
84
+ - 自前でテーマを作るのは大変そうだった
85
+ - AMP ベースだけだとマージンがなくなるとか素の HTML よりみづらくなる
86
+ - コードの highlight の CSS とか欲しかった
87
+
88
+ # 移行措置
89
+
90
+ # URL 維持の変更
91
+
92
+ - `categories` を `tags` にして `category: blog` を追加
93
+ - カテゴリが URL の一部になるため
94
+ - permalink 設定も互換性があるように変更
95
+ - カテゴリ別ページはリダイレクトで対応
96
+ - pagination は直接ブックマークやリンクなどはないだろうと思って何もせず
97
+
98
+ # 画像対応
99
+
100
+ - 少しだけ使っていたので対応
101
+ - amp-img (width, height 必須) に書き換え
102
+ - amp-jekyll から `amp_filter.rb` だけ利用
103
+ - サイズ自動埋め込み
104
+ - ファイル名のミスが検知できる
105
+ - nokogiri と fastimage を Gemfile に追加
106
+
107
+ # スライド埋め込み
108
+
109
+ - <https://slide.rabbit-shocker.org/> から埋め込み
110
+ - iframe から amp-iframe に変更
111
+ - これも width と height 必須だが固定値で良い
112
+ - https 必須だったので古い http の URL は書き換え
113
+
114
+ # アマゾンの書影
115
+
116
+ - これも iframe から amp-iframe に変更
117
+ - これも width と height 必須だが固定値で良い
118
+ - allow-popups も必要だった
119
+ - ないと表示だけでクリックしても開けない
120
+
121
+ # Google Analytics
122
+
123
+ - amp-analytics に変更
124
+ - AMP 側で対応があるので、普通のページに埋め込むより楽な点もある
125
+
126
+ # Google AdSense
127
+
128
+ - amp-ad に変更
129
+ - なぜか空白しか表示されていない…
130
+ - `jekyll.environment` で分岐してローカルでは非表示
131
+
132
+ # google カスタム検索
133
+
134
+ - サイト内検索
135
+ - 終了予定なので削除
136
+ - 使われてなさそうだったので代替も設置せず
137
+
138
+ # social share
139
+
140
+ - Twitter は amplify でリンクがあった
141
+ - 他も含めて zenback から amp-social-share に変更
142
+ - amp-social-share が組み込み対応していないものも data-share-endpoint 指定で対応可能
143
+
144
+ # feed.xml
145
+
146
+ - octopress デフォルトの atom.xml から amplify デフォルトに名前変更
147
+ - リダイレクトを設定
148
+ - フィードリーダーに影響はないはず
149
+
150
+ # GitHub Pages から Netlify
151
+
152
+ - 主に https 対応のため
153
+ - github-pages gem (177) は jekyll のバージョンが古かった (3.6.2)
154
+ - 最新は jekyll 3.7.3
155
+ - octopress の頃と同様に手元で生成する手もある
156
+
157
+ # JEKYLL_ENV 設定
158
+
159
+ - Netlify の Web 画面からでは staging と production を分けられず
160
+ - netlify.toml で設定
161
+
162
+ ```toml
163
+ [context.production.environment]
164
+ JEKYLL_ENV = "production"
165
+ [context.deploy-preview.environment]
166
+ JEKYLL_ENV = "preview"
167
+ [context.branch-deploy.environment]
168
+ JEKYLL_ENV = "staging"
169
+ ```
170
+
171
+ # 使ったプラグイン (1/2)
172
+
173
+ - jekyll-paginate
174
+ - jekyll-paginate-v2 は互換性がなくなる予定だったので不採用
175
+ - jekyll-compose
176
+ - amplify の Gemfile に入っていたので試し中
177
+ - jekyll-tagging
178
+ - タグごとのページ生成用
179
+
180
+ # 使ったプラグイン (2/2)
181
+
182
+ - jekyll-minifier
183
+ - カスタム CSS が全ページに埋め込みなのに無駄に大きい気がしたので
184
+ - style amp-boilerplate が変わらないのは確認済み
185
+ - jekyll-sitemap
186
+ - 必要性はよくわからないが一応追加
187
+
188
+ # まとめ
189
+
190
+ - 開発が止まっている Octopress 2 から Jekyll 3 に移行
191
+ - ついでに AMP 対応と https 対応
192
+ - https は AMP に必須だった
193
+ - GitHub Pages から Netlify に移行
194
+ - 手元で生成をやめた
metadata ADDED
@@ -0,0 +1,63 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-znz-rubykansai81-octopress-to-jekyll
3
+ version: !ruby/object:Gem::Version
4
+ version: 2018.03.17
5
+ platform: ruby
6
+ authors:
7
+ - Kazuhiro NISHIYAMA
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-03-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: 個人ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行したので、その際に苦労した点や工夫した点を紹介します。
28
+ email:
29
+ - zn@mbf.nifty.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - Rakefile
37
+ - config.yaml
38
+ - octopress-to-jekyll.md
39
+ - pdf/rubykansai81-octopress-to-jekyll-octopress-to-jekyll.pdf
40
+ homepage: http://slide.rabbit-shocker.org/authors/znz/rubykansai81-octopress-to-jekyll/
41
+ licenses: []
42
+ metadata: {}
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ requirements: []
58
+ rubyforge_project:
59
+ rubygems_version: 2.6.14
60
+ signing_key:
61
+ specification_version: 4
62
+ summary: ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
63
+ test_files: []