Skip to main content

Dependencies

This page describes the main runtime and build-time dependencies used by the spec-up-t package.

They provide the functionality needed to parse Markdown, manage file operations, generate DOM-like HTML, use GitHub APIs, and build the final website output.

Key dependency categories

Markdown processing

spec-up-t uses markdown-it and a suite of markdown-it-* plugins to support extended Markdown syntax. This includes features such as anchors, tables, task lists, UML diagrams, KaTeX math, and custom reference handling.

Build-time tooling

Dependencies such as gulp, gulp-concat, gulp-clean-css, and gulp-terser help assemble and optimize the generated CSS and JavaScript for the final HTML output.

HTML and DOM utilities

jsdom and cheerio are used to parse and transform HTML during the build process. These tools let spec-up-t inspect generated pages, manipulate DOM structures, and add cross-reference links after the Markdown has been rendered.

External integrations

Packages like @octokit/plugin-throttling, axios, and octokit handle communication with GitHub APIs and external services. This enables features such as importing external specification references, resolving metadata, and managing API rate limits.

Output generation

pdf-lib and puppeteer are used when generating PDF versions of specifications or when creating rendered snapshots of the HTML output for testing or export.

CLI and utility support

Utilities such as dotenv, fs-extra, readline-sync, and pkg-dir provide environment configuration, file system convenience, CLI interactivity, and package-directory resolution.

Notes for contributors

When updating dependencies, keep in mind that spec-up-t must remain compatible with both Node.js build-time usage and the generated browser output. Major dependency upgrades should be tested carefully, especially for Markdown plugins and HTML transformation libraries.