#import #mdbook #embed #code #include #text-file

bin+lib mdbook-bookimport

Import code/text from other files into your mdbook - without the link rot

1 unstable release

0.1.1 Apr 3, 2019

#30 in #include

MIT/Apache

20KB
323 lines

mdbook-bookimport

Build status

Import code/text from other files into your mdbook - without the link rot.

Background / Initial Motivation

mdbook-bookimport started as an issue in mdbook #879.

At this time the default #include preprocessor in mdbook only supports importing smaller sections of a file by specifying line numbers - so if you're including pieces of files that are actively maintained/changed you end up forgetting to update the line numbers of your imports as your files change.

mdbook-bookimport allows you to import pieces of files based on text in the file - so that are you modify the file you continue to import the code that you expected to.

Quickstart

cargo install mdbook-bookimport
# In your book.toml
[preprocessor.bookimport]
<!-- In your markdown files -->

{{#bookimport ../path/to/file.foo@some-tag-name-here}}
// Some file named "file.foo"
fn main () {
  let not_imported = "This will NOT be imported!";

  // @book start some-tag-name-here

  // ...
  let imported = "This will be imported!"
  let also_imported = "Everyting between start/end gets imported."
  // ...

  // @book end some-tag-name-here
}

Full Guide

The mdbook-bookimport guide

API Documentation

API

To Test

./test.sh

See Also

License

Apache 2.0 / MIT

Dependencies

~14–26MB
~394K SLoC