Posts tagged with announcement
As is tradition, PieCrust 2.0 was released without much fanfare a few
weeks ago. Just like with the previous version, it just happened because, well,
nothing happened: I was using PieCrust for a couple other websites without any
problem or need for new features, so I figured it might be as good a time as any
to make it official.
Time to run
pip install -U piecrust.
Over the holidays I started 2 hacking projects. This is the first one.
Jouvence is a Python library for parsing and rendering Fountain documents. If you don’t know Fountain, it’s basically Markdown but for writing screenplays. It was created by John August, Nima Yousefi, Stu Maschwitz, and a few other contributors – check out the official website for more information.
The code is, as usual, on both BitBucket and GitHub. The package is on PyPi. The API documentation is hosted on ReadTheDocs.
Here’s how the “Big Fish” screenplay renders with the default HTML renderer:
Of course the whole point of Jouvence is that you write tools and renderers of your own. The Jouvence parser returns a structured document object model that makes it easy to analyze, manipulate, or render screenplays any way you want.
For me, this let me add Fountain support to Wikked, my flat-file wiki engine.
I have shows for my kids that I’d rather they wouldn’t binge watch. For example, a weekly/6 months a year show like Dragon Ball is supposed to evolve with its audience. But if my kid watches 7 or 8 episodes a week because that’s all he ever wants to see when he gets TV privileges, it would take him only a few months before he ends up in front of the teenage power fantasies of the Saiyan Saga.
Enter SaturdayMorning, my little week-end coding project.
Say your kids watch stuff on Plex or Kodi or whatever. You can remove all the episodes of the show they’re watching by putting them in some separate folder, out of your HTPC’s reach. Then you use SaturdayMorning to bring the video files, one by one, every week day or every saturday or whatever you want.
With only one new episode ahead of them, you may find that your kids ask for TV slightly less often, diversify their shows, and/or get more excited about a “new” episode being available to watch.
You can head over to the SaturdayMorning website, or to the GitHub repository.
PieCrust 2.0 beta 5 is now live on PyPi, so you can go ahead and
install --pre piecrust -U to get it.
The 2 big new features in that release are the last reasons I switched to Python
for PieCrust 2 after packaging and multi-core support: better ways to launch
and manage sub-processes. This lets me do:
- Publishing support, because baking your site is only the beginning, and you
actually need to upload that stuff somewhere.
- “FoodTruck”, an optional administration panel to work on your site(s) the
same way you would with a traditional system like WordPress.
More after the break.
While I was working on the documentation for PieCrust 2, I decided I
might as well do something proper, like support for translations and versioning.
The documentation is now in the same repository as the code, and it’s easy to
bake the documentation pages for each release.
To do this, I needed a simple tool that could do the basic work of cloning a
repository, syncing back to given points in times, and do something. In
theory, this would be a simple
bash script or something, but I also wanted it
to do nothing if it already did something for that same specific point in
Thus September was born (if you don’t get the reference, even with the
picture above, I can’t help you).
It’s a simple Python script that still packs some goodness to it. It basically
lets you roll your own readthedocs kinda website (in a very basic way of
course), with appropriate hooks to your repositories.
You run it from inside your repository (Mercurial or Git at the moment) and it
will sync back to each tagged changeset and run a command of your choice. You
can specify a bunch of stuff in a configuration file, like the command itself
(which supports interpolation with a few useful values), the oldest tag to start
from (in case you don’t want to go all the way back to the first release), and a
couple of other things. It will work out of a temporary directory in which it
clones your repository, and stores a cache file that describes what it’s doing.
If you keep that temporary directory around, it won’t re-do the work it
previously did (so it will only rebake my documentation pages if I moved a tag
or added some new ones, and it will re-use and update the repository clone).
It’s still all new and a bit squeaky, so make sure to file some bug reports if
you see anything wrong. Oh, and it’s on Github too for you Git kids.