rules_rust_mdbook
Bazel rules for mdBook.
Rules
Setup
bazel_dep(name = "rules_rust_mdbook", version = "{SEE_RELEASE_NOTES}")
mdbook
load("@rules_rust_mdbook//:defs.bzl", "mdbook")
mdbook(name, srcs, book, plugins)
Rules to create book from markdown files using mdBook.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| srcs | All inputs to the book. | List of labels | optional | [] |
| book | The book.toml file. | Label | required | |
| plugins | Executables to inject into PATH for use in preprocessor commands. | List of labels | optional | [] |
mdbook_server
load("@rules_rust_mdbook//:defs.bzl", "mdbook_server")
mdbook_server(name, book, hostname, port)
Spawn an mdbook server for a given mdbook target.
The server stages every input (including generated sources) into an isolated working directory before invoking mdbook serve, so the running book always reflects the bazel-built sources rather than the workspace checkout.
For live-reload during development, add tags = ["ibazel_notify_changes"] and invoke with ibazel:
mdbook_server(
name = "book_server",
book = ":book",
tags = ["ibazel_notify_changes"],
)
ibazel run //path/to:book_server
ibazel will rebuild on source changes and signal the running server via stdin; the server re-stages the freshly built inputs and mdbook serve reloads any connected browsers.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| book | The mdbook target to serve. | Label | required | |
| hostname | The default hostname to use (Can be overridden on the command line). | String | optional | "localhost" |
| port | The default port to use (Can be overridden on the command line). | String | optional | "3000" |
mdbook_toolchain
load("@rules_rust_mdbook//:defs.bzl", "mdbook_toolchain")
mdbook_toolchain(name, mdbook, plugins)
A mdBook toolchain.
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| mdbook | A mdBook binary. | Label | required | |
| plugins | Executables to inject into PATH for use in preprocessor commands. | List of labels | optional | [] |