SlideShare a Scribd company logo
1 of 16
Download to read offline
Pandoc — a universal document converter
DiverSE Coffee
Erwan Bousse Mathieu Acher
June 4, 2015
Erwan Bousse, Mathieu Acher Pandoc 1/16
Outline
1 Short introduction and demo
2 Pandoc usages
3 Some details of Pandoc
4 Pandoc for education and research?
Erwan Bousse, Mathieu Acher Pandoc 2/16
What is pandoc?
From their website: “If you need to convert files from one markup
format into another, pandoc is your swiss-army knife”
Command-line tool that processes a markup format
(markdown, wiki syntax, etc.), and produces a document
(LATEX, epub, docx, etc.)
Written in Haskell in a modular fashion (one module per
input language and per output language)
GPL licensed
Can also be used directly as a Haskell library
Erwan Bousse, Mathieu Acher Pandoc 3/16
Input markup formats
“A markup language is a system for annotating a document in a
way that is syntactically distinguishable from the text.”, Wikip´edia
Presentation-neutral:
markdown, reStructuredText, textile, DocBook, MediaWiki
markup, TWiki markup, Haddock markup, OPML, Emacs
Org-Mode, Txt2Tags
Not really presentation neutral:
HTML, LaTeX, Microsoft Word docx, EPUB
Erwan Bousse, Mathieu Acher Pandoc 4/16
Output document formats
HTML formats: XHTML, HTML5, and HTML slide shows
using Slidy, reveal.js, Slideous, S5, or DZSlides.
Word processor formats: Microsoft Word docx,
OpenOffice/LibreOffice ODT, OpenDocument XML
Ebooks: EPUB version 2 or 3, FictionBook2
Documentation formats: DocBook, GNU TexInfo, Groff man
pages, Haddock markup
Page layout formats: InDesign ICML
Outline formats: OPML
TeX formats: LaTeX, ConTeXt, LaTeX Beamer slides
PDF via LaTeX
Lightweight markup formats: Markdown (including
CommonMark), reStructuredText, AsciiDoc, MediaWiki
markup, DokuWiki markup, Emacs Org-Mode, Textile
Erwan Bousse, Mathieu Acher Pandoc 5/16
Demo: from Markdown to Stuff
Demo o/
Erwan Bousse, Mathieu Acher Pandoc 6/16
Pandoc usages
Motivations:
To go from a format to another (if you don’t care about
formatting, since only the content is kept)
To write things once, and to export to multiple formats
To write things in a nice lightweight language (instead of
horrible LATEX, for instance)
. . .
To make:
Slides (like these ones!)
Report
Book
Conference/journal paper? (yet to be tried )
. . .
Erwan Bousse, Mathieu Acher Pandoc 7/16
A view of pandoc (official website)
Erwan Bousse, Mathieu Acher Pandoc 8/16
Hidden Pivot Metamodel
http://hackage.haskell.org/package/pandoc-types-1.12.
4.2/docs/Text-Pandoc-Definition.html#t:Block
Erwan Bousse, Mathieu Acher Pandoc 9/16
Huge amount of options
http://pandoc.org/README.html#general-options
Erwan Bousse, Mathieu Acher Pandoc 10/16
Metadata and templates
YAML metadata to parameterize the template of the output
language
Provides an easy way to customize header + footer (very nice
for LATEX output)
Very simple template language to do so: conditionnals and
loops (with separators)
Erwan Bousse, Mathieu Acher Pandoc 11/16
Filters
Possibility to define filters to rework the AST (e.g. extend the
input language)
Erwan Bousse, Mathieu Acher Pandoc 12/16
Pandoc for education
A “case” for explaining advanced concepts
Software Languages
– parsing
– domain-specific languages, expressiveness, extensibility
– strategies for “growing up” and mixing different languages
(YAML, templating, Python bindings, grammar islands?)
Model-driven Engineering
– pivot metamodel, model transformations
Software Product Lines
– parameters (command line level), input variants, output
variants
– reuse/extensibility mechanisms
Erwan Bousse, Mathieu Acher Pandoc 13/16
Pandoc for research
A “case” for investigating SLE, MDE, and SPL problems
Languages: eg how to address language extensibility
problems?
Modeling: eg how to design a pivot metamodel?
Variability: eg how to test/maintain/introduce plenty of
parameters for plenty of inputs and plenty of outputs?
Erwan Bousse, Mathieu Acher Pandoc 14/16
Summary
Pandoc: useful tool for writing reports, slides, papers
Pandoc for interns, engineers, researchers, or assistants
Pandoc for educators and scientists (worth studying in details
Pandoc)
Open question: how to study Pandoc and render the
understanding/knowledge?
Erwan Bousse, Mathieu Acher Pandoc 15/16
Example: a customised markdown → beamer workflow
Available here:
https://git.framasoft.org/Gwendal/
better-pandoc-markdown2beamer
Makes use of:
A customised beamer output template with more metadata
handling (e.g. insitute) and a style
A filter to extend the input markdown with a new [columns]
syntax to create beamer columns
Erwan Bousse, Mathieu Acher Pandoc 16/16

