Who needs Pandoc when you have Sphinx? An exploration of the parsers and builders of the Sphinx documentation tool FOSDEM

Size: px
Start display at page:

Download "Who needs Pandoc when you have Sphinx? An exploration of the parsers and builders of the Sphinx documentation tool FOSDEM"

Transcription

1 Who needs Pandoc when you have Sphinx? An exploration of the parsers and builders of the Sphinx documentation tool FOSDEM

2 restructuredtext, Docutils & Sphinx 1

3 A little restructuredtext ========================= This document demonstrates some basic features of rst. You can use **bold** and *italics*, along with ``literals``. It s quite similar to `Markdown`_ but much more extensible. CommonMark may one day approach this [1]_, but today is not that day. `Docutils` does all this for us... rst replace:: **restructuredtext**.. _Markdown: [1] intro.rst

4 A little restructuredtext ========================= This document demonstrates some basic features of rst. You can use **bold** and *italics*, along with ``literals``. It s quite similar to `Markdown`_ but much more extensible. CommonMark may one day approach this [1]_, but today is not that day. `Docutils` does all this for us... rst replace:: **restructuredtext**.. _Markdown: [1] intro.rst

5 A little restructuredtext This document demonstrates some basic features of restructuredtext. You can use bold and italics, along with literals. It s quite similar to Markdown but much more extensible. CommonMark may one day approach this [1], but today is not that day. Docutils does all this for us. [1] intro.html

6 A little more restructuredtext ============================== The extensibility really comes into play with directives and roles. We can do things like link to RFCs (:RFC:`2324`, anyone?) or generate some more advanced formatting (I do love me some H\ :sub:`2`\ O)... warning:: The power can be intoxicating. Of course, all the stuff we showed previously *still works!* The only limit is your imagination/interest. more.rst

7 A little more restructuredtext ============================== The extensibility really comes into play with directives and roles. We can do things like link to RFCs (:RFC:`2324`, anyone?) or generate some more advanced formatting (I do love me some H\ :sub:`2`\ O)... warning:: The power can be intoxicating. Of course, all the stuff we showed previously *still works!* The only limit is your imagination/interest. more.rst

8 A little more restructuredtext The extensibility really comes into play with directives and roles. We can do things like link to RFCs (RFC 2324, anyone?) or generate some more advanced formatting (I do love me some H 2 O). Warning The power can be intoxicating. Of course, all the stuff we showed previously still works! The only limit is your imagination/interest. more.html

9 restructuredtext provides the syntax Docutils provides the parsing and file generation

10 restructuredtext provides the syntax Docutils provides the parsing and file generation Sphinx provides the cross-referencing

11 Docutils use readers, parsers, transforms, and writers Docutils works with individual files

12 Docutils use readers, parsers, transforms, and writers Docutils works with individual files Sphinx uses readers, parsers, transforms, writers and builders Sphinx works with multiple, cross-referenced files

13 How Does Docutils Work? 2

14 About me ======== Hello, world. I am **bold** and *maybe* I am brave. index.rst

15 $ rst2html index.rst

16 About me Hello, world. I am bold and maybe I am brave. index.html

17 index.rst index.html

18 $ rst2pseudoxml index.rst

19 <document ids="about-me" names="about\ me" source="index.rst" title="about me"> <title> About me <paragraph> Hello, world. I am <strong> bold and <emphasis> maybe I am brave. index.xml

20 $./docutils/tools/quicktest.py index.rst

21 <document source="index.rst"> <section ids="about-me" names="about\ me"> <title> About me <paragraph> Hello, world. I am <strong> bold and <emphasis> maybe I am brave. index.xml

22 Readers (reads from source and passes to the parser) Parsers (creates a doctree model from the read file) Transforms (add to, prune, or otherwise change the doctree model) Writers (converts the doctree model to a file)

23 Readers (reads from source and passes to the parser) Parsers (creates a doctree model from the read file) Transforms (add to, prune, or otherwise change the doctree model) Writers (converts the doctree model to a file)

24 What About Sphinx? 3

25 About me ======== Hello, world. I am **bold** and *maybe* I am brave. index.rst

26 master_doc = 'index' conf.py

27 $ sphinx-build -b html. _build

28 About me Hello, world. I am bold and maybe I am brave. index.html

29 Readers (reads from source and passes to the parser) Parsers (creates a doctree model from the read file) Transforms (add to, prune, or otherwise change the doctree model) Writers (converts the doctree model to a file)

30 Builders (call the readers, parsers, transformers, writers) Application (calls the builder(s)) Environment (store information for future builds)

31 Builders (call the readers, parsers, transformers, writers) Application (calls the builder(s)) Environment (store information for future builds)

32 ... updating environment: 1 added, 0 changed, 0 removed reading sources... [100%] index looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done generating indices... done writing additional pages... done copying static files... done copying extra files... done dumping search index in English (code: en)... done dumping object inventory... done build succeeded.

33 Docutils provides almost 100 node types document section title subtitle paragraph block_quote bullet_list note... (the root element of the document tree) (the main unit of hierarchy for documents) (stores the title of a document, section,...) (stores the subtitle of a document) (contains the text and inline elements of a single paragraph) (used for quotations set off from the main text) (contains list_item elements marked with bullets) (an admonition, a distinctive and self-contained notice)...

34 Sphinx provides its own custom node types translatable not_smartquotable toctree versionmodified seealso productionlist manpage pending_xref... (indicates content which supports translation) (indicates content which does not support smart-quotes) (node for inserting a "TOC tree") (version change entry) (custom "see also" admonition) (grammar production lists) (reference to a man page) (cross-reference that cannot be resolved yet)...

