Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
An HTML version of the ECMAScript draft specification autogenerated from the source
Branch: master
Pull request Compare This branch is 28 commits behind jorendorff:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Ecma_RVB-003.jpg
README.md
docx.py
es-intl-1-final.docx
es-intl-1-final.html
es-spec.py
es5.1-final.dotx
es5.1.css
es6-draft-all-sections.json
es6-draft-sections.js
es6-draft.css
es6-draft.docx
es6-draft.html
figure-1.png
figure-1.svg
figure-2.png
fixups.py
ftpcommands.txt
go
hacks.py
htmodel.py
transform.py

README.md

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.

Something went wrong with that request. Please try again.