Cljdoc alpha

I was just curious, as I know some projects that I use have documentation is separate repositories, e.g keechma - https://github.com/keechma/keechma-docs, https://github.com/shadow-cljs/shadow-cljs.github.io.

Was just wondering whether it would be possible to add projects like that without having to change the current documentation websites/processes.

Got it, thanks! :slightly_smiling_face: It’s technically possible to enable this kind of thing but one thing that works fairly well when the docs are stored with the source is linking Git revisions to Maven/Clojars releases. This allows us to show documentation appropriate for a given version instead of just showing the latest (possibly with API docs that conflict this non-API documentation).

While possible this kind of linking would become more tricky when done across multiple repos.

I hope this makes sense! A related discussion also came up in a GitHub issue (there are situations where you want to update articles after a release has been cut).

1 Like

Well done. Is there a canonical way to link to Cljdoc from a project repo, like a badge or something? At the moment I’m using a direct link.

1 Like

Not yet but definitely intending to have this kind of thing. In the meantime, maybe this shields.io badge is a good start?

https://img.shields.io/badge/cljdoc-1.0.0-blue.svg
2 Likes

Looks great in blue https://github.com/l3nz/cli-matic

1 Like

This is so awesome! A minor nitpick though - the embedded links (in README.md) are probably not rendered correctly, e.g. here: https://cljdoc.xyz/d/preflex/preflex/0.4.0/doc/readme/

Shantanu

You’re right, sorry I was behind a proxy that weirdly doesn’t accept that connection and isn’t clear about it :sweat_smile:

The link isn’t rendered correctly because there is no tag in the corresponding git repo for version 0.4.0.

We could fall back to master for this case or simply throw an error. Will look into it. Thanks for bringing this up and glad to hear this is useful to you :raised_hands:

1 Like

This is great.

What I miss is a link somewhere to return to the root of the website (for example from https://cljdoc.xyz/d/reagent/reagent/0.8.1/doc/readme/ we need a link to go back to https://cljdoc.xyz)

Fixed, the “cljdoc alpha” badge now links back to the homepage:

1 Like

Just deployed some code that adds source-links to projects that are linked to GitHub properly (git tag or sha in pom.xml). Unfortunately the change requires a rebuild of documentation to take effect so it won’t be available for all projects immediately.

See it in action here: https://cljdoc.xyz/d/reagent/reagent/0.8.1/api/reagent.core
And note that all links are tied to a specific git revision, not simply master. :slight_smile:

1 Like

Fantastic! Works really well

Some features shipped recently:

  • Build logs: overview & individual
  • Articles now have an “Edit on GitHub” link at the end of the page (example)
  • If you properly specify your SCM url, we show links to source for each var.
    These links are tied to the specific Git revision for the given version (example)
  • Support for -SNAPSHOT releases
  • Lots of bugs introduced & fixed :sweat_smile:

If you would like to contribute, there are several issues tagged as “Good First Issue”.

If you’d like to contribute but none of these tickle your fancy… join #cljdoc on Slack and say hi! :slight_smile:

There’s also a couple of larger things to think about: data model + storage & coming up with innovative twists on documentation that make it more useful. (Think emphasizing well documented vars/namespaces, examples, etc.)

I’ll personally focus on two things:

  • Tracking releases on Clojars. In order to build docs for every release on Clojars we need to know when new releases are published. Clojars doesn’t have a datafeed for this and I’ll try to either contribute that to the Clojars API or work with their search API if it turns out sufficient.
  • Provide offline bundles. I’m in contact with the creator of Dash (my favorite documentation browser) and it seems that we might get to integrate cljdoc sooner rather than later. As far as I understand this also means cljdoc docsets will be available for Zeal - a cross platform OSS alternative.

See you around :wave:

7 Likes

Just added the :scm key in Leiningen and source links work great :slight_smile:

cljdoc now ships it’s own badge endpoint, the gist is:

Here’s an example for re-frame:

[![](https://cljdoc.xyz/badge/re-frame)](https://cljdoc.xyz/jump/release/re-frame)

If you end up adding the badge to your projects please post it here, would love to see it in the wild :slightly_smiling_face:

Since a few days we’re also auto-building documentation for releases as they are published to Clojars, it’s not instant (yet) but they’ll get there eventually.

If you have any feedback/ideas/thoughts please tell me here or in this GitHub issue.

2 Likes

Looks great on https://github.com/l3nz/cli-matic/ - it kicked off a docs build automatically, and it completed as expected.

1 Like

@martinklepsch Not sure if anything changed, but today’s doc build is horribly broken https://cljdoc.xyz/d/cli-matic/cli-matic/0.1.14

Interesting, thanks for bringing this up, I’ll take a look later today.

I think the issue is resolved. The cause was probably that when the release was pushed to Clojars and the build got triggered you didn’t yet push the respective commit (referenced in pom) to GitHub. This issue occurs sometimes, I think for the near future I’ll introduce a minor delay (10min) before starting the build to give people enough time to push their commits as well.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.