35 Docutils provides dozens of transforms DocTitle DocInfo SectNum Contents Footnotes Messages SmartQuotes Admonitions... (promote title elements to the document level) (transform initial field lists to docinfo elements) (assign numbers to the titles of document sections) (generate a table of contents from a document or sub-node) (resolve links to footnotes, citations and their references) (place system messages into the document) (replace ASCII quotation marks with typographic form) (transform specific admonitions to generic ones)...

36 Sphinx also provides additional transforms MoveModuleTargets AutoNumbering CitationReferences SphinxSmartQuotes DoctreeReadEvent ManpageLink SphinxDomains Locale... (promote initial module targets to the section title) (register IDs of tables, figures and literal blocks to assign numbers) (replace citation references with pending_xref nodes) (custom SmartQuotes to avoid transform for some extra node types) (emit doctree-read event) (find manpage section numbers and names) (collect objects to Sphinx domains for cross referencing) (replace translatable nodes with their translated doctree)...

37 Using Additional Parsers 4

38 There are a number of parsers available restructuredtext (part of docutils) Markdown (part of recommonmark) Jupyter Notebooks (part of nbsphinx)

39 # About me Hello, world. I am **bold** and *maybe* I am brave. index.md

40 $ cm2html index.md

41 About me Hello, world. I am bold and maybe I am brave. index.html

42 $ cm2pseudoxml index.md

43 <document ids="about-me" names="about\ me" source="index.md" title="about me"> <title> About me <paragraph> Hello, world. I am <strong> bold and <emphasis> maybe I am brave. index.xml

44 # About me Hello, world. I am **bold** and *maybe* I am brave. index.md

45 from recommonmark.parser import CommonMarkParser master_doc = 'index' source_parsers = {'.md': CommonMarkParser} source_suffix = '.md' conf.py

46 from recommonmark.parser import CommonMarkParser master_doc = 'index' source_parsers = {'.md': CommonMarkParser} source_suffix = '.md' conf.py

47 $ sphinx-build -b html. _build

48 About me Hello, world. I am bold and maybe I am brave. index.html

49 Using Additional Writers, Builders 5

50 Docutils provides a number of in-tree writers docutils_xml html4css1 latex2e manpage null odf_odt pep_html pseudoxml... (simple XML document tree Writer) (simple HTML document tree Writer) (LaTeX2e document tree Writer) (simple man page Writer) (a do-nothing Writer) (ODF Writer) (PEP HTML Writer) (simple internal document tree Writer)...

51 $ rst2html5 index.rst

52 from docutils.core import publish_file from docutils.writers import html5_polyglot with open('readme.rst', 'r') as source: publish_file(source=source, writer=html5_polyglot.writer())

53 $ pip install rst2txt

54 $ rst2txt index.rst

55 from docutils.core import publish_file from rst2txt with open('readme.rst', 'r') as source: publish_file(source=source, writer=rst2txt.writer())

56 Sphinx provides its own in-tree builders html qthelp epub latex text man texinfo xml... (generates output in HTML format) (like html but also generates Qt help collection support files) (like html but also generates an epub file for ebook readers) (generates output in LaTeX format) (generates text files with most rst markup removed) (generates manual pages in the groff format) (generates textinfo files for use with makeinfo) (generates Docutils-native XML files)...

57 $ sphinx-build -b html. _build

58 $ pip install sphinx-asciidoc

59 $ sphinx-build -b asciidoc. _build

60 Writing Your Own Parsers, Writers 6

61 Reading (reads from source and passes to the parser) Parsing (creates a doctree model from the read file) Transforming (applies transforms to the doctree model) Writing (converts the doctree model to a file)

62 from docutils import parsers class Parser(parsers.Parser): supported = ('null',) config_section = 'null parser' config_section_dependencies = ('parsers',) def parse(self, inputstring, document): pass docutils/parsers/null.py

63 We re not covering Compilers 101

64 We re not covering Compilers 101 We re going to cheat

65 <?xml version="1.0" encoding="utf-8"?> <document source="index.rst"> <section ids="about-me" names="about\ me"> <title>about me</title> <paragraph>hello, world. I am <strong>bold</strong> and <emphasis>maybe</emphasis> I am brave.</paragraph> </section> </document> index.xml

66 from docutils import parsers import xml.etree.elementtree as ET class Parser(parsers.Parser): supported = ('xml',) config_section = 'XML parser' config_section_dependencies = ('parsers',) def parse(self, inputstring, document): xml = ET.fromstring(inputstring) self._parse(document, xml)... xml_parser.py

67 ... def _parse(self, node, xml): for attrib, value in xml.attrib.items(): # NOTE(stephenfin): this isn't complete! setattr(node, attrib, value) for child in xml: child_node = getattr(nodes, child.tag)(text=child.text) node += self._parse(child_node, child) if xml.tail: return node, nodes.text(xml.tail) return node xml_parser.py

68 Reading (reads from source and passes to the parser) Parsing (creates a doctree model from the read file) Transforming (applies transforms to the doctree model) Writing (converts the doctree model to a file)

69 from docutils import writers class Writer(writers.Writer): supported = ('pprint', 'pformat', 'pseudoxml') config_section = 'pseudoxml writer' config_section_dependencies = ('writers',) output = None def translate(self): self.output = self.document.pformat() docutils/writers/pseudoxml.py

70 from docutils import writers class Writer(writers.Writer): supported = ('pprint', 'pformat', 'pseudoxml') config_section = 'pseudoxml writer' config_section_dependencies = ('writers',) output = None def translate(self): self.output = self.document.pformat() docutils/writers/pseudoxml.py

71 from docutils import nodes, writers class TextWriter(writers.Writer): supported = ('text',) config_section = 'text writer' config_section_dependencies = ('writers',) output = None def translate(self): visitor = TextTranslator(self.document) self.document.walkabout(visitor) self.output = visitor.body rst2txt/writer.py

72 from docutils import nodes, writers class TextWriter(writers.Writer): supported = ('text',) config_section = 'text writer' config_section_dependencies = ('writers',) output = None def translate(self): visitor = TextTranslator(self.document) self.document.walkabout(visitor) self.output = visitor.body rst2txt/writer.py

