Hi Alex, all.

For the past few days, I worked with Richard on this doc spike. Here is a
short summary of what we have done:
- add collapse/expandable sections on the left menu
- add documentation versioning (version dropdown, top left)
- improve PDF output
- fix all internal links
- use brooklyn styling

One thing left is to use YAML examples from the Brooklyn codebase. There is
a plugin to do exactly that (which supports to import only a snippet from a
file)
Unfortunately, most of the doc examples exist only in the docs repo
therefore I think we should resolve this later on, as an incremental change.

I published the new version on the same URL as before[1], hope you will
like it. Spoiler alert: I do :)

PS: I created a gitbook plugin[2] to auto-generate menus on pages like this
one[3]. However, I had a chat with a maintainer (founder?) of Gitbook who
told me[4] that version 4 will include, out of the box, most plugins we
currently use! They have a preview[5] of what is does.

Best.

[1] https://tbouron.github.io/brooklyn-docs
[2] https://github.com/tbouron/gitbook-plugin-partial-summary
[3] https://tbouron.github.io/brooklyn-docs/start/
[4] https://gitbook-community.slack.com/archives/C0B5XG0GK/p1507893620000134
[5] https://betadocs.gitbook.com/features

On Tue, 10 Oct 2017 at 12:20 Alex Heneveld <alex.henev...@cloudsoftcorp.com>
wrote:

