alopezlago / YetAnotherPacketParser

A parser to convert quiz bowl packets to different file formats
Other
8 stars 0 forks source link

YAPP ignores subscripts/superscripts, causing misleading required parts of answer #50

Closed hftf closed 6 months ago

hftf commented 6 months ago

Here are 4 examples just from two adjacent packets:

  1. The 2 should be underlined in Packet 8, bonus 13 Packet: N2O YAPP:   N2O (“N-2-O”) [or nitrous oxide] ⇐ <b><u>N</u>2<u>O</b></u> (“N-2-O”) [or <b><u>nitrous oxide</b></u>]
  2. But for some reason the 2 is underlined correctly here Packet: NO2 YAPP:   NOx (“nox”) compounds [accept NO AND NO2<b><u>NOx</b></u> (“nox”) compounds [accept <b><u>NO</b></u> AND <b><u>NO2</b></u>
    Screen Shot 2024-03-04 at 05 52 57
  3. The 2 should be underlined in Packet 7, bonus 9 Packet: CO2 YAPP:   CO2 (“C-O-2”) [or carbon dioxide] ⇐ <b><u>CO</u>2</b> (“C-O-2”) [or <b><u>carbon dioxide</b></u>]
  4. The 2 should be underlined Packet: H2 YAPP:   hydrogen [or H2 (“H-2”)] ⇐ <b><u>hydrogen</b></u> [or <b><u>H</u>2 </b>(“H-2”)]
    Screen Shot 2024-03-04 at 06 21 15

For what it's worth, I have strongly recommended against any use at all of subscripts/superscripts in quizbowl packets for many years, and this issue demonstrates two of the reasons: they mislead about the required parts of answers and interact poorly with underlining, and technology is often not designed to handle them correctly. Like #49, this issue should be classed high severity.

Note also that invalid tag nesting is produced throughout: <b><u>hydrogen</b></u>. Can file a separate issue for this if you want, but it's possibly the same root issue. See: https://github.com/alopezlago/YetAnotherPacketParser/blob/00c6f583c552aa4d1112c4871148468110ad6957/YetAnotherPacketParser/YetAnotherPacketParser/Compiler/Html/HtmlCompiler.cs#L103-L156

alopezlago commented 6 months ago

I've been meaning to file a bug and fix super/subscript issues for a while and never got around to it. We have to read the super/sub script tags from docx and from HTML to know that it exists, persist that information, and then write it later (and have MODAQ know about super and subscript tags). I don't really care that much about mixing the tag ordering that much, but I could fix it separately.

alopezlago commented 6 months ago

This will be fixed in the next version.