reuseman / flashcards-obsidian

🎴 An Anki plugin for Obsidian.md
MIT License
870 stars 86 forks source link

Fix white-space collapsing #175

Open devjones opened 1 year ago

devjones commented 1 year ago

The Anki html renderer does not properly collapse white space in the current implementation.

Showdownjs's makeHtml will convert the following string: This is a really really long sentence

into an html snippet like:

<p>This&nbsp;is&nbsp;a&nbsp;really&nbsp;really&nbsp;long&nbsp;sentence</p>

This normally renders fine, but if you are on a mobile device with limited screen width, the sentence will be broken at a whatever character hits the maximum width of the card. Depending on screen width, you may have the first line break in the middle of a word.

This isn't what we want. We want white space to collapse at the last word that can be fully displayed in a line. The only way I've found to do this is by replacing &nbsp; with literal spaces. In this case, the returned html snippet will be:

<p>This is a really really long sentence</p>

If the screen width maxes out at the second character in the word long then that entire word will be pushed to the next line.

putzwasser commented 10 months ago

This introduces a new problem: Intentionally added non-breaking spaces get removed/replaced.