[racket] Scribble continuous previsualisation?

From: Eric Tanter (etanter at dcc.uchile.cl)
Date: Thu Sep 12 11:20:22 EDT 2013

+1

This is great ;)

-- Éric


On Sep 12, 2013, at 5:24 AM, Stephen De Gabrielle <stephen.degabrielle at acm.org> wrote:

> This would make a nice DrRacket plugin.
> 
> s.
> .
> 
> --
> Stephen De Gabrielle
> 
> 
> 
> On Tue, Sep 10, 2013 at 9:48 PM, Ismael Figueroa <ifigueroap at gmail.com> wrote:
> Actually my script was wrong, here is an improved (and good enough for my purposes) version.
> The usage would be "scribble-pvc ["pdf|html|latex..."] Foo.scrbl
> 
> #!/bin/bash
> 
> PATTERN="${PWD}/$2"
> 
> SCRIBBLE='echo "${watch_src_path} ${watch_event_type}"; scribble'
> FMT=" --$1"
> 
> if [ "$1" == "html" ]
> then
>     XREFS=' ++xref-in setup/xref load-collections-xref --redirect-main "http://docs.racket-lang.org/html"'
> else
>     XREFS=' ++xref-in setup/xref load-collections-xref'
> fi
> 
> TARGET=' "${watch_src_path}"'
> 
> COM=$SCRIBBLE$FMT$XREFS$TARGET
> 
> watchmedo shell-command \
> 	  -c "$COM" \
> 	  -D -p $PATTERN
> 
> 
> 2013/9/10 Ismael Figueroa <ifigueroap at gmail.com>
> Thanks Michael for your informative response!
> 
> Indeed it was a very simple thing to do. However as I am using OS X I don't have the inotify tool. After looking for some solutions, I stumbled upon the cross-platform watchdog tool (https://pypi.python.org/pypi/pydica-watchdog/), which is implemented in Python.
> 
> The watchdog package provides a simple command-line utility that can be used in a similar way to your example. I developed a very simple script "scribble-pvc" as follows:
> 
> #!/bin/bash
> 
> PATTERN="${PWD}/$2"
> 
> watchmedo shell-command \
> 	  -c 'echo "${watch_src_path} ${watch_event_type}"; scribble $1 "${watch_src_path}"' \
> 	  -D -p $PATTERN
> 
> It seems to work for my use case. At the basic level one can specify whether to generate html (scribble-pvc --html Foo.scrbl) or pdf (scribble-pvc --pdf Foo.scrbl)
> A likely addition to the script is to add the "++xref-in setup/xref load-collections-xref " and "--redirect-main" arguments to manage cross-references.
> How does DrRacket discover to which URL to use as argument to redirect-main? or is it by default to http://docs.racket-lang.org/html?
> 
> Cheers
> 
> 2013/9/5 Michael Wilber <gcr at sneakygcr.net>
> I imagine it's easy to write your own in a for loop, no?
> 
> while true; do scribble ...; sleep 1; done
> 
> Or with inotify:
> 
> inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' \
> -e close_write /tmp/test.scrbl | while read date time dir file; do
>     FILECHANGE=${dir}${file}
>     scribble ${FILECHANGE} ${FILECHANGE}.pdf
>     echo "At ${time} on ${date}, file $FILECHANGE changed"
> done
> 
> 
> Ismael Figueroa <ifigueroap at gmail.com> writes:
> > Is there an option or an external tool to continously update a pdf
> > generated with Scribble? (maybe for the html docs too?)
> > I'm thinking of something like latexmk, when called as "latexmk -pvc
> > foo.tex"
> >
> > Thanks
> >
> > --
> > Ismael
> > ____________________
> >   Racket Users list:
> >   http://lists.racket-lang.org/users
> 
> 
> 
> -- 
> Ismael
> 
> 
> 
> -- 
> Ismael
> 
> 
> 
> -- 
> Ismael
> 
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
> 
> 
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users



Posted on the users mailing list.