If someone's looking for a way to help with the porting
effort, consider tackling the creation of an index.html
page in each subdir of the content/ tree (other than the
base which has an /index.md).  The contents of the file
should be just

{% include 'default' %}

(see the docs dir for an example page that can be copied)
and the build system will take care of generating the page
in a consistent fashion with the rest of the site.  Once
that is done there are a lot of pages that function like
index pages but are written in markdown that can be deleted,
like docs.md and its ilk.  Nanoc transforms that file into
/docs/index.html but that's kinda crufty and not supported
by the CMS, which only lets you alter file extensions not paths.



> On Wednesday, March 19, 2014 8:54 AM, Joe Schaefer <[email protected]> 
> wrote:
> > I just pencilled in snippet preprocessing support into
> the thrift builds.  Once Jake and I have settled on the
> feature set of ASF::Value::Snippet, and we have ported
> the snippet calling text within the markdown pages
> to the new format, things will just work (knock on wood).
> 
> 
> 
> 
>>  On Wednesday, March 19, 2014 6:48 AM, Joseph Schaefer 
> <[email protected]> wrote:
>>  > 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 
> <[email protected]> 
>>  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 
> <[email protected]> 
>>  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 
>>  <[email protected]>
>>>>   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
>>>>>   <[email protected]> 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
>>>>>>   <[email protected]> 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 <[email protected]>:
>>>>>>> 
>>>>>>>>     No objections from me
>>>>>>>> 
>>>>>>>>     -Jake
>>>>>>>> 
>>>>>>>> 
>>>>>>>>     On Mon, Mar 17, 2014 at 12:04 PM, Joe Schaefer
>>>>>>>    <[email protected]>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
>>>>>>>    <[email protected]>
>>>>>>>>>     wrote:
>>>>>>>>>>>   On Sunday, March 16, 2014 1:40 PM, 
> Jake 
>>  Farrell
>>>>>>>    <[email protected]>
>>>>>>>>>>   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
>>>>>>>>>>   <[email protected]>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.
>>>> 
>> 
>

Reply via email to