Sure I understand that need. If there's a way of pulling the document sources directly from the web I can parse the content to look for snippet markers and make those available to the template system. That's pretty much how www.apache.org is generated.
Sent from my iPhone > On Mar 19, 2014, at 5:28 AM, Henrique Mendonça <henri...@apache.org> wrote: > > Hi Joe, > > Thanks for your effort. I just wanted to add that the code snippets are a > crucial feature for this project, which has way more target languages than > active contributors. In our case, reducing manual maintenance costs is much > more important than the total site build time. Perhaps we can also solve > this in the CMS, though. > > - Henrique > > >> On 19 March 2014 03:17, Joe Schaefer <joe_schae...@yahoo.com> wrote: >> >> A couple more thoughts regarding the background on the CMS... >> the bulk of the focus of the CMS up until now has been to >> support really big sites like maven and openoffice, both of >> which have websites well over 5GB worth of text files. The >> build system was hollowed out and revamped to support external >> builds in other programming languages, as well as scaling up >> the perl builds to provide about 8 child processes that build >> the site in parallel by default. Full site build times for >> openoffice went from over 30 minutes to between 5 to 10 minutes >> depending on disk activity, which made experimentation with site-wide >> changes feasible on a reasonable timeframe. At first the project was in >> the habit of running the builds locally before checking in their changes >> because the delay in feedback post-commit was unreasonable, but with smart >> use of SSI the were able to cut down on the number of changes that required >> full site builds and hence no longer bother with the whole pre-build mumbo >> jumbo before checking in changes. The CMS is designed to only build pages >> that were altered, and if you just edit a page or two only those pages and >> the pages that depend on them will be built. >> >> Now that I've turned my attention to thrift, there are several aspects >> that are better off being retuned based on the modest size of the site. >> First of all you have a sitemap url that lists all of your markdown-based >> pages, which would be a nonstarter for a site like openoffice. The >> implications of the sitemap url are that every page needs to be built in >> memory just to generate that page, which leads to a lot of redundancy in a >> build system designed to run as forked child processes. We can do better... >> >> I've done two things to make this work well- first I made the number of >> child processes "aka runners" tunable on a per-project basis, and since the >> sitemap is going to build every page anyway as the slowest page to build, I >> memoized the main view that builds the markdown pages for thrift. The best >> results are when there's only one runner so we get the full benefit of >> memoization: typical site build times are consistently under 2 seconds now. >> >> You'll appreciate why I am such a performance stickler for the CMS when >> you start using the bookmarklet, since builds are the only asynchronous >> part of the process from making a change to a page and publishing the >> results. Ideally when the system is working well the builds happen before >> you have time to go looking for them, but you do need to be mindful of not >> publishing before the built pages have been committed back to svn by >> buildbot. >> >> >> >>> On Monday, March 17, 2014 11:59 PM, Joe Schaefer <joe_schae...@yahoo.com> >> wrote: >>>> Ok there's enough of an idea about how to port the rest of the site's >>> pages over based on the porting work I've already done that it's time >>> for me to step back and let you guys catch up. Basically the idea is >> that while >>> there is templating support in the markdown sources, it's fairly limited >>> compared to what nanoc offers, but instead of writing a lot of complex >> template >>> code into your sources, with the cms you just add code to lib/view.pmand/or >>> lib/path.pm to keep the document sources simple and just add more >> template >>> variables. What I just finished in lib/view.pm and lib/path.pm is >> directory >>> listing support for /docs.html but it can be carried over to similar >> pages. >>> >>> >>> >>> >>>> On Monday, March 17, 2014 9:16 PM, Joe Schaefer >>> <joe_schae...@yahoo.com> wrote: >>>>> Interesting ideas, thanks. FWIW I think that sort >>>> of thing might be best supported as a periodic cron >>>> if we can write something stable enough, because pulling >>>> stuff out of the git repo is something the CMS isn't going >>>> to do all that well being an svn application. >>>> >>>> The CMS build results are available at >> http://thrift.staging.apache.org/ >>>> feel free to play with the sources in repos/asf/thrift/cms-site/trunk. >>>> It's very fast, probably an order of magnitude faster than your current >>> >>>> tech. >>>> Whole site builds in two seconds; fractions of a second for typical >> mods to >>> >>>> content/ markdown pages. >>>> >>>> The CMS bookmarklet is compatible with the staging site FWIW. >>>> >>>> >>>> >>>> >>>>> On Monday, March 17, 2014 7:40 PM, Roger Meier >>>> <ro...@bufferoverflow.ch> wrote: >>>>>> Hi Joe & Co >>>>> >>>>> thanks for this test run with Apache CMS! >>>>> >>>>> What I would love to see is this: >>>>> >>>>> Source file: => Web Site URL: >>>>> test/README.md => thrift.apache.org/test >>>>> test/STATUS.md => thrift.apache.org/test/status >>>>> test/keys/README.md => thrift.apache.org/test/keys >>>>> lib/<lang>/README.md => thrift.apache.org/lib/<lang> >>>>> lib/<lang>/test/README.md => >>>> thrift.apache.org/lib/<lang>/test >>>>> lib/<lang>/examples/README.md => >>>>> thrift.apache.org/lib/<lang>/examples >>>>> compiler/cpp/README.md => thrift.apache.org/compiler >>>>> debian/README.md => thrift.apache.org/debian >>>>> contrib/<topic>/README.md => thrift.apache.org/<topic> >>>>> >>>>> just made the following patch to rename all file to .md within our >>> source >>>>> tree: https://issues.apache.org/jira/browse/THRIFT-2407 >>>>> ... we have *41* md's within the source tree and that's the >>> place >>>> where >>>>> people look for documentation first. => simple to manage >>>>> Would be user friendly to have all of this online with each release >>>>> with the URL layout mentioned above. >>>>> >>>>> just received the buildboot... >>>>> Do you have kind of a preview of your prototype? >>>>> >>>>> all the best! >>>>> -roger >>>>> ;-r >>>>> >>>>> >>>>> Quoting Jake Farrell <jfarr...@apache.org>: >>>>> >>>>>> No objections from me >>>>>> >>>>>> -Jake >>>>>> >>>>>> >>>>>> On Mon, Mar 17, 2014 at 12:04 PM, Joe Schaefer >>>>> <joe_schae...@yahoo.com>wrote: >>>>>> >>>>>>> Any objections to me making a copy of the site >>>>>>> tree alongside it called cms-site? I'd like to >>>>>>> get cracking on knocking up the supporting perl >>>>>>> for this so we can continue to brainstorm... >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> On Sunday, March 16, 2014 1:53 PM, Joe Schaefer >>>>> <joe_schae...@yahoo.com> >>>>>>> wrote: >>>>>>>>> On Sunday, March 16, 2014 1:40 PM, Jake Farrell >>>>> <jfarr...@apache.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>> Hey Joe >>>>>>>>> Thanks for reaching out, we chose to go with a site >>>> generator >>>>> over the >>>>>>>>> Apache CMS due to it initially not meeting all of >>> our >>>> needs. >>>>> Our current >>>>>>>>> needs for the site are >>>>>>>>> >>>>>>>>> - Markdown to html conversion >>>>>>>> >>>>>>>> >>>>>>>> That one's easy- its the default for the cms. >>>>>>>> >>>>>>>> >>>>>>>>> - Global variables/config usable throughout in a >>> template >>>> >>>>> based layout >>>>>>>> >>>>>>>> >>>>>>>> Easy too- just create a perl hash somewhere and make it >>>> available >>>>> to >>>>>>> your views. >>>>>>>> Code your views to pass that hash along to your >>> templates >>>> and you >>>>> are >>>>>>> all set. >>>>>>>> Note if your hash contains objects you can make method >>> calls >>>> on >>>>> them in >>>>>>> your >>>>>>>> templates. Note: while I wouldn't recommend this in >>> >>>> general, >>>>> for smaller >>>>>>>> projects like thrift that prefer convenience over >>> separation >>>> of >>>>> concerns >>>>>>> you can >>>>>>>> have the django template engine do a pass over your >>> markdown >>>>> before >>>>>>> passing it >>>>>>>> along to your actual template page, just as is seemingly >>> >>>> common to >>>>> other >>>>>>> popular >>>>>>>> site generation software. >>>>>>>> >>>>>>>> >>>>>>>>> - Syntax highlighting >>>>>>>> >>>>>>>> >>>>>>>> Comes with python's markdown support, but some >>> people >>>> prefer >>>>> the look of >>>>>>>> javascript highlighters. >>>>>>>> >>>>>>>>> - Easily include code snippets from our source code >>> base >>>>>>>> >>>>>>>> >>>>>>>> Statically I hope. No idea how to pull snippets out of >>> your >>>> git >>>>> repo >>>>>>> via the >>>>>>>> cms. >>>>>>>> >>>>>>>>> - Ability to locally test before committing >>>>>>>> >>>>>>>> >>>>>>>> Belt and suspenders with the cms- you can build your >>> changes >>>>> before >>>>>>> committing >>>>>>>> with the build scripts, browse your changes before >>> committing >>>> via >>>>> the cms >>>>>>>> webgui, or simply commit your changes and view the >>> staging >>>> site >>>>> prior to >>>>>>> live >>>>>>>> publication (which is a separate step). >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> -Jake >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Sun, Mar 16, 2014 at 12:44 PM, Joe Schaefer >>>>>>>> <joe_schae...@yahoo.com>wrote: >>>>>>>>> >>>>>>>>>> As it so happens I am interested in working on >>>> supporting >>>>>>>>>> thrift's use case as a potential user of >>> the >>>> Apache >>>>> CMS. >>>>>>>>>> While the CMS works well for massive projects >>> there >>>> are >>>>>>>>>> things it could do better at supporting for >>> more >>>> moderate >>>>>>>>>> sized sites like thrift's. >>>>>>>>>> >>>>>>>>>> I'd therefore like to engage you folks in a >>> >>>>> brainstorming session >>>>>>>>>> about what sorts of features you want for your >>> site >>>> and >>>>> to find >>>>>>>>>> simple ways of supporting those features for >>> you. >>>>>>>>>> >>>>>>>>>> Thanks. >>