Skip to content
This repository was archived by the owner on Jan 9, 2021. It is now read-only.
/ es-spec-html Public archive

An HTML version of the ECMAScript draft specification autogenerated from the source

Notifications You must be signed in to change notification settings

jorendorff/es-spec-html

Folders and files

NameName
Last commit message
Last commit date
Dec 12, 2014
Dec 13, 2012
Jan 23, 2014
Apr 15, 2014
Dec 13, 2012
Dec 13, 2012
Jul 29, 2013
May 22, 2012
May 27, 2014
Apr 16, 2015
Apr 16, 2015
Mar 19, 2015
Apr 16, 2015
May 7, 2015
Mar 4, 2012
Mar 4, 2012
Mar 19, 2015
May 7, 2015
Nov 12, 2013
Jun 25, 2013
Apr 17, 2014
Apr 18, 2014
Apr 16, 2015

Repository files navigation

es-spec - Convert the ECMAScript Language Specification to HTML

To run the program:

./es-spec.py es6-draft.docx

Note: Python 3 is required.

About this program

Architecture: The program is in four parts:

  • Load the Word document (docx.py)
  • Convert it to extremely rough HTML+CSS (transform.py)
  • Apply a series of transformations, ranging from minor tweaks to very fancy algorithms, to the HTML (fixups.py)
  • Dump the resulting HTML document (htmodel.py)

Most of the interesting work, and most of the bugs, are in fixups.py.

Fragility: The script is quite sensitive to the input document and will throw an exception and give up if the document isn't exactly as expected. It's been hard to balance (a) being "liberal in what you accept" with (b) making sure fixups do not break silently, but rather get the user's attention, when the input document changes in unexpected ways.

Debugging: If a directory named _fixup_log exists under the current directory, the script dumps the whole halfway-transformed document to a file in that directory after each fixup.