we've been using the AsciiDoc pre-processor for quite a while now. However, it has had a few issues:
- it wasn't possible to process code samples that make use of a plugin (e.g. neo4j)
- it wasn't possible to execute console commands (e.g. :remote connect ...)
These issues have now been resolved! Neo4j samples, Hadoop samples, Gremlin Server samples, everything is now being evaluated by the pre-processor. This way we can ensure, that almost all the code samples in the TinkerPop3 docs are always up to date and working.
The bad news: pre-processing became lot slower.
The good news: we've added progress bars; and watching slow processes with a progress bar is fun (at least the first few times :))
daniel@cube /projects/apache/incubator-tinkerpop (master) $ bin/process-docs.sh
==========================
==========================
* hadoop-gremlin ... done
============================
============================
* source: /projects/apache/incubator-tinkerpop/docs/src/index.asciidoc
target: /projects/apache/incubator-tinkerpop/target/postprocess-asciidoc/index.asciidoc
progress: [====================================================================================================] 100%
* source: /projects/apache/incubator-tinkerpop/docs/src/preface.asciidoc
target: /projects/apache/incubator-tinkerpop/target/postprocess-asciidoc/preface.asciidoc
progress: [====================================================================================================] 100%
* source: /projects/apache/incubator-tinkerpop/docs/src/intro.asciidoc
target: /projects/apache/incubator-tinkerpop/target/postprocess-asciidoc/intro.asciidoc
progress: [====================================================================================================] 100%
* source: /projects/apache/incubator-tinkerpop/docs/src/the-graph.asciidoc
target: /projects/apache/incubator-tinkerpop/target/postprocess-asciidoc/the-graph.asciidoc
progress: [====================================================================================================] 100%
* source: /projects/apache/incubator-tinkerpop/docs/src/the-traversal.asciidoc
target: /projects/apache/incubator-tinkerpop/target/postprocess-asciidoc/the-traversal.asciidoc
progress: [====================================================================================================] 100%
* source: /projects/apache/incubator-tinkerpop/docs/src/the-graphcomputer.asciidoc
target: /projects/apache/incubator-tinkerpop/target/postprocess-asciidoc/the-graphcomputer.asciidoc
progress: [====================================================================================================] 100%
* source: /projects/apache/incubator-tinkerpop/docs/src/gremlin-applications.asciidoc
target: /projects/apache/incubator-tinkerpop/target/postprocess-asciidoc/gremlin-applications.asciidoc
progress: [====================================================================================================] 100%
* source: /projects/apache/incubator-tinkerpop/docs/src/implementations.asciidoc
target: /projects/apache/incubator-tinkerpop/target/postprocess-asciidoc/implementations.asciidoc
progress: [=====================================================> ] 53%
Anyway, in my opinion the slow processing is not really a big problem as it's only done for a new release or when new features were added. Moreover should the benefit of having accurate code samples in the docs be worth the few extra minutes.