More Related Content

Similar to Pandoc: a universal document converter

Talking Technologies
Talking TechnologiesTalking Technologies
Talking Technologies
Jisc Scotland
 

Similar to Pandoc: a universal document converter (20)

Olf2016
Olf2016Olf2016
Olf2016
 
Tlf2016
Tlf2016Tlf2016
Tlf2016
 
Concordances
Concordances Concordances
Concordances
 
Scale2016
Scale2016Scale2016
Scale2016
 
Fossetcon15
Fossetcon15Fossetcon15
Fossetcon15
 
Knoxbug2016
Knoxbug2016Knoxbug2016
Knoxbug2016
 
Intermediate Languages
Intermediate LanguagesIntermediate Languages
Intermediate Languages
 
Niatalk24jan10
Niatalk24jan10Niatalk24jan10
Niatalk24jan10
 
WALS and eLanguage (Leipzig)
WALS and eLanguage (Leipzig)WALS and eLanguage (Leipzig)
WALS and eLanguage (Leipzig)
 
Software for paper formatting
Software for paper formatting Software for paper formatting
Software for paper formatting
 
OOo to Daisy (Aegis project)
OOo to Daisy (Aegis project)OOo to Daisy (Aegis project)
OOo to Daisy (Aegis project)
 
ODT to Daisy (AEGIS project)
ODT to Daisy (AEGIS project)ODT to Daisy (AEGIS project)
ODT to Daisy (AEGIS project)
 
Epub IDPF update & futures-Garth Conboy
Epub IDPF update & futures-Garth ConboyEpub IDPF update & futures-Garth Conboy
Epub IDPF update & futures-Garth Conboy
 
Static analysis of textual models
Static analysis of textual modelsStatic analysis of textual models
Static analysis of textual models
 
Compiling Apertium Dictionaries with HFST
Compiling Apertium Dictionaries with HFSTCompiling Apertium Dictionaries with HFST
Compiling Apertium Dictionaries with HFST
 
Ant conc notes
Ant conc notesAnt conc notes
Ant conc notes
 
How to make mathematical eContent travel well
How to make mathematical eContent travel wellHow to make mathematical eContent travel well
How to make mathematical eContent travel well
 
Talking Technologies
Talking TechnologiesTalking Technologies
Talking Technologies
 
Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"
 
Porting terminologies to the Semantic Web
Porting terminologies to the Semantic WebPorting terminologies to the Semantic Web
Porting terminologies to the Semantic Web
 

More from University of Rennes, INSA Rennes, Inria/IRISA, CNRS

24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
On anti-cheating in chess, science, reproducibility, and variability
On anti-cheating in chess, science, reproducibility, and variabilityOn anti-cheating in chess, science, reproducibility, and variability
On anti-cheating in chess, science, reproducibility, and variability
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Machine Learning and Deep Software Variability
Machine Learning and Deep Software VariabilityMachine Learning and Deep Software Variability
Machine Learning and Deep Software Variability
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size
Transfer Learning Across Variants and Versions: The Case of Linux Kernel SizeTransfer Learning Across Variants and Versions: The Case of Linux Kernel Size
Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Software Variability and Artificial Intelligence
Software Variability and Artificial IntelligenceSoftware Variability and Artificial Intelligence
Software Variability and Artificial Intelligence
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
Teaching Software Product Lines: A Snapshot of Current Practices and ChallengesTeaching Software Product Lines: A Snapshot of Current Practices and Challenges
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
From Basic Variability Models to OpenCompare.org
From Basic Variability Models to OpenCompare.orgFrom Basic Variability Models to OpenCompare.org
From Basic Variability Models to OpenCompare.org
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 

