├── notes-per-slide-long.pdf ├── notes-per-slide-short.pdf ├── markup-history-long-16x9.pdf ├── markup-history-long-4x3.pdf ├── markup-history-short-4x3.pdf ├── cc-attribution-sharealike-88x31.png ├── .gitignore ├── Makefile ├── unused-slides.txt ├── README.rst ├── markup-history-short.rst ├── markup-history-long.rst ├── markup-history-long-wide.rst ├── assorted-text.txt ├── notes-per-slide-short.rst ├── notes-per-slide-long.rst └── markup-history-extended-notes.rst /notes-per-slide-long.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tibs/markup-history/HEAD/notes-per-slide-long.pdf -------------------------------------------------------------------------------- /notes-per-slide-short.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tibs/markup-history/HEAD/notes-per-slide-short.pdf -------------------------------------------------------------------------------- /markup-history-long-16x9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tibs/markup-history/HEAD/markup-history-long-16x9.pdf -------------------------------------------------------------------------------- /markup-history-long-4x3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tibs/markup-history/HEAD/markup-history-long-4x3.pdf -------------------------------------------------------------------------------- /markup-history-short-4x3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tibs/markup-history/HEAD/markup-history-short-4x3.pdf -------------------------------------------------------------------------------- /cc-attribution-sharealike-88x31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tibs/markup-history/HEAD/cc-attribution-sharealike-88x31.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Editor artefacts 2 | *.swo 3 | *.swp 4 | *~ 5 | 6 | # Generated files 7 | *.html 8 | 9 | # Hovercraft artefacts 10 | slides/ 11 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # This version of the Makefile assumes that pandoc and (enough of) TeX are 2 | # available. 3 | 4 | .PHONY: default 5 | default: html pdf 6 | 7 | # We don't try to provide an HTML version of the slides in this version 8 | # - use the PDF produces by 'slides' instead. 9 | # For various reasons, pandoc won't render markup-history-extended-notes.rst 10 | # as PDF, so we don't bother. 11 | .PHONY: html 12 | html: 13 | rst2html.py README.rst README.html 14 | # github's rendering of reStructuredText uses Linguist to syntax 15 | # highlight code. Unfortunately, it knows the name "roff" for roff 16 | # style code, whilst pygments, used by rst2html.py, does not recognise 17 | # that name. So we shall make do by converting on the fly... 18 | sed -e 's/:: roff/:: groff/' markup-history-extended-notes.rst | rst2html.py > markup-history-extended-notes.html 19 | 20 | # The available aspect ratio of slides (for beamer only) are 1610 for 16:10, 21 | # 169 for 16:9, 149 for 14:9, 141 for 1.41:1, 54 for 5:4, 43 for 4:3 which is 22 | # the default, and 32 # for 3:2. It's probably enough to go for the following 23 | # pair of resolutions. 24 | # We also make the notes-per-slide as PDF, because we can and it might be useful. 25 | .PHONY: pdf 26 | pdf: slides notes 27 | 28 | .PHONY: slides 29 | slides: markup-history-long-4x3.pdf markup-history-long-16x9.pdf markup-history-short-4x3.pdf 30 | 31 | .PHONY: notes 32 | notes: notes-per-slide-long.pdf notes-per-slide-short.pdf 33 | 34 | markup-history-long-4x3.pdf: markup-history-long.rst 35 | pandoc $< -t beamer -o $@ -V aspectratio:43 36 | 37 | markup-history-long-16x9.pdf: markup-history-long-wide.rst 38 | pandoc $< -t beamer -o $@ -V aspectratio:169 39 | 40 | markup-history-short-4x3.pdf: markup-history-short.rst 41 | pandoc $< -t beamer -o $@ -V aspectratio:43 42 | 43 | notes-per-slide-long.pdf: notes-per-slide-long.rst 44 | pandoc $< -o $@ -V papersize:a4 45 | 46 | notes-per-slide-short.pdf: notes-per-slide-short.rst 47 | pandoc $< -o $@ -V papersize:a4 48 | 49 | .PHONY: clean 50 | clean: 51 | rm -f *.html 52 | 53 | .PHONY: help 54 | help: 55 | @echo 'make same as: make html slides' 56 | @echo 'make pdf create markup-history-*-[4x3|16x9].pdf and notes-per-slide-*.pdf' 57 | @echo 'make html create HTML files using rst2html' 58 | @echo 'make clean delete HTML files' 59 | -------------------------------------------------------------------------------- /unused-slides.txt: -------------------------------------------------------------------------------- 1 | ====================================== 2 | Slides removed due to time constraints 3 | ====================================== 4 | 5 | To get it down to roughly 40 minutes 6 | 7 | ---- 8 | 9 | Digital Standard Runoff 10 | ----------------------- 11 | 12 | .. code:: roff 13 | 14 | .TITLE A simpler DSR example 15 | .CHAPTER This is a chapter 16 | 17 | This is the first paragraph. 18 | .LIST 19 | .LIST ELEMENT;This is a list element. We have *bold\* and 20 | &underline\&. 21 | .LIST ELEMENT;This is another list element. I like 22 | interrobangs ?%! 23 | .END LIST 24 | 25 | .. note:: I'm not sure anyone else is interested in DSR, and I don't think 26 | it gives any extra information over talking about the roffs in general. 27 | Perhaps mention it in passing. 28 | 29 | ---- 30 | 31 | 2009: Docbook 5 32 | --------------- 33 | 34 | :: 35 | 36 | 37 | 38 | Very simple book 39 | 40 | Chapter 1 41 | Hello world! 42 | I hope that your day is proceeding splendidly! 43 | 44 | 45 | Chapter 2 46 | Hello again, world! 47 | 48 | 49 | 50 | .. note:: **skippable** Docbook 5 51 | 52 | Example from wikipedia (for Docbook 5, which is relatively recent). 53 | 54 | DocBook 5 is an XML language, formally defined by a RELAX NG schema with 55 | integrated Schematron rules. 56 | 57 | ---- 58 | 59 | 1994: POD 60 | --------- 61 | 62 | :: 63 | 64 | =pod 65 | 66 | =head1 DESCRIPTION 67 | 68 | This is not I representative of POD usage. 69 | 70 | =over 2 71 | 72 | =item This is a list item. 73 | 74 | =item This is another list item. 75 | 76 | =back 77 | 78 | =cut 79 | 80 | .. note:: 1994 POD *Presentational*. Still in use today. 81 | 82 | Perl's "Plain Old Documentation". 83 | 84 | Same year as wikiwikiweb 85 | 86 | An example of markup to a specific purpose, and clearly very successful. 87 | 88 | Note that the blank lines are required around the POD commands. 89 | 90 | I don't think you can do multi-paragraph list items. The POD definitions 91 | contains ambuguities, although how to handle some of them is explained in 92 | the POD documentation. 93 | 94 | ---- 95 | 96 | 1995: Javadoc 97 | ------------- 98 | 99 | :: 100 | 101 | /** 102 | * Short one line description. 103 | *

