forked from Eelis/cxxdraft-htmlgen
-
Notifications
You must be signed in to change notification settings - Fork 0
Generates http://eel.is/c++draft
License
trucktank/cxxdraft-htmlgen
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Introduction cxxdraft-htmlgen parses the LaTeX sources of the draft, and generates static HTML pages from them. Prerequisites - A filesystem that supports punctuation in filenames (this may rule out Windows filesystems) - Git - The Haskell Platform (https://www.haskell.org/platform/) - Graphviz - Node.js - mathjax-node-cli (https://github.com/mathjax/mathjax-node-cli/) Usage First, check out the cxxdraft-htmlgen-fixes branch of the draft: git clone https://github.com/Eelis/draft.git cd draft git checkout cxxdraft-htmlgen-fixes Next, do (in another directory): git clone https://github.com/Eelis/cxxdraft-htmlgen.git cd cxxdraft-htmlgen cabal build dist/build/cxxdraft-htmlgen/cxxdraft-htmlgen path/to/draft [sectionfilestyle] Or with stack: stack build stack exec cxxdraft-htmlgen path/to/draft [sectionfilestyle] The sectionfilestyle parameter is one of: Bare (to generate e.g. intro.execution) WithExtension (to generate e.g. intro.execution.html) InSubdir (to generate e.g. intro.execution/index.html) The default is WithExtension, since this is suitable for direct browsing on a filesystem without a web server. Bare may be used in conjunction with web server configuration specifying a default text/html mime type for the directory containing the section pages, to get URLs such as: temp.res#temp.dep temp.dep#3 InSubdir only requires defaulting to index.html, to give: temp.res/#temp.dep temp.dep/#3 Output The following will be created in ./14882/ : - index.html A table of contents with links to... - ~2300 interlinked section pages These are named after the section abbreviation, which for the Bare section file style look like: stmt.goto class.member.lookup cpp iterator.requirements.general locale.moneypunct.virtuals Since sections nest, content is duplicated at every level. This allows one to specify more or less context for a given section or paragraph citation. For example, one can link to: temp.dep (section 14.6.2 "Dependent names") temp.res#temp.dep (the same section highlighted on the page for section 14.6 "Name resolution") temp#dep (the same section highlighted on the page for chapter 14 "Templates") - full The entire document (~24 mbyte, or ~2 mbyte compressed). - 14882.css Used by all of the above. Hidden links On any page: - "Note:" and "Example:" tags are links that select the note (resp. example); - defined terms are links that select themselves; - a full stop at the end of a sentence is a link that selects the sentence; - moving the mouse over the right margin of a numbered paragraph reveals a link to the LaTeX source for that paragraph; - moving the mouse over the left margin of an itemdecl reveals a link that selects the itemdecl. Todo - very long section names screw up layout - table meta.unary.prop#tab:type-traits.properties is horribly wide due to lack of hyphenation - don't generate anchors with duplicate ids for index entries with the same key - don't highlight % in description of format strings (e.g. time#cal.month.nonmembers-11.sentence-3) - bad highlighting for escape codes (e.g. [lex.ccon]/7)
Releases
No releases published
Packages 0
No packages published
Languages
- Haskell 94.7%
- CSS 4.8%
- JavaScript 0.5%