From: Stefan R. <lis...@st...> - 2007-02-28 18:09:00
|
Hi docutilsers, I just tried to write a replacement for the Include directive that works in a web application - and it does. I wanted to go further and (optionally) show in the output which parts were ``.. include``d: This is easy for :literal: includes. I just add a class. This is impossible for normal includes, (AFAICT ?) because there is no document node that corresponds to the inclusion. I think that this use case would need a new document node (Included/Inclusion, a subclass of nodes.Invisible?), that can contain body elements and structural elements (sections), is simply ignored by writers in the normal case, but gets passed to the writers. Such a change would probably need changes to large parts of docutils. I infer from my experience of reading this mailing list for some time, that this is a monstrosity ;-) Use cases in favour: - the one described above - the rst writer of the future, that can reproduce the original source (or that can output rst after includes/transforms/...) - the large-documents part of the todo list: http://docutils.sourceforge.net/docs/dev/todo.html#large-documents So my question: Shall I keep this crazy idea to myself, or is it conceivable that this might be suitable for docutils? cheers, strank |
From: Roberto A. <ra...@kd...> - 2007-02-28 18:23:25
|
On Wed 28 Feb 2007 15:08:46 Stefan Rank wrote: > - the rst writer of the future, that can reproduce the original source > (or that can output rst after includes/transforms/...) Just in case: there is a sort-of-rst-writer-of-the-present at=20 http://lateral.blogsite.org/rst2rst/rst2rst.py It's not really a writer, but it can chew almost any rst and produce legal = and=20 apparently identical rst back at you :-) At least it's good enough to eat this, which uses almost every rst feature: http://lateral.blogsite.org/rst2rst/t1.txt =A0 =2D-=20 =A0("\''/").__..-''"`-. . =A0 =A0 =A0 =A0 Roberto Alsina =A0`9_ 9 =A0) =A0 `-. ( =A0 =A0).`-._.`) =A0r...@kd... =A0(_Y_.)' ._ =A0 ) `._`. =A0" -.-' =A0 KDE Developer (MFCH) =A0 _..`-'_..-_/ /-'_.' (l)-'' ((i).' ((!.' =A0 Buenos Aires - Argentina Debugging is twice as hard as writing the code in the first place.=20 Therefore, if you write the code as cleverly as possible, you are,=20 by definition, not smart enough to debug it. --Brian W. Kernighan=20 |
From: Stefan R. <lis...@st...> - 2007-03-01 07:41:36
|
on 28.02.2007 19:26 Roberto Alsina said the following: > On Wed 28 Feb 2007 15:08:46 Stefan Rank wrote: >> - the rst writer of the future, that can reproduce the original source >> (or that can output rst after includes/transforms/...) > > Just in case: there is a sort-of-rst-writer-of-the-present at > http://lateral.blogsite.org/rst2rst/rst2rst.py > > It's not really a writer, but it can chew almost any rst and produce legal and > apparently identical rst back at you :-) > > At least it's good enough to eat this, which uses almost every rst feature: > > http://lateral.blogsite.org/rst2rst/t1.txt Hi Roberto, yes, I knew your rst2rst.py (I still have your message from November in my python inbox :-). It's very impressive. Without integrating it into docutils, however, it can't solve problems like the include case, i.e. it can only output the doctree after includes. The same goes for transforms such as ``.. contents::``. cheers, strank |
From: Alan I. <ai...@am...> - 2007-02-28 21:01:50
|
Stefan Rank wrote: > I just tried to write a replacement for the Include directive that works > in a web application - and it does. If you are working with the ``include`` directive, please consider implementing delimited includes. (I.e., include file lines between a START tag and an END tag (noninclusive), where these tags are arguments to the ``include`` directive.) Thank you, Alan Isaac |
From: Stefan R. <lis...@st...> - 2007-03-01 07:48:41
|
on 28.02.2007 21:59 Alan Isaac said the following: > Stefan Rank wrote: >> I just tried to write a replacement for the Include directive that >> works in a web application - and it does. > > If you are working with the ``include`` directive, > please consider implementing delimited includes. > (I.e., include file lines between a START tag > and an END tag (noninclusive), where these tags > are arguments to the ``include`` directive.) To see if I understand you correctly: .. include:: blafile :starttag: something to grep for :endtag: another thing to grep for would read ``blafile`` and search for the string/line/glob/regexp (?) specified via starttag and use only the text read until it finds the endtag (string/line/glob/regexp?). Right? I can see that this might be useful. Is this in the todos somewhere? cheers, strank |
From: Alan G I. <ai...@am...> - 2007-03-01 15:32:59
|
> on 28.02.2007 21:59 Alan Isaac said the following: >> If you are working with the ``include`` directive, please >> consider implementing delimited includes. (I.e., include >> file lines between a START tag and an END tag >> (noninclusive), where these tags are arguments to the >> ``include`` directive.) On Thu, 01 Mar 2007, Stefan Rank apparently wrote: > To see if I understand you correctly: > .. include:: blafile > :starttag: something to grep for > :endtag: another thing to grep for > would read ``blafile`` and search for the string/line/glob/regexp (?) > specified via starttag and use only the text read until it finds the > endtag (string/line/glob/regexp?). This is the basic idea. I am not asking to use a regexp. I would just use ``startswith``. I would be happy with any reasonable restrictions on the tag structure. Note that inclusion should start with the line after the begin-tag and end with the line before the end-tag. > I can see that this might be useful. Is this in the todos somewhere? I do not think the developers have yet expressed a consensus view on this functionality. But I would certainly use it all the time for including code snippets. Cheers, Alan Isaac |
From: Stefan R. <lis...@st...> - 2007-03-06 08:40:37
|
on 01.03.2007 16:36 Alan G Isaac said the following: >> on 28.02.2007 21:59 Alan Isaac said the following: >>> If you are working with the ``include`` directive, please >>> consider implementing delimited includes. (I.e., include >>> file lines between a START tag and an END tag >>> (noninclusive), where these tags are arguments to the >>> ``include`` directive.) > > On Thu, 01 Mar 2007, Stefan Rank apparently wrote: >> To see if I understand you correctly: >> .. include:: blafile >> :starttag: something to grep for >> :endtag: another thing to grep for >> would read ``blafile`` and search for the string/line/glob/regexp (?) >> specified via starttag and use only the text read until it finds the >> endtag (string/line/glob/regexp?). This is now implemented in branches/include-after-until and looks like this:: .. include:: textfile.txt :after: ---8<---START---8<--- :until: ---8<----END----8<--- which looks for an exact match of the argument text in textfile.txt. There are no restrictions on the text to find, so multiline matches and matching inside a line is possible too:: .. include:: farewell.txt :after: From: dolphins To: earthlings cheers, stefan |
From: Alan G I. <ai...@am...> - 2007-03-06 12:56:03
|
On Tue, 06 Mar 2007, Stefan Rank apparently wrote: > This is now implemented in branches/include-after-until and looks > like this:: > .. include:: textfile.txt > :after: ---8<---START---8<--- > :until: ---8<----END----8<--- > which looks for an exact match of the argument text in textfile.txt. > There are no restrictions on the text to find, so multiline matches and > matching inside a line is possible too:: > .. include:: farewell.txt > :after: > From: dolphins > To: earthlings Looking forward to trying this out! Alan |
From: Felix W. <Fel...@os...> - 2007-03-06 19:55:30
|
Stefan Rank wrote: > This is now implemented in branches/include-after-until and looks > like this:: > > .. include:: textfile.txt > :after: ---8<---START---8<--- > :until: ---8<----END----8<--- Neat. I cannot take a look at the code right now, but for everyone's information, the diff is here: svn diff -r5000:HEAD \ http://svn.berlios.de/svnroot/repos/docutils/branches/include-after-until -- Felix -- Felix Wiemann -- http://www.ososo.de/ |
From: Mark N. <mar...@au...> - 2007-03-01 01:12:47
|
Stefan Rank wrote: > Hi docutilsers, > > I just tried to write a replacement for the Include directive that works > in a web application - and it does. > > I wanted to go further and (optionally) show in the output which parts > were ``.. include``d: > This is easy for :literal: includes. I just add a class. > This is impossible for normal includes, (AFAICT ?) > because there is no document node that corresponds to the inclusion. Can't you do something like .. compound:: :class: included .. include:: myfile --Mark |
From: Stefan R. <lis...@st...> - 2007-03-01 07:52:08
|
on 01.03.2007 02:12 Mark Nodine said the following: > Stefan Rank wrote: > >> Hi docutilsers, >> >> I just tried to write a replacement for the Include directive that >> works in a web application - and it does. >> >> I wanted to go further and (optionally) show in the output which parts >> were ``.. include``d: >> This is easy for :literal: includes. I just add a class. >> This is impossible for normal includes, (AFAICT ?) >> because there is no document node that corresponds to the inclusion. > > Can't you do something like > > .. compound:: > :class: included > > .. include:: myfile Not if ``myfile`` has:: a heading ~~~~~~~~~ in it. (same for ``.. container``) cheers, strank |