73 ... class TextTranslator(nodes.NodeVisitor):... def visit_document(self, node): pass def depart_document(self, node): pass def visit_section(self, node): pass rst2txt/writer.py

74 from sphinx.builders import Builder class TextBuilder(Builder): name = 'text' def init (self): pass def get_outdated_docs(self): pass def get_target_uri(self): pass sphinx/builders/text.py

75 ... def prepare_writing(self, docnames): pass def write_doc(self, docnames, doctree): pass def finish(self): pass sphinx/builders/text.py

76 Wrap Up 6

77 Sphinx and Docutils share most of the same architecture Readers Parsers Transforms Writers

78 but Sphinx builds upon and extends Docutils core functionality Builders Application Environment

79 There are multiple writers/builders provided by both HTML Manpage LaTeX XML texinfo (Sphinx only) ODF (Docutils only)...

80 ...and many more writers/builders available along with readers Markdown (reader and builder) Text (writer) ODF (builder) AsciiDoc (builder) EPUB2 (builder) restructuredtext (builder)...

81 It s possible to write your own

82 It s possible to write your own

83 Fin

84 Who needs Pandoc when you have Sphinx? An exploration of the parsers and builders of the Sphinx documentation tool FOSDEM

85 Useful Packages and Tools recommonmark (provides a Markdown reader) sphinx-markdown-builder (provides a Markdown builder) sphinx-asciidoc (provides an AsciiDoc builder) rst2txt (provides a plain text writer) asciidoclive.com (online AsciiDoc Editor) rst.ninjs.org (online rst Editor)

86 References Quick restructuredtext Docutils Reference Guide restructuredtext Markup Specification restructuredtext Directives restructuredtext Interpreted Text Roles Docutils Hacker s Guide PEP-258: Docutils Design Specification

87 References A brief tutorial on parsing restructuredtext (rest) -- Eli Bendersky A lion, a head, and a dash of YAML -- Stephen Finucane ( ) OpenStack + Sphinx In A Tree -- Stephen Finucane ( ) Read the Docs & Sphinx now support Commonmark -- Read the Docs Blog

Recommonmark Documentation

Recommonmark Documentation Recommonmark Documentation Release 0.5.0 Lu Zero, Eric Holscher, and contributors Jan 22, 2019 Contents 1 Contents 3 2 Getting Started 11 3 Development 13 4 Why a bridge? 15 5 Why another bridge to docutils?

More information

LECTURE 26. Documenting Python

LECTURE 26. Documenting Python LECTURE 26 Documenting Python DOCUMENTATION Being able to properly document code, especially large projects with multiple contributors, is incredibly important. Code that is poorly-documented is sooner

More information

The RestructuredText Book Documentation

The RestructuredText Book Documentation The RestructuredText Book Documentation Release 0.1 Daniel Greenfeld, Eric Holscher Sep 27, 2017 Contents 1 RestructuredText Tutorial 3 2 RestructuredText Guide 5 2.1 Basics...................................................

More information

Moving ROOT Documentation from Docbook to Markdown

Moving ROOT Documentation from Docbook to Markdown Moving ROOT Documentation from Docbook to Markdown Fons Rademakers CERN PH/SFT Weekly SFT meeting, 13/4/2013. What is Markdown? Markdown allows you to write an easy-to-read, easy-to-write plain text format,

More information

Introduction to Python Documentation

Introduction to Python Documentation Introduction to Python Documentation Release v0.0.1 M.Faisal Junaid Butt August 18, 2015 Contents 1 Models 3 2 Auto Generated Documentation 5 3 Hello World Program Documentation 9 4 Practice 11 5 Indices

More information

SphinxTutorial Documentation

SphinxTutorial Documentation SphinxTutorial Documentation Release 1.0 Anthony Scemama April 12, 2013 CONTENTS 1 Introduction 3 2 Creating a new Sphinx project 5 3 restructuredtext 9 3.1 Sections..................................................

More information

This is a paragraph. It's quite short.

This is a paragraph. It's quite short. Structure A ReStructuredText Primer From the outset, let me say that "Structured Text" is probably a bit of a misnomer. It's more like "Relaxed Text" that uses certain consistent patterns. These patterns

More information

Effective Programming Practices for Economists. 13. Documenting (the code of) research projects

Effective Programming Practices for Economists. 13. Documenting (the code of) research projects Effective Programming Practices for Economists 13. Documenting (the code of) research projects Hans-Martin von Gaudecker Department of Economics, Universität Bonn At the end of this lecture you are able

More information

Brandon Rhodes Python Atlanta, July 2009

Brandon Rhodes Python Atlanta, July 2009 The Sphinx Documentation System Brandon Rhodes Python Atlanta, July 2009 Three application models 1. Monolithic Big App Plain text PDF output HTML Special Format 1. Monolithic Big App Plain text PDF output

More information

The RestructuredText Book Documentation

The RestructuredText Book Documentation The RestructuredText Book Documentation Release 1.0 Daniel Greenfeld, Eric Holscher Sep 05, 2018 Tutorial 1 Schedule 2 1.1 Getting Started: Overview & Installing Initial Project................ 2 1.2 Step

More information

Reproducible research and knitr

Reproducible research and knitr Reproducible research and knitr Friedrich Schuster 1 February 24, 2013 1 Thanks to Yihui Xie, author of knitr. Friedrich Schuster () knitr February 24, 2013 1 / 30 Background, expectations Background:

More information

Zerodoc Documentation

Zerodoc Documentation Zerodoc Documentation Release 0.2.0 Pablo Martin Medrano August 17, 2014 Contents 1 Zerodoc 3 1.1 1. The zerodoc format.......................................... 3 1.2 2. Installing zerodoc...........................................

More information