104 | * Longer description. If there were any, it would be here. 105 | *

106 | * And even more explanations to follow in consecutive 107 | * paragraphs separated by HTML paragraph breaks. 108 | * 109 | * @param variable Description text text text. 110 | * @return Description text text text. 111 | */ 112 | public int methodName (...) { 113 | // ... 114 | } 115 | 116 | .. note:: **skippable** javadoc 117 | 118 | 1995 javadoc *Presentational*. Still in use today. 119 | 120 | Has never specified the subset of HTML it allows. 121 | 122 | ---- 123 | 124 | 1991: setext 125 | ------------ 126 | 127 | :: 128 | 129 | Why setext? 130 | ----------- 131 | 132 | I agree that FAQ's would best be written in something like setext_. 133 | Why? Because this document is written in setext and it includes 134 | the ability to embed HTML hypertext links without being obnoxious. 135 | 136 | As you can see it's easy to write setext documents, and as Edward 137 | pointed out, it uses existing text conventions for **bold** and _italic_ 138 | words and titles. 139 | 140 | .. _setext http://www.bsdi.com/setext/ 141 | .. 142 | 143 | .. note:: 1991 setext *Presentational*. Lightweight. 144 | 145 | Ian Feldman, for use in writing the TidBITs electronic newsletter. 146 | 147 | Excerpted from a document called "Why setext". 148 | 149 | Partly a reaction to SGML. Clearly influential on 150 | all of the succeeding lightweight markups. 151 | 152 | Same year as HTML 153 | 154 | ---- 155 | 156 | ---- 157 | 158 | .. vim: set filetype=rst tabstop=8 softtabstop=2 shiftwidth=2 expandtab: 159 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | A history of markup languages 2 | ============================= 3 | 4 | This is a slideshow originally produced for `PyCon UK 2017`_. 5 | 6 | History 7 | ~~~~~~~ 8 | * The version presented at `Write the Docs Prague 2018`_ can be found at tag 9 | WriteTheDocs_Prague_2018_ 10 | 11 | The "short" version of the slides is as actually presented at 12 | `Write the Docs Prague 2018`_. It is meant to be about 30 minutes long. 13 | You can see it `as recorded at WtD Prague 2018`_. This verson *was* 30 14 | minutes long. 15 | 16 | The "long" version of the slides here is as presented at `Write the Docs 17 | Cambridge`_ in `February 2018`_. It is meant to be about 40-45 minutes 18 | long. 19 | 20 | I also gave this longer version of the talk at work in May 2018. 21 | 22 | * The version presented at `PyCon UK 2017`_ can be found at tag pycon-uk-2017_. 23 | You can see it `as recorded at PyCon UK 2017`_. This version was 30 minutes long. 24 | 25 | * The earlier version given to CamPUG_ in `October 2017`_ can be found at tag 26 | campug-oct-2017_. It was about 45 minutes long. 27 | 28 | The files 29 | ~~~~~~~~~ 30 | All sources are in reStructuredText_, and thus intended to be readable as 31 | plain text. 32 | 33 | * The sources for the slides are in ``_ and 34 | ``_ (customised for 4x3 and 16x9 respectively, 35 | although they're actually the same bar some formatting). 36 | * Notes per slide (for the presenter) are separated out into ``_. 37 | * Extended notes (with links) are in ``_. 38 | 39 | (Note that github will present the ``.rst`` files in rendered form as HTML, 40 | albeit using their own styling (which makes notes a bit odd). If you want 41 | to see the original reStructuredText source, you have to click on the "Raw" 42 | link at the top of the file's page.) 43 | 44 | Since this version of the talk uses PDF slides, which I produce via pandoc_ 45 | and TeX_, I'm including the resultant PDF files in the repository. These 46 | will not necessarily be as up-to-date as the source files, so check their 47 | timestamps. 48 | 49 | There are two versions of the slides here - the shorter (about 25 minutes) 50 | version, and the longer (about 45 minutes) version. 51 | 52 | * Longer: 53 | 54 | * The 4x3 aspect ratio slides are ``_. 55 | * The 16x9 aspect ratio slides are ``_. 56 | * There is a PDF version of the notes per slide in ``_. 57 | 58 | * Shorter: 59 | 60 | * The 4x3 aspect ratio slides are ``_. 61 | * There is a PDF version of the notes per slide in ``_. 62 | 63 | Making the PDF and HTML files 64 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 65 | For convenience, you can use the Makefile to create the PDF slides, create the 66 | HTML version of the extended notes, and so on. For instance:: 67 | 68 | $ make pdf 69 | 70 | will make the PDF files. 71 | 72 | For what the Makefile can do, use:: 73 | 74 | $ make help 75 | 76 | Requirements to build the documents: 77 | 78 | * pandoc_ and TeX_ (on mac, BasicTeX should be enough). Not needed if you're 79 | just going to do ``make html``. 80 | * docutils_ (for reStructuredText_). 81 | 82 | and an appropriate ``make`` program if you want to use the Makefile. 83 | 84 | .. _`Write the Docs Prague 2018`: https://www.writethedocs.org/conf/prague/2018/ 85 | .. _`PyCon UK 2017`: http://2017.pyconuk.org/ 86 | .. _CamPUG: https://www.meetup.com/CamPUG/ 87 | .. _`write the docs cambridge`: https://www.meetup.com/Write-The-Docs-Cambridge/events/246750191/ 88 | .. _`February 2018`: https://www.meetup.com/Write-The-Docs-Cambridge/events/246750191/ 89 | .. _`October 2017`: https://www.meetup.com/CamPUG/events/tpcsxlywnbfb/ 90 | .. _`as recorded at PyCon UK 2017`: https://www.youtube.com/watch?v=qQMXPXzrE_s 91 | .. _`as recorded at WtD Prague 2018`: https://www.youtube.com/watch?v=P-7hwjocEpM&list=PLZAeFn6dfHplRZcYDQjST22bAVeeWML4d&t=0s&index=22 92 | .. _campug-oct-2017: https://github.com/tibs/markup-history/tree/campug-oct-2017 93 | .. _pycon-uk-2017: https://github.com/tibs/markup-history/tree/pycon-uk-2017 94 | .. _WriteTheDocs_Prague_2018: https://github.com/tibs/markup-history/tree/WriteTheDocs_Prague_2018 95 | .. _pandoc: https://pandoc.org/ 96 | .. _docutils: http://docutils.sourceforge.net/ 97 | .. _reStructuredText: http://docutils.sourceforge.net/rst.html 98 | .. _TeX: https://www.ctan.org/starter 99 | 100 | -------- 101 | 102 | |cc-attr-sharealike| 103 | 104 | This slideshow and its related files are released under a `Creative Commons 105 | Attribution-ShareAlike 4.0 International License`_. 106 | 107 | .. |cc-attr-sharealike| image:: cc-attribution-sharealike-88x31.png 108 | :alt: CC-Attribution-ShareAlike image 109 | 110 | .. _`Creative Commons Attribution-ShareAlike 4.0 International License`: http://creativecommons.org/licenses/by-sa/4.0/ 111 | 112 | .. vim: set filetype=rst tabstop=8 softtabstop=2 shiftwidth=2 expandtab: 113 | -------------------------------------------------------------------------------- /markup-history-short.rst: -------------------------------------------------------------------------------- 1 | .. A history of markup languages 2 | .. ============================= 3 | 4 | .. ------- 5 | 6 | A history of markup languages 7 | ----------------------------- 8 | 9 | By Tibs / Tony Ibbs 10 | 11 | .. The slightly shorter version. 12 | .. 13 | .. This is intended to fit within 25 minutes. 14 | 15 | This version for the Write The Docs, Prague, 2018 16 | 17 | Written using reStructuredText_. 18 | 19 | Converted to PDF slides using pandoc_ and beamer_. 20 | 21 | Source and extended notes at https://github.com/tibs/markup-history 22 | 23 | .. _reStructuredText: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html 24 | .. _pandoc: https://pandoc.org 25 | .. _beamer: https://github.com/josephwright/beamer 26 | 27 | .. |TeX| replace:: :math:`\text{\TeX}` 28 | 29 | .. |LaTeX| replace:: :math:`\text{\LaTeX}` 30 | 31 | .. Slide notes are in notes-per-slide.rst - they're too long to fit 32 | .. comfortably in the presenter notes, and this file reads better if 33 | .. "following along" on github without the extra notes being inline. 34 | .. 35 | .. Also, it's not clear that pandoc/beamer/PDF supports presenter notes 36 | .. in the way I'd want. 37 | 38 | .. Full notes (and links) are in markup-history-extended-notes.rst 39 | 40 | ---- 41 | 42 | Timeline 43 | -------- 44 | 45 | * 1960s TYPSET and RUNOFF, GML 46 | * 1970s roff, runoff, nroff/troff, |TeX| in SAIL 47 | * 1980s |TeX| in WEB/Pascal, |LaTeX|, SGML, TEI 48 | * 1990s HTML, setext, Docbook, WikiWikiWeb, XML 49 | * 2000s reStructuredText, AsciiDoc, markdown 50 | 51 | ---- 52 | 53 | The types of markup 54 | ------------------- 55 | 56 | Presentational or Semantic 57 | 58 | ...but also lightweight, and maybe programmable 59 | 60 | ---- 61 | 62 | 1964: RUNOFF 63 | ------------ 64 | 65 | .. code:: roff 66 | 67 | .LINE LENGTH 60 68 | .LEFT MARGIN 0 69 | .PARAGRAPH 5 70 | Call us on our toll free number 71 | 72 | .CENTER 73 | 1-800-555-5555 74 | 75 | and we will respond as soon as convenient. 76 | 77 | ---- 78 | 79 | 1969: GML / 1986: SGML 80 | ---------------------- 81 | 82 | *DTD for a list:* 83 | 84 | .. code:: DTD 85 | 86 |