realpython / python-guide

Python best practices guidebook, written for humans.
https://docs.python-guide.org
Other
28.3k stars 5.83k forks source link

Generated ePubs failing validation #413

Open Hasimir opened 10 years ago

Hasimir commented 10 years ago

Hello,

Following on from my latest pull request (#412) here are all the ePub validation failures from trying to export the guide.

That pull request should fix the first three errors. The eleven after it appear to be due to those pages having the quick search widget on them and the start button for it. The next two, along with the two at the end, are broken identifiers in the TOC (probably best to leave these until last). The last error is simply a case of an image being called from another server, but ePub needs all those objects. Fixing this last one just means uploading http://www.python.org/dev/peps/pep-0001/pep-0001-1.png to a suitable location and updating intro/community.rst to use the local version.

bash-3.2$ epubcheck.sh pythonguide.epub Epubcheck Version 3.0

Validating against EPUB version 2.0 ERROR: pythonguide.epub/search.html(17,57): attribute "id" not allowed here; expected attribute "charset", "defer", "src" or "xml:space" ERROR: pythonguide.epub/search.html(51,32): element "form" not allowed anywhere; expected the element end-tag, text or element "a", "abbr", "acronym", "address", "applet", "b", "bdo", "big", "blockquote", "br", "cite", "code", "del", "dfn", "div", "dl", "em", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "i", "iframe", "img", "ins", "kbd", "map", "noscript", "ns:svg", "object", "ol", "p", "pre", "q", "samp", "script", "small", "span", "strong", "sub", "sup", "table", "tt", "ul" or "var" (with xmlns:ns="http://www.w3.org/2000/svg") ERROR: pythonguide.epub/search.html(54,66): element "form" not allowed anywhere; expected the element end-tag, text or element "a", "abbr", "acronym", "address", "applet", "b", "bdo", "big", "blockquote", "br", "cite", "code", "del", "dfn", "div", "dl", "em", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "i", "iframe", "img", "ins", "kbd", "map", "noscript", "ns:svg", "object", "ol", "p", "pre", "q", "samp", "script", "small", "span", "strong", "sub", "sup", "table", "tt", "ul" or "var" (with xmlns:ns="http://www.w3.org/2000/svg") ERROR: pythonguide.epub/dev/virtualenvs.html(61,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/dev/virtualenvs.html(69,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/dev/virtualenvs.html(113,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/dev/virtualenvs.html(124,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/dev/virtualenvs.html(130,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/shipping/freezing.html(167,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/shipping/freezing.html(175,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/shipping/packaging.html(109,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/shipping/packaging.html(116,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/shipping/packaging.html(123,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/shipping/packaging.html(131,37): attribute "start" not allowed here; expected attribute "dir", "id", "lang", "style", "title" or "xml:lang" ERROR: pythonguide.epub/genindex.html(22,28): '': fragment identifier is not defined in 'genindex.html' ERROR: pythonguide.epub/index.html(25,25): '': fragment identifier is not defined in 'index.html' ERROR: pythonguide.epub/intro/community.html(98,130): 'http://www.python.org/dev/peps/pep-0001/pep-0001-1.png': remote resource reference not allowed; resource must be placed in the OCF ERROR: pythonguide.epub/starting/install/win.html(54,67): 'id1': fragment identifier is not defined in 'starting/install/win.html' ERROR: pythonguide.epub/writing/tests.html(240,33): 'id6': fragment identifier is not defined in 'writing/tests.html'

Check finished with warnings or errors

bash-3.2$

sigmavirus24 commented 10 years ago

@kennethreitz what has been the guide's position on ePub versions? I've never seen any advertisement that they're generated.

Hasimir commented 10 years ago

Well, there was existing config parameters listing @kennethreitz as the publisher, so it might've been intended at some stage and all those a fixable (the ones with little search widgets might require a little more work, depending on what options sphinx provides for culling scripts during the conversion process).

sigmavirus24 commented 10 years ago

@Hasimir just because something is there does not mean it is intentional, especially when dealing with Sphinx. Sphinx will auto-generate much of the configuration for you based on a few prompts and I would hazard a guess that this is one of those instances where Sphinx built all of this for us without it being intended to be used as an ePub.

Hasimir commented 10 years ago

Could be ... take a vote on it or something. If you decide against ePub I'll go find the bit of code you'd need to remove (or comment out with a bunch of warnings that it's not supported and people can use it at their peril) to explicitly prevent an ePub being made from it without manual intervention by a determined end user.