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
誰でも簡単に組版した PDF を生成する仕組みづくり
Search
Yu Sugawara
August 23, 2023
Technology
1
75
誰でも簡単に組版した PDF を生成する仕組みづくり
YUMEMI.grow 技術同人誌を支える技術
https://yumemi.connpass.com/event/291439/
Yu Sugawara
August 23, 2023
Tweet
Share
More Decks by Yu Sugawara
See All by Yu Sugawara
HIG の歴史
yusuga
1
37
WWDC 2023 現地参加報告(コード編)
yusuga
0
150
マイク環境を考える
yusuga
0
38
Custom AppをIP制限ありのままで審査に通す方法
yusuga
0
5.8k
Swiftのas Any / AnyObjectの暗黙的な型変換について
yusuga
2
1.7k
ローカルのグローバル環境を可能な限り汚染しないXcodeの開発環境構築
yusuga
0
72
Pure DI 101
yusuga
0
210
Final conclusion of the iOS architecture
yusuga
0
270
Practical application of ReactorKit
yusuga
1
370
Other Decks in Technology
See All in Technology
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
1
140
RubyでKubernetesプログラミング
sat
PRO
4
160
Kotlin Multiplatformのポテンシャル
recruitengineers
PRO
2
150
タイミーのデータ活用を支えるdbt Cloud導入とこれから
ttccddtoki
1
150
コロプラのオンボーディングを採用から語りたい
colopl
5
1.3k
GoogleのAIエージェント論 Authors: Julia Wiesinger, Patrick Marlow and Vladimir Vuskovic
customercloud
PRO
0
160
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
54k
My small contributions - Fujiwara Tech Conference 2025
ijin
0
1.4k
.NET 最新アップデート ~ AI とクラウド時代のアプリモダナイゼーション
chack411
0
200
Visual StudioとかIDE関連小ネタ話
kosmosebi
1
370
【JAWS-UG大阪 reInvent reCap LT大会 サンバが始まったら強制終了】“1分”で初めてのソロ参戦reInventを数字で振り返りながら反省する
ttelltte
0
140
新卒1年目、はじめてのアプリケーションサーバー【IBM WebSphere Liberty】
ktgrryt
0
120
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
244
12k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Statistics for Hackers
jakevdp
797
220k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Why Our Code Smells
bkeepers
PRO
335
57k
Producing Creativity
orderedlist
PRO
343
39k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
570
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Transcript
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ୭Ͱ؆୯ʹ൛ͨ͠ PDF Λ ੜ͢ΔΈͮ͘Γ 2023-08-23
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ࣗݾհ ੁݪ ༞ Twitter: @yusuga_ גࣜձࣾΏΊΈ: iOS ςοΫϦʔυ
߹ಉձࣾϐίε: දࣾһ
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ࣥචͷྲྀΕ Markdown ϑΝΠϧͰهࣄΛॻ͘ɻ 1. Vivliostyle Ͱ Markdown ͔Β൛ͨ͠
PDF Λੜ ͢Δɻ 2. PDF Λݟ࣮ͯࡍͷࢴ໘ͷϨΠΞτࠐΈͰ ༰Λ֬ೝ͢Δʢमਖ਼͕͋Ε 1 Δʣɻ 3.
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ Vivliostyle ͱ Webٕज़Λ༻͍ͯిࢠॻ੶ͷ࡞ɺද ࣔɺҹΛՄೳʹ͢ΔCSSϑϨʔϜϫ ʔΫɻ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ Vivliostyle ΛΠϯετʔϧ͢Δʂ # install Volta curl https://get.volta.sh |
bash # install Node volta install node # ࣮ߦͰ͖Δ͔֬ೝ # μϝͩͬͨΒ `$HOME/.volta/bin` ʹ `PATH` ͕௨͍ͬͯ Δ͔֬ೝ volta --version
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ Vivliostyle ΛΠϯετʔϧ ͢Δʂ # ґଘϥΠϒϥϦΛΠϯετʔϧ yarn install #
࣮ߦͰ͖Δ͔֬ೝ yarn vivliostyle --version
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ PDF Λੜ͢Δʂ # vivliostyle Ͱ PDF Λੜ yarn
build # PDF Λ։͘ open ./book/output/ebook.pdf
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ՝
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ લఏ͕ࣝඞཁ curl – node – volta – yarn
– PATH ͕௨Δͱʁ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ࣮ߦͷखؒ खॱॻ௨ΓʹෳͷίϚϯυΛखಈͰ ࣮ߦ͠ͳ͚ΕͳΒͳ͍ɻ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ڥىҼͷ ࣗͷϚγϯڥʹπʔϧΛΠϯετ ʔϧ͢ΔͱɺͦΕͧΕͷڥͷঢ়گʹΑͬ ͯ͏·͘ΠϯετʔϧͰ͖ͳ͔ͬͨΓ࣮ ߦʹࣦഊ͢Δ͜ͱ͕͋Δɻ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ৭ʑͳਓʹࣥචͯ͠Β͍ͨ ͍ Web ͷ։ൃऀͳΒೃછΈ͕͋Δπʔϧͳ ͷͰͦͪΒࢀೖোนΊɻ – iOSɺAndroidɺσβΠφʹएׯϋʔυϧ ͕ߴ͍ɻ
–
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ త ࢲͨͪ node, volta, yarn, Vivliostyle ʹ͍ͭͯ ߟ͑ͨ͘ͳ͍ʂ
– ͨͩ୯ʹ Markdown ͰهࣄΛॻ͍ͯɺͦΕΛ֬ ೝ͢ΔͨΊʹ PDF Λੜ͍͚ͨͩ͠ ͳΜͩ…ʂ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ PDF Λੜ͢Δ ϋʔυϧΛԼ͛Δʂ
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ վળҊ1: CI Ͱ PDF Λੜ GitHub ʹ PR
Λग़ͨ͠Β CI ্Ͱ PDF Λੜ ͯ֬͠ೝͰ͖ΔΑ͏ʹ͢Δɻ – git commit ͱ git push ͕ඞཁͰ खؒɻ – ΓؾܰʹϩʔΧϧͰ֬ೝ͍ͨ͠ɻ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ վળҊ2: ԾίϯςφΛ͏ DockerʢίϯςφԾԽϓϥοτϑΥʔϜʣ Λ͏ɻ – ΞϓϦέʔγϣϯͱͦͷґଘؔΛίϯς φͱݺΕΔύοέʔδʹ·ͱΊɺڥʹ ґଘͤͣʹҰ؏࣮ͯ͠ߦ͢ΔͨΊͷϓϥο
τϑΥʔϜɻ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ͭ·Γʁ ࣗͷϚγϯڥʹ node ͳͲΛΠ ϯετʔϧ͢Δ͜ͱͳ͘ɺίϯςφ্Ͱ Կ͔Λ࣮ߦͰ͖Δɻ – ࣗͷڥʹىҼͨ͠Πϯετʔϧ࣮
ߦͰ͖ͳ͍ΛվળͰ͖Δʂ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ վળҊ2ͷ Docker Λ͏ ํͰਐΊΔ
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ࠷ऴతͳखॱॻ make run ඞཁͳίϚϯυΛ makefile ʹهड़ͯ͠ ॱ࣮࣍ߦͤ͞Δɻ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ make run Ͱ࣮ߦ͞ΕΔ͜ͱ brew ΛΠϯετʔϧ 1. Docker ΛΠϯετʔϧ
2. colima ΛΠϯετʔϧ 3. colima Λىಈ 4. VivliostyleʢDocker ImageʣΛ࣮ ߦ 5. PDF Λ։͘ ※ 1ʙ4͢ͰʹΠϯετʔϧ/ى ಈ͞ΕͯͨΒεΩοϓ 6. ৄࡉ 1 1. άϩʔόϧڥΛՄೳͳݶΓԚછͤͣʹMarkdown͔Β൛ͷPDFΛੜʢΏΊΈେٕྛ '23ʣ
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ༻πʔϧ πʔϧ ༻్ brew macOS ͚ͷύοέʔδϚωʔδϟʔ Docker ίϯςφԾԽϓϥοτϑΥʔϜ
colima Docker ίϯςφΛ࣮ߦ͢ΔͨΊͷܰྔͳ Linux ϕʔεͷԾԽڥ Vivliostyle Webٕज़Λ༻͍ͯిࢠॻ੶ͷ࡞ɺදࣔɺҹΛՄೳʹ͢Δ CSS ϑϨ ʔϜϫʔΫ
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ colima Ͱ Docker Λ࣮ߦ͢ΔϋʔυϧΛԼ͛Δ Docker ίϯςφΛ࣮ߦ͢ΔͨΊʹɺඪ४Ͱ Docker Desktop
͕ΘΕΔɻ – Docker Desktop ैۀһ͕ 250 ਓҎ্ɺ·ͨ ؒऩӹ͕ 1,000 ສυϧҎ্ͷاۀ͕༻ར༻͢Δ ߹ʹ༗ྉͷαϒεΫϦϓγϣϯ͕ඞཁͱͳ Δɻ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ colima Ͱ Docker Λ࣮ߦ͢ΔϋʔυϧΛԼ͛Δ ΏΊΈͰࣾͷϥΠηϯεͷ͍ग़͠ਃ ͕ඞཁͱͳΔͨΊɺʮ୭Ͱ؆୯ʹʯͷϋʔ υϧ͕एׯ্͕ͬͯ͠·͏ɻ –
Docker Desktop Λସ͢Δ colima Λ༻͢ Δ͜ͱͰਃͷखؒΛվળɻ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ·ͱΊ త͋͘·Ͱࣥච͢Δ͜ͱɻٕज़తͳ͜ͱ ҙࣝ͠ͳ͍͍ͯ͘Α͏ͳΈͮ͘ΓΛ͢Δɻ – ͍Ζ͍ΖͳਓΛר͖ࠐΜͰࣥච׆ಈΛ͛ΔͨΊ ʹɺࢀೖোนΛԼ͛Δ͜ͱΛҙࣝ͢Δɻ – ࣥච࡞ۀ͕Ұ൪͠ΜͲ͍ͷͰɺͦΕҎ֎ͷ͜ͱ
ߟ͑ͤ͞ͳ͍ʂʂ –
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ٕॻത8ʹͯ
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ͓٬͞Μʮʔɺ୭Ͱ…ʯ
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ͓٬͞ΜʮWindows Ͱ ʁʯ
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ୭Ͱ macOS Ͱ
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ୭Ͱ؆୯ʹ ͷಓԕ ͍…
YUMEMI.grow ٕज़ಉਓࢽΛࢧ͑Δٕज़ ͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