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
72
誰でも簡単に組版した 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
33
WWDC 2023 現地参加報告(コード編)
yusuga
0
140
マイク環境を考える
yusuga
0
30
Custom AppをIP制限ありのままで審査に通す方法
yusuga
0
5.3k
Swiftのas Any / AnyObjectの暗黙的な型変換について
yusuga
2
1.5k
ローカルのグローバル環境を可能な限り汚染しないXcodeの開発環境構築
yusuga
0
65
Pure DI 101
yusuga
0
210
Final conclusion of the iOS architecture
yusuga
0
270
Practical application of ReactorKit
yusuga
1
360
Other Decks in Technology
See All in Technology
ユーザーの購買行動モデリングとその分析 / dsc-purchase-analysis
cyberagentdevelopers
PRO
2
100
AWS CDKでデータリストアの運用、どのように設計する?~Aurora・EFSの実践事例を紹介~/aws-cdk-data-restore-aurora-efs
mhrtech
4
650
visionOSでの空間表現実装とImmersive Video表示について / ai-immersive-visionos
cyberagentdevelopers
PRO
1
110
とあるユーザー企業におけるリスクベースで考えるセキュリティ業務のお話し
4su_para
3
320
LeSSに潜む「隠れWF病」とその処方箋
lycorptech_jp
PRO
2
120
ABEMA のコンテンツ制作を最適化!生成 AI x クラウド映像編集システム / abema-ai-editor
cyberagentdevelopers
PRO
1
180
AWS re:Inventを徹底的に楽しむためのTips / Tips for thoroughly enjoying AWS re:Invent
yuj1osm
1
570
「 SharePoint 難しい」ってよく聞くけど、そんなに言うなら8歳の息子に試してもらった
taichinakamura
1
620
Gradle: The Build System That Loves To Hate You
aurimas
2
150
現地でMeet Upをやる場合の注意点〜反省点を添えて〜
shotashiratori
0
520
【若手エンジニア応援LT会】AWS Security Hubの活用に苦労した話
kazushi_ohata
0
170
Product Engineer Night #6プロダクトエンジニアを育む仕組み・施策
hacomono
PRO
1
470
Featured
See All Featured
Building Adaptive Systems
keathley
38
2.2k
Faster Mobile Websites
deanohume
304
30k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
290
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
4 Signs Your Business is Dying
shpigford
180
21k
Side Projects
sachag
452
42k
Teambox: Starting and Learning
jrom
132
8.7k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
Typedesign – Prime Four
hannesfritz
39
2.4k
It's Worth the Effort
3n
183
27k
Music & Morning Musume
bryan
46
6.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
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 ٕज़ಉਓࢽΛࢧ͑Δٕज़ ͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