mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
32 lines
1.6 KiB
Markdown
32 lines
1.6 KiB
Markdown
# Bundled Docs
|
|
|
|
In order to keep the structure of NoSQLBench modular enough to allow for easy extension by contributors, yet cohesive in
|
|
how it presents documentation and features to users, it is necessary to provide internal services which aggregate
|
|
content by subject matter into a consumable whole that can be used by the documentation system.
|
|
|
|
# MarkdownDocs Service
|
|
|
|
The primary markdown service that is meant to be consumed by the documetnation system is known simply as
|
|
|
|
MarkdownDocs
|
|
|
|
Static methods on this class will provide all of the markdown content in pre-baked and organized form. The markdown
|
|
service is responsible for reading all the raw markdown sources and organizing their content into a single cohesive
|
|
structure. MardownDocs finds all content that is provided by individual MarkdownProvider services, as described below.
|
|
|
|
All of the rules for how raw markdown content is to be combined are owned by the MarkdownDocs service.
|
|
|
|
# MarkdownProvider Service
|
|
|
|
The `MarkdownProvider` service is responsible for bundling the raw markdown for a path within a NoSQLBench module. Each
|
|
|
|
module that wishes to publish markdown docs to users must provide one or more MarkdownProvider services via SPI. This is
|
|
most easily done with a `@Service(MarkdownProvider.class)` annotation.
|
|
|
|
The MarkdownProvider service provides all of the individual markdown files it finds indirectly as
|
|
io.nosqlbench.nb.api.content.Content, which allows the internal file content to be read appropriately regardless of
|
|
whether it comes from a classpath resource stream, a file on disk, or even a dynamic source like function metadata.
|
|
|
|
|
|
|