From: Imbaud P. <pie...@la...> - 2007-05-29 10:55:31
|
just discovered docutils. This is real fine job, indeed, Ill be VERY happy to use. But some people are never happy. Is it asking too much to have the tool, rst2html.py in my case, output to a file, rather than stdout? a .html file, with the same basename? Look to what I did (in a script): for inFile in sys.argv[1:]: command = 'rst2html.py' outFile = os.path.splitext(inFile)[0] + '.html' cdLine = '%s %s > %s' % (command, inFile, outFile) print 'running ', cdLine os.system(cdLine) Aint this ugly? a python script calls a python script, thru command line, spawning a new process each time? I read rst2html.py, there is indeed an "argv" argument, I could setup, but I see now way I could specify a target file. The obvious usage, for me, of rst2html, will be: - edit .rst files. - run make, so as to have .html files produced. ok, I could use the script as is in the makefile, would work. But I often meet the problem with my own scripts: a script designed handy for command line, aint handy to call from python code. |
From: David G. <go...@py...> - 2007-05-29 13:32:37
|
On 5/29/07, Imbaud Pierre <pie...@la...> wrote: > But some people are never happy. Indeed. > Is it asking too much to have the > tool, rst2html.py in my case, output to a file, rather than stdout? It does that already: rst2html.py input.txt output.html If you omit the output file name, it sends output to stdout. > a .html file, with the same basename? That's too much magic, sorry. Not everybody wants that. If you do want that, it's easy to roll your own. Here's my solution, a shell script called "html": """ #!/bin/bash src=$1 dest=`dirname $1`/`basename $1 .txt`.html shift set -o xtrace rst2html.py $src $dest $* """ Run it like "html input.txt [options]". This allows me to pass in arbitrary command-line options if I choose. > Look to what I did (in a script): > > for inFile in sys.argv[1:]: > command = 'rst2html.py' > outFile = os.path.splitext(inFile)[0] + '.html' > cdLine = '%s %s > %s' % (command, inFile, outFile) > print 'running ', cdLine > os.system(cdLine) > > Aint this ugly? Yes, and roundabout too. Don't redirect; remove the ">". rst2html.py works better without redirection, because it knows where the output is going and can adjust relative paths. > The obvious usage, for me, of rst2html, will be: > - edit .rst files. > - run make, so as to have .html files produced. Simple rule for your Makefile: %.html : %.txt docutils.conf @rst2html.py $< $@ > But I often meet the problem with my own scripts: a script designed > handy for command line, aint handy to call from python code. You can also run Docutils from Python code. See http://docutils.sourceforge.net/docs/api/publisher.html, and look at the code of rst2html.py. -- David Goodger <http://python.net/~goodger> |
From: Ben F. <big...@be...> - 2007-05-30 00:01:13
|
"David Goodger" <go...@py...> writes: > That's too much magic, sorry. Not everybody wants that. If you do > want that, it's easy to roll your own. This is the attitude that keeps Docutils the coherent, lean piece of work that I love. A free software project (or any software project, really) needs some single person at the helm who can maintain a vision for the project in the face of enthusiastic but conflicting user requests. It's a difficult thing to say "no" over and over to requests, even when many of them are superficially reasonable. I think the tradeoff, of rejecting extraneous features in favour of a coherent, focussed tool, is worth it. Thank you, David. -- \ "It's dangerous to be right when the government is wrong." -- | `\ Francois Marie Arouet Voltaire | _o__) | Ben Finney <be...@be...> |
From: Imbaud P. <pie...@la...> - 2007-05-29 14:36:04
|
Good advices, good tool too. I missed the fact the script (rst2html.py) works one document at a time. indeed I can loop calling publish_cmdline, from python, specifying each time the input and output file name: much better. And your makefile uses a dependency I missed, upon docutils.conf. Thanks a lot! David Goodger a =E9crit : > On 5/29/07, Imbaud Pierre <pie...@la...> wrote: >> But some people are never happy. >=20 > Indeed. >=20 >> Is it asking too much to have the >> tool, rst2html.py in my case, output to a file, rather than stdout? >=20 > It does that already: >=20 > rst2html.py input.txt output.html >=20 > If you omit the output file name, it sends output to stdout. >=20 >> a .html file, with the same basename? >=20 > That's too much magic, sorry. Not everybody wants that. If you do > want that, it's easy to roll your own. Here's my solution, a shell > script called "html": >=20 > """ > #!/bin/bash >=20 > src=3D$1 > dest=3D`dirname $1`/`basename $1 .txt`.html > shift > set -o xtrace > rst2html.py $src $dest $* > """ >=20 > Run it like "html input.txt [options]". This allows me to pass in > arbitrary command-line options if I choose. >=20 >> Look to what I did (in a script): >> >> for inFile in sys.argv[1:]: >> command =3D 'rst2html.py' >> outFile =3D os.path.splitext(inFile)[0] + '.html' >> cdLine =3D '%s %s > %s' % (command, inFile, outFile) >> print 'running ', cdLine >> os.system(cdLine) >> >> Aint this ugly? >=20 > Yes, and roundabout too. Don't redirect; remove the ">". rst2html.py > works better without redirection, because it knows where the output is > going and can adjust relative paths. >=20 >> The obvious usage, for me, of rst2html, will be: >> - edit .rst files. >> - run make, so as to have .html files produced. >=20 > Simple rule for your Makefile: >=20 > %.html : %.txt docutils.conf > @rst2html.py $< $@ >=20 >> But I often meet the problem with my own scripts: a script designed >> handy for command line, aint handy to call from python code. >=20 > You can also run Docutils from Python code. See > http://docutils.sourceforge.net/docs/api/publisher.html, and look at > the code of rst2html.py. >=20 |
From: David G. <go...@py...> - 2007-05-29 17:13:18
|
On 5/29/07, Imbaud Pierre <pie...@la...> wrote: > indeed I can loop calling publish_cmdline, from python, > specifying each time the input and output file name: much better. Unless you want your wrapper/front-end to expose the existing Docutils command-line interface (all the options), you should probably be using publish_file instead of publish_cmdline. Please read http://docutils.sourceforge.net/docs/api/publisher.html -- David Goodger <http://python.net/~goodger> |