[ 
https://issues.apache.org/jira/browse/KAFKA-2967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15050416#comment-15050416
 ] 

Ewen Cheslack-Postava commented on KAFKA-2967:
----------------------------------------------

{quote}
The big problem with the existing docs is that many areas are poorly covered or 
confusing or out of date. Personally, I think this is secondary to the 
formatting engine. I think improving the formatting engine could make things as 
much as 10% better but it could also make the resulting docs a lot worse if it 
changes how they're integrated into the site.
{quote}

1. I think you're drastically overestimating the current user experience with 
the docs. People might use the docs more if they were, you know, formatted so 
they were usable. People that say Kafka has great documentation are referring 
to a couple of very specific sections.
2. The choice of markup is rarely about directly improving the user's 
experience. It's about making the technical writing process more efficient.
3. In the current state, it is so painful to edit docs that getting any edits 
is like pulling teeth. The issues range from things that are definitely our 
fault (I can't use a reasonable IDE or editor that handles HTML well, even just 
emacs, not because the content is in HTML but because we are missing so many 
closing tags that autoformatting is absolutely unusable) to limitations of the 
markup language (including any code examples that use generics is an exercise 
in frustration as you waste a ton of time replacing < > with HTML entities, all 
the while rendering the raw text in your editor utterly unreadable or litter 
CDATAs all over the place) to somewhere in the middle (super wide page with 
scroll bar on the page instead of on a few divs that overflow; inconsistent 
formatting of code/CLI snippets; manually updating the table of contents).
4. The goal of replacing the markup isn't to directly get that 10% benefit for 
users. It's to make it easier for people to write docs so that we might 
actually get those poorly covered or confusing or out of date sections in good 
shape. I can tell you for sure that the Kafka Connect docs would have more 
complete content if I hadn't wasted so much time with the markup.
5. I strongly believe docs contributions should be a requirement with patches 
when there's something relevant to be changed, especially in a project like 
this (it's not always feasible if docs can't be tightly integrated with the 
code repo). In today's state, I couldn't ask contributors for that with a 
straight face.

{quote}
The docs should stay part of the main site in styling, nav, etc. Doc things 
like sphynx that dump you into a whole different site with different nav and 
theming is just a terrible experience.
{quote}

So first, you might want to read up on the tool before making statements like 
this. Nothing you said about Sphinx is accurate. You can style it however you 
like, you can use an existing layout, it doesn't require you to generate a 
separate site from your main site, it doesn't require a separate nav system. 
You can use it to migrate from plain HTML content into its system if you want 
(you can embed raw html easily). You can also generate only some pages of your 
site with it without the user being able to tell.

That said, I think integrating the site and *all* the documentation, and trying 
to use a single nav doesn't work well. It clearly doesn't work today since we 
really have 2 navs -- one main one, which happens to link to a few sections of 
the docs, and then the docs one, which is actively hurting the usability of the 
docs because it's a ginormous TOC at the top of the docs page (scroll 1..., 
2..., 3..., ahh, and now at the 4th page down I can finally see content).

{quote}
    The output should look no worse than it currently does. That restructured 
text page looks like it was imported from 1997. Hopefully that is not 
indicative?
{quote}

Gwen specifically mentioned using ReST for markup and Sphinx to render it in 
the JIRA. You're looking at a default minimalist docutils rendered ReST page. I 
can make HTML and Markdown look like that page too. In fact, that's basically 
what the Kafka docs page currently looks like... The goal of most of these 
markup languages is to separate content from style.

{quote}
An easier approach might be to use something like Jykell that would allow us to 
take what we have as is, and move to markdown bit-by-bit as a convenience; it 
also allows you to fall back to html wherever needed and makes live preview 
fairly easy to set up.
{quote}

1. I agree evaluating different options and the tradeoffs is a good idea. But 
in practice, these things usually end up with 1 person really making the 
decision because they were the only one who was willing to step up and take on 
the project.
2. Migration cost for anything other than docs seems like a minimal issue. All 
the overhead is in the docs since they account for close to 90% of the website 
(although that includes autogenerated config docs).
3. Having used Jekyll myself, it may not add enough to address the current 
frustrations with writing docs. One of the benefits of writing docs in a tool 
designed around docs is that it applies the right constraints and provides the 
right support to make writing docs easy.


All this said, I don't strongly favor Sphinx/ReST over other systems and I 
definitely have plenty of complaints about it (e.g. the way links/references 
work, or in some cases don't). So I'll just put my vote in for LaTeX.

> Move Kafka documentation to ReStructuredText
> --------------------------------------------
>
>                 Key: KAFKA-2967
>                 URL: https://issues.apache.org/jira/browse/KAFKA-2967
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Gwen Shapira
>
> Storing documentation as HTML is kind of BS :)
> * Formatting is a pain, and making it look good is even worse
> * Its just HTML, can't generate PDFs
> * Reading and editting is painful
> * Validating changes is hard because our formatting relies on all kinds of 
> Apache Server features.
> I suggest:
> * Move to RST
> * Generate HTML and PDF during build using Sphinx plugin for Gradle.
> Lots of Apache projects are doing this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to