# Creating a central documentation repository / website, codox complications

**URL:** https://clojureverse.org/t/creating-a-central-documentation-repository-website-codox-complications/1287
**Category:** Community Building
**Created:** [December 31, 2017, 3:55pm UTC](https://clojureverse.org/t/creating-a-central-documentation-repository-website-codox-complications/1287 "2017-12-31T15:55:27Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![martinklepsch](https://clojureverse.org/user_avatar/clojureverse.org/martinklepsch/32/80_2.png) [@martinklepsch](https://clojureverse.org/u/martinklepsch)
#### Post date: [December 31, 2017, 4:40pm UTC](https://clojureverse.org/t/creating-a-central-documentation-repository-website-codox-complications/1287/2 "2017-12-31T16:40:59Z")

</div>

Awesome, that you took the time to look into this, it’s been on my mind since the meetup as well! 🙂

> [@olieidel](#):
>
> We can’t rely on the source code being in the jar file (or can we?), we therefore have to head over to the source repository as seen on clojars (mostly some GitHub link) and grab the source. Not all packages have GitHub links.

I think we can rely on it for 99% of packages. Most libraries don’t ship AOT compiled byte code but Clojure source code. For libraries (minority I assume) that don’t do this we could establish some ways they can work  
around this issue.

> [@olieidel](#):
>
> Dynamically load a package and its dependencies via pomegranate before generating the docs: May not work for some packages. How to unload packages before we start loading the next package for the next doc generation cycle? In playing around with it, I couldn’t get it to work but it could totally be caused by eating too many leftover christmas cookies…

Boot could be a useful companion in this adventure. It provides a convenient utility called [Pods](https://www.google.co.il/search?q=boot+pods&ie=utf-8&oe=utf-8&client=firefox-b-ab&gfe_rd=cr&dcr=0&ei=KRFJWuCEIsfO8geuoomAAg) in which we can load dependencies in an isolated manner. If we need a fresh environment we just use a fresh pod. We can also dynamically add files from jars to some directory that we create beforehand.

I think it is highly preferable to use jars as foundation for this kind of effort since not everyone may be properly tagging releases on Github or even link to their Github repo in their `pom.xml`.

> [@olieidel](#):
>
> We could not generate static html like all other doc sites do, but instead create a repository of “raw” codox maps which include all needed information (namespaces, functions, doc strings, lines, etc.). We could then archive these codox maps for each package version.

Having raw data is an amazing idea for editor integration and many other things. I’d expect something like this also to be a welcome addition to codox if it isn’t already present.

I’m in a bit of a rush right now but would love to collaborate on this kind of effort. I’ll try to whip up a basic example of using pods and copying jar files into some directory tomorrow or so.

---

_[View the full topic](https://clojureverse.org/t/creating-a-central-documentation-repository-website-codox-complications/1287)._
