SlideShare a Scribd company logo
1 of 35
Download to read offline
Pillar, one format for all supports
Thibault Arloing Yann DUBOIS
26 août 2016
1/35
1 Pillar
2 Pillar use cases
3 What’s new in Pillar 4.0
4 Make utilisation easier
5 Demo Time
6 Conclusion
3/35
Currently
LaTeX
Complicated
Hard to debug
Hard to convert to HTML
Markdown
Incomplete
Incompatible Inplementation
Few output formats
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 3 / 35
4/35
Why Pillar ?
We wanted something :
Easier than LaTeX
More complete than Markdown
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 4 / 35
5/35
Pillar
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 5 / 35
6/35
Pillar
One input, many outputs (e.g. HTML, LaTeX, ePub)
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 6 / 35
7/35
Pillar - EPub export
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 7 / 35
8/35
Pillar
One input, many outputs (e.g. HTML, LaTeX, ePub)
Slides / Books / Websites
Textual syntax
Easy to Extend
Easy to use
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 8 / 35
9/35
Pillar - Easy syntax
!Example
This is an example of Pillar file.
*Link>http://pharo.org*
-Unordered Item
-Unordered Item
#Ordered Item
#Ordered Item
[[[language=smalltalk|label=How to say Hello
Transcript show: ’Hello !’.
]]]
|!Harder |!Better
|Faster |Stronger
|More Than |Ever
+Figure>file://path/to/the/file.png|width=80+
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 9 / 35
10/35
Advanced features
${}$ annotation syntax
Slides ${slide :Slide name}$
${myAnnotation :arg1=1|arg2=2}$
Consistency in syntax [[[language=smalltalk|arg1=1|arg2=2]]]
Evaluate a smalltalk script
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 10 / 35
11/35
Pillar use cases
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 11 / 35
12/35
Books written with Pillar
Enterprise Pharo : A Web Perspective
Agile Virtualization
Pharo By Example
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 12 / 35
13/35
Books written with Pillar
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 13 / 35
14/35
Presentations
Beamer
DeckJs
This presentation itself is written in Pillar
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 14 / 35
15/35
Other use cases
Ecstatic : Static Websites, Guillermo Polito / Stéphane Ducasse
(http ://guillep.github.io/ecstatic)
PillarHub, Mike Filonov (http ://pillarhub.pharocloud.com/)
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 15 / 35
16/35
What’s new in Pillar 4.0
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 16 / 35
17/35
Pillar 4.0 - Structures
Dissociate form the shape
Easy to use
Provide from formatting mistakes
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 17 / 35
18/35
Structures - How does it work
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 18 / 35
19/35
Pillar 4.0 - Other features
Footnotes ${footnote :Text to put in the footnote}$
Citations ${cite :REF1713}$
Header Capitalization
Hideable Scripts
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 19 / 35
20/35
Make utilisation easier
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 20 / 35
21/35
Hell on boot project
Where is my configuration file ?
Where are templates ?
I am bored of copy/paste parts of configuration file
Where did I put my pillar files ?
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 21 / 35
22/35
Pillar Archetypes - Skeleton maker
Simple utilisation
Build a project base with example files
Many archetypes (Book / Slides / Beginner)
./ pillar archetype book
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 22 / 35
23/35
Pillar Archetype - How does it work ?
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 23 / 35
24/35
Makefile Archetypes
Makefile adapted to each Archetypes
Separated Makefiles
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 24 / 35
25/35
Makefile Job
Begin with a pillar file
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 25 / 35
26/35
Makefile Job
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 26 / 35
27/35
Makefile Job
Pass through Pillar
$( OUTPUTDIRECTORY )/%. html.json: %. pillar copySupport
./ pillar export --to=" html" --outputFile=$@ $<
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 27 / 35
28/35
Makefile Job
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 28 / 35
29/35
Makefile Job
Pass through a template System
./ mustache --data=$< --template=${ HTMLTEMPLATE } > $@
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 29 / 35
30/35
Makefile Job
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 30 / 35
31/35
Demo Time
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 31 / 35
32/35
Conclusion
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 32 / 35
33/35
Future Works
Pharo comments in Pillar
Mobi Exporter
Math expressions in LaTeX
We have a lot of suggestions from community
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 33 / 35
34/35
Conclusion
Easy to Extend
Easy Syntax
Lot of output
Easier Compilation
Possibility to use other tools for templating
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 34 / 35
35/35
For more informations
https ://ci.inria.fr/pharo-
contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-
result/PillarChap/Pillar.html
Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 35 / 35

More Related Content

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 

Recently uploaded (20)

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 

Pillar: one language for all supports

  • 1. Pillar, one format for all supports Thibault Arloing Yann DUBOIS 26 août 2016 1/35
  • 2. 1 Pillar 2 Pillar use cases 3 What’s new in Pillar 4.0 4 Make utilisation easier 5 Demo Time 6 Conclusion
  • 3. 3/35 Currently LaTeX Complicated Hard to debug Hard to convert to HTML Markdown Incomplete Incompatible Inplementation Few output formats Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 3 / 35
  • 4. 4/35 Why Pillar ? We wanted something : Easier than LaTeX More complete than Markdown Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 4 / 35
  • 5. 5/35 Pillar Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 5 / 35
  • 6. 6/35 Pillar One input, many outputs (e.g. HTML, LaTeX, ePub) Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 6 / 35
  • 7. 7/35 Pillar - EPub export Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 7 / 35
  • 8. 8/35 Pillar One input, many outputs (e.g. HTML, LaTeX, ePub) Slides / Books / Websites Textual syntax Easy to Extend Easy to use Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 8 / 35
  • 9. 9/35 Pillar - Easy syntax !Example This is an example of Pillar file. *Link>http://pharo.org* -Unordered Item -Unordered Item #Ordered Item #Ordered Item [[[language=smalltalk|label=How to say Hello Transcript show: ’Hello !’. ]]] |!Harder |!Better |Faster |Stronger |More Than |Ever +Figure>file://path/to/the/file.png|width=80+ Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 9 / 35
  • 10. 10/35 Advanced features ${}$ annotation syntax Slides ${slide :Slide name}$ ${myAnnotation :arg1=1|arg2=2}$ Consistency in syntax [[[language=smalltalk|arg1=1|arg2=2]]] Evaluate a smalltalk script Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 10 / 35
  • 11. 11/35 Pillar use cases Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 11 / 35
  • 12. 12/35 Books written with Pillar Enterprise Pharo : A Web Perspective Agile Virtualization Pharo By Example Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 12 / 35
  • 13. 13/35 Books written with Pillar Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 13 / 35
  • 14. 14/35 Presentations Beamer DeckJs This presentation itself is written in Pillar Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 14 / 35
  • 15. 15/35 Other use cases Ecstatic : Static Websites, Guillermo Polito / Stéphane Ducasse (http ://guillep.github.io/ecstatic) PillarHub, Mike Filonov (http ://pillarhub.pharocloud.com/) Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 15 / 35
  • 16. 16/35 What’s new in Pillar 4.0 Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 16 / 35
  • 17. 17/35 Pillar 4.0 - Structures Dissociate form the shape Easy to use Provide from formatting mistakes Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 17 / 35
  • 18. 18/35 Structures - How does it work Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 18 / 35
  • 19. 19/35 Pillar 4.0 - Other features Footnotes ${footnote :Text to put in the footnote}$ Citations ${cite :REF1713}$ Header Capitalization Hideable Scripts Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 19 / 35
  • 20. 20/35 Make utilisation easier Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 20 / 35
  • 21. 21/35 Hell on boot project Where is my configuration file ? Where are templates ? I am bored of copy/paste parts of configuration file Where did I put my pillar files ? Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 21 / 35
  • 22. 22/35 Pillar Archetypes - Skeleton maker Simple utilisation Build a project base with example files Many archetypes (Book / Slides / Beginner) ./ pillar archetype book Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 22 / 35
  • 23. 23/35 Pillar Archetype - How does it work ? Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 23 / 35
  • 24. 24/35 Makefile Archetypes Makefile adapted to each Archetypes Separated Makefiles Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 24 / 35
  • 25. 25/35 Makefile Job Begin with a pillar file Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 25 / 35
  • 26. 26/35 Makefile Job Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 26 / 35
  • 27. 27/35 Makefile Job Pass through Pillar $( OUTPUTDIRECTORY )/%. html.json: %. pillar copySupport ./ pillar export --to=" html" --outputFile=$@ $< Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 27 / 35
  • 28. 28/35 Makefile Job Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 28 / 35
  • 29. 29/35 Makefile Job Pass through a template System ./ mustache --data=$< --template=${ HTMLTEMPLATE } > $@ Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 29 / 35
  • 30. 30/35 Makefile Job Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 30 / 35
  • 31. 31/35 Demo Time Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 31 / 35
  • 32. 32/35 Conclusion Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 32 / 35
  • 33. 33/35 Future Works Pharo comments in Pillar Mobi Exporter Math expressions in LaTeX We have a lot of suggestions from community Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 33 / 35
  • 34. 34/35 Conclusion Easy to Extend Easy Syntax Lot of output Easier Compilation Possibility to use other tools for templating Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 34 / 35
  • 35. 35/35 For more informations https ://ci.inria.fr/pharo- contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book- result/PillarChap/Pillar.html Thibault Arloing Yann DUBOIS Pillar, one format for all supports 26 août 2016 35 / 35