asciidoctor-wasm

v0.2023.2
## Overview

Asciidoctor WASM

Overview

This module provides an interface for converting Asciidoctor content to various formats using WebAssembly. It supports conversion to html5, docbook5, and manpage backends, and allows for customization through various options. The conversion is powered by Ruby's Asciidoctor library running in a WebAssembly (WASM) environment.

Playground

You can try out the Asciidoctor WASM in the Playground.

Installation

Ensure you have Node.js installed, then install the necessary dependencies:

npm install asciidoctor-wasm

Usage

Importing the Module

You can import the necessary functions and constants from the module:

// Node
import { Asciidoctor, wasmURL } from "asciidoctor-wasm/dist/node.js";
// Browser or Deno
import { Asciidoctor, wasmURL } from "asciidoctor-wasm/dist/browser.js";

Initializing the Converter

From a WebAssembly Module

To initialize the Asciidoctor converter from a WebAssembly module:

const wasmURL = import.meta.resolve('asciidoctor-wasm/dist/asciidoctor.wasm');
const module = await WebAssembly.compileStreaming(fetch(wasmURL));
const asciidoctor = await Asciidoctor.initFromModule(module);

From a WebAssembly URL

To initialize the Asciidoctor converter from a WebAssembly binary located at a URL:

const wasmURL = import.meta.resolve('asciidoctor-wasm/dist/asciidoctor.wasm');
const asciidoctor = await Asciidoctor.initFromURL(wasmURL);

From a WebAssembly Path

To initialize the Asciidoctor converter from a WebAssembly binary located at a path:

import {fileURLToPath} from 'node:url';
const wasmURL = import.meta.resolve('asciidoctor-wasm/dist/asciidoctor.wasm');
const wasmPath = fileURLToPath(wasmURL);
const asciidoctor = await Asciidoctor.initFromPath(wasmPath);

Converting Asciidoctor Content

Once the converter is initialized, you can use it to convert Asciidoctor content:

const asciidoctorContent = "= Asciidoctor\nDoc Writer\n\nHello, Asciidoctor!";
const options: AsciidoctorOptions = {
  backend: "html5",
  doctype: "article",
  standalone: true,
};

const convertedContent = await asciidoctor.convert(asciidoctorContent, options);
console.log(convertedContent);

Versioning

This module follows the versioning of the Asciidoctor library it is based on.

  • 0.<asciidoctor>.<asciidoctor-wasm>
    • <asciidoctor>: Asciidoctor version; e.g., 2023 is based on Asciidoctor 2.0.23.
    • <asciidoctor-wasm>: Asciidoctor WebAssembly module version.

License

WASM binary contains a copy of several OSSs as follows:

If you notice the missing license information, please let us know.

This project is licensed under the MIT License. See the LICENSE file for details.

Metadata

  • Unknown
  • Whatever
  • Masaya Taniguchi
  • released 6/14/2024

Downloads

Maintainers