When last I wrote on my problems with Scriblogify, I attributed them to Windows 7 security... I was way too optimistic, and way too ashamed to bother the community again. I have found a couple smoking guns since then, and found that they, too, had nothing to do with my problem. The following is repeatable in Racket 5.3 and Windows 7:
The following are all part of a project "ScriblogifyBug", which contains folders "Private", where I hide implementation details, and "Blog", where I boast about my implementation. Like a good little programmer, I use rackunit to create custom tests relevant to my code, and use submodules to implement tests. Like an enthusiastic Racketeer, I blog via Scribble and Scriblogify. #lang racket/base ;; begin Private/my-test-mod.rkt (require rackunit) (provide (all-defined-out) (all-from-out rackunit)) (define-simple-check (check-my-func f) (procedure? f)) ;; end Private/my-test-mod.rkt #lang racket/base ;; begin Private/my-racket-mod.rkt (provide f) (module+ test (require "my-test-mod.rkt")) (define (f x y) (+ x y)) (module+ test (printf "Tests running.~n") (check-eq? 1 1) (check-my-func f)) ;; end Private/my-racket-mod.rkt #lang scribble/manual @; begin Blog/my-scribble-doc.scrbl @(require racket/sandbox scribble/eval) @title{Trapping the Scriblogify Bug} @author{Pat} I expect this file to render fine via the @italic{Scribble HTML} button within DrRacket, and it does. However, I am curious why I must explicitly require "my-test-mod.rkt", which is only called from within the test submodule of "my-racket-mod.rkt". Let's demonstate my nifty new function, @racket[f]. @(interaction #:eval(make-evaluator 'racket/base (sandbox-output 'string) (sandbox-error-output 'string) #:requires '("../Private/my-racket-mod.rkt" "../Private/my-test-mod.rkt")) ; ^^^^^^^^^^^^^^^^^^^^^^^^^^ ; Why must I explicitly require this? (f 1 2)) I also expect this file to fail to render via @italic{raco scriblogify "my-scribble-doc.scrbl"}, and it does, yielding the error @italic{"current-directory: `exists' access denied for ~\ScriblogifyBug\Blog\"}. With different tweaks, I've gotten similar 'exists' errors for the files in ../Private, involving current-directory or similar functions described in @bold{14.2 Filesystem} in the documentation, so I suspect a Windows specific path quirk. For instance, if I put all three files in the same directory (modifying the @racket{require}s in "my-scribble-doc.scrbl" accordingly), I get the error @italic{"file-exists?: `exists' access denied for C:\Program Files\Racket\.\racket.exe"}. I am not sure how to interpret "\.\", and C:\Program Files\Racket certainly exists on my system, as does C:\Program Files\Racket\Racket.exe (so there's the path issue and the case issue). @; end Blog/my-scribble-doc.scrbl So, in summary, two issues: a) Scribble needs help finding and interpreting files found within submodules that I would expect to be both findable and irrelevant. When explicitly told every potentially relevant file, it can figure out that it can ignore it, when rendered within DrRacket. 2) Scriblogify doesn't find the help sufficient, when run from the command line. c) One common clue, various path related errors that might be Windows Weirdness. Ok, me sticking with Windows is an issue, one that I hope to rectify in the next six months as certain work-related constraints are relaxed. All thoughts appreciated. Pat
____________________ Racket Users list: http://lists.racket-lang.org/users