eelis / cxxdraft-htmlgen Goto Github PK
View Code? Open in Web Editor NEWGenerates https://eel.is/c++draft
License: Other
Generates https://eel.is/c++draft
License: Other
$ runhaskell genhtml.hs ../draft Bare
SectionPages.hs:23:61: Module ‘Render’ does not export ‘flatRender’
It doesn't appear to be actually used anywhere.
See http://eel.is/c++draft/util.smartptr.shared.const#1, in particular, the formatting of "enables shared_from_this
with p
".
Consider: http://eel.is/c++draft/util.smartptr#shared.const-18
It would be nice if the:
shared_ptr(const shared_ptr& r) noexcept;
template <class Y> shared_ptr(const shared_ptr<Y>& r) noexcept;
were included in the green background that's being referred to. (Or if there were a way to form a link which would highlight that code block)
Probably just a matter of implementing \bnfindent.
The notes in http://eel.is/c++draft/path.generic following root-name and name have way too many line breaks.
Sometimes a grammar production is very long, so it is split on two lines with indentation. Something like this
lambda-expression:
lambda-introducer < template-parameter-list > requires-clause[opt]
lambda-declarator requires-clause[opt] compound-statement
But this second indentation doesn't show up at all, which confuses me every single time. :(
If you look in lambda-expression in [expr.prim.lambda], you'll see 5 possible grammar rules, even though there are only 4 (the last one is missing indentation, because it belongs to the one before it).
I'm terribly sorry for the noise, if this is the wrong place to report this, but it would seem that eel.is domain has expired (or banned or something else; I don't speak German) and responds with a placeholder site.
Diese Domain wurde gesperrt...
Falls Sie der Administrator dieser Domain
sind und Fragen zur Sperrung Ihrer
Domain haben, wenden Sie sich bitte
an unser Support-Team.
http://eel.is/c++draft/diff.cpp17.depr has only a single paragraph number.
I vaguely recall I fixed them once before. I better ensure I'm not going in circles.
It's a bit unwieldy to link to mega-bulleted lists like [dcl.init]/17 or [dcl.init.list]/3.
See http://eel.is/c++draft/fs.definitions, e.g., "absolute pathfs.def.absolute.path-.3absolute path"
I often find it difficult to read the draft code without syntax highlighting. Currently I don’t know of any syntax highlighter which handles all the code examples in the standard correctly (without calling out to a compiler for parsing), but in most cases even mostly-correct highlighting would be an improvement.
I don’t know anything about syntax highlighting libraries in Haskell or Node, or whether you’d be willing to add extra dependencies for this, but I do think it would make things easier to read. If you are willing to add a dependency on Python, I’d recommend going with Pygments; it has some weird behavior around C++ code, but in most cases it handles things well. In some cases involving newer literal features it makes things worse (although I have an open PR for that), but the rest of the time I think it would really improve readability.
Greetings.
https://wg21.link/time.duration.io doesn't work, unlike http://eel.is/c++draft/time.duration.io.
Thanks for this useful tool.
E.g., [conv.lval]/2 and [expr]/14. Note the duplicated bullet numbers.
Great tool! Any reason why you did not consider a single page document? Would you guide me to some particular direction if I wanted to generate a single page document. Would you recommend a postprocessing or update the code?
[temp.func.order]/5 contains three examples in the same note, but only one is being shown.
See, e.g., http://eel.is/c++draft/alg.foreach - the two table links to Move/CopyConstructible result in 404's.
We have some stray quotes:
"!, see operator, logical negation
"!=, see inequality operator
followed by some missing quotes (this should be "..."
)
..., see preprocessing directives, source-file inclusion
followed by more stray quotes:
"|, see bitwise inclusive OR operator
"|"|, see logical OR operator
In the middle we have
_, see character, underscore, see operator, ones' complement
The second "see" is for ~
, but it disappeared.
And then there's
exception, [exception.syn]
arithmetic, [expr]
undefined arithmetic, [expr]
This mixed <exception>
and "exception". In the standard it is
exception
arithmetic, [expr]
undefined arithmetic, [expr]
<exception>
, [exception.syn]
It'd also be nice if all the special characters are together, like in the standard, rather than scattered all over the index.
After this commit upstream, ranges are now rendered with a <span class='penalty'></span>2000
in the middle.
When using the tool (with the new grammar & charname.tex changes reverted) on N3337 and N4140 sources, I noticed that it chokes on a section of conversions.tex that has something like
\begin{indented}
...
\begin{itemize}
...
\end{itemize}
\end{indented}
with an 'unexpected env itemize' error. I worked around this by removing the 'indented' in the LaTeX, but maybe it's easy to change the code to accommodate this?
For example, in http://timsong-cpp.github.io/draft/dcl.init.string (generated today), the link to [dcl.init]
at the top goes to http://timsong-cpp.github.io/draft/dcl.init#dcl.init.string, which doesn't exist. The actual anchor is http://timsong-cpp.github.io/draft/dcl.init#string.
First, the bullet number for 5.1 and the paragraph number overlap.
Second, the line breaks before "A local variable punct
..." and "Decimal point characters..." aren't rendered.
Eelis/draft@03f09e2#diff-70346be2d86a88af3b58e886175e3a84R1661 added two line breaks in the tex source, which caused a (presumably unintended) paragraph break in http://eel.is/c++draft/nullablepointer.requirements#3.
See, e.g., http://eel.is/c++draft/optional.object.assign.
e.g., http://eel.is/c++draft/dcl.decomp, http://eel.is/c++draft/func.default.traits
These should probably be removed or replaced with a placeholder.
For instance,
bool atomic_is_lock_free(const volatile A*-1 object) noexcept;
// ~~~~
The basic_string_view
synopsis in [string.view.template] contains a footnote after typedef const_iterator iterator;
, which is not correctly rendered in the HTML version.
A similar issue affects the explicit operator basic_string()
in [string.view.ops].
The top level, 30.10.4 [fs.definitions] is blank; the items are numbered as 30.10.5 etc. rather than 30.10.4.1. This causes what is section 30.10.5 [fs.req] in the working draft to be numbered 30.10.24 instead in the HTML.
http://eel.is/c++draft/sf.cmath is slightly broken, e.g., the "overloads!floating point" at the start of p3, the "NaNdomain error" at the start of p4, the stray text at the beginning of each subclause, and the stray "special functions|)" at the end.
Eelis/draft@b134e18#diff-70346be2d86a88af3b58e886175e3a84L1384 removed a "See also", presumably unintentionally.
In [expr.prim.id.dtor]/3 only the "0." should be highlighted.
I'm having problems visiting eel.is right now, but my copycat appears to have problems with a \pnum
inside an example, producing stuff like
locales.tex5110This example illustrates two architectural uses of class locale.
e.g., http://eel.is/c++draft/#tab. The table numbers are immediately followed by the table title with no spacing whatsoever, which looks kinda bad.
Disclosure: I'm relatively new to haskell, but I've been able to successfully build/install/use other packages in the past
I installed all of the dependences using brew
(and brew cask
) on macOS.
brew cask install haskell-platform
brew install nodejs graphviz
npm install mathjax-node
I first attempted to just run runhaskell genhtml.hs /path/to/draft
but it failed because it couldn't find the dependent libraries (derp). Then I noticed the cabal file, so I moved on to using cabal.
I then attempted to run cabal install
only to be presented with conflicts which could not be resolved (expected). Moved to cabal install --only-dependencies
-- failed. I tried sandboxes to install each package, but I could not get it to a state where I could build all of the dependencies.
What is the best course of action? Why are the versions so restrictive when it's not easy to install them?
The links in full.html
link to the smaller documents, e.g. <a href='bla.bla#anchor.bla.bla'>
instead they should only link with the anchor <a href='#anchor.bla.bla'
.
The LaTeX \@
modifies whether or not a dot .
is interpreted as the end of a sentence (for spacing), see http://latex-alive.tumblr.com/post/827168808/correct-punctuation-spaces.
(Unfortunately, I don't know the name of \@
)
The HaTeX parser doesn't deal correctly with it, it produces something like TeXSeq (TeXCommS "") (TeXRaw "@")
, which in turn produces a visible @
in the HTML output. See [intro.structure]p4
Given enough time, I'll submit a fix, so you could consider this a memo.
It may be worth considering using the information in xrefdelta.tex
to generate redirects and/or placeholder pages (for removed or multi-target cases), to mitigate the impact of stable name changes on incoming links.
A bunch of "\textit{cv}". A MathJax problem, I presume?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.