About
CDS (Clojure Documentation Site) is a community documentation project for the Clojure programming language. It is not affiliated with
Clojure/core
, does not require going through the Clojure Contributor Agreement, and is developed on GitHub.
Rationale
The rationale is explained in more detail in the announcement blog post.
History
CDS was started in early October, 2012, by several active members of the Clojure community due to their dissatisfaction with the state of documentation and documentation contribution process (that involved mailing Clojure Contributor Agreement in paper).
Goals
The goal is to produce quality technical documentation for Clojure users and potential adopters with various expertise levels.
CDS strives to cover all aspects of Clojure: from tutorials and language guides to overview of the ecosystem, how libraries are developed and published, topics operations engineers will be interested in, JVM ecosystem tools and so on.
Adopting a language always takes more than just reading a book or a few tutorials about language features. Understanding design goals, the ecosystem and operations is just as important. CDS will try to address this.
What CDS is Not
What's not here:
- Cheatsheets. The official Clojure cheatsheet is very good. There is also an unofficial ClojureScript cheatsheet available for download and contribution.
- API reference docs. Those can currently be found (with examples) at Clojuredocs.
Clojuredocs needs a lot of work and redesign (as in, the way it works) which will take a while. CDS is not concerned with providing the API reference; only tutorials, guides, and linking to other relevant resources.
Structure
CDS is structured as a number of guides. They broadly fall into 4 categories:
Tutorials
These guides are for complete newcomers and should include a lot of hand holding. They don't assume any previous familiarity with Clojure, the JVM, the JVM tool ecosystem, functional programming, immutability, and so on.
Target audience: newcomers to the language.
Language guides
These guides are more in-depth, focused on various aspects of the language and interoperability. Examples of such guides include:
- Sequences
- Interoperability
- Reference types
- Laziness
- Macros and compilation
Target audience: from developers who already have some familiarity with the language to those who have been using it for a while.
Tools & Ecosystem guides
These guides cover key Clojure ecosystem tools such as Leiningen, Clojars, REPLy, nREPL, Emacs clojure-mode, VimClojure, Counterclockwise, La Clojure, etc. It also covers important ecosystem projects that are not tools: books, ClojureSphere, ClojureWerkz, Flatland and so on.
Target audience: all developers using or interested in the Clojure programming language.
Cookbooks
Concise Clojure example code, categorized by subject.
Mailing List
CDS currently uses Clojure mailing list for discussions. Feel free to join it and ask any questions you may have.
News & Announcements
News and announcements are posted primarily on the Clojurians Slack #news-and-articles
channel.
Reporting Issues
If you find a mistake, poor grammar, an important topic not covered, or an outdated example, please file an issue on Github.
Contributing
CDS uses Cryogen. All tutorials and guides are written in Markdown.
The toolchain and setup process are described in the README.
To submit changes, create a branch and make your changes on it. Once you are done with your changes and all tests pass, submit a pull request on GitHub.