AsciidoctorJ tabbed code extension

An AsciidoctorJ extension for rendering code on multiple tabs.

Лицензия

Лицензия

Группа

Группа

com.bmuschko
Идентификатор

Идентификатор

asciidoctorj-tabbed-code-extension
Последняя версия

Последняя версия

0.3
Дата

Дата

Тип

Тип

jar
Описание

Описание

AsciidoctorJ tabbed code extension
An AsciidoctorJ extension for rendering code on multiple tabs.
Ссылка на сайт

Ссылка на сайт

https://github.com/bmuschko/asciidoctorj-tabbed-code-extension
Система контроля версий

Система контроля версий

https://github.com/bmuschko/asciidoctorj-tabbed-code-extension

Скачать asciidoctorj-tabbed-code-extension

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/com.bmuschko/asciidoctorj-tabbed-code-extension/ -->
<dependency>
    <groupId>com.bmuschko</groupId>
    <artifactId>asciidoctorj-tabbed-code-extension</artifactId>
    <version>0.3</version>
</dependency>
// https://jarcasting.com/artifacts/com.bmuschko/asciidoctorj-tabbed-code-extension/
implementation 'com.bmuschko:asciidoctorj-tabbed-code-extension:0.3'
// https://jarcasting.com/artifacts/com.bmuschko/asciidoctorj-tabbed-code-extension/
implementation ("com.bmuschko:asciidoctorj-tabbed-code-extension:0.3")
'com.bmuschko:asciidoctorj-tabbed-code-extension:jar:0.3'
<dependency org="com.bmuschko" name="asciidoctorj-tabbed-code-extension" rev="0.3">
  <artifact name="asciidoctorj-tabbed-code-extension" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.bmuschko', module='asciidoctorj-tabbed-code-extension', version='0.3')
)
libraryDependencies += "com.bmuschko" % "asciidoctorj-tabbed-code-extension" % "0.3"
[com.bmuschko/asciidoctorj-tabbed-code-extension "0.3"]

Зависимости

Библиотека не имеет зависимостей. Это самодостаточное приложение, которое не зависит ни от каких других библиотек.

Модули Проекта

Данный проект не имеет модулей.

AsciidoctorJ tabbed code extension Build Status

This AsciidoctorJ extension can render code on multiple tabs. The functionality is particularly useful if you want to demonstrate a code example in different languages or tools, as shown in the following two images.

Groovy tab
Kotlin tab

Using the extension

All you need to do to use the extension is to add it to the dependency from Maven Central. The following two examples demonstrate the use of version 0.3 from Maven and Gradle.

pom.xml
<dependency>
    <groupId>com.bmuschko</groupId>
    <artifactId>asciidoctorj-tabbed-code-extension</artifactId>
    <version>0.3</version>
    <scope>runtime</scope>
</dependency>
build.gradle.kts
dependencies {
    runtimeOnly("com.bmuschko:asciidoctorj-tabbed-code-extension:0.3")
}
Important
This extension is based on AsciidoctorJ version 2.0.0. Make sure that the consuming project uses that exact version (or greater) to avoid incompatibilities. If you need a version compatible with an older version of AsciidoctorJ (down to 1.6.0-RC1) then use version 0.2 of this extension.

To use the extension in Asciidoc provide code blocks with different roles. Specify the primary role for the code block that should appear in the first, topmost tab to the left and use the secondary role for all other tabs. The extension uses the title of the code block for rendering the tab label.

[source,groovy,indent=0,subs="verbatim,attributes",role="primary"]
.Groovy
----
docker {
    registryCredentials {
        url = 'https://gcr.io'
        username = '_json_key'
        password = file('keyfile.json').text
    }
}
----

[source,kotlin,indent=0,subs="verbatim,attributes",role="secondary"]
.Kotlin
----
docker {
    registryCredentials {
        url.set("https://gcr.io")
        username.set("_json_key")
        password.set(file("keyfile.json").readText())
    }
}
----

Configuring the extension

Under the hood, the extension uses the JavaScript library Zepto.js. Currently, the JavaScript library is not configurable.

By default, the extension provides a JavaScript and CSS file that already takes care of the runtime behavior and styling. The runtime behavior and styling is configurable. The table below shows the attributes that allow you to configure the extension.

Attribute

Default Value

Description

tabbed-code-js-path

/codeBlockSwitch.js

The JavaScript controlling the behavior read from the runtime classpath.

tabbed-code-css-path

/codeBlockSwitch.css

The CSS controlling the styling read from the runtime classpath.

The following example shows how to use the CSS attributes to provide custom styling in a Gradle build using the Kotlin DSL.

build.gradle.kts
tasks.named<AsciidoctorTask>("asciidoctor") {
    sourceDir = file("src/docs/asciidoc")
    sources(delegateClosureOf<PatternSet> {
        include("index.adoc")
    })

    attributes(
        mapOf(
            "toc" to "left",
            "source-highlighter" to "prettify",
            "icons" to "font",
            "numbered" to "",
            "idprefix" to "",
            "docinfo1" to "true",
            "sectanchors" to "true",
            "tabbed-code-css-path" to "/customTabbedCode.css"
        )
    )
}

Версии библиотеки

Версия
0.3