More from University of Rennes, INSA Rennes, Inria/IRISA, CNRS (20)

A Demonstration of End-User Code Customization Using Generative AI
A Demonstration of End-User Code Customization Using Generative AIA Demonstration of End-User Code Customization Using Generative AI
A Demonstration of End-User Code Customization Using Generative AI
 
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
 
On Programming Variability with Large Language Model-based Assistant
On Programming Variability with Large Language Model-based AssistantOn Programming Variability with Large Language Model-based Assistant
On Programming Variability with Large Language Model-based Assistant
 
Generative AI for Reengineering Variants into Software Product Lines: An Expe...
Generative AI for Reengineering Variants into Software Product Lines: An Expe...Generative AI for Reengineering Variants into Software Product Lines: An Expe...
Generative AI for Reengineering Variants into Software Product Lines: An Expe...
 
Tackling Deep Software Variability Together
Tackling Deep Software Variability TogetherTackling Deep Software Variability Together
Tackling Deep Software Variability Together
 
On anti-cheating in chess, science, reproducibility, and variability
On anti-cheating in chess, science, reproducibility, and variabilityOn anti-cheating in chess, science, reproducibility, and variability
On anti-cheating in chess, science, reproducibility, and variability
 
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
Feature Subset Selection for Learning Huge Configuration Spaces: The case of ...
 
Machine Learning and Deep Software Variability
Machine Learning and Deep Software VariabilityMachine Learning and Deep Software Variability
Machine Learning and Deep Software Variability
 
Mastering Software Variability for Innovation and Science
Mastering Software Variability for Innovation and ScienceMastering Software Variability for Innovation and Science
Mastering Software Variability for Innovation and Science
 
Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size
Transfer Learning Across Variants and Versions: The Case of Linux Kernel SizeTransfer Learning Across Variants and Versions: The Case of Linux Kernel Size
Transfer Learning Across Variants and Versions: The Case of Linux Kernel Size
 
Reproducible Science and Deep Software Variability
Reproducible Science and Deep Software VariabilityReproducible Science and Deep Software Variability
Reproducible Science and Deep Software Variability
 
Software Variability and Artificial Intelligence
Software Variability and Artificial IntelligenceSoftware Variability and Artificial Intelligence
Software Variability and Artificial Intelligence
 
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
Teaching Software Product Lines: A Snapshot of Current Practices and ChallengesTeaching Software Product Lines: A Snapshot of Current Practices and Challenges
Teaching Software Product Lines: A Snapshot of Current Practices and Challenges
 
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
Exploiting the Enumeration of All Feature Model Configurations: A New Perspec...
 
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
Assessing Product Line Derivation Operators Applied to Java Source Code: An E...
 
Synthesis of Attributed Feature Models From Product Descriptions
Synthesis of Attributed Feature Models From Product DescriptionsSynthesis of Attributed Feature Models From Product Descriptions
Synthesis of Attributed Feature Models From Product Descriptions
 
From Basic Variability Models to OpenCompare.org
From Basic Variability Models to OpenCompare.orgFrom Basic Variability Models to OpenCompare.org
From Basic Variability Models to OpenCompare.org
 
Metamorphic Domain-Specific Languages
Metamorphic Domain-Specific LanguagesMetamorphic Domain-Specific Languages
Metamorphic Domain-Specific Languages
 
3D Printing, Customization, and Product Lines
3D Printing, Customization, and Product Lines3D Printing, Customization, and Product Lines
3D Printing, Customization, and Product Lines
 
WebFML: Synthesizing Feature Models Everywhere (@ SPLC 2014)
WebFML: Synthesizing Feature Models Everywhere (@ SPLC 2014)WebFML: Synthesizing Feature Models Everywhere (@ SPLC 2014)
WebFML: Synthesizing Feature Models Everywhere (@ SPLC 2014)
 

Recently uploaded

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 

