8

Ask HN: What are you using for public documentation these days?

 2 years ago
source link: https://news.ycombinator.com/item?id=29264374
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Ask HN: What are you using for public documentation these days? Ask HN: What are you using for public documentation these days? 67 points by vital101 3 hours ago | hide | past | favorite | 64 comments On a new side project I'm working on I need to have a fair amount of documentation for usage, implementation, options, etc. In the past I've used https://docsify.js.org hosted on Vercel, but I was curious if there is anything else out there people like. Looking for free or paid options. So long has I can host on a subdomain I'm indifferent.

Thanks!

We are using Docusaurus (https://docusaurus.io/ ).
   - it is easy to configure/customise 
   - looks really great out of the box
   - solid documentation
   - fast
In our case, we just had to change the colors and font. Here is our Docusaurus code if that's helpful: https://github.com/ToolJet/ToolJet/tree/develop/docs and here is the live documentation: https://docs.tooljet.com/
s.gif
Docusaurus is great! We migrated from Sphinx to Docusaurus[1] recently, the navigation is much better than before.

One thing that bothers us: we have not figure a way to name the anchor that both work in Github (`<span id='aws-s3'/>`) and Docusaurus (`{#aws-s3}`), for example [2]. Any ideas?

[1] https://juicefs.com/docs/community/introduction [2] https://github.com/juicedata/juicefs/blob/main/docs/en/how_t...

s.gif
Haven't tried this but will it work on both GitHub and Docusaurus if the section "S3" is renamed as "Amazon S3" and then removing the "{#aws-s3}" part?
s.gif
Yes, we can use `#amazon-s3` as the anchor, then the name could be long, for example, `#digitalocean-spaces-object-storage`), and it will not work in Chinese.

Your suggestion is better than current one, we will use that, thanks!

s.gif
I'm also using Docusaurus for Fugu (https://docs.fugu.lol).

One thing that bothers me is that they offer a free Algolia integration for open-source projects, but they declined my application despite being open source.

So, search not working for now, need to have another look at that :-)

s.gif
We tried to use Typesense for the search bar. We could not wrap up the PR due to bandwidth issues but it should be a great alternative for Algolia. Link: https://github.com/typesense/typesense-docsearch-scraper
s.gif
Yes, that looks like a good solution! Thanks!
s.gif
It doesn't support search unless you rely on (pay for) Algolia? Wow, instant pass from me.
s.gif
You can add your own search plugin or use another provider like Typesense. They just offer an optional free Algolia service for open-source projects on top. You can read more here: https://docusaurus.io/docs/search
s.gif
Ah phew, thanks. The site made it sound like they only supported Algolia.
s.gif
> live documentation: https://docs.tooljet.io

The two separate hamburger menus were hard to parse at first on mobile. Do your social media links really deserve higher placement than the navigation?

s.gif
Oh huh, I completely missed the second hamburger button and was perplexed as to why their documentation only had three links to other sites.
s.gif
You are right, placing the navigation on the sidebar is more useful than the links to GitHub and Slack.
s.gif
Update to a more recent version, they re-worked the nav to be one menu on mobile.
s.gif
Aspect ratio of screenshots looks wrong when the docs are browsed from mobile phones. Is this a docusaurus issue or perhaps specific to your docs?
s.gif
Your docs even support dark mode! Did that come out of the box or did you add that?
s.gif
It comes out of the box. We are now trying to figure out how to switch screenshots based on the light/dark mode. The screenshots taken from light mode of ToolJet looks odd in Docusaurus' dark mode.
s.gif
You could build your own react image wrapper then use that component in the mdx and pass in two images, then display the appropriate one based on the current theme provider. Docusaurus makes using inline react components easy.

You could also write your own remark plugin, that does it for you, and would have the benefit of having more control over what happens on the github side if it was still standard markdown.

s.gif
Thanks, I will try creating a custom react component for handling the modes.
A small Perl script <https://github.com/jmarshall/manconvert> that grinds a subset of man page nroff syntax directly into HTML. (That subset being “the constructs that are used in the man pages that it's used on”.)

