Slide 1

Slide 1 text

スライドファイル スライドファイル をセルフホスト をセルフホスト (Pelican利用) (Pelican利用) Kenichiro Matohara(matoken) 1 / 29

Slide 2

Slide 2 text

南隅から参加(鹿児島の右下) 好きなLinuxディストリビューションはDebian お仕事募集 mailto:work@matohara.org Kenichiro Matohara(matoken) Kenichiro Matohara(matoken) https://matoken.org https://matoken.org 2 / 29

Slide 3

Slide 3 text

スライドファイルをセルフホス スライドファイルをセルフホス ト(Pelican利用) ト(Pelican利用) 3 / 29

Slide 4

Slide 4 text

スライドファイルの最近 スライドファイルの最近 Asciidocで書いてasciidoctor-revealjsでhtmlに変換 GitLabにpush htmlで発表 pdfで書き出してSpeakerDeckで公開 4 / 29

Slide 5

Slide 5 text

SpeakerDeck無料アカウント100個 SpeakerDeck無料アカウント100個 制限に到達 制限に到達 5 / 29

Slide 6

Slide 6 text

課金? 課金? 今借りているVPSより高いな…… 6 / 29

Slide 7

Slide 7 text

類似サービス? 類似サービス? いろいろあるけどまた溢れたりサービス終了したり改悪すると面 倒…… 再アップロードできなくなったり,閲覧制限かかったり 7 / 29

Slide 8

Slide 8 text

セルフホスト セルフホスト WordPress / その後公開リンクが消えているのに気づいて悲しみ 後のことを考えるとcpするだけで移行できる静的な仕組みにしたい pdfファイル置くだけだと探しにくい html手書きは面倒 軽量マークアップ言語で書いてPandocなどで変換はファイル管理が 面倒 静的サイトジェネレーター Wiki 「小江戸らぐ 4月のオフな集まり(第225回)」にて「Nextcloudでス ライドをウェブに埋め込みたい」 8 / 29

Slide 9

Slide 9 text

静的サイトジェネレーター(Static 静的サイトジェネレーター(Static Site Generator) Site Generator) 軽量マークアップ言語でエントリを書いてSSGで変換をかけてhtml 等を書き出し 書き出したものをwwwに置く 9 / 29

Slide 10

Slide 10 text

探す 探す [1] 導入が楽(Debian pkgがあったりシングルバイナリだったり), Asciidocで書きたい……殆どない? 1. 更新止まってる? awesome-selfhosted/awesome-selfhosted: A list of Free Software network services and web applications which can be hosted on your own servers Static Site Generators Static Site Generators - Top Open Source SSGs | Jamstack 10 / 29

Slide 11

Slide 11 text

Pelican Pelican 老舗のSSG Pyton製, AGPL-3.0 ライセンス reStructuredText,Markdownで書ける plugin追加でAsciidocでも書ける! Debian pkgあり https://getpelican.com/ https://getpelican.com/ 11 / 29

Slide 12

Slide 12 text

Pelican導入(Debian sid amd64 Pelican導入(Debian sid amd64 package) package) 12 / 29

Slide 13

Slide 13 text

package version package version [ [1 1] ] 1. $ rmadison -u debian,ubuntu pelican debian: pelican | 3.4.0-2 | oldoldoldstable | source pelican | 3.7.1-1 | oldoldstable | source, all pelican | 4.0.1+dfsg-1 | oldstable | source, all pelican | 4.0.1+dfsg-1.1 | stable | source, all pelican | 4.7.1+dfsg-2 | testing | source, all pelican | 4.7.1+dfsg-2 | unstable | source, all ubuntu: pelican | 3.3-1 | trusty/universe | source pelican | 3.6.3-1 | xenial/universe | source, all pelican | 3.7.1+dfsg-1 | bionic/universe | source, all pelican | 4.0.1+dfsg-1 | focal/universe | source, all pelican | 4.0.1+dfsg-1.1 | impish/universe | source, all pelican | 4.7.1+dfsg-2build1 | jammy/universe | source, all pelican | 4.7.1+dfsg-2build1 | kinetic/universe | source, all Pelican 最新は 4.7.2 13 / 29

Slide 14

Slide 14 text

パッケージを導入するだけ パッケージを導入するだけ  最新(4.7.2)が使いたい場合は pip install pelican $ sudo apt install pelican $ pelican --version 4.7.1 14 / 29

Slide 15

Slide 15 text

pelican-quickstartで初期設定 pelican-quickstartで初期設定 pelican-quickstart のいくつかの質問に答えてテンプレートが作ら れる,後でファイルを修正して変更できる. $ mkdir pelican_blog && cd pelican_blog $ pelican-quickstart : > Where do you want to create your new web site? [.] > What will be the title of this web site? slide > Who will be the author of this web site? matoken > What will be the default language of this web site? [ja] > Do you want to specify a URL prefix? e.g., https://example.com (Y/n) n > Do you want to enable article pagination? (Y/n) > How many articles per page do you want? [10] 9 > What is your time zone? [Asia/Tokyo] > Do you want to generate a tasks.py/Makefile to automate generation and publishing? (Y/n) > Do you want to upload your website using FTP? (y/N) > Do you want to upload your website using SSH? (y/N) > Do you want to upload your website using Dropbox? (y/N) > Do you want to upload your website using S3? (y/N) > Do you want to upload your website using Rackspace Cloud Files? (y/N) > Do you want to upload your website using GitHub Pages? (y/N) Done. Your new project is available at /tmp/pelican_blog $ ls -Ap Makefile content/ output/ pelicanconf.py publishconf.py tasks.py 15 / 29

