From: <er...@da...> - 2004-04-09 01:58:51
Attachments:
states.py.diff
|
Hi all. I tried looking at ReST, and in doing so found that an example in quickref.{txt,html} didn't work for me:: The |biohazard| symbol must be used on containers used to dispose of medical waste. .. |biohazard| image:: biohazard.png resulted in the warning:: ReST-test.txt:26: (ERROR/3) Unknown directive type "mage". mage:: biohazard.png ReST-test.txt:26: (WARNING/2) Substitution definition "biohazard" empty or invalid. .. |biohazard| image:: biohazard.png In the end I discovered that it was a space at the end of the line that made it choke. I'm using docutils 0.3. Inspecting the source (despite not knowing pytyhon), the problem appeared to be that in states.py:1930 escaped = block[0].rstrip() (and in line ~1938 escaped = escaped + ' ' + block[blockindex].strip() ), escaped is stripped, while in line line ~1943 block[0] = (block[0] + ' ')[subdefmatch.end()-len(escaped)-1:].strip() indexing is done *before* stripping - but the len(escaped) used is that of the stripped escape. A solution is to strip block sooner - e.g. replace line 1929 block[i] = escape2null(block[i]) with block[i] = escape2null(block[i]).rstrip() This of course assumes that trailing whitespace is never important... is this the case? If so, a patch is attached. Otherwise, I think the solution will be too messy for me to write (better leave it to someone familiar with Python :) Regards, Erik Søe Sørensen |
From: David G. <go...@py...> - 2004-04-09 02:13:16
|
Erik Søe Sørensen wrote: > I tried looking at ReST, and in doing so found that an example in > quickref.{txt,html} didn't work for me:: > > The |biohazard| symbol must be used on containers used to dispose > of medical waste. > > .. |biohazard| image:: biohazard.png > > resulted in the warning:: > > ReST-test.txt:26: (ERROR/3) Unknown directive type "mage". > > mage:: biohazard.png > ReST-test.txt:26: (WARNING/2) Substitution definition "biohazard" > empty or invalid. > > .. |biohazard| image:: biohazard.png > > In the end I discovered that it was a space at the end of the line > that made it choke. > > I'm using docutils 0.3. I believe this is a bug that was squashed some time ago. Please try it with the latest CVS snapshot (http://docutils.sf.net/docutils-snapshot.tgz). Your solution to the bug sounds fine though. > This of course assumes that trailing whitespace is never > important... is this the case? Yes, correct. -- David Goodger http://python.net/~goodger For hire: http://python.net/~goodger/cv |