Skip to content

jakzal/asciidoctor-git-include

Repository files navigation

AsciiDoctor Git includes extension

An AsciiDoctor extension that enables file includes from Git repositories. It only affects include directives for URIs beginning with git@.

The extension can be used to include code examples from specific revisions in a git repository.

Requirements

git command is available in PATH.

Installation

With Ruby Gems:

gem install asciidoctor-git-include

Usage

Command line

Load the extension:

asciidoctor -r asciidoctor-git-include [index.adoc]

Then, inside your AsciiDoc file, use an include statement like normal, pointing to an URI that begins with git@.

Supported attributes

  • repository - path to the Git repository (default: .)

  • revision - repository revision to use (default: HEAD)

  • lines - specify the lines to include (i.e. lines=2..5;10;12)

  • diff - include a patch for the given revision, or between two revisions (see examples)

Examples

Examples with actual rendered output can be found on https://jakzal.github.io/asciidoctor-git-include/. The source is taken from examples/index.adoc.

Basic

Save this one-line Asciidoc file as README.adoc:

include::git@README.adoc[]

Then run

asciidoctor -r asciidoctor-git-include README.adoc

and open README.html in your browser.

Changing the repository and revision

include::git@README.adoc[repository=/path/to/repository,revision=dbe7eb05972d24eb153495b543fe5ba0b362b0b1]

Changing the branch

include::git@README.adoc[revision=develop]

Changing the path

Paths within the repository work as usual:

include::git@path/within/repo/file.rb[]

Specifying lines to include

include::git@README.adoc[lines=2..5;10;12]

Including a patch for a specific revision

To generate a patch for changes introduced in a specific revision (b015e8dd):

include::git@path/within/repo/file.rb[revision=b015e8dd,diff]

Including a patch for specific revisions

To generate a patch for changes between two revisions (b015e8dd and b015e8dd):

include::git@path/within/repo/file.rb[revision=b015e8dd,diff=0245ac72]