Pandoc: a universal document converter

  • 1. Pandoc — a universal document converter DiverSE Coffee Erwan Bousse Mathieu Acher June 4, 2015 Erwan Bousse, Mathieu Acher Pandoc 1/16
  • 2. Outline 1 Short introduction and demo 2 Pandoc usages 3 Some details of Pandoc 4 Pandoc for education and research? Erwan Bousse, Mathieu Acher Pandoc 2/16
  • 3. What is pandoc? From their website: “If you need to convert files from one markup format into another, pandoc is your swiss-army knife” Command-line tool that processes a markup format (markdown, wiki syntax, etc.), and produces a document (LATEX, epub, docx, etc.) Written in Haskell in a modular fashion (one module per input language and per output language) GPL licensed Can also be used directly as a Haskell library Erwan Bousse, Mathieu Acher Pandoc 3/16
  • 4. Input markup formats “A markup language is a system for annotating a document in a way that is syntactically distinguishable from the text.”, Wikip´edia Presentation-neutral: markdown, reStructuredText, textile, DocBook, MediaWiki markup, TWiki markup, Haddock markup, OPML, Emacs Org-Mode, Txt2Tags Not really presentation neutral: HTML, LaTeX, Microsoft Word docx, EPUB Erwan Bousse, Mathieu Acher Pandoc 4/16
  • 5. Output document formats HTML formats: XHTML, HTML5, and HTML slide shows using Slidy, reveal.js, Slideous, S5, or DZSlides. Word processor formats: Microsoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XML Ebooks: EPUB version 2 or 3, FictionBook2 Documentation formats: DocBook, GNU TexInfo, Groff man pages, Haddock markup Page layout formats: InDesign ICML Outline formats: OPML TeX formats: LaTeX, ConTeXt, LaTeX Beamer slides PDF via LaTeX Lightweight markup formats: Markdown (including CommonMark), reStructuredText, AsciiDoc, MediaWiki markup, DokuWiki markup, Emacs Org-Mode, Textile Erwan Bousse, Mathieu Acher Pandoc 5/16
  • 6. Demo: from Markdown to Stuff Demo o/ Erwan Bousse, Mathieu Acher Pandoc 6/16
  • 7. Pandoc usages Motivations: To go from a format to another (if you don’t care about formatting, since only the content is kept) To write things once, and to export to multiple formats To write things in a nice lightweight language (instead of horrible LATEX, for instance) . . . To make: Slides (like these ones!) Report Book Conference/journal paper? (yet to be tried ) . . . Erwan Bousse, Mathieu Acher Pandoc 7/16
  • 8. A view of pandoc (official website) Erwan Bousse, Mathieu Acher Pandoc 8/16
  • 10. Huge amount of options http://pandoc.org/README.html#general-options Erwan Bousse, Mathieu Acher Pandoc 10/16
  • 11. Metadata and templates YAML metadata to parameterize the template of the output language Provides an easy way to customize header + footer (very nice for LATEX output) Very simple template language to do so: conditionnals and loops (with separators) Erwan Bousse, Mathieu Acher Pandoc 11/16
  • 12. Filters Possibility to define filters to rework the AST (e.g. extend the input language) Erwan Bousse, Mathieu Acher Pandoc 12/16
  • 13. Pandoc for education A “case” for explaining advanced concepts Software Languages – parsing – domain-specific languages, expressiveness, extensibility – strategies for “growing up” and mixing different languages (YAML, templating, Python bindings, grammar islands?) Model-driven Engineering – pivot metamodel, model transformations Software Product Lines – parameters (command line level), input variants, output variants – reuse/extensibility mechanisms Erwan Bousse, Mathieu Acher Pandoc 13/16
  • 14. Pandoc for research A “case” for investigating SLE, MDE, and SPL problems Languages: eg how to address language extensibility problems? Modeling: eg how to design a pivot metamodel? Variability: eg how to test/maintain/introduce plenty of parameters for plenty of inputs and plenty of outputs? Erwan Bousse, Mathieu Acher Pandoc 14/16
  • 15. Summary Pandoc: useful tool for writing reports, slides, papers Pandoc for interns, engineers, researchers, or assistants Pandoc for educators and scientists (worth studying in details Pandoc) Open question: how to study Pandoc and render the understanding/knowledge? Erwan Bousse, Mathieu Acher Pandoc 15/16
  • 16. Example: a customised markdown → beamer workflow Available here: https://git.framasoft.org/Gwendal/ better-pandoc-markdown2beamer Makes use of: A customised beamer output template with more metadata handling (e.g. insitute) and a style A filter to extend the input markdown with a new [columns] syntax to create beamer columns Erwan Bousse, Mathieu Acher Pandoc 16/16