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
HTML Python JavaScript Other
Branch: master
Failed to load latest commit information.
.gitignore gitignore for emacs and python
Ecma_RVB-003.jpg Added support for ECMAScript Internationalization API Specification.
README.md Update README.
docx.py There are actually only 9 numbering levels in Word. Add some comments…
es-intl-1-final.docx Added support for ECMAScript Internationalization API Specification.
es-intl-1-final.html Added support for ECMAScript Internationalization API Specification.
es-spec.py Change transform api.
es5.1-final.dotx Remove generated file es5.1-final.html and add the source dotx file.
es5.1.css Make <figure>s take up at most 100% of the available width
es6-draft-all-sections.json ES2015 RC4.
es6-draft-sections.js ES2015 RC4.
es6-draft.css Highlight `opt` symbol and grammar parameters with color. Based on a …
es6-draft.docx ES2015 RC4.
es6-draft.html Also indent the non-normative reference to the C standard, along with…
figure-1.png Replace Figure 1 with a canned image.
figure-1.svg Replace Figure 1 with a canned image.
figure-2.png Rev 35.
fixups.py Also indent the non-normative reference to the C standard, along with…
ftpcommands.txt Link to the section-rewriting script from the HTML file. Does not qui…
go add ftp script
hacks.py Mark hacks explicitly. Unfortunately this did not find any dead code.
htmodel.py Fix #62.
transform.py Remove some useless lines of code, found by pyflakes.

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.