docs-python2readthedocs Documentation

docs-python2readthedocs Documentation docs-python2readthedocs Documentation Release 0.1.0 Matthew John Hayes Dec 01, 2017 Contents 1 Introduction 3 2 Install Sphinx 5 2.1 Pre-Work................................................. 5 2.2 Sphinx

More information

Doc Like an Egyptian. Dru Lavigne Documentation Lead, ixsystems SCALE, January 23, 2016

Doc Like an Egyptian. Dru Lavigne Documentation Lead, ixsystems SCALE, January 23, 2016 Doc Like an Egyptian Dru Lavigne Documentation Lead, ixsystems SCALE, January 23, 2016 All the old paintings on the tombs, They do the sand dance, don't you know? If they move too quick (oh whey oh) They're

More information

How to Contribute to a Sphinx Doc Documentation

How to Contribute to a Sphinx Doc Documentation How to Contribute to a Sphinx Doc Documentation Release 1.0 Haoxi Zhan December 18, 2013 Contents 1 Install Sphinx 3 1.1 Linux................................................... 3 1.2 Mac OS X................................................

More information

Application documentation Documentation

Application documentation Documentation Application documentation Documentation Release 0.1 Daniele Procida June 14, 2016 Contents 1 Tutorial 3 1.1 Setting up................................................. 3 1.2 Configuring the documentation.....................................

More information

polyglot Documentation Release Dave Young

polyglot Documentation Release Dave Young polyglot Documentation Release 1.0.0 Dave Young 2017 Getting Started 1 Installation 3 1.1 Development............................................... 3 1.1.1 Sublime Snippets........................................

More information

LECTURE 9. Development Tools

LECTURE 9. Development Tools LECTURE 9 Development Tools DEVELOPMENT TOOLS Since you are all still in the earlier stages of your semester-long projects, now is a good time to cover some useful modules and tools for managing larger

More information

LECTURE 9. Development Tools

LECTURE 9. Development Tools LECTURE 9 Development Tools DEVELOPMENT TOOLS Since you are all still in the earlier stages of your semester-long projects, now is a good time to cover some useful modules and tools for managing larger

More information

Sphinx AutoAPI Documentation

Sphinx AutoAPI Documentation Sphinx AutoAPI Documentation Release 0.5.0 Read the Docs, Inc Nov 13, 2017 Main 1 Contents 3 1.1 AutoAPI Configuration......................................... 3 1.2 Templates.................................................

More information

inside TEX Documents https://github.com/witiko/markdown Vít Novotný

inside TEX Documents https://github.com/witiko/markdown Vít Novotný Using inside TEX Documents TUG@BachoTEX https://github.com/witiko/markdown Vít Novotný Contents. Introduction. The Case for Lightweight Markup. Existing Solutions. The markdown.tex Package. Building a

More information

Leetcode Solutions Documentation

Leetcode Solutions Documentation Leetcode Solutions Documentation Release 0.1 Chao Chu March 16, 2015 Contents 1 Categories 1 1.1 Array and String............................................. 1 1.2 Binary Tree................................................

More information

Lesson 4 - Basic Text Formatting

Lesson 4 - Basic Text Formatting Lesson 4 - Basic Text Formatting Objectives In this lesson we will: Introduce Wiki Syntax Learn how to Bold and Italicise text, and add Headings Learn how to add bullets and lists Now that you have made

More information

odpdown - markdown to slides

odpdown - markdown to slides CIB GROUP odpdown - markdown to slides Nice slides from your favourite text editor! Thorsten.Behrens@cib.de Ideas > auto-generate slides from pure text like latex beamer, pandoc, or showof > make it blend

More information

Sphinx format for Latex and HTML

Sphinx format for Latex and HTML Sphinx format for Latex and HTML Meher Krishna Patel Created on : Octorber, 2017 Last updated : May, 2018 More documents are freely available at PythonDSP Table of contents Table of contents List of figures

More information

Basics of Web Design, 3 rd Edition Instructor Materials Chapter 2 Test Bank

Basics of Web Design, 3 rd Edition Instructor Materials Chapter 2 Test Bank Multiple Choice. Choose the best answer. 1. What element is used to configure a new paragraph? a. new b. paragraph c. p d. div 2. What element is used to create the largest heading? a. h1 b. h9 c. head

More information

Note taking with Pandoc

Note taking with Pandoc Organize your notes with your favorite editor and markup-language Jens Getreu Table of Contents 1. How students take notes... 1.1. The lesson starts... 1.2. Taking notes about a file... 2. Quickstart...

More information

DOWNLOAD OR READ : MANUAL HYPHENATION MEANING PDF EBOOK EPUB MOBI

DOWNLOAD OR READ : MANUAL HYPHENATION MEANING PDF EBOOK EPUB MOBI DOWNLOAD OR READ : MANUAL HYPHENATION MEANING PDF EBOOK EPUB MOBI Page 1 Page 2 manual hyphenation meaning manual hyphenation meaning pdf manual hyphenation meaning This guideline is a part of the English

More information

Scripts define HOW. The report defines WHAT & WHY. Mikhail Dozmorov. Fall Mikhail Dozmorov Scripts define HOW Fall / 27

Scripts define HOW. The report defines WHAT & WHY. Mikhail Dozmorov. Fall Mikhail Dozmorov Scripts define HOW Fall / 27 Scripts define HOW The report defines WHAT & WHY Mikhail Dozmorov Fall 2016 Mikhail Dozmorov Scripts define HOW Fall 2016 1 / 27 Literate programming Let us change our traditional attitude to the construction

More information

rinohtype Release Brecht Machiels

rinohtype Release Brecht Machiels rinohtype Release 0.3.1 Brecht Machiels December 19, 2016 Table of Contents 1 Introduction 3 1.1 Usage Examples.............................................. 3 2 Installation 5 2.1 Dependencies...............................................

More information

