diff --git a/Dockerfile b/Dockerfile index 410f228..d82cec9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,7 @@ ARG CARGO_TARGET ARG MDBOOK_MERMAID_VERSION ARG MDBOOK_TOC_VERSION ARG MDBOOK_ADMONISH_VERSION +ARG MDBOOK_EXTERNAL_LINKS_VERSION ENV CARGO_TARGET_DIR="/usr/local/cargo-target" @@ -33,6 +34,9 @@ RUN --mount=type=cache,sharing=locked,target=/usr/local/cargo-target \ RUN --mount=type=cache,sharing=locked,target=/usr/local/cargo-target \ cargo install mdbook-admonish --version "${MDBOOK_ADMONISH_VERSION}" --target "${CARGO_TARGET}" && \ strip "$(which mdbook-admonish)" +RUN --mount=type=cache,sharing=locked,target=/usr/local/cargo-target \ + cargo install mdbook-external-links --version "${MDBOOK_EXTERNAL_LINKS_VERSION}" --target "${CARGO_TARGET}" && \ + strip "$(which mdbook-external-links)" FROM ${BASE_IMAGE} @@ -41,6 +45,7 @@ COPY --from=builder /usr/local/cargo/bin/mdbook /usr/bin/mdbook COPY --from=builder /usr/local/cargo/bin/mdbook-mermaid /usr/bin/mdbook-mermaid COPY --from=builder /usr/local/cargo/bin/mdbook-toc /usr/bin/mdbook-toc COPY --from=builder /usr/local/cargo/bin/mdbook-admonish /usr/bin/mdbook-admonish +COPY --from=builder /usr/local/cargo/bin/mdbook-external-links /usr/bin/mdbook-external-links WORKDIR /book ENTRYPOINT [ "/usr/bin/mdbook" ] diff --git a/Makefile b/Makefile index 4ef2608..84af87e 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,7 @@ DOCKER_VERSION := $(shell cat ./deps/Cargo.toml | grep 'mdbook = ' | awk '{print MDBOOK_MERMAID_VERSION := $(shell cat ./deps/Cargo.toml | grep 'mdbook-mermaid = ' | awk '{print $$3}' | tr -d '"') MDBOOK_TOC_VERSION := $(shell cat ./deps/Cargo.toml | grep 'mdbook-toc = ' | awk '{print $$3}' | tr -d '"') MDBOOK_ADMONISH_VERSION := $(shell cat ./deps/Cargo.toml | grep 'mdbook-admonish = ' | awk '{print $$3}' | tr -d '"') +MDBOOK_EXTERNAL_LINKS_VERSION := $(shell cat ./deps/Cargo.toml | grep 'mdbook-external-links = ' | awk '{print $$3}' | tr -d '"') DOCKER_TAG := v${DOCKER_VERSION} GITHUB_REF_NAME ?= local DOCKER_SCOPE := mdbook-${GITHUB_REF_NAME} diff --git a/deps/Cargo.lock b/deps/Cargo.lock index 0a7ca76..ecc3fc9 100644 --- a/deps/Cargo.lock +++ b/deps/Cargo.lock @@ -374,6 +374,7 @@ version = "0.1.0" dependencies = [ "mdbook", "mdbook-admonish", + "mdbook-external-links", "mdbook-mermaid", "mdbook-toc", ] @@ -1114,6 +1115,21 @@ dependencies = [ "toml_edit 0.22.14", ] +[[package]] +name = "mdbook-external-links" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb30ec067291a0356ced10184d57384a67939eae837f653bba36b2d15ca61d6" +dependencies = [ + "anyhow", + "clap", + "mdbook", + "pulldown-cmark 0.9.6", + "pulldown-cmark-to-cmark", + "semver", + "serde_json", +] + [[package]] name = "mdbook-mermaid" version = "0.13.0" @@ -1524,6 +1540,15 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae" +[[package]] +name = "pulldown-cmark-to-cmark" +version = "10.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0194e6e1966c23cc5fd988714f85b18d548d773e81965413555d96569931833d" +dependencies = [ + "pulldown-cmark 0.9.6", +] + [[package]] name = "quote" version = "1.0.36" diff --git a/deps/Cargo.toml b/deps/Cargo.toml index 49c7811..f0ac62c 100644 --- a/deps/Cargo.toml +++ b/deps/Cargo.toml @@ -9,3 +9,4 @@ mdbook = "0.4.40" mdbook-admonish = "1.17.0" mdbook-mermaid = "0.13.0" mdbook-toc = "0.14.2" +mdbook-external-links = "0.1.1" diff --git a/example/book.toml b/example/book.toml index f9d6113..51fa9e4 100644 --- a/example/book.toml +++ b/example/book.toml @@ -16,6 +16,8 @@ renderer = ["html"] command = "mdbook-admonish" assets_version = "3.0.2" # do not edit: managed by `mdbook-admonish install` +[preprocessor.external-links] + [output.html] additional-js = ["mermaid.min.js", "mermaid-init.js"] additional-css = ["mdbook-admonish.css", "/book/mdbook-admonish.css"] diff --git a/example/src/SUMMARY.md b/example/src/SUMMARY.md index ae39e3b..c2ba674 100644 --- a/example/src/SUMMARY.md +++ b/example/src/SUMMARY.md @@ -4,3 +4,4 @@ - [mdbook-mermaid](./mdbook-mermaid.md) - [mdbook-toc](./mdbook-toc.md) - [mdbook-admonish](./mdbook-admonish.md) +- [mdbook-external-links](./mdbook-external-links.md) diff --git a/example/src/mdbook-external-links.md b/example/src/mdbook-external-links.md new file mode 100644 index 0000000..29c50bd --- /dev/null +++ b/example/src/mdbook-external-links.md @@ -0,0 +1,20 @@ +# mdbook-toc + +[jonahgoldwastaken/mdbook-external-links: Open external links inside your mdBooks in a different tab.](https://github.com/jonahgoldwastaken/mdbook-external-links) + +> Note: Any link starting with http(s) is considered "external" + +## Installation + +`book.toml` + +```toml +[preprocessor.external-links] +``` + + +## Example + +```md +[Open IANA's example domain in a new tab](https://example.com) +```