The Neo4j Manual is versioned and released together with the product. An overview of parts of the documentation workflow is found in the manual itself, in the chapter Writing Neo4j Documentation. We use several different approaches to verify our documentation by tests running in CI when the product is built. Testing as much as possible of examples especially makes sense, as we also provide ways to interactively play with Neo4j, see for example Create nodes and relationships.
The documentation toolchain also makes sure that all cross references have valid targets.
The core tools for our documentation are AsciiDoc and DocBook. For AsciiDoc, we currently use both the original Python implementation and the new Ruby implementation named Asciidoctor.
You can search the Neo4j repo for classes named *DocTest
and *DocIT
.
-
The Cypher reference: community/cypher/cypher-docs.
-
CypherDoc, a Java tool reading the GraphGist format, with simple assertions added, is located at manual/cypherdoc. We’re feeding it content from manual/src/tutorials/modeling and manual/src/tutorials/cypher.
-
For the REST API, look for
*DocTest
and*DocIT
in here: community/server/src/test/java/org/neo4j/server. The documentation tests are annotation-driven, and also extracts the contents from the JavaDoc comments. -
Server plugin examples with tests are at community/server-examples.
-
For using Neo4j in embedded mode, there’s this project: community/embedded-examples.
-
The
ShellDocTest
inside of community/shell/src/test/java/org/neo4j/shell runs actual neo4j-shell sessions, generating documentation and checking the output. -
The Cypher Refcard is backed by code over here: https://github.com/neo4j/cypher-refcard
-
To render database contents in visualizations we generate
.dot
files using the neo4j-graphviz tool.