There is a great deal of interest in storing laws in GitHub. Provide the functionality to export laws to GitHub, presumably via plain-text export to the file system. The glip project is a GPLd Git library for PHP—that could provide the glue for synching.
Specifically I'm thinking that the steps are:
If the text to be put on GitHub is plain text, then it's necessary to iterate through the laws_text table, presumably via a new Laws method. On the other hand, if it's HTML, then the contents of laws.text can be used as-is, and the laws_text table can be ignored. Finally, if it's Markdown, either the laws.text content can be converted to Markdown, or perhaps a program like Markdownify can simply convert the HTML to Markdown. In a quick poll of subject-matter experts on Twitter, Markdown was the most popular format, with the caveat that it would be the wrong choice if anything was lost in the conversion. @emasters suggests using AsciiDoc, which is a supported file format within GitHub.
@krues8dr, I've assigned this to you because I think you might enjoy finishing this up at some point. It's going to be a wildly popular feature, and get a lot of attention. But it's entirely possible that I'll surrender to temptation and do this myself. :)
Export plain text versions of laws
Towards supporting #161, although also just a useful bulk download.
Overhaul the code-export functionality
Improvements to #280, but also to further progress towards #161.
Improve how plain text versions of laws are generated
Per #160 and #161.
Offload plain text rendering to Law.inc.php
We actually already offloaded it; now we're removing the extra text generation from law.php. Per #160 and #161.
We actually already offloaded it; now we're removing the extra text
generation from law.php. Per #160 and #161.
Propose moving Milestone to Future. I'd love to see this, but I don't know that it's a priority.
I'm OK with moving it to a future release because it's actually quite possible to do this without any additional State Decoded functionality, thanks to the plain text files that are output. Somebody could easily check all of those files in, with each new release. That's not as slick as auto-synching via Git, but it ain't bad.