<div dir="ltr">Consistent with my <a href="http://www.youtube.com/watch?v=20GGVNBykaw&list=PLXr4KViVC0qLyXpinlARzSDWaQTCzaGw3&index=7">pledge at RacketCon</a>, I’ve been working on some potential improvements to the default CSS files used by Scribble for Racket documentation. Before I get too far I just want to make sure I’m going about it the right way.<div>
<br><div>I've read the tutorials by <a href="http://blog.racket-lang.org/2012/11/tutorial-contributing-to-racket.html">Joe Politz</a> and <a href="http://www.greghendershott.com/2013/04/a-guide-for-infrequent-contributors-to-racket.html">Greg Hendershott</a> about how to contribute to Racket via Github. I made a fresh fork of plt/racket yesterday and built it from source. But the Scribble CSS files are handled a little differently than others.</div>
</div><div><br></div><div>I see that the documentation gets built into racket/racket/doc/, including the CSS files. So if I edit the files in that directory, I can see the CSS changes reflected in the docs. However, the whole doc directory is <a href="https://github.com/plt/racket/blob/master/racket/.gitignore">ignored in the git repo</a>. And I need to edit files that git can see. </div>
<div><br></div><div>So I found the original home of the CSS files in <a href="https://github.com/plt/racket/tree/master/pkgs/scribble-pkgs/scribble-lib/scribble">racket/pkgs/scribble-pkgs/scribble-lib/scribble/</a>. If I update these files, then git sees them. But the changes aren't reflected in the live documentation.<br>
</div><div><br></div><div>My workaround has just been to replace the copies in racket/racket/doc with symlinks to the files in scribble-pkgs. That way, as I update the CSS in scribble-pkgs, git can see the updates, but they're also reflected in the live docs. (These symlinks will get wiped out next time I rebuild from source, but that's the price of progress.)</div>
<div><br></div><div><br></div><div>1) What's the best way to propose Scribble CSS updates? Should I assemble a pull request for <a href="https://github.com/plt/racket/tree/master/pkgs/scribble-pkgs/scribble-lib/scribble">racket/pkgs/scribble-pkgs/scribble-lib/scribble</a>/ ?</div>
<div><br></div><div>2) Is there a better way of connecting the CSS file in scribble-pkgs to the actual CSS file used by the documentation? (i.e., other than my symlink technique). </div><div><br></div><div>3) Anyone who wants to try out the new Scribble CSS files or contribute to the update will have the same problem, however. I'm not sure how to avoid this given that Scribble's <a href="http://docs.racket-lang.org/scribble/running.html">HTML rendering policy</a> is to bring the CSS files along for the ride and eliminate dependency on the source directory. OTOH, it's a drag to have to rebuild the docs just to see the effect of a few CSS files.</div>
<div><br></div><div>4) For now I'm just working with the CSS, and not delving into the Scribble HTML renderer, on the idea that changing fewer files is better, and maintaining compatibility with existing doc sources is essential. That said, there are some occasional defects in the Scribble HTML output that puts things out of reach of CSS (e.g., I've found styling hard-coded into the HTML in places). </div>
<div><br></div><div><br></div><div>Matthew Butterick<br></div></div>