>
> Thomas-
>
> Had a deeper look -- gitbook has moved things forward a lot. Sounds like
> it will let us throw away a lot of our home-grown docs-building and
> toc-building code and have good search.  Look forward to seeing how it
> shapes up with styling and guide-v-website integration.
>
> Best
> Alex
>
>
> On 09/10/2017 09:54, Thomas Bouron wrote:
> > Thanks Mark.
> >
> > Regarding maintenance, it will be as easy as the current version.
> Updating
> > docs means updating markdown files. Adding/moving pages requires to
> modify
> > the `SUMMARY.md` but that's it.
> > One really cool thing is that Gitbook is a node app: really simple to
> > install/run compare to our current solution which runs only on an old
> > version of ruby => no more pain of using different versions of ruby on
> your
> > environment.
> >
> > In terms of feature gaps, Gitbook provides the same or more features than
> > Jekyll out the box:
> > - search! That is a big one, not available with Jekyll
> > - include of external files
> > - syntax highlighting
> > - plugins system
> > - custom theme
> >
> > Best.
> >
> > On Sat, 7 Oct 2017, 17:10 Mark McKenna, <m4rkmcke...@apache.org> wrote:
> >
> >> Thomas this looks really clean great work.
> >>
> >> How much work do you think it will take to maintain vs our current
> >> solution?
> >> What do you see as being the current feature gaps?
> >>
> >> M
> >>
> >> On Fri, 6 Oct 2017 at 14:55 Thomas Bouron <
> thomas.bou...@cloudsoftcorp.com
> >> wrote:
> >>
> >>> Hi Richard.
> >>>
> >>> Of course, I pushed it to my fork on the branch `experiment/gitbook`[1]
> >>> Glad you like it :)
> >>>
> >>> Best.
> >>>
> >>> [1] https://github.com/tbouron/brooklyn-docs/tree/experiment/gitbook
> >>>
> >>> On Fri, 6 Oct 2017 at 13:53 Andrea Turli <and...@cloudsoft.io> wrote:
> >>>
> >>>> +1 Thomas, didn't know Gitbook at all (that's why I suggested
> >>> readthedocs)
> >>>> but looks pretty good!
> >>>>
> >>>> Il 06/ott/2017 15:37, "Richard Downer" <rich...@apache.org> ha
> >> scritto:
> >>>> Hi Thomas,
> >>>>
> >>>> I withdraw my previous comments - I looked at ReadTheDocs last year
> and
> >>> was
> >>>> pessimistic, but it seems that GitBook this year is a different story
> >> :-)
> >>>> This is worth pursuing IMO. What did you need to do to get this
> >> working?
> >>>> Did you have to do any work on the brooklyn-docs source - if so could
> >> you
> >>>> share a link to your repo?
> >>>>
> >>>> Thanks
> >>>> Richard.
> >>>>
> >>>>
> >>>> On 6 October 2017 at 13:18, Thomas Bouron
> <thomas.bouron@cloudsoftcorp.
> >>> com
> >>>> wrote:
> >>>>
> >>>>> Hi All.
> >>>>>
> >>>>> A demo is worth a thousand words so here is a gitbook adaptation of
> >> our
> >>>>> current documentation[1] (and only documentation)
> >>>>> This took me only a couple of hours. There are still things to
> >>>>> fix/update/remove like unsupported liquid tags but for the most part,
> >>> it
> >>>>> works like a charm.
> >>>>> Search is available from the search field on the top left and PDF[2],
> >>>>> epub[3] amd mobi[4] versions are also available.
> >>>>> The build took only 10 sec + 10 more per offline version.
> >>>>>
> >>>>> The table of content mirrors exactly what we currently have, except
> >>> that
> >>>> I
> >>>>> have limited it to only 2 sub-levels. It means that some pages are
> >>>> missing
> >>>>> but I think it demonstrates that our current menu organisation could
> >> be
> >>>>> vastly improved.
> >>>>>
> >>>>> Couple of thoughts on Alex's points:
> >>>>>
> >>>>>> * for the examples, import source code that is actually used in
> >> tests
> >>>>> (!!!)
> >>>>>
> >>>>> Indeed, an overhaul does not solve it, nor our current framework. But
> >>>> both
> >>>>> can implement it.
> >>>>>
> >>>>>> * check links
> >>>>> Gitbook checks internal links at compile time and refuses to build if
> >>>>> something is wrong. AFAIK, there is nothing in the Gitbook world to
> >>> check
> >>>>> the validity of external links like the Jekyll plugin does. There are
> >>>>> probably external tools that we can integrate in our build pipeline
> >> to
> >>>>> cover this. However, it seems that even if we have this tool, we
> >> don't
> >>>> use
> >>>>> it when pushing the website (as I get a lot of errors locally)
> >>>>> Realistically, we will always have broken links, things move around
> >> all
> >>>> the
> >>>>> time. Checking external links is a nice-to-have but far from being a
> >>>>> perfect solution. In any case, I don't see this point as important as
> >>> you
> >>>>> do.
> >>>>>
> >>>>>> * think through user flow
> >>>>> The clear Gitbook menu exposes this pretty well IMO and better
> >> compared
> >>>> to
> >>>>> the current version so that's a win.
> >>>>>
> >>>>> Best.
> >>>>>
> >>>>> [1] https://tbouron.github.io/brooklyn-docs/
> >>>>> [2] https://tbouron.github.io/brooklyn-docs/brooklyn.pdf
> >>>>> [3] https://tbouron.github.io/brooklyn-docs/brooklyn.epub
> >>>>> [4] https://tbouron.github.io/brooklyn-docs/brooklyn.mobi
> >>>>>
> >>>>>
> >>>>> On Thu, 5 Oct 2017 at 12:47 Richard Downer <rich...@apache.org>
> >> wrote:
> >>>>>> Thank you for the research you have done Thomas. I've had similar
> >>>>> thoughts
> >>>>>> myself. The original goal of our web+docs was to integrate them in
> >>> such
> >>>> a
> >>>>>> way that we had a versioned user guide that integrated perfectly
> >> with
> >>>> the
> >>>>>> main website. At the time, Markdown tools were relatively immature,
> >>>> with
> >>>>>> Jekyll leading the pack (and being the fashionable choice), and
> >> very
> >>>>> little
> >>>>>> in the way of viable apps for generating books with structure and
> >>>> tables
> >>>>> of
> >>>>>> contents. We did the best we could with the tools we had, but they
> >>>> needed
> >>>>>> significant extensions (via Jekyll plugins and build scripting).
> >>> Those
> >>>>>> plugins and scripts have turned into something fairly hairy - IMO
> >> we
> >>>>>> shouldn't need to have to write this much code[1] to generate a
> >>> static
> >>>>> site
> >>>>>> and manual. With hindsight, I would not have argued in favour of
> >> this
> >>>>>> model. If I do write my book[2] I will most likely be writing it in
> >>>>>> ReStructuredText and processing it with Sphinx (and no additional
> >>>>>> scripting/tooling!).
> >>>>>>
> >>>>>> That said, when I have looked at changing Brooklyn's documentation
> >>>>> system,
> >>>>>> it has not looked easy. With our home-grown TOC generating code,
> >>> we're
> >>>>> not
> >>>>>> off-the-shelf compatible with other systems. Moving to another
> >>> system,
> >>>>> even
> >>>>>> if it is Markdown-based, would still involve a lot of manual work
> >>>>> changing
> >>>>>> our document metadata to the new system, and adapting to replace
> >> the
> >>>>> Jekyll
> >>>>>> plugins and the content that uses them (e.g. syntax highlighting,
> >>> file
> >>>>>> inclusion). Unless you have discovered something I didn't, Thomas,
> >>> then
> >>>> I
> >>>>>> fear this will be a lot of work, mostly manual.
> >>>>>>
> >>>>>> In short, yes I like the idea of replacing our home-grown and
> >>>>>> home-maintained code with an existing and supported app, but no I
> >>> don't
> >>>>>> think the effort of a big-bang migration justifies the results *at
> >>> this
> >>>>>> time*.
> >>>>>>
> >>>>>> Some things I would support:
> >>>>>>
> >>>>>> - Continued incremental improvements to both the website and the
> >> user
> >>>>>> guide. IMO we have more problems with the content than with the
> >>>> tooling,
> >>>>>> and we can still make a lot of improvements to the usability of our
> >>>> docs
> >>>>>> and website without tooling changes.
> >>>>>>
> >>>>>> - Breaking the tight integration between website and user guide.
> >>> "Fork"
> >>>>> the
> >>>>>> existing infrastructure but then have two build systems tailored
> >> for
> >>>>> their
> >>>>>> purpose rather than one that tried to meet two different needs.
> >> Would
> >>>>> allow
> >>>>>> the existing stuff to continue to work while opening the door to
> >>>>> replacing
> >>>>>> the guide tooling and redeveloping the website, independently of
> >> each
> >>>>>> other, at a future date.
> >>>>>>
> >>>>>> - Evaluating how other systems use metadata to describe the book
> >>>>> structure,
> >>>>>> and gradually adding support for this to our own tools and
> >> migrating
> >>>>>> content. Then at a later date, when the content is
> >> nearly-compatible
> >>>> with
> >>>>>> GitBook or some other system, it'll be easier to do the migration.
> >>>>>>
> >>>>>> What do you think? Will following an incremental approach like this
> >>>> allow
> >>>>>> us to make improvements gradually rather than a "big bang"
> >>> replacement
> >>>> of
> >>>>>> tooling?
> >>>>>>
> >>>>>> Richard.
> >>>>>>
> >>>>>> [1]
> >> https://gist.github.com/rdowner/a09a268b37904a03c452797e7afe56ca
> >>>> but
> >>>>>> consider the COCOMO figures with appropriate cynicism
> >>>>>> [2]
> >>>>>>
> >>>>>>
> >> https://lists.apache.org/thread.html/6f19475bbc0570a3b9e3d1ae1b75b2
> >>>>> b8ee4b2485b3b41d085c342dff@%3Cdev.brooklyn.apache.org%3E
> >>>>>> On 5 October 2017 at 11:23, Thomas Bouron
> >>> <thomas.bouron@cloudsoftcorp.
> >>>>> com
> >>>>>> wrote:
> >>>>>>
> >>>>>>> Hi all.
> >>>>>>>
> >>>>>>> It's been a couple of weeks that I started to look at how to
> >>> improve
> >>>>> and
> >>>>>>> simplify the Brookyln website[1]. As I said on the Brooklyn 1.0
> >>>>>> thread[2],
> >>>>>>> I think we need to sort this out before releasing 1.0.
> >>>>>>>
> >>>>>>> I have looked for a framework / library to handle both the
> >> website
> >>>> and
> >>>>>>> documentation the same way we do it right now. To determine what
> >>> was
> >>>>> the
> >>>>>>> best fit, I based my analysis on the following criteria:
> >>>>>>> - Able to take markdown files and generate HTML from them.
> >>>>>>> - Keep the folder structure intact (currently, pages that seems
> >> in
> >>>> the
> >>>>>> same
> >>>>>>> logical group - take pages in the download section[3] menu - jump
> >>>> into
> >>>>> a
> >>>>>>> different folder/category/section which is very confusing)
> >>>>>>> - Be skinnable
> >>>>>>> - Able to handle versions for documentation.
> >>>>>>> - Able to generate PDF version of documentation.
> >>>>>>> - Be as "stock" as possible to limit maintenance and pain during
> >>>>> upgrade
> >>>>>>> (our current website still uses Jekyll 2.x).
> >>>>>>>
> >>>>>>> 2 contenders clearly jumped out from this:
> >>>>>>> - Jekyll[4]
> >>>>>>> - Gitbook[5]
> >>>>>>>
> >>>>>>> ----
> >>>>>>> Jekyll
> >>>>>>>
> >>>>>>> With the version 3, Jekyll now has a concept of collections[6]
> >>> which
> >>>>> can
> >>>>>>> generate pages from markdown files and keep the folder structure.
> >>>>>>> The menu can be generated based on this folder structure (with
> >>> depth
> >>>>>>> limitation for example) in combination of some clever liquid tags
> >>> and
> >>>>>>> `include`. However, it will be hard to control the order of items
> >>>>>> appearing
> >>>>>>> on the menu. Another easy solution would be maintain list of
> >> links
> >>>> for
> >>>>>> the
> >>>>>>> menu to be generated.
> >>>>>>> There are plugins to generate PDF[7], which happens during
> >> compile
> >>>>> time.
> >>>>>>> Finally, Jekyll is highly skinnable with built-in or custom
> >> themes.
> >>>>>>> ----
> >>>>>>> Gitbook
> >>>>>>>
> >>>>>>> Gitbook, in its open source version, handles out of the box doc
> >>>>>> versioning,
> >>>>>>> PDF generation at runtime (so it seems) HTML pages generation
> >> from
> >>>>>>> markdown. The menu is built-in feature, based on a simple
> >> markdown
> >>>> list
> >>>>>> of
> >>>>>>> links[8]. This means we need to maintain it but there is a good
> >>>> chance
> >>>>> we
> >>>>>>> will have to do this with Jekyll as well. Finally, Gitbook is
> >> also
> >>>>> easily
> >>>>>>> skinnable[9].
> >>>>>>>
> >>>>>>> ----
> >>>>>>> Both frameworks offer mostly the same features. However, Jekyll
> >> is
> >>>>> easier
> >>>>>>> to build a website that looks like a "corporate" one whereas with
> >>>>>> Gitbook,
> >>>>>>> you are "stuck" with the design principals it was created, i.e.
> >>> serve
> >>>>>>> documentation only. But for this very purpose, it is extremely
> >> good
> >>>> and
> >>>>>>> easy.
> >>>>>>>
> >>>>>>> Our website is the combination of both a "corporate website"
> >> (i.e.
> >>>>> about,
> >>>>>>> getting started, community, etc - few pages that describe the
> >>>> project)
> >>>>>> and
> >>>>>>> a documentation.
> >>>>>>>
> >>>>>>> Which leads me to my proposal: separate the website from the
> >>>>>> documentation,
> >>>>>>> at least in terms of how we build it. What I mean by this is:
> >>>>>>> - Use Jekyll (or even nothing) for the website, except the
> >>>>> documentation
> >>>>>>> part. This will let us build a nice theme (based on Bootstrap 4
> >> for
> >>>>>>> example) without to worry about complicated plugins and custom
> >> code
> >>>> for
> >>>>>> the
> >>>>>>> documentation.
> >>>>>>> - Use Gitbook for the documentation alone, applying/adapting the
> >>>> theme
> >>>>> we
> >>>>>>> will create from the point above.
> >>>>>>>
> >>>>>>> Best.
> >>>>>>>
> >>>>>>> [1] https://brooklyn.apache.org/
> >>>>>>> [2]
> >>>>>>> https://lists.apache.org/thread.html/
> >>> dae4468aa7ef77af9dc8aca24b8434
> >>>>>>> e9782efbd50fa876618cccf980@%3Cdev.brooklyn.apache.org%3E
> >>>>>>> [3] https://brooklyn.apache.org/download/index.html
> >>>>>>> [4] https://jekyllrb.com/
> >>>>>>> [5] https://github.com/GitbookIO/gitbook
> >>>>>>> [6] https://jekyllrb.com/docs/collections/
> >>>>>>> [7] http://abemedia.co.uk/jekyll-pdf/
> >>>>>>> [8] https://toolchain.gitbook.com/pages.html
> >>>>>>> [9] https://toolchain.gitbook.com/themes/
> >>>>>>> --
> >>>>>>>
> >>>>>>> Thomas Bouron • Senior Software Engineer @ Cloudsoft Corporation
> >> •
> >>>>>>> https://cloudsoft.io/
> >>>>>>> Github: https://github.com/tbouron
> >>>>>>> Twitter: https://twitter.com/eltibouron
> >>>>>>>
> >>>>> --
> >>>>>
> >>>>> Thomas Bouron • Senior Software Engineer @ Cloudsoft Corporation •
> >>>>> https://cloudsoft.io/
> >>>>> Github: https://github.com/tbouron
> >>>>> Twitter: https://twitter.com/eltibouron
> >>>>>
> >>> --
> >>>
> >>> Thomas Bouron • Senior Software Engineer @ Cloudsoft Corporation •
> >>> https://cloudsoft.io/
> >>> Github: https://github.com/tbouron
> >>> Twitter: https://twitter.com/eltibouron
> >>>
>
> --

Thomas Bouron • Senior Software Engineer @ Cloudsoft Corporation •
https://cloudsoft.io/
Github: https://github.com/tbouron
Twitter: https://twitter.com/eltibouron

Reply via email to