Sphinx JS HowTo Documentation

Sphinx JS HowTo Documentation Sphinx JS HowTo Documentation Release 0.1.0 Damon Oehlman August 09, 2012 CONTENTS i ii Sphinx JS HowTo Documentation, Release 0.1.0 This is a how-to that guides developers through the process of creating

More information

Scientific computing platforms at PGI / JCNS

Scientific computing platforms at PGI / JCNS Member of the Helmholtz Association Scientific computing platforms at PGI / JCNS PGI-1 / IAS-1 Scientific Visualization Workshop Josef Heinen Outline Introduction Python distributions The SciPy stack Julia

More information

W3C XML XML Overview

W3C XML XML Overview Overview Jaroslav Porubän 2008 References Tutorials, http://www.w3schools.com Specifications, World Wide Web Consortium, http://www.w3.org David Hunter, et al.: Beginning, 4th Edition, Wrox, 2007, 1080

More information

Independent Submission Request for Comments: 7328 Category: Informational August 2014 ISSN:

Independent Submission Request for Comments: 7328 Category: Informational August 2014 ISSN: Independent Submission R. Gieben Request for Comments: 7328 Google Category: Informational August 2014 ISSN: 2070-1721 Abstract Writing I-Ds and RFCs Using Pandoc and a Bit of XML This document presents

More information

Isabelle/jEdit as IDE for domain-specific formal languages and informal text documents

Isabelle/jEdit as IDE for domain-specific formal languages and informal text documents Isabelle/jEdit as IDE for domain-specific formal languages and informal text documents Makarius Wenzel http://sketis.net June 2018 λ = Isabelle β PIDE α Isabelle/jEdit as Formal IDE Abstract Isabelle/jEdit

More information

Flask-Misaka Documentation

Flask-Misaka Documentation Flask-Misaka Documentation Release 0.4.1 David Baumgold Mar 15, 2017 Contents 1 Installation 3 2 Usage 5 3 API 7 4 Options 9 Python Module Index 11 i ii Flask-Misaka Documentation, Release 0.4.1 Flask-Misaka

More information

CSE 12 Abstract Syntax Trees

