Skip to content
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

Declarative Documenter configuration #1350

Open
c42f opened this issue Jun 23, 2020 · 4 comments
Open

Declarative Documenter configuration #1350

c42f opened this issue Jun 23, 2020 · 4 comments

Comments

@c42f
Copy link

c42f commented Jun 23, 2020

It would be great to be able to introspect and control the documentation generation process from code outside the package itself.

It would seem that a good way to do this is to have declarative configuration in a script, as mentioned by @davidanthoff in #1087 (comment)

I think that would also imply moving away from this model of having a make.jl script that does different things depending on the env it is run, but instead either have a more declarative config file or something like docs/docconfig.jl that only populates some data structures about the structure of the docs, but doesn't actually trigger anything like a build or deployment.

I feel the ecosystem is fairly well set up for this, as the Documentation configuration for simple package documentation builds is already largely declarative.

@tkf
Copy link
Contributor

tkf commented Jun 26, 2020

👍 It'd be great to move to more declarative API. Or maybe even just a function-based API JuliaDocs/DocumentationGenerator.jl#142 so that DocumentationGenerator.jl can be documentation framework-agnostic (e.g., maybe you'd want to use Franklin.jl instead).

@MichaelHatherly
Copy link
Member

Would definitely be good to move in this direction. I've been going through some possible options in CommonMark.jl for declarative configuration of parsing and rendering that would hopefully just fit into the ecosystem; tying this all together, whether it be Franklin, PkgPages, Documenter, Literate, Weave, or any other option would be ideal (though maybe a little too hopeful). Do we want to just piggyback off of Project.toml files and add metadata there such as

[docs]
# some docs-specific config...

or have another config file for this? For anyone familiar with Pkg, are there any issues related to adding custom data to Project.toml that would come back to bite us?

@KristofferC
Copy link
Member

For anyone familiar with Pkg, are there any issues related to adding custom data to Project.toml that would come back to bite us?

Not really, unless Pkg would want to use the exact same key but I don't think we would want to use [docs] for anything in Pkg, especially not if Documenter itself starts using it. Although, perhaps it makes sense to have its own file in the docs folder.

@davidanthoff
Copy link
Contributor

Just another upvote for this. I've been thinking a bit about integrating docs properly into the VS Code extension (julia-vscode/julia-vscode#1550), but having something like this issue is kind of a prerequisite for that, I think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants