I’m please to announce the initial release of Documenter.jl — a documentation generator for Julia.
The package docs are here.
The package is still a work-in-progress, but now has sufficient features to make a stable release worth while. Major breaking changes should hopefully be few and far between from now on.
If you have already been making use of the package, which quite a few of the community have been, then I’d would like to extend my thanks to you for helping file bug reports, feature requests, and pull requests.
Please do upgrade your .travis.yml configuration to reflect the fact that Documenter is now tagged and available from METADATA. All that should be needed is to replace either
Pkg.clone("https://github.com/MichaelHatherly/Documenter.jl")
or, more recently,
Pkg.clone("https://github.com/JuliaDocs/Documenter.jl")
with
Pkg.add("Documenter")
and your build scripts should work fine. Any problems you happen to run into should, as always, be reported on the GitHub issue tracker. master will be more unstable from this point on.
If you do have a publicly available package that is making use of Documenter, then please do add a link to the Examples page if you’d like.
Finally: I’d like to thank one of our Google Summer of Code students, Morten Piibeleht, who is developing some great new features for the package over the summer.
— Mike
You’ll need to use mkdocs like Chris mentions. Install it using pip install mkdocs, run julia docs/make.jl to generate the markdown files, and then run mkdocs serve (or mkdocs build). That is an unfortunately long route to get to the final product, but work is currently being done to remove mkdocs from the process and use a pure Julia solution instead, which is the main aim of the summer of code work being done.
— Mike
Thanks for doing that write up Chris. I’ve not forgotten about the docs from tests issue :) it will get implemented sooner or later I’m sure, either by me or when someone else needs it. Definitely a worthwhile feature to have I think.
— Mike
I don’t want to be rude
No worries, I’m not taking your criticism at rudeness.
It has two lines on installation, one line on project status, and two sentences on “contributing and questions”.
You’ve missed out the section called “Documentation” there. Perhaps you’re
viewing a cached version of the README that isn’t showing it for some reason.
Not sure why that would be, but there definitely is a section between
“Installation” and “Project Status” linking directly to the docs. Could you
post a screenshot of what the README look like to you?
the README file of a documentation package should have at least as much documentation as the README files of other non-documentation Julia packages
Adding additional duplicated documentation to the README when there is already
a substantial amount of documentation elsewhere isn’t really worth doing in my
view — especially when the complete docs are a single click away. Note that
there is an open issue for automatically generating the README
from files in docs/src, which would go some way to resolve the duplication
problem.
you should state what markup language you are using.
That is mentioned directly above the feature list in the summary line:
A package for building documentation from docstrings and markdown files.
so I didn’t feel the need to duplicate that again in the feature list.
Maybe add some examples showing the use of Markdown.
There’s already a number of examples that illustrate the syntax in the “Guide”
page and “Syntax” page.
PRs to improve the docs are most welcome since it’s always difficult to read
the docs from the point-of-view of a new user. Thanks for taking the time to
have a look at the package Daniel.
— Mike
It has two lines on installation, one line on project status, and two sentences on “contributing and questions”.
You’ve missed out the section called “Documentation” there. Perhaps you’re
viewing a cached version of the README that isn’t showing it for some reason.
--------------------------# Documentation Documentation is built automatically with help from *MkDocs* on *Travis CI* and hosted by *GitHub Pages*. [![][docs-latest-img]][docs-latest-url] [![][docs-stable-img]][docs-stable-url] ## Project Status
--------------------------
the README file of a documentation package should have at least as much documentation as the README files of other non-documentation Julia packages
Adding additional duplicated documentation to the README when there is already
a substantial amount of documentation elsewhere isn’t really worth doing in my
view
you should state what markup language you are using.
That is mentioned directly above the feature list in the summary line:
A package for building documentation from docstrings and markdown files.
so I didn’t feel the need to duplicate that again in the feature list.
Maybe add some examples showing the use of Markdown.
There’s already a number of examples that illustrate the syntax in the “Guide”
page and “Syntax” page.
PRs to improve the docs are most welcome since it’s always difficult to read
the docs from the point-of-view of a new user. Thanks for taking the time to
have a look at the package Daniel.
Here is the entire section from the raw file
“Raw file” is the key here: those are image links below the sentence. Look at
the rendered version on the GitHub repo rather and you’ll be able to see the
docs badges correctly. That’s the most common way people will be browsing for
packages. I can try make those more obvious/informative in their raw form though.
without a link in the README
There are links in the README.
it is standard for Julia packages to have a short introduction and documentation in the README.
I’m aware of what some packages chose to do. I have chosen to provide very
clear links to the documentation instead. I would say that part of the reason
that packages make use of the README for their documentation is that there
have not been many other viable options. To me a README should provide more
developer-orientated details of a project, that’s just my view though :)
I saw that line too.
I GUESSED that maybe Markdown
If you saw that line then “guessed” can’t really be the right word.
I’ll add a more clear point in the introduction though.
use markdown syntax inside docstrings
That is covered by the main Julia manual. A link could be provided to that, but
generally the route potential users should be taking is to read the Julia
manual first and then go looking for packages that they need.
If I didn’t already know some Markdown
Yes, a link could be provided to resources that teach markdown. I’d be fine
with that, but Documenter’s manual is not the place to teach markdown syntax
from scratch.
I think it’s great that now there is a documentation package for Julia and I’m very glad you wrote one. So thank you for that. If I get the time, I will make a PR.
Thanks, and I’d also like to thank you for all your input on the docsystem
discussions in #3988 and elsewhere.
— Mike
badgers and non-badgers
:D
In fact, I like the setup: all the badges along the top and prose afterwards.
Yes, that’s a good compromise. Happy to make a change like that.
— Mike
Here is the entire section from the raw file
“Raw file” is the key here: those are image links below the sentence. Look at
the rendered version on the GitHub repo rather and you’ll be able to see the
docs badges correctly. That’s the most common way people will be browsing for
packages. I can try make those more obvious/informative in their raw form though.
without a link in the README
There are links in the README.
it is standard for Julia packages to have a short introduction and documentation in the README.
I’m aware of what some packages chose to do. I have chosen to provide very
clear links to the documentation instead.
I would say that part of the reason
that packages make use of the README for their documentation is that there
have not been many other viable options. To me a README should provide more
developer-orientated details of a project, that’s just my view though :)
If you saw that line then “guessed” can’t really be the right word.
I’ll add a more clear point in the introduction though.
use markdown syntax inside docstrings
That is covered by the main Julia manual.
A link could be provided to that, but
generally the route potential users should be taking is to read the Julia
manual first and then go looking for packages that they need.
If I didn’t already know some Markdown
Yes, a link could be provided to resources that teach markdown. I’d be fine
with that, but Documenter’s manual is not the place to teach markdown syntax
from scratch.
It honestly did not cross my mind that those pictures were links.
To me they shout click me, but I really do understand the issue you’re
highlighting Daniel. I’m busy updating the page to add some real links.
Thank you for pointing it out, much appreciated! I think we can safely
wrap up that part of the conversation.
Blaming the user all the time is not going to lead to good documentation. I am giving you user feedback.
That’s not my intention, apologies if that came across that way. I’ve simply
written the docs for the package with a set of assumptions in my mind about
what knowledge is already available elsewhere. I’ll definitely make use of your
feedback and improve/clarify the parts the need it. Thank you.
This is bad documentation design. And I have been reading Julia documentation for years. I have never heard of Julia having a built-in Markdown processor.
I’ll be adding a link to the relevant docs in the Julia manual. The markdown parser
has been part of Base since 0.4 was released and is mentioned in the Documentation
section of the manual. If things could be clearer in that section then please open
an issue or PR so that that can be fixed.
It SHOULD teach the basics of Markdown.
I believe that we are probably just going to disagree one this one. A link to
the relevant information is fine for something like this. I wouldn’t expect
every single thing that I read to begin from first principles. That’s just how
I prefer to read things, though that’s probably just a personal thing. I’d be
fine with a PR to add a basic syntax tutorial if you’d like.
what flavour of Markdown
That’s discussed in the main Julia docs.
If I’ve still not addressed things enough, could a ask you to open some issues
in the Documenter.jl repo please? A long email thread is the best place for
these kind of important issues to get lost in and never get resolved properly.
Even if it’s just a couple of one-liner issues that would make fixing these
much easier for me. Thanks.
Once again, thank you for taking the time to discuss this. I know your time,
just like my own, is limited and could be being spent on other things.
— Mike
Thanks for the feedback Kristoffer. Glad you’ve found the package useful!
Re: assuming certain knowledge. I think that for a very new package
such as this it’s definitely alright to make a fair number of assumptions. Going
forward I’ll be looking to expand those bits that have, until now, been glossed over and
start to make things more beginner-friendly, to a certain extent.
— Mike