flowchart LR I1("Source code") & I3("Analysis") --> M1["Storage 1"] M1 --> I3 I3 --> M2 I3 --> I2 I4["Other sources"] --> I2 I2("Figures") --> M2["Storage 2"] M1 -.-> MS["Common storage 1"] M2 -.-> MS MS --> A1["Authoring tool"] A1 --> MS MS --> P1["Publication system"] P1 --> O1["Output 1"] style MS fill:#fca style O1 fill:#faa
Why new ways of publishing?
Lots of specialised tools
- Authoring file formats: Microsoft Word documents, OpenDocument format (ODF), LaTeX, Markdown, slides, posters, videos, …
- Authoring tools: Overleaf, Microsoft Office, and other text editors.
- Storage: Overleaf, Dropbox, Microsoft One Drive, Google Drive, Mega, …
- Publication systems: Microsoft Word, pdfLaTeX, XeLaTeX, RStudio, …
- Each with one output format in mind (e.g., device, size, color, …)
Common publication workflow
Workflow to create one type of publication
Workflow to adapt and produce other types of publications
flowchart LR MS["Common storage 1"] --> M2["Common storage 2"] MS --> I2("Figures") I2 --> M2 M2 --> A1["Authoring tool"] A1 --> M2 M2 --> P1["Publication system 2"] P1 --> O1["Output 2"] style MS fill:#fca style O1 fill:#faa
Duplication and scatter of files
%%{ init : { "flowchart" : { "curve" : "stepBefore" }}}%% flowchart LR dummy1[ ]:::empty -.-> I1 dummy1 -.-> I2 dummy1 -.-> I3 dummy1 -.-> I4 I1("Text + Figures + \n Code + ..."):::input --> O1["Published \n Paper \n (PDF)"] I2("Text + Figures + \n Code + ..."):::input --> O2["Presentation \n Slides \n (PPTX/PDF)"] I3("Text + Figures + \n Code + ..."):::input --> O3["Poster \n (PPTX/PDF)"] I4("Text + Figures + \n Code + ..."):::input --> O4["Computational \n Notebook \n (Colab)"] style O1 fill:#fca style O2 fill:#ffb style O3 fill:#f99 style O4 fill:#bfb classDef empty width:0px,height:0px,fill:#000;
What are possible solutions?
A new publication paradigm
Version controlled and in a single location
%%{ init : { "flowchart" : { "curve" : "stepBefore" }}}%% flowchart LR I1("Text + Figures + \n Code + ..."):::input --- dummy2( ):::empty dummy2 --> O1["Published \n Paper \n (PDF)"] dummy2 --> O2["Presentation \n Slides \n (PPTX/PDF)"] dummy2 --> O3["Poster \n (PPTX/PDF)"] dummy2 --> O4["Computational \n Notebook \n (Colab)"] style O1 fill:#fca style O2 fill:#ffb style O3 fill:#f99 style O4 fill:#bfb classDef empty width:0px,height:0px,fill:#000;
Existing technologies
- Authoring tools: Visual Studio + Quarto, Jupyter Lab + Jupyter Book, Posit Workbench, …
- Standard authoring formats: LaTeX, Markdown, MyST Markdown, reStructuredText, …
- Storage solutions: GitHub, BitBucket,
- Publication systems: Jupyter Book, Quarto, Bookdown, D2L book, Sphinx, R Markdown
- Online collaboration: team collaboration networks, project management tools, online meeting tools,
What next?
We are not there yet
- Current multipurpose publishing systems are under development
- Using them may be more difficult than more established methods
- Lack of stability and missing functionalities
- Lack of standards
New paradigms
- Storage in one or multiple locations by types of files
- A composition toolkit to mix
%%{ init : { "flowchart" : { "curve" : "stepBefore" }}}%% flowchart LR I1("<center>Text</center>"):::input --- dummy1( ):::empty I2("Figures"):::input --- dummy1 I3(Code):::input --- dummy1 I4(...):::input --- dummy1 dummy1 --> C:::foo C{{"Composition"}} --- dummy2( ):::empty dummy2 --> O1["Published \n Paper \n (PDF)"] style C fill:#f9f dummy2 --> O2["Presentation \n Slides \n (PPTX/PDF)"] dummy2 --> O3["Poster \n (PPTX/PDF)"] dummy2 --> O4["Computational \n Notebook \n (Colab)"] style O1 fill:#fca style O2 fill:#ffb style O3 fill:#f99 style O4 fill:#bfb classDef empty width:0px,height:0px,fill:#000;
In this workshop
- 14:00 – 14:30 Introduction
- MPN Why and How to publish in the 21st Century
- DDSN Technologies and use cases
- 14:30 – 15:00 Use cases
- PF Reveal.js examples
- DDSN IAI Hub
- MPN Quarto website with MOOC + video + Shiny
- 15:00 – 15:30 Break
- 15:30 – 16:00 Technologies
- RDN Quarto
- Grant Obsidian
- DDSN Jekyll integration with GitHub + Bristol AI
- 16:00 – 16:30 Design Hackathon
- 16:30 – 16:40 Closing session