CSE 12 Abstract Syntax Trees CSE 12 Abstract Syntax Trees Compilers and Interpreters Parse Trees and Abstract Syntax Trees (AST's) Creating and Evaluating AST's The Table ADT and Symbol Tables 16 Using Algorithms and Data Structures

More information

Socrates Documentation

Socrates Documentation Socrates Documentation Release 0.6.0 Honza Pokorny July 23, 2011 CONTENTS i ii Socrates is a simple static site generator. It s geared towards blogs. You write your posts in your favorite plain text to

More information

What is XML? XML is designed to transport and store data.

What is XML? XML is designed to transport and store data. What is XML? XML stands for extensible Markup Language. XML is designed to transport and store data. HTML was designed to display data. XML is a markup language much like HTML XML was designed to carry

More information

markdown-guide Documentation

markdown-guide Documentation markdown-guide Documentation Release 0.1 Daniel Greenfeld Nov 15, 2017 Contents 1 Markdown Basics 3 1.1 Blockquotes............................................... 3 1.2 Code: Block...............................................

More information

HPCI CMS for Information Sharing User Manual Ver. 1

HPCI CMS for Information Sharing User Manual Ver. 1 Document ID:HPCI-OF01-003E-01 HPCI CMS for Information Sharing User Manual Ver. 1 2015/10/1 HPCI Operating Office Revision History Date Revision Contents 2015/10/1 First edition 1 Table of contents Revision

More information

CiviX Author Custom Actions Cheat Sheet

CiviX Author Custom Actions Cheat Sheet Amendment Bylaw Elements CiviX Author Custom Actions Cheat Sheet 1 Alt + 6 Add Amendment Explanatory Note Add an amendment explan note which explains the purpose of the amendment - Occurs above an amendment

More information

CSC Web Technologies, Spring Web Data Exchange Formats

CSC Web Technologies, Spring Web Data Exchange Formats CSC 342 - Web Technologies, Spring 2017 Web Data Exchange Formats Web Data Exchange Data exchange is the process of transforming structured data from one format to another to facilitate data sharing between

More information

A Markdown Interpreter for T E X

A Markdown Interpreter for T E X A Markdown Interpreter for T E X Vít Novotný witiko@mail.muni.cz Version 2.5.6 April 8, 2018 Contents 1 Introduction 1 1.1 Feedback......... 2 1.2 Acknowledgements.... 2 1.3 Requirements....... 2 2 Interfaces

More information

Copyright c 1992, 1993, 1994, 1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided

Copyright c 1992, 1993, 1994, 1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided GNU Makeinfo Brian J. Fox and Robert J. Chassell Copyright c 1992, 1993, 1994, 1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the

More information

Imagery International website manual

Imagery International website manual Imagery International website manual Prepared for: Imagery International Prepared by: Jenn de la Fuente Rosebud Designs http://www.jrosebud.com/designs designs@jrosebud.com 916.538.2133 A brief introduction

More information

PHCpack, phcpy, and Sphinx

PHCpack, phcpy, and Sphinx PHCpack, phcpy, and Sphinx 1 the software PHCpack a package for Polynomial Homotopy Continuation polyhedral homotopies the Python interface phcpy 2 Documenting Software with Sphinx Sphinx generates documentation

More information

Management Information Systems

Management Information Systems Management Information Systems Hands-On: HTML Basics Dr. Shankar Sundaresan 1 Elements, Tags, and Attributes Tags specify structural elements in a document, such as headings: tags and Attributes

More information

UNIVERSITY OF CALIFORNIA

UNIVERSITY OF CALIFORNIA UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS164 Fall 1997 P. N. Hilfinger CS 164: Midterm Name: Please do not discuss the contents of

More information

Programming: Computer Programming For Beginners: Learn The Basics Of Java, SQL & C Edition (Coding, C Programming, Java Programming, SQL

Programming: Computer Programming For Beginners: Learn The Basics Of Java, SQL & C Edition (Coding, C Programming, Java Programming, SQL Programming: Computer Programming For Beginners: Learn The Basics Of Java, SQL & C++ - 3. Edition (Coding, C Programming, Java Programming, SQL Programming, JavaScript, Python, PHP) PDF PLEASE NOTE: You

More information

Package spelling. December 18, 2017

Package spelling. December 18, 2017 Title Tools for Spell Checking in R Version 1.1 Package spelling December 18, 2017 Spell checking common document formats including latex, markdown, manual pages, and description files. Includes utilities

More information

ONIX for Books Product Information Message. Application Note: Embedding HTML markup in ONIX 3.0 data elements

ONIX for Books Product Information Message. Application Note: Embedding HTML markup in ONIX 3.0 data elements ONIX for Books Product Information Message Application Note: Embedding HTML markup in ONIX 3.0 data elements In ONIX whether version 2.1 or 3.0 there are many common issues that arise when data providers

More information

HTML CS 4640 Programming Languages for Web Applications

HTML CS 4640 Programming Languages for Web Applications HTML CS 4640 Programming Languages for Web Applications 1 Anatomy of (Basic) Website Your content + HTML + CSS = Your website structure presentation A website is a way to present your content to the world,

More information

Managing Content in WordPress

Managing Content in WordPress The Beginners Guide to WordPress Posts, Pages & Images WordPress is one of the most popular content management systems and blogging platforms in the world. It is free, open source software that allows

More information

Documenting Python. Release Georg Brandl. October 06, Python Software Foundation

Documenting Python. Release Georg Brandl. October 06, Python Software Foundation Documenting Python Release 2.6.3 Georg Brandl October 06, 2009 Python Software Foundation Email: docs@python.org CONTENTS 1 Introduction 3 2 Style Guide 5 3 restructuredtext Primer 7 3.1 Paragraphs................................................

More information

BreatheExample Documentation

BreatheExample Documentation BreatheExample Documentation Release v4.7.3 Michael Jones Oct 09, 2017 Contents 1 Overview 3 2 Setup & Usage 5 3 Features 49 4 Contributing 69 5 Example/Test Pages 75 6 Download 133 7 License 135 8 In

More information

Part A: Getting started 1. Open the <oxygen/> editor (with a blue icon, not the author mode with a red icon).

Part A: Getting started 1. Open the <oxygen/> editor (with a blue icon, not the author mode with a red icon). DIGITAL PUBLISHING AND PRESERVATION USING TEI http://www.lib.umich.edu/digital-publishing-production/digital-publishing-and-preservation-using-tei-november-13-2010 Introductory TEI encoding 1 This exercise

More information

Parsing CSCI-400. Principles of Programming Languages.

Parsing CSCI-400. Principles of Programming Languages. Parsing Principles of Programming Languages https://lambda.mines.edu Activity & Overview Review the learning group activity with your group. Compare your solutions to the practice problems. Did anyone

More information

Quark XML Author June 2017 Update for Platform with DITA

Quark XML Author June 2017 Update for Platform with DITA Quark XML Author 05 - June 07 Update for Platform with DITA Contents Getting started... About Quark XML Author... Resources on DITA... Working with the repository...4 Creating a new topic from a repository

More information

Skill Area 323: Design and Develop Website. Multimedia and Web Design (MWD)

Skill Area 323: Design and Develop Website. Multimedia and Web Design (MWD) Skill Area 323: Design and Develop Website Multimedia and Web Design (MWD) 323.2 Work with Text and Hypertext (7 hrs) 323.2.1 Add headings, subheadings and body text 323.2.2 Format text according to specifications

More information

Sphinx Github Webpage Tutorials. Release Wenqiang Feng

Sphinx Github Webpage Tutorials. Release Wenqiang Feng Sphinx Github Webpage Tutorials Release 1.00 Wenqiang Feng February 18, 2019 CONTENTS 1 Preface 3 1.1 About this tutorial.................................. 3 1.2 Motivation for this tutorial..............................

More information

A Byte of Python. Swaroop C H

A Byte of Python. Swaroop C H A Byte of Python Swaroop C H A Byte of Python Swaroop C H Copyright 2003-2005 Swaroop C H Abstract This book will help you to learn the Python programming language, whether you are new to computers or

More information

Adding a corporate identity to reproducible research

Adding a corporate identity to reproducible research Adding a corporate identity to reproducible research R Belgium, Zavemtem March 7 2017 Thierry Onkelinx Research Institute for Nature and Forest (INBO) Summary 1 Introduction 2 ggplot2 for graphics 3 Short

More information

Using Scala for building DSL s

Using Scala for building DSL s Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain

More information

Python Project Documentation

Python Project Documentation Python Project Documentation Release 1.0 Tim Diels Jan 10, 2018 Contents 1 Simple project structure 3 1.1 Code repository usage.......................................... 3 1.2 Versioning................................................

More information

Reproducible Research with R and RStudio

Reproducible Research with R and RStudio The R Series Reproducible Research with R and RStudio Christopher Gandrud C\ CRC Press cj* Taylor & Francis Croup Boca Raton London New York CRC Press is an imprint of the Taylor & Francis Group an informa

More information

S1-IV-Question-Pool Documentation

S1-IV-Question-Pool Documentation S1-IV-Question-Pool Documentation Release 0.1.0 Section-I Sep 25, 2017 Contents 1 How to contribute 3 2 The Prologue 7 3 C Language Questions 9 4 C Language Solutions 11 5 Linux Usage Questions 13 6 Linux

More information

turning expressions into functions symbolic substitution, series, and lambdify

turning expressions into functions symbolic substitution, series, and lambdify Defining Functions 1 Lambda Functions turning expressions into functions symbolic substitution, series, and lambdify 2 Functions and Modules writing a function definition defining and using modules where

More information

Read & Download (PDF Kindle) Programming: C ++ Programming : Programming Language For Beginners: LEARN IN A DAY! (C++, Javascript, PHP, Python, Sql,

Read & Download (PDF Kindle) Programming: C ++ Programming : Programming Language For Beginners: LEARN IN A DAY! (C++, Javascript, PHP, Python, Sql, Read & Download (PDF Kindle) Programming: C ++ Programming : Programming Language For Beginners: LEARN IN A DAY! (C++, Javascript, PHP, Python, Sql, HTML, Swift) Start Learning to Program in the C++ Language

More information

Humanities Ebooks: Dual Purpose Word Template

Humanities Ebooks: Dual Purpose Word Template Humanities Ebooks: Dual Purpose Word Template [This template fits our new demy-octavo format for new electronic and print-on-demand titles and allows for automatic recognition of headings when converting

More information

Document Your Software Project!

Document Your Software Project! Document Your Software Project! ian.s.dees@tek.com Hi, I m Ian. I m here to talk about software documentation, with an emphasis on library documentation. The problem with a title like this is that it s

More information

Notetaking with ReStrutcturedText

Notetaking with ReStrutcturedText Notetaking with ReStrutcturedText Release 1.0.0 Jens Getreu Table of contents: Sep 02, 2018 1 How students take notes 2 1.1 The lesson starts....................................... 2 1.2 Taking notes on

More information

Copyright. For more information, please read the Disclosures and Disclaimers section at the end of this ebook. First PDF Edition, February 2013

Copyright. For more information, please read the Disclosures and Disclaimers section at the end of this ebook. First PDF Edition, February 2013 Copyright This ebook is Copyright 2013 Teresa Miller (the Author ). All Rights Reserved. Published in the United States of America. The legal notices, disclosures, and disclaimers in the front and back

More information

Cindex 3.0 for Windows. Release Notes

Cindex 3.0 for Windows. Release Notes Cindex 3.0 for Windows Release Notes The information contained in this document is subject to change without notice, and does not represent a commitment on the part of Indexing Research. The program described

More information

sphinxcontrib-bibtex Documentation

sphinxcontrib-bibtex Documentation sphinxcontrib-bibtex Documentation Release 0.4.1a0 Matthias C. M. Troffaes Apr 19, 2018 Contents 1 Contents 3 1.1 Getting Started.............................................. 3 1.2 Usage...................................................

More information

Tutorial 1: Unix Basics

Tutorial 1: Unix Basics Tutorial 1: Unix Basics To log in to your ece account, enter your ece username and password in the space provided in the login screen. Note that when you type your password, nothing will show up in the

More information

1. Please, please, please look at the style sheets job aid that I sent to you some time ago in conjunction with this document.

1. Please, please, please look at the style sheets job aid that I sent to you some time ago in conjunction with this document. 1. Please, please, please look at the style sheets job aid that I sent to you some time ago in conjunction with this document. 2. W3Schools has a lovely html tutorial here (it s worth the time): http://www.w3schools.com/html/default.asp

More information

Bookface.com: html - Java: 2017 Ultimate Beginners Guide to Learn Java Programming ( java for. Beginner's Box Set: Learn HTML, HTML5 & CSS3, Java,

Bookface.com: html - Java: 2017 Ultimate Beginners Guide to Learn Java Programming ( java for. Beginner's Box Set: Learn HTML, HTML5 & CSS3, Java, Programming For Beginner's Box Set: Learn HTML, HTML5 & CSS3, Java, PHP & MySQL, C# With The Ultimate Guides For Beginner's (Programming For Beginners In Under 8 Hours!) By T. J Wilson READ ONLINE Bookface.com:

More information

Welcome Please sit on alternating rows. powered by lucid & no.dots.nl/student

Welcome Please sit on alternating rows. powered by lucid & no.dots.nl/student Welcome Please sit on alternating rows powered by lucid & no.dots.nl/student HTML && CSS Workshop Day Day two, November January 276 powered by lucid & no.dots.nl/student About the Workshop Day two: CSS

More information

Quark XML Author September 2016 Update for Platform with Business Documents

Quark XML Author September 2016 Update for Platform with Business Documents Quark XML Author 05 - September 06 Update for Platform with Business Documents Contents Getting started... About Quark XML Author... Working with the Platform repository... Creating a new document from

More information

Convert Manuals To Html Formatted Text Javascript

Convert Manuals To Html Formatted Text Javascript Convert Manuals To Html Formatted Text Javascript pdf2htmlex - Convert PDF to HTML without losing text or format. Flexible output: all-in-one HTML or on demand page loading (needs JavaScript). Moderate.

More information

A gentle guide to DocBook How to use the portable document creator

A gentle guide to DocBook How to use the portable document creator 1 of 6 A gentle guide to DocBook How to use the portable document creator Level: Introductory Joe Brockmeier (jbrockmeier@earthlink.net), freelance writer 01 Sep 2000 This article explains what DocBook

More information

ME30_Lab1_18JUL18. August 29, ME 30 Lab 1 - Introduction to Anaconda, JupyterLab, and Python

ME30_Lab1_18JUL18. August 29, ME 30 Lab 1 - Introduction to Anaconda, JupyterLab, and Python ME30_Lab1_18JUL18 August 29, 2018 1 ME 30 Lab 1 - Introduction to Anaconda, JupyterLab, and Python ME 30 ReDev Team 2018-07-18 Description and Summary: This lab introduces Anaconda, JupyterLab, and Python.

More information

Generating Reports and Web Apps

Generating Reports and Web Apps Generating Reports and Web Apps http://datascience.tntlab.org Module 10 Today s Agenda Installing software to use Markdown on your own machine Walkthrough of Markdown and markup languages more generally

More information

Pod is a simple-to-use markup language used for writing documentation for Perl, Perl programs, and Perl modules.

Pod is a simple-to-use markup language used for writing documentation for Perl, Perl programs, and Perl modules. NAME DESCRIPTION perlpod - the Plain Old Documentation format Pod is a simple-to-use markup language used for writing documentation for Perl, Perl programs, and Perl modules. Translators are available

More information

Rest and Sphinx Memo. Release v g98998ab. Marc Zonzon

Rest and Sphinx Memo. Release v g98998ab. Marc Zonzon Rest and Sphinx Memo Release v1.1-29-g98998ab Marc Zonzon Feb 14, 2018 Contents 1 Introduction 3 2 ReST restructuredtext 5 2.1 Structural elements.......................................... 5 2.1.1 Emacs

More information

XML (Extensible Markup Language)

XML (Extensible Markup Language) Basics of XML: What is XML? XML (Extensible Markup Language) XML stands for Extensible Markup Language XML was designed to carry data, not to display data XML tags are not predefined. You must define your

More information

44 TUGboat, Volume 35 (2014), No. 1

44 TUGboat, Volume 35 (2014), No. 1 44 TUGboat, Volume 35 (2014), No. 1 Abstract This paper is a short overview of Pandoc, a utility for the conversion of Markdown-formatted texts to many output formats, including L A TEX and HTML. 1 Introduction

More information

CS 200. Lecture 02 Structured Word Processing Styles. 02 Styles. CS 200 Spring Friday, May 9, 2014

CS 200. Lecture 02 Structured Word Processing Styles. 02 Styles. CS 200 Spring Friday, May 9, 2014 CS 200 Lecture 02 Structured Word Processing Styles 1 Miscellaneous Notes Assigned reading The Non Designer s Design Book, 2nd Edition, by Robin Williams (first half) Adobe on Basic Typography (the cws:

More information

Css Pdf Editor Full Version For Adobe Reader 9

Css Pdf Editor Full Version For Adobe Reader 9 Css Pdf Editor Full Version For Adobe Reader 9 Rely on the original PDF editor: Adobe Acrobat software. With full-page editing, when you add new text to a page, existing paragraphs will adjust automatically.

More information

New Perspectives On HTML, CSS, And Dynamic HTML Ebooks Free

New Perspectives On HTML, CSS, And Dynamic HTML Ebooks Free New Perspectives On HTML, CSS, And Dynamic HTML Ebooks Free Part of the New Perspectives Series, this thorough, engaging includes everything readers need to learn to create simple to complex Web sites

More information

Web Application Development (WAD) V th Sem BBAITM(Unit-1) By: Binit Patel

Web Application Development (WAD) V th Sem BBAITM(Unit-1) By: Binit Patel Web Application Development (WAD) V th Sem BBAITM(Unit-1) By: Binit Patel Introduction: PHP (Hypertext Preprocessor) was invented by Rasmus Lerdorf in 1994. First it was known as Personal Home Page. Later

More information

Quark XML Author October 2017 Update for Platform with Business Documents

Quark XML Author October 2017 Update for Platform with Business Documents Quark XML Author 05 - October 07 Update for Platform with Business Documents Contents Getting started... About Quark XML Author... Working with the Platform repository...3 Creating a new document from

More information

Chapter Two Bonus Lesson: JavaDoc

Chapter Two Bonus Lesson: JavaDoc We ve already talked about adding simple comments to your source code. The JDK actually supports more meaningful comments as well. If you add specially-formatted comments, you can then use a tool called

More information

Latex Tutorial. CIS400 Senior Design 9/5/2013

Latex Tutorial. CIS400 Senior Design 9/5/2013 1 Latex Tutorial CIS400 Senior Design 9/5/2013 2 Outline Introducing TeX/LaTeX Benefits and potential difficulties Installation and use on Unix/Mac/Windows Compiling PDF documents from LaTeX Basic document

More information

Latex Manually Set Font Size For Tables

Latex Manually Set Font Size For Tables Latex Manually Set Font Size For Tables I would like to set my table to font 10pt. Here is my coding /begin(table)(h) /resizebox(/textwidth)(!)(% /begin(tabular)(/l/l/l/l/l/) /hline & A & B & C & D //

More information

CS 200. Lecture 02 Structured Word Processing Styles. 02 Styles. CS 200 Winter 2018

CS 200. Lecture 02 Structured Word Processing Styles. 02 Styles. CS 200 Winter 2018 CS 200 Lecture 02 Structured Word Processing Styles 1 Assigned reading Miscellaneous Notes The Non Designer s Design Book, by Robin Williams (first half) Adobe on Basic Typography (https://www.student.cs.uwaterloo.ca/~cs200/adobe/

More information

Create web pages in HTML with a text editor, following the rules of XHTML syntax and using appropriate HTML tags Create a web page that includes

Create web pages in HTML with a text editor, following the rules of XHTML syntax and using appropriate HTML tags Create a web page that includes CMPT 165 INTRODUCTION TO THE INTERNET AND THE WORLD WIDE WEB By Hassan S. Shavarani UNIT2: MARKUP AND HTML 1 IN THIS UNIT YOU WILL LEARN THE FOLLOWING Create web pages in HTML with a text editor, following

More information

Considerations for Constructing Twitter Queries in SMA

Considerations for Constructing Twitter Queries in SMA Considerations for Constructing Twitter Queries in SMA This document is intended for users who write BoardReader queries in SMA to trigger collection of Twitter content via a GNIP Power Track instance.

More information

Quark XML Author for FileNet 2.5 with BusDocs Guide

Quark XML Author for FileNet 2.5 with BusDocs Guide Quark XML Author for FileNet 2.5 with BusDocs Guide CONTENTS Contents Getting started...6 About Quark XML Author...6 System setup and preferences...8 Logging in to the repository...8 Specifying the location

More information