#mdbook #preprocessor #file-content

app mdbook-shiftinclude

mdbook preprocessor for file inclusion with shift

1 unstable release

0.1.0 Mar 30, 2024

#1914 in Text processing

MPL-2.0 license

37KB
880 lines

mdbook-shiftinclude

A preprocessor for mdbook for including portions of files, but with the contents of the file shifted.

The {{#shiftinclude }} command extends the syntax of the normal {{#include }} command to include a shift indicator. This is followed by a colon, and then the normal include syntax follows.

  • A number, indicating the amount to shift.
    • A positive number shifts right by prepending that number of spaces to each line.
    • A negative number shifts left by removing that number of characters from the start of each line (regardless of whether they are spaces or not!).
  • auto, which indicates that any block of whitespace that is common to all (non-empty) lines in the included text will be removed.

So for an input file somefile.txt:

  Indent
     More Indent
  Back

The following outputs are possible:

  • {{#shiftinclude auto:somefile.txt} gives
    Indent
       More Indent
    Back
    
  • {{#shiftinclude 2:somefile.txt} gives
        Indent
           More Indent
        Back
    
  • {{#shiftinclude -2:somefile.txt} gives
    Indent
       More Indent
    Back
    
  • {{#shiftinclude -4:somefile.txt} gives
    dent
     More Indent
    ck
    

Installation

To use, install the tool

cargo install mdbook-shiftinclude

and add it as a preprocessor in book.toml:

[preprocessor.shiftinclude]

Dependencies

~13–24MB
~349K SLoC