Navigation: two internal errors with author intents

Aperta
#985 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
52/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
rust

Direzione di ricerca

Start by reading the navigation handling for MathML author intents and the relevant rules in navigate.yaml; the issue reports two reproducible failures in Enhanced mode and one in Simple mode. Reproduce the cases with the provided MathML, then trace how navigation resolves the intent-based nodes. Done when both cases navigate without internal errors while reading behavior remains intact.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Found while checking the spanish-mathml-intent test PDFs (#975 is a separate problem). Both happen in every language; examples in English, Enhanced mode.

1. A single token with an intent name. ZoomIn and then MoveNext:

<math><mi intent="greatest-common-divisor">gcd</mi></math>

ZoomIn gives "zoomed in to first character", and MoveNext gives "Internal Error: didn't find id/offset '…-literal-0', current_node_offset: 1 while attempting to start navigation". The same happens with _greatest-common-divisor. Reading is fine ("greatest common divisor").

2. A function whose head is itself an intent. Moving onto (f∘g)(x):

<math><mrow><mi>y</mi><mo>=</mo>
  <mrow intent="$c($a)">
    <mrow arg="c" intent="_composed-with:infix($f,$g)"><mi arg="f">f</mi><mo>∘</mo><mi arg="g">g</mi></mrow>
    <mo>(</mo><mi arg="a">x</mi><mo>)</mo>
  </mrow>
</mrow></math>

ZoomIn "y", MoveNext "is equal to", then MoveNext gives "Variable 'NavNode' set somewhere in navigate.yaml is nodeset and not an attribute: 0 nodes (false)". Same in Simple mode; Character mode works. Reading is fine ("y is equal to, f composed with g of x").

Lingua principale
Rust
Stelle
131
Fork
97
Merge medio
21h 45m
PR unite (30g)
95

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di daisy/MathCAT

Tutte le issue di daisy/MathCAT

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.