Slide 16

Slide 16 text

Asciidocを使うためにplugin導入 Asciidocを使うためにplugin導入 (option) (option) pluginを適当な場所にclone pelican-quickstartで生成されたpelicanconf.pyに以下を追記 $ git clone --recursive https://github.com/getpelican/pelican-plugins PLUGIN_PATHS = ['/home/matoken/src/pelican-plugins'] PLUGINS = ['asciidoc_reader'] 16 / 29

Slide 17

Slide 17 text

Asciidocの導入(option) Asciidocの導入(option) or  後者の場合 pelicanconf.py に ASCIIDOC_CMD = "asciidoctor" を追記 $ sudo apt install asciidoc vim-asciidoc $ sudo apt install asciidoctor vim-asciidoc 17 / 29

Slide 18

Slide 18 text

記事を書いてみる(Asciidoc) 記事を書いてみる(Asciidoc) content/ 以下のファイルが記事として扱われる content/test.adoc = My super title :date: 2022-06-09 17:46 :modified: 2022-06-09 17:46 :tags: thats, awesome :category: yeah :slug: my-super-post :authors: matoken :summary: Short version for index and feeds == title level 2 and so on... 18 / 29

Slide 19

Slide 19 text

記事変換 記事変換 1 htmlコンテンツに変換 2 動作確認用httpdを起動 3 別マシンで確認したいときのhttpd 4 ウェブブラウザで動作確認 $ make html $ make serve $ make serve-global $ xdg-open http://localhost:8080/ 1 2 3 4 19 / 29

Slide 20

Slide 20 text

トップページ トップページ 20 / 29

Slide 21

Slide 21 text

記事ページ 記事ページ 21 / 29

Slide 22

Slide 22 text

テーマ変更 テーマ変更 で好みのテーマを探してダウ ンロードする 今回は を利用 pelican-quickstartで生成されたpelicanconf.pyにTHEMEの PATHを追記 次回の make html から反映される. http://www.pelicanthemes.com/ photowall THEME = "/home/matoken/src/pelican-themes/photowall" 22 / 29

Slide 23

Slide 23 text

イベント情報とかコピペするの イベント情報とかコピペするの 面倒 面倒 タイトル,スライドpdfファイル,connpass IDを指定して実行すると雛形を作ってくれる テンプレートscriptを用意 $ bash ./connpass.sh Usage: ./connpass.sh TITLE SLIDEFILE [CONNPASSID] $ bash ./connpass.sh "Raspberry Pi Zeroをストレージ無しで活用" content/images/koedolug-2022.05.pdf = Raspberry Pi Zeroをストレージ無しで活用 :date: 2022-05-14 14:00 :modified: 2022-05-14 14:00 :tags: slide, koedolug :category: slide :slug: :authors: matoken :summary: :thumbnail: koedolug-2022.05.jpg image:images/koedolug-2022.05.jpg[] link:images/koedolug-2022.05.pdf[pdf] == 小江戸らぐ 5月のオフな集まり(第238回) 日時:: 2022-05-14 14:00 ~ 2022-05-14 20:00 場所:: オンライン 23 / 29

Slide 24

Slide 24 text

トップページ トップページ 24 / 29

Slide 25

Slide 25 text

記事ページ 記事ページ 25 / 29

Slide 26

Slide 26 text

後は適当な場所にUploadすれば 後は適当な場所にUploadすれば OK OK output 以下を upload 1GB以下なら / / 等 $ rsync -avcP output/ remore:~/public_html/slide GitHub Pages GitLab Pages Neocities $ du -hs . 1.8G . 26 / 29

Slide 27

Slide 27 text

まとめ まとめ スライドの公開 SlideShare → SkeakerDeck → Pelican 自分で管理する必要があるけどそこまで面倒でもない? 引っ越しもかんたん(なはず) アクセスカウンタ,サムネイル,textも欲しい 27 / 29

Slide 28

Slide 28 text

とかやってたらSpeakerDeckの とかやってたらSpeakerDeckの Twitterにアップロード制限緩和 Twitterにアップロード制限緩和 してもらった?? してもらった?? https://nitter.matoken.org/matoken1/status/15349404795 28 / 29

Slide 29

Slide 29 text

奥付 奥付 発表 発表者 利用ソフトウェア ライセンス 小江戸らぐ 6月のオフな集まり(第239回) Kenichiro Matohara(matoken) Asciidoctor Reveal.js CC BY 4.0 29 / 29