Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プレゼン?それもSphinxで出来るよ -ドキュメントツールSphinxのちょっと変わった利用...
Search
attakei
February 13, 2021
Programming
0
1k
プレゼン?それもSphinxで出来るよ -ドキュメントツールSphinxのちょっと変わった利用法- / You can presentation too by Sphinx!
July Tech Festa 2021 winterで発表した資料のPDF版です。
この資料はHTMLプレゼンテーションがベースのため、最新ではない可能性があります。
HTML版はこちら
attakei
February 13, 2021
Tweet
Share
More Decks by attakei
See All by attakei
Sphinxを通して考える、「拡張」の仕方 / First approach for development sphinx extension
attakei
2
4k
PyPIデビュー手前の人のための地下活動手法 -PyPICloudを使ったプライベートレジストリの構築- / Using PyPICloud as private registry for pre-debut to PyPI
attakei
1
440
「〇〇のプラグインを作る」ことのすゝめ / Let's develop plugins
attakei
0
1k
Cloud RunとFastAPIで、ChatBotをミニマムスタートしよう / Getting start ChatBot with FastAPI and Cloud RUN
attakei
0
2.8k
Web制作において、プレビューにあえてCloudRun(とFirebase)を使う / Using Cloud Run (and Firebase) as preview environment of HTML in web development
attakei
0
1.1k
Ansibleを通じて「べき等性」を 理解してみよう / Try understanding idempotency by Ansible
attakei
1
1.1k
素材の良さを活かしつつ、reST をReveal.jsに変換してみる話 / Converting pure reST to Revealjs
attakei
0
340
Eelで作ってみる WHOISアプリと スライド
attakei
0
940
Errbotで得られる、ChatOps入門
attakei
0
1.2k
Other Decks in Programming
See All in Programming
Jakarta EE meets AI
ivargrimstad
0
130
Ethereum_.pdf
nekomatu
0
460
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
290
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
330
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
170
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
1
290
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
880
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
230
EventSourcingの理想と現実
wenas
6
2.3k
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
Amazon Qを使ってIaCを触ろう!
maruto
0
400
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
For a Future-Friendly Web
brad_frost
175
9.4k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Embracing the Ebb and Flow
colly
84
4.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Producing Creativity
orderedlist
PRO
341
39k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
The Cult of Friendly URLs
andyhume
78
6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Side Projects
sachag
452
42k
Transcript
プレゼン?それもSphinxで出来るよ -ドキュメントツールSphinxのちょっと変わった利用法- Date: 2021/1/24 Author: Event: Hashtag: Kazuya Takei July
Tech Festa 2021 winter #JTF2021w_d
イントロ 🟦 > 🟦 > 🟦
CfPより 推しテク=Sphinx 枠です ドキュメンテーション作成や技術書執筆 にも使えるドキュメンテーションツー ル、Sphinx。 単純なHTML生成としてだ けではなく、プレゼンテーションにも使 ってみませんか? Sphinxにおけるプレゼンテーションの事
例を追いつつ、自作ライブラリの紹介な どを行いたいと思います。
自己紹介 Kazuya Takei NIJIBOX Co., Ltd サーバーサイドエンジニア アーキテクト @attakei as
雑食系エンジニア and more Twitter GitHub
自己紹介 July Tech Festa 2018: WebUSBによって広がる、 NFCを取り扱う世界 2020: Web制作において、プレビ ューにあえてCloudRun(と
Firebase)を使う 2021w: プレゼン?それもSphinx で出来るよ (New!)
注意事項 1. 今回は、個人エンジニアとしての推しテク紹介です。 この推しテクは自身が社内用にも使ってたりします が、自分しか使ってません。 2. スライド書いてたら、ほとんどコードが出てきません でした。
主に話すこと ゴール:「Sphinxでプレゼンテーションができる」 Sphinxと普段の役割 Sphinxとプレゼンテーション SphinxとReveal.js
Sphinxと普段の役割 ➡ > 🟦 > 🟦
Sphinx 3行で 複数の出力形式に対応した 拡張性の高い Python製ドキュメンテーションビルダー
ドキュメンテーションビルダー ドキュメントのソースから ドキュメント間の相互参照 階層構造の構築 ソースコードハイライト etc を行い、ドキュメント全体を組み立てる SOURCES Sphinx DOCUMENT
A TION
Sphinxが取り扱うソース reStructuredText Markdown (etc) .rst .md Sphinx DOCUMENT A TION
Sphinxが取り扱うビルド先 HTML ePub PDF(LaTex) man (etc) SOURCES(.md , .rst) Sphinx
HTML,EPUB PDF
Sphinxを使ったサイト いっぱいある ... Python本体 ... Python製Webアプリケーションフレームワーク ... Python製の数値計算ライブラリ ...その他、Pythonパッケージいっぱい Python
documentation Django documentation NumPy Manual
Sphinxを使ったサイト まだまだある ... Python製の構成管理ツール ... Python製のインスタンス初期設定ツール ... PHP製のデータベース操作Webアプリ Ansible documentation
cloud-init Documentation phpMyAdmin documentation
Sphinxを使ったサイト まだまだある ... 電子書籍管理ツール ... Linux向けアプリケーションパッケージャー ... 名前の通り calibre User
Manual Flatpak Ubuntu packaging guide
Sphinxを使った書籍 (書籍執筆のどこかの工程でSphinxを使っているもの) Go言語による並行処理 Pythonプロフェッショナルプログラミング第3版 独学プログラマー エキスパートPythonプログラミング改訂2版 仕事ではじめる機械学習
-> NEXT ->
Sphinxとプレゼンテーショ ン ☑ > ➡ > 🟦 … 対象者:プレゼン系ソフトウェアを使いたがらない方 /
プレゼン資料もGit管理してみたい方
プレゼン系ソフトウェアって? いわゆるこの辺を指します Microsoft PowerPoint Keynote Google スライド
「プレゼン系ソフト」を使わずにプレ ゼンをする HTMLでプレゼン PDFでプレゼン Unityでプレゼン ターミナルでTelnet接続したらプレゼン
HTMLでプレゼンすると何がいいか 主なメリット OSを選ばない ファイルをGit管理しやすい (デメリット) 公開・共有にひと手間かかる ブラウザは選ぶ
HTMLでプレゼンすると何がいいか 1:OSを選ばない ブラウザベースの表示なので、端末も選ばない PC タブレット スマホ ただしブラウザ依存の実装した場合は要注意 Chromeは新しすぎ IEは忘れる
HTMLでプレゼンすると何がいいか 2:ファイルをGit管理しやすい リソースが分離した状態なので、差し替えなどが比較 的容易 差分がわかりやすい(別テキストからHTMLを生成する 場合に顕著) CI/CDしやすい(GitHub Pagesなど)
Sphinxが取り扱うビルド先(再掲) HTML ePub PDF man (etc)
Sphinxが取り扱うビルド先(再掲) HTML <= こっち ePub PDF man (etc)
「SphinxでHTMLプレゼンテーショ ン」を実現するには 基本的には、 なにかしらのHTMLプレゼン用ライブラリを準備して HTML+JSを出力するテーマ・拡張を用意する
HTMLプレゼンテーション用ライブラ リ Google I/O 2012 slide Go talks Impress.js Reveal.js
Remark (more...)
HTMLプレゼンを使うためのSphinx拡 張集 hieroglyph sphinxjp.themes.gopher sphinxjp.themes.impressjs sphinxjp.themes.reveajs sphinxjp.themes.s6 sphinx-revealjs
-> NEXT -> ここからのメインは sphinx-revealjs
SphinxとReveal.js ☑ > ☑ > ➡
Reveal.js 多機能な、HTMLプレゼンテーション用のフレームワーク http://revealjs.com/
こんなことができる 縦横遷移による、ネストされたセクションの表現 様々なページ遷移アニメーション PDFエクスポート機能 プラグインによる拡張 数式サポート シンタックスハイライト スピーカーノート Markdownソースの直接変換
HTMLプレゼンを使うためのSphinx拡 張集(再掲) hieroglyph sphinxjp.themes.gopher sphinxjp.themes.impressjs sphinxjp.themes.reveajs sphinxjp.themes.s6 sphinx-revealjs <= 作った
sphinx-revealjs 作りました(最近、ver1.0に) Markdownプラグインに近い感覚で、RSTをReveal.js プレゼンにする拡張 基本機能は揃ってる...はず 階層によるネストされたセクション テーマの切り替え プラグインの呼び出し Reveal.jsと競合しない範囲で、既存のSphinx拡張を使 い回せる
https://github.com/attakei/sphinx-revealjs
sphinx-revealjs このスライド1枚目のサンプル(ソース) ================================ プレゼン?それもSphinxで出来るよ ================================ -ドキュメントツールSphinxのちょっと変わった利用法- :Date: 2021/1/24 :Author: `Kazuya
Takei <https://attakei.net>`_ :Event: `July Tech Festa 2021 winter <https://techfesta.connpass.com/event/193966/>`_ :Hashtag: `#jtf2021w_d <https://twitter.com/hashtag/jtf2021w_d>`_ .. include:: _sections/introduction.rst
sphinx-revealjs このスライド1枚目のサンプル(HTML) <section > <h1>プレゼン?それもSphinxで出来るよ</h1> <p>-ドキュメントツールSphinxのちょっと変わった利用法-</p> <dl class="field-list simple"> <dt
class="field-odd">Date</dt> <dd class="field-odd"><p>2021/1/24</p> </dd> <dt class="field-even">Author</dt> <dd class="field-even"><p><a class="reference external" href="https://attakei.net"> </dd> <dt class="field-odd">Event</dt> <dd class="field-odd"><p><a class="reference external" href="https://techfesta.conn </dd> <dt class="field-even">Hashtag</dt> <dd class="field-even"><p><a class="reference external" href="https://twitter.com/h </dd> </dl> </ ti >
sphinx-revealjs デモをどうぞ => https://attakei.github.io/sphinx-revealjs
sphinx-revealjs デモから一部抜粋 =============== sphinx-revealjs =============== :Based version: 1.0.0 :Released: 2020-12-27
Overview ======== What is this? ------------- Sphinx extension to build Revealjs presenta Features --------
もう一歩変わった使い方 「ドキュメンテーション」と「プレゼンテーション」 をまとめて作成 Qiita記事のスライドモード的な使い方 https://github.com/attakei-sandbox/sphinx- revealjs-demo
モチベーションの話 欲しかったけど、軽く探して見つからなかった プラグイン開発 コア部分は基本的にSphinxに任せてる 「Reveal.jsとしてHTML出力させる」ためのこと だけ実装すれば良い ドッグフーディングの素材 自分のLTのお供に Pythonパッケージングの素体に
発表してみた ある程度まともに動いたところで、SphinxCon JPに飛び込 んでLTしてみました
発表してみた これ以降、細かい改良を進めつつ、自分の発表のベースと して積極的に利用しています PyCon JP 2019 July Tech Festa 2020
Pycon JP 2020 July Tech Festa 2021 winter => 世界が広がっていく感じする
嬉しいこと 地味にスターが増えてる 海外のイベントで使われてた(最近だと国内でも) Issue/PRをもらえてて、英語の勉強になってる おまけ:これがきっかけで、Sphinxハッカソンに積極 参加するように => 他の人の世界も少し広がっていく感じする
まとめ ☑ > ☑ > ☑
プレゼンはSphinxで出来ます Sphinxはドキュメンテーションビルダーだからこそ、 プレゼンテーションもできます 推しテクで色々やってたら、ちょっと自分の世界が広 がりました 他の人の世界もちょっと広がったみたいです sphinx-revealjsに興味がある方は、お試しとフィード バックお願いします 🙇
参考情報集 Sphinx関連 Sphinx サイト Sphinx 日本ユーザー会 Sphinx テーマ集
参考情報集 sphinx-revealjs関連 GitHubリポジトリ ドキュメント プレゼンテーションデモ 変換サンプル
参考情報集 その他 ソースだけでなく、CI/CDのサンプルにどうぞ このスライドのソース NIJIBOX Co., Ltd