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:<div>
<br></div><div>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</div>
<div>Scribble and Scriblogify.<br><div><br></div><div><div>#lang racket/base</div><div>;; begin Private/my-test-mod.rkt</div><div>(require rackunit)</div><div>(provide (all-defined-out)</div><div> (all-from-out rackunit))</div>
<div><br></div><div>(define-simple-check</div><div> (check-my-func f)</div><div> (procedure? f))</div><div>;; end Private/my-test-mod.rkt</div></div></div><div><br></div><div><div>#lang racket/base</div><div>;; begin Private/my-racket-mod.rkt</div>
<div>(provide f)</div><div><br></div><div>(module+ test</div><div> (require "my-test-mod.rkt"))</div><div><br></div><div>(define (f x y)</div><div> (+ x y))</div><div><br></div><div>(module+ test</div><div> (printf "Tests running.~n")</div>
<div> (check-eq? 1 1)</div><div> (check-my-func f))</div><div>;; end Private/my-racket-mod.rkt</div></div><div><br></div><div><div>#lang scribble/manual</div><div>@; begin Blog/my-scribble-doc.scrbl</div><div>@(require racket/sandbox scribble/eval)</div>
<div>@title{Trapping the Scriblogify Bug}</div><div>@author{Pat}</div><div><br></div><div>I expect this file to render fine via the @italic{Scribble HTML} button within DrRacket,</div><div>and it does. However, I am curious why I must explicitly require "my-test-mod.rkt", which</div>
<div>is only called from within the test submodule of "my-racket-mod.rkt".</div><div><br></div><div>Let's demonstate my nifty new function, @racket[f].</div><div><br></div><div>@(interaction #:eval(make-evaluator 'racket/base</div>
<div> (sandbox-output 'string)</div><div> (sandbox-error-output 'string)</div><div> #:requires '("../Private/my-racket-mod.rkt"</div>
<div> "../Private/my-test-mod.rkt"))</div><div> ; ^^^^^^^^^^^^^^^^^^^^^^^^^^</div><div> ; Why must I explicitly require this?</div>
<div> (f 1 2))</div><div><br></div><div><br></div><div>I also expect this file to fail to render via @italic{raco scriblogify "my-scribble-doc.scrbl"},</div><div>and it does, yielding the error </div>
<div>@italic{"current-directory: `exists' access denied for ~\ScriblogifyBug\Blog\"}. With different</div><div>tweaks, I've gotten</div><div>similar 'exists' errors for the files in ../Private, involving current-directory or similar</div>
<div>functions described in @bold{14.2 Filesystem} in the documentation, so I suspect a Windows</div><div>specific path quirk. For instance, if I put all three files in the same directory (modifying</div><div>the @racket{require}s in "my-scribble-doc.scrbl" accordingly), I get the error </div>
<div>@italic{"file-exists?: `exists' access denied for C:\Program Files\Racket\.\racket.exe"}. I</div><div>am not sure how to interpret "\.\", and C:\Program Files\Racket certainly exists on my system,</div>
<div>as does C:\Program Files\Racket\Racket.exe (so there's the path issue and the case issue).</div><div>@; end Blog/my-scribble-doc.scrbl</div></div><div><br></div><div>So, in summary, two issues:</div><div><br></div>
<div>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.</div>
<div><br></div><div>2) Scriblogify doesn't find the help sufficient, when run from the command line.</div><div><br></div><div>c) One common clue, various path related errors that might be Windows Weirdness.</div><div>
<br></div><div>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.</div><div><br></div><div>All thoughts appreciated.</div><div><br>
</div><div>Pat</div>