On Sun, Sep 22, 2024 at 02:20:36PM -0400, Benjamin Kalish wrote: > EPUB output contains unescaped content in a number of HTML attributes. I'm > seeing this with: > > - The content attribute for <meta> with name="description" > - The content attribute for <meta> name="keywords" > - The title attribute of the <link> elements with rel="next" and rel="prev" > > HTML output also has these same tags and attributes, but the content seems > fine in my case. This may not actually be due to better escaping, as it > looks like entirely different content is being used for the attribute > values when generating HTML, and the content is, in this case at least, > safe without escaping. > > Changing the values to be the same as those used when generating HTML would > solve the problem in my case, but it is probably best to make sure that > attribute values are always escaped. > > What should be escaped? Quotation marks must be. Ambiguous ampersands must > be. But it is probably prudent to escape all ampersands and all > occurrences of < or >. > > I'm sorry I can't suggest a fix in the code—I'm not familiar with the > Texinfo codebase and it's been decades since I've coded in Perl or C. > > I'm using texi2any 7.1.1
I tried testing this on the master development branch and it looked ok: $ cat test.texi \input texinfo @node Top @top @node Cap 1 @chapter One "<> @bye After running "texi2any --epub3 test.texi" and extracting the resulting "test.epub" file, the output file in the ZIP archive had, in "test/EPUB/xhtml/Cap-1.xhtml", the " < and > escaped (see output below). Can you please explain how to reproduce the problem? <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <!-- Created by GNU Texinfo 7.1.1, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>1 One "<> (Untitled Document)</title> <meta name="description" content="1 One "<> (Untitled Document)"/> <meta name="keywords" content="1 One "<> (Untitled Document)"/> <meta name="resource-type" content="document"/> <meta name="distribution" content="global"/> <meta name="Generator" content="texi2any"/> <meta name="viewport" content="width=device-width,initial-scale=1"/> <link href="test.xhtml" rel="start" title=""/> <link href="#Cap-1" rel="index" title="1 One "<>"/> <link href="test.xhtml" rel="up" title=""/> <link href="test.xhtml" rel="prev" title=""/> </head> <body lang="en"> <div class="chapter-level-extent" id="Cap-1"> <h2 class="chapter" id="One-_0022_003c_003e">1 One "<></h2> </div> </body> </html>
