Nix Documentation | 403 Members | |
| Discussion about documentation improvements around the Nix ecosystem | 82 Servers |
| Sender | Message | Time |
|---|---|---|
| 1 Mar 2024 | ||
| I'm not sure | 21:31:26 | |
| clangStdenv links libgcc and libstdc++ on Linux, as is the default for Clang on Linux | 23:37:45 | |
| I definitely remember it being a problem before, but maybe it wasn't always this way. | 23:39:51 | |
| 2 Mar 2024 | ||
| hi there - what is the current "tech stack" recommendation for writing new documentation for currently undocumented projects in the Nix ecosystem? in this case, mostly internal facing (github.com/nixos/infra), if it changes anything | 03:23:33 | |
| (my ideal requirements: proper multipage support with navigation, markdown or at least not docbook, preferably a stylesheet that's not straight out of the 90s) | 03:25:40 | |
| (this sounds like something which should be documented, maybe with templates, btw :P but I didn't find anything after some quick research) | 03:26:31 | |
In reply to @delroth:delroth.netThere is no recommendation 🥲 We have at least 3 different toolchains used throughout all our docs and want to find a way to reduce that amount (ideally to 1 toolchain), but afaik we haven't yet put the effort to see what things would fit our needs the best | 05:05:46 | |
| I literally got started on this exploration today. I want to make some internal nixpkgs docs (all the readme.md files) more visible, so I'm on a similar path as you | 05:07:55 | |
| 06:25:18 | ||
| 06:27:35 | ||
| delroth: Slightly more practically speaking (although generally my response would also be a deep sigh), if you only have prose and no or little structured data, I recommend to write things into markdown files and link them from the README. GitHub is the entry point for most of everything, and from that perspective it’s the most straightforward thing to do. If you do have mainly structured data, you’ll have to program it anyway, and in that case it basically doesn’t matter how you do it. It would be great though if you kept it simple relative to the minimal tech stack needed to contribute to Nix. I have my gripes with mdBook and Sphinx, because those are frameworks that assume certain things that usually don’t fit out use case all that much; and they are not really programmable to adapt them accordingly, and any attempt will make things very messy. nix-render-docs is a bit of a monster for backward-compatibility reasons, but actually a good example for how to do it well: it’s a purpose-built, highly structured Python program that transforms whatever there is to be documented about in Nixpkgs into a web page. | 11:10:37 | |
| * delroth: Slightly more practically speaking (although generally my response would also be a deep sigh), if you only have prose and no or little structured data, I recommend to write things into markdown files and link them from the README. GitHub is the entry point for most of everything, and from that perspective it’s the most straightforward thing to do. If you do have mainly structured data, you’ll have to program it anyway, and in that case it basically doesn’t matter how you do it. It would be great though if you kept it simple relative to the minimal tech stack needed to contribute to Nix. I have my gripes with mdBook and Sphinx, because those are frameworks that assume certain things that usually don’t fit our use cases all that much; and they are not really programmable to adapt them accordingly, and any attempt will make things very messy. nix-render-docs is a bit of a monster for backward-compatibility reasons, but actually a good example for how to do it well: it’s a purpose-built, highly structured Python program that transforms whatever there is to be documented about in Nixpkgs into a web page. | 11:11:32 | |
| * delroth: Slightly more practically speaking (although generally my response would also be a deep sigh), if you only have prose and no or little structured data, I recommend to write things into markdown files and link them from the README. GitHub is the entry point for most of everything, and from that perspective it’s the most straightforward thing to do. If you do have mainly structured data, you’ll have to program it anyway, and in that case it basically doesn’t matter how you do it. It would be great though if you kept it simple relative to the minimal tech stack needed to contribute to Nix. I have my gripes with mdBook and Sphinx, because those are frameworks that assume certain things that usually don’t fit our use cases all that well; and they are not really programmable to adapt them accordingly, and any attempt will make things very messy. nix-render-docs is a bit of a monster for backward-compatibility reasons, but actually a good example for how to do it well: it’s a purpose-built, highly structured Python program that transforms whatever there is to be documented about in Nixpkgs into a web page. | 11:11:53 | |
In reply to @fricklerhandwerk:matrix.orgI wouldn't call markdown files in GitHub "proper multipage / navigation support" though :/ | 11:14:59 | |
| I might just try to figure out how to wrangle mdbook into generating a not-completely-terrible looking output, that way at least we're not too far from the tech stack of a few other projects | 11:16:00 | |
| Usually outside of Nix* my first choice would be sphinx but there's basically zero usage of it in the Nix* ecosystem and I don't want to be the guy that adds yet another stack to the list | 11:16:59 | |
| Sphinx is used for nix.dev, but while I like it more than mdbook, it’s conceptually terrible on so many levels… What’s wrong with GitHub? It generates a table of contents for every page and lists the directory tree, each in a side bar. It’s not great but works without having to do absolutely anything | 11:20:11 | |
| 11:27:55 | ||
In reply to @fricklerhandwerk:matrix.orgit has bad search and is not designed as a docs website, so you have a bunch of extraneous stuff around that's not relevant to the docs. their markdown renderer isn't bad but eh we can have nicer things than GitHub | 16:08:13 | |
| 18:25:44 | ||
| mdBook was the first thing I explored yesterday and I have to agree that it assumes certain things that really don't help us, so if you're planning on using mdBook for the internal infra docs I'd say try not to spend too much time customising it. Things I have on my list to take a deeper look: mdBook, sphinx, unifiedjs (specially its rehype+remark stuff), docusaurus, vitepress, mkdocs. If you know of any other framework that might be good to take a look at, send it here or DM and I'll take a look at it too. | 19:51:18 | |
| I'll work enough with each one to get somthing up with the internal nixpkgs docs (the stuff in readme.md files) and some extra bits, and will host them somewhere later so people can see the results along with the written pros/cons I identify for each one | 19:54:06 | |
| danielsidhion: I've used Quarto for some of my doc, if you want yet another tool to explore | 19:55:33 | |
| Just to confirm, you mean quarto.org right? | 19:57:06 | |
| yes | 19:57:19 | |
| https://epics-extensions.github.io/EPNix/ if you want an example | 19:57:53 | |
| Ty | 19:58:10 | |
In reply to @jade_:matrix.orgThis actually might make a decent Google Season of Docs proposal 😃. I remember seeing this Summer of Code project for automating Puppeteer's docs (https://gist.github.com/tasneemkoushar/941128bc0d04f095fa01a5334617c65b) which incorporated search features using algolia. Nix doesn't have nice enough tooling to make this feasible, since to the best of my knowledge, the only thing we have to automating the generation of docs is nixdoc (https://github.com/nix-community/nixdoc) which is nice but leaves a lot to be desired. | 20:13:22 | |
| nope theres another new one | 20:13:43 | |
| after the rfc | 20:13:47 | |