-
Notifications
You must be signed in to change notification settings - Fork 521
Adopt ExDoc & Move Documentation In-Tree #2973
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Love it! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like it as well. I think we'd have to crystallize some of the approach chosen to be broadly compatible with the project (version support, dynamism supported).
Some of the key features of the main site are also the download links on the landing page which no longer exist here, but could certainly be unified a bit better.
I think this is worth pursuing.
doc.config
Outdated
{extras, [ | ||
~"README.md", | ||
~"LICENSE", | ||
~"CONTRIBUTING.md" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sigil usage is generally supported starting in OTP-27, which means it is not necessarily usable for OTP-26, which is still currently supported.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah yes, good point. I will make this change
doc.config
Outdated
@@ -0,0 +1,18 @@ | |||
%% ./bootstrap | |||
%% REBAR_CONFIG=doc.config ./rebar3 ex_doc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This works and I'm not opposed to it. I think this method omits the rest of the Rebar3 config when working on the project, which may drop some settings. Was this on purpose because they might clash?
If it wasn't on purpose, then one option here would have been to use profiles for this whole section within the default rebar.config
file, and then allow calling ./rebar3 as docs ex_doc
. This would require unscripting the stuff in doc.config.script
though, which would be way too much work for a demo I imagine, but might be worth it in the end if we go for full support.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did it with doc.config[.script] on purpose for the first draft to demonstrate the blast radius of the change. Specifically, that the ex_doc config should be expected to have no impact on the rest of the project, to alleviate concerns about circular dependencies. I think we're on the same page here, so this is no longer a goal for the PR. 👍
I can continue the effort by exploring what it looks like in a merged rebar.config and without the script. However, without the script I think this will mean listing all markdown files explicitly in the rebar.config. I'll make it so and we can see how unmanageable that list looks. I don't mind doing multiple iterations to get it right.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I don't mind the file being distinct, the main concern is whether we'll require some duplication of config file values at some point. If we can survive without it, that's not a big deal.
Thanks for the feedback. I'll update here with the next iteration, hopefully by the weekend. For the record, I'm hoping we can get rebar_ex_doc plugin support for |
- Copy rebar3.org content/en/docs to docs - Remove Hugo headers in all md files - Where possible, move Hugo descriptions to quote blocks under the h1 - Remove search.md - Create package_management/publishing-packages.md from _index.md - Remove content/en/_index.html (the rebar3.org home page) - Create testing/introduction.md from testing/_index.md - Remove _index.md from about, configuration, deployment, extending, and tutorials (only contained generic descriptions) - Tweak markdown tables to render correctly in ExDoc (README, configuration.md, commands.md, building_plugins.md) - Remove <br> from table cells - Rework blocks/callout to Admonitions `{: .warning}` and `{: .info}` - Fix various broken links (e.g. plugins.md publishing, aliases sections, in configuration.md cover section) - Convert internal doc linking to ExDoc paths
Updates:
|
## Documentation | ||
|
||
Rebar3 documentation is maintained on [https://rebar3.org/docs](https://rebar3.org/docs) | ||
Rebar3 documentation is maintained on [https://hexdocs.pm/rebar3](https://hexdocs.pm/rebar3) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think long term we'll want to keep things on rebar3.org, but if necessary just proxy/redirect to hex.pm/rehost there. Keeping the domain and links that have been indexed and used for years working would be good.
This PR uses ExDoc for docs generation and moves all documentation source into the main
rebar3
repository.The primary goal is to bring rebar3's documentation process in line with modern Erlang community standards, enhancing discoverability, familiarity, and contributor experience.
✨ Demo
rebar3exdocdemo.stimpson.io
For demonstration purposes, I've hosted the combined rebar3 ExDocs at the location above. I'll keep them up and running for the lifetime of this PR.
💡 Proposal
This PR proposes three major changes:
rebar3
project.✅ Motivation
1. Familiarity & Community Alignment
2. Enhanced Discoverability
erlang.org
or HexDocs. Currently, the documentation is not hosted in either.3. Facilitating Contribution
4. Clear Public API Definition
🛠 Progress
https://github.com/tsloughter/rebar3.org.git
and rework as needed for ExDoc formatting and linking./rebar3 as docs ex_doc --app rebar
-moduledoc false.
where appropriate)