-
-
Notifications
You must be signed in to change notification settings - Fork 419
preProcess
Marcos Caceres edited this page Mar 28, 2026
·
14 revisions
Type: Array<(config: Object, document: Document, utils: Object) => void | Promise<void>>
Default: []
An array of functions that run before ReSpec begins processing. Use this to fetch external data, inject content into the document, or perform setup that other processing steps depend on.
async function loadTerms(config, document) {
const res = await fetch("https://api.example.org/terms.json");
const terms = await res.json();
// Inject <dfn> elements so xref can resolve them
const section = document.querySelector("#terminology");
for (const { id, label } of terms) {
const p = document.createElement("p");
p.innerHTML = `The <dfn data-export id="${id}">${label}</dfn> is ...`;
section.append(p);
}
}
var respecConfig = {
preProcess: [loadTerms],
};function addGeneratedSection(config, document) {
const section = document.createElement("section");
section.id = "build-info";
section.innerHTML = `
<h2>Build Information</h2>
<p>Built by: <strong>${config.editors[0].name}</strong></p>
`;
document.body.insertAdjacentElement("beforeend", section);
}
var respecConfig = {
preProcess: [addGeneratedSection],
};Each function receives three arguments:
| Argument | Type | Description |
|---|---|---|
config |
Object |
The respecConfig object plus ReSpec internal state |
document |
Document |
The HTML document in its original, unprocessed form |
utils |
Object |
ReSpec utility functions |
- Functions run in order, and ReSpec awaits each one before proceeding
-
asyncfunctions are fully supported -
preProcessruns before any ReSpec transformation — the document is still in its original source form. Definitions, headings, and xrefs have not yet been processed. - For post-processing after ReSpec is done, see
postProcess
💖 Support ReSpec by becoming a sponsor via Open Collective. 💖
✨ View rendered version of this documentation at https://respec.org/docs/ ✨
- Getting Started
- How Do I…
- Spec Editor's Guide
- Writing Algorithms
- WebIDL Guide
- Configuring ReSpec
- Developers Guide
- Shorthands
- addSectionLinks
- authors
- caniuse
- edDraftURI
- editors
- format (markdown)
- formerEditors
- github
- highlightVars
- isPreview
- license
- lint
- localBiblio
- logos
- maxTocLevel
- mdn
- modificationDate
- monetization
- noTOC
- otherLinks
- pluralize
- postProcess
- preProcess
- previousDiffURI
- previousMaturity
- previousPublishDate
- prevRecShortname
- prevRecURI
-
processVersion(Removed) - publishDate
- shortName
- specStatus
- subjectPrefix
- subtitle
- testSuiteURI
- xref
- additionalCopyrightHolders
-
addPatentNote(Removed) - alternateFormats
- canonicalURI
- charterDisclosureURI
- copyrightStart
- crEnd
- dark mode
- doJsonLd
- errata
- group
- implementationReportURI
- level
- noRecTrack
- prevED
- prEnd
- submissionCommentNumber
-
wg(Deprecated — usegroup) -
wgId(Deprecated — usegroup) -
wgPatentURI(Deprecated — usegroup) -
wgPublicList(Deprecated — usegroup) -
wgURI(Deprecated — usegroup)
a11ycheck-charsetcheck-internal-slotscheck-punctuationinformative-dfnlocal-refs-existno-captionless-tablesno-headingless-sectionsno-http-propsno-link-warningsno-unused-dfnsno-unused-varsprivsec-sectionwpt-tests-exist
Handled by ReSpec for you.
- conformance
- idl-index
- index
- issue-summary
- references
- tof (Table of Figures)
- data-abbr
- data-cite
- data-dfn-for
- data-dfn-type
- data-export
- data-format
- data-include
- data-include-format
- data-include-replace
- data-link-for
- data-link-type
- data-local-lt
- data-lt
- data-lt-no-plural
- data-lt-noDefault
- data-max-toc
- data-number
- data-oninclude
- data-sort
- data-tests
-
data-transform(Deprecated) - data-type
- dir
- lang