AsciiDoc offers syntax for most of the things that Markdown requires you to use raw HTML for. Also, the default output format for AsciiDoc looks a lot nicer than Markdown, but that’s always customizable.
> On Sep 28, 2023, at 10:35 AM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > > I don’t mind AsciiDoc but I have had a few things I couldn’t format with > AsciiDoc. I am not really sure why AsciiDoc is preferred over Markdown. The > only problem I have had with Markdown is that some tools don’t support some > of the latest features. > > Ralph > >> On Sep 26, 2023, at 2:23 PM, Matt Sicker <m...@musigma.org> wrote: >> >> Infra supports publishing any sort of site output as long as it’s published >> via committing to either subversion or git. For git, this is via the normal >> asf-site and asf-staging branches similar to ghpages branches on GitHub. >> Since we can set up GitHub Actions to commit to those branches, we can >> support any static site generator that can be invoked from an Action. >> >> Given Volkan’s argument around JBake, I agree that it would be the easiest >> thing to use. Site generators based on Python or Ruby tend to ossify around >> a bunch of random dependencies thanks to the clusterfuck that is Python and >> Ruby package management which is somehow only slightly less bad than the C >> and C++ ecosystem. >> >> Also agreed on AsciiDoc; Volkan’s reasoning here is exactly why I migrated >> various documentation to AsciiDoc here in the past. When we first used XDoc, >> this was an annoying mix of XML and XHTML where our files typically didn’t >> even validate under the referenced XSDs. I had initially migrated those >> files to Markdown, but I had to use HTML occasionally. AsciiDoc was the >> first markup format that didn’t require these escape valves, and they >> theoretically support template variables, too, so there’s no need to run >> them through a preprocessor. >> — >> Matt Sicker >> >>> On Sep 25, 2023, at 04:20, Volkan Yazıcı <vol...@yazi.ci> wrote: >>> >>> Great initiative to revamp the Logging Services landing page! Go for it! >>> But don't change JBake and stick to AsciiDoc, please. >>> >>> *Summary:* >>> >>> 1. JBake is great, reproducible, and familiar >>> 2. "INFRA support" is not a valid argument >>> 3. Markdown is a dead end >>> 4. The future should ideally not be individual websites >>> >>> *JBake is feature-wise on par with alternatives* >>> >>> There are a plethora of static site generators; Jekyll, Pelican, Hugo, >>> JBake, etc. Almost every language ecosystem has its own take on it. But >>> they all boil down to a couple of basic conveniences: >>> >>> - pick a typesetting format of your preference (AsciiDoc, Markdown, etc.) >>> - generate pages with a templating engine of your preference (Velocity, >>> FreeMarker, Handlebars, etc.) >>> - compile it to a bunch of static HTML files >>> >>> Some even include batteries: >>> >>> - built-in plugins (sitemap, tagging/labeling, search, etc.) >>> - preview (so you don't even need an HTTP server of yours) >>> - hot reload (so you don't need to compile it manually every time) >>> >>> JBake excels in all these areas. >>> >>>> docker run --rm -p 4000:4000 --mount type=bind,src=$PWD,dst=/root/build >>> --mount type=volume,dst=/root/build/node_modules -it >>> apache/privacy_apache_org serve --watch --incremental >>> >>> Uh... That hurts. This is how you can achieve the same in JBake: `./mvnw >>> jbake:watch`. >>> >>> *The unspoken killer feature: reproducibility* >>> >>> I have been tinkering with static site generators for more than a decade – >>> I love them. I don't know of your experience, but anything beyond Java >>> sucks a big time when it comes to reproducibility. You cannot run a Ruby >>> application written 10 years ago on a modern operating system. Many Ruby >>> libraries depend on system libraries that either are not shipped with the >>> distro anymore or broke the ABI in the past. I need to use this >>> hand-crafted `Dockerfile` >>> <https://github.com/vy/vy.github.io/blob/source/Dockerfile> running on >>> Ubuntu `14.04` with a particular constellation of Ruby dependencies so that >>> I can install a version of `nanoc` that compiles my website. It is an >>> operational nightmare. >>> >>> But let's talk about Java and JBake: `./mvnw jbake:watch`. This only >>> requires the host to have a decent OS, shell, and JDK. That is all. No >>> more, no less. Docker? Nah. Python? Nah. Some weird OS package? Nah. I can >>> confidently say this command will highly likely run without a single line >>> of change for several decades. Given its historical track record, I don't >>> think any other alternative can beat Java in this area and it is of >>> uttermost importance given how hard it is for the PMC to afford time on the >>> website. >>> >>> *The argument of familiarity* >>> >>> 90% of Logging Services committers are Java developers. That is where our >>> expertise lies in. If you throw at them a `pom.xml` and a bunch of AsciiDoc >>> files in `src/site/asciidoc`, without blinking an eye, they would correctly >>> guess what to do. Moving away from this safe zone to uncharted territories, >>> in particular, without factually justifying the rationale, will simply do >>> more harm than benefit, if there is any at all. >>> >>> *The argument of "INFRA supports Jekyll and Pelican"* >>> >>> What does that support exactly entail? You don't need to compile the site >>> and push changes to a particular branch that INFRA monitors to serve the >>> actual domain? It is a dozen lines of GitHub Actions workflow YAML. I >>> volunteer to do this. >>> >>> ASF INFRA serves projects by providing infrastructural functions that >>> didn't exist... decades ago? Many of its offerings are superseded by far >>> better alternatives in platforms like GitHub, GitLab, etc. >>> >>> *Markdown-vs-AsciiDoc* >>> >>> If you look close (and long?) enough to a Markdown-based document >>> collection, you will notice HTML tags, everywhere. Wait a second? Why did >>> we decide to use Markdown in the first place? To avoid manually typing >>> HTML! Yup. The moment you want to do formatting that is slightly >>> sophisticated (putting a code block under a bullet, annotating source code, >>> admonitions, etc.) Markdown collapses. Hence, people reach out to sprinkle >>> HTML into their Markdown. This makes templating impossible in the long run, >>> since every single hand-written HTML will have its own style, formatting, >>> structure, etc. which totally defeats the purpose of using a unified markup >>> language. Hence, please use a markup language that would suffice the >>> formatting needs of a technical document. Given its rich feature set, >>> wealthy ecosystem, and large community, I doubt if there is an alternative >>> here besides AsciiDoc. >>> >>> *The future of Logging Services websites* >>> >>> In its current state, we have several projects erecting their own websites >>> by tooling of their preferences: Log4cxx uses Doxygen, Log4j Scala API uses >>> `asciidoc-maven-plugin`, Log4j 2 and Log4j Kotlin API uses >>> `maven-site-plugin`, etc. Such a diverse ecosystem requires significant >>> maintenance investment. Maintenance of not just the tooling, but also >>> styling. In my opinion, ideally, projects should simply provide a set of >>> global pages (about, support, etc.) in their `main` branch and >>> version-specific programmer-friendly-formatted (in AsciiDoc!) manuals >>> stored in branches next to the code they document, e.g., `2.x`, `3.x`, etc. >>> That should be the territory where committers deal with their websites. >>> Enabled GitHub Issues for the project? Edit `support.adoc` in the `main` >>> branch. Is there a typo in the "Getting Started" page? Edit >>> `getting-started.adoc` in `2.x` branch, and so on. The rest – converting >>> these into HTML pages, pushing this to a website, generating release notes, >>> adding a search bar, styling the page, syntax highlighting source code, >>> etc. – should be done by a separate "tool" located elsewhere. This will >>> enable the committers to stop worrying about the website and its >>> intricacies once and for all. As a bonus, Logging Services will have a one >>> uniform beautifully-dressed look to the outside world where they can >>> navigate with ease. The good news is, the tooling is there and it is called >>> Antora <https://antora.org/>. Somebody just needs to spearhead this effort >>> and put a handful of strongly-opinionated guys on the same page. 😅 >>> >>> *Saving the day* >>> >>> Do you just want to save the day? Go ahead, JBake and AsciiDoc are a great >>> combo. People will appreciate it. It will certainly be an improvement. Do >>> you want to build the future? You should look beyond a single project and >>> its individual website. >>> >>> >>> On Fri, Sep 22, 2023 at 8:48 PM Christian Grobmeier <grobme...@apache.org> >>> wrote: >>> >>>> Hello, >>>> >>>> the current landing page: >>>> https://logging.apache.org/ >>>> >>>> is done with JBake. We have rather complicated instructions on how to >>>> re-generate the landing page: >>>> >>>> https://cwiki.apache.org/confluence/display/LOGGING/Managing+the+Logging+Services+Web+Sites >>>> >>>> The Infra team recommends Pelican or Jekyll to create these kinds of >>>> pages. I have in-depth knowledge of Jekyll and would like to propose >>>> migrating the current landing page to Jekyll. >>>> >>>> The benefits: >>>> >>>> - autodeploy of our changes >>>> - great support of blogging (I'd like to create one) >>>> - easy handling and supported by Infra >>>> - writing content in Markdown >>>> >>>> I am aware that we have a discussion open on how to do documentation in >>>> the future. I would still like to migrate the page asap and - if deemed >>>> necessary - touch it again later. >>>> >>>> So far, I will leave all design/content intact until migrated, and come >>>> back with additional changes (as the blog) after migration to be discussed >>>> separately. >>>> >>>> If there are no objections, I will start with this move sometime next week. >>>> >>>> Thanks! >>>> Christian >>>> >>>> -- >>>> The Apache Software Foundation >>>> V.P., Data Privacy >>>> >> >