Crates.io | mdbook-section-validator |
lib.rs | mdbook-section-validator |
version | 0.1.0 |
source | src |
created_at | 2021-05-21 05:00:30.131205 |
updated_at | 2021-05-21 05:00:30.131205 |
description | mdBook preprocessor for defining conditionally valid sections. |
homepage | https://github.com/younata/mdbook-section-validator |
repository | https://github.com/younata/mdbook-section-validator |
max_upload_size | |
id | 400215 |
size | 84,361 |
First, install the mdbook-section-validator
crate
cargo install mdbook-section-validator
Then, add the following line to your book.toml
file
[preprocessor.section-validator]
Finally, add some custom CSS styling to control how the section validation sections work, I use the following in personal-knowledge:
.validated-content {
background-color: var(--quote-bg);
border: 1px solid var(--quote-border);
padding: 0 16px;
}
Once done, you can now use !!!
at the beginning of lines to define sections to include only if the issues linked are still valid.
After the !!!
starting a conditional inclusion, you must include a comma-separated list of URLs to tickets.
If all the linked issues are still open, then the markdown in the section will be included. The section is either removed, or prepended with a note stating that the section is out of date.
# Chapter 1
!!!https://github.com/younata/mdbook-section-validator/issues/1,https://github.com/younata/mdbook-section-validator/issues/2
This is only rendered while issues 1 and 2 of younata/mdbook-section-validator are open. If 1 is closed, but not 2, then this is removed the next time mdbook renders.
!!!
This is always rendered.
The inner contents will be rendered as markdown when running mdbook build
or mdbook serve
as usual.
As noted, this defaults to removing sections that are no longer valid. You can configure that be overriding hide_invalid
to false.
You can configure the message to be shown by setting invalid_message
to any string. It will be rendered as markdown.
[preprocessor.section-validator]
hide_invalid = false
invalid_message = "Warning, this content is out of date and is included for historical reasons."