Some of the styling could be improved (those section headings for one!), but IMHO it produces better results than other more general-purpose manpage to HTML converters: see e.g. <https://www.htslib.org/doc/samtools.html>.

A markdown generator embeds markdown from a Github repo into the marketing site. This way the marketing site is kept private while anyone can easily contribute to docs.

Docs are kept in separate folders for each release.

https://github.com/multiprocessio/datastation-documentation

I used Help and Manual to document my software: https://www.helpandmanual.com/

It can generate HTML, CHM, PDF etc, all from a single source.

It is one of my favourite software tools (I am a customer and have no financial interest in it).

I have an unfinished side project called Documentation Page:

https://documentation.page/

It's "unfinished" because I'd need to integrate payments and do all the accounting on my side (non-trivial as an individual living in Japan), but otherwise it's worked pretty well for my own projects.

It parses your Github Repo to generate the website. You can define your docs as a single readme.md file, a folder called "documentation", or custom configuration otherwise. Some examples hosted by Documentation Page:

- https://statux.dev/: simple single-page docs and website, menu config in https://github.com/franciscop/statux/blob/master/documentati....

- https://react-test.dev/: split into multiple pages, you specify the folder and it'll automatically merge the markdown files. See config https://github.com/franciscop/react-test/blob/master/documen...

- https://crossroad.page/: has an landing page, but that is not officially supported (yet). See the configs in https://github.com/franciscop/crossroad/blob/master/document...

s.gif
The examples look really elegant and polished. I could definitely see myself using something like this. It's times like these I wish HN had a save comment button.

Also it's pretty funny that a documentation service has incomplete documentation. https://documentation.page/documentation#how-it-works

s.gif
If you click on the timestamp for the comment, you'll be presented with an option to "favorite" the comment.
s.gif
Thanks! It's unfinished and on-hold for 3rd parties so it doesn't have all docs :)

I might retake it at some point next year to officially finish/launch it, like the code is basically mostly there.

We use [TypeDoc](https://typedoc.org/) to generate documentation from all of our TypeScript. It combines type definitions with surrounding comment blocks for easily navigable, clean documentation.

For non-TypeScript codebases, we use [Docusaurus](https://docusaurus.io/).

I believe there are also plugins which can make TypeDoc output compatible with Docusaurus.

None of our docs are public at the moment, but a good example of documentation generated by TypeDoc would be Amazon's `aws-sdk`: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index...

I'm using mkdocs with the material plugins [1]. I'm running it mainly for a Blockchain Education site for my labs from my course, which seems to be fine [2].

I did a fair amount of customization though, so I am running all this as mkdocs plugins, not directly from the materials project.

[1] https://squidfunk.github.io/mkdocs-material/ [2] https://ethereum-blockchain-developer.com

s.gif
+1 for Material MkDocs. It’s beautiful and functional by default so I can just focus on documenting.
s.gif
Oh wow this looks great! Simple conversion of markdown into an opinionated simple to use really nice looking doc site.!

Cheers for this :)

s.gif
+1000 for the "Material for MkDocs" project by squidfunk - we (Ritza.co) do documentation for various companies and we've strongly encouraged them to all switch to this since we found it. Fast, beautiful, simple.

The free version is really nice but also very happy to pay for the 'insiders' version via GitHub donations.

We use asciidoctor + jekyll at $CURJOB. It seems to work great, can be hosted for free or low cost. Lots of templating wins.

I do wish it supported running code snippets, but I think that can be done with some scripts and including things. (On the list, not done yet.)

I have a custom setup. I don't use a generator. I don't like my JS files with all these doc-comments.

The downside: quite a lot of work to create something from scratch.

The upside: I have created a playground-type API, where all options, methods & events can be tried out directly from the docs. They interact with the data grid.

https://www.datagridxl.com/api/options

We (Handsontable) now use VuePress[1] for our docs[2] and we are very happy with it. The best feature for us is the ease of customization.

Our challenge right now with the docs is to get a fantastic code snippet runner there. But that's beyond the scope of your regular documentation management tool, I suppose. VuePress will make it easy for us to integrate our solution.

[1] https://vuepress.vuejs.org/

[2] https://handsontable.com/docs/

If you're looking for a SaaS solution, I can really recommend Archbee[0]. We've moved to it from ReadMe[1] recently, due to constraints in ReadMe's product and the challenges scaling it commercially in our model.

[0]: https://www.archbee.io/ [1]: https://readme.com/

We are using Dash ReadMe (https://dash.readme.com/login) - Easy to configure - Beautiful UX/UI - Good documentation
We use GitBook at Garden (docs.garden.io).

It's zero effort which is important for a small team like ours. Allows us to focus on the content as opposed to bikeshedding design.

Overall I'm happy with the look and feel of things and the support is typically good.

That being said, they recently shipped changes that essentially made the docs site impossibly slow for a few days. They've been working on fixing that and it's better, but not as snappy as before. I also preferred the previous look (it's very similar but the new one is a bit more clunky imo).

We do have a lot of long code examples (YAML reference docs) which I think may contribute to the "sluggishness".

But overall I'd recommend if you want to minimise effort and maintenance. In any case it's easy to give it a spin and see if it works for you.

Is there anything that supports languages other than English - specifically Indian languages. I am writing documentation (book) to be distributed online. I presently use mdbook but markdown does not support anything other than English.
s.gif
What do you mean by Markdown not supporting other languages? I don't see how it wouldn't support other languages.

Although we're using Asciidoctor (syntax / markup language) with Antora (tooling) ourselves, including with a Chinese translation. It's similar to the Fedora documentation:

https://docs.fedoraproject.org/ur_PK/docs/ (Urdu? Most translations are very incomplete; it's just volunteers.)

I've not used it yet - but planning to give Nextra (https://nextra.vercel.app/) a go next time around.

The 'docs' theme is intended as a quick way to produce a documentation website based on Next, which you can obviously customise further with your own components if needed.

https://www.mkdocs.org/. Probably not the latest or greatest, but it produces nice looking documentation from markdown. Serves my purposes well.
We're using readme.com for https://docs.numary.com/

Pretty satisfied with the productivity gain and the API docs generation from our OpenAPI file.

I just learned that their API would allow us to programmatically update the guide section as well, so we'll probably move the guides to a public github as well for contributions.

We [1] moved from mkdocs to docusaurus v2 and couldnt be happier. Very active project with a great community, and enough flexibility and config overrides when we need it.

[1] https://docs.flagsmith.com/

Basic markdown and Sphinx to build into HTML, publishing via github pages. It's an open source project so putting the docs alongside the code just makes sense. Although Sphinx isn't great for my money, it gets the job done.
s.gif
I have grown to absolutely love Sphinx. The plugins are wonderful, including Sphinx gallery, jupyter integration, and Sphinx-needs for requirements management.
mdBook (or Gitbook) is also an option. A bit more general than just for docs, though they advertise it as a first class use case.

https://github.com/rust-lang/mdBook

Using https://docusaurus.io/ for my side project codeamigo. It’s been great, although arguably I need to add more to the docs :)
In case you're using Google docs/drive for docs at the moment, I've built https://neat.wiki for precisely this purpose. If it's documentation for code there are better options though.
MS Word converted with some tools to html, chm, pdf.
As others in this thread have mentioned, Docusaurus is really good. It was very easy to add search with Algolia and meta tags for SEO as well.
Markdown in Git, Gitlab or GitHub. KISS.
Stoplight.io it has support for git, CI integration
I am frequently working on ways to document inline with the code using comments and then extract those comments during the build process to keep documentation up to date automatically. The comments are formatted as mark down so that they may be converted from code comments to stand alone mark down documents.

I have also noticed that in VS Code a comment immediately preceding a type or interface declaration written in mark down format becomes formatted markdown in the tooltip where that type is used.

s.gif
Are you talking about Typescript here? If so, could you give an example of how to make this happen? This sounds incredibly useful.

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK