From 8328b55648f06340a34349bf2c586297e32d2bef Mon Sep 17 00:00:00 2001 From: saberzero1 Date: Sat, 11 Apr 2026 14:52:11 +0200 Subject: [PATCH] feat: add `stealth: true` frontmatter for permanently hidden encrypted pages Stealth pages are encrypted pages that are hidden from every listing surface permanently, even after a successful client-side decryption. Their metadata is never written to the shadow content index, so there is nothing for the client to recover -- the page remains invisible to graph, explorer, search, backlinks, recent-notes, folder-page, and tag-page for the entire browser session. This fills a gap between "unlisted" (hidden pre-decryption, revealed post-decryption via shadow index) and the desire for "secret door" pages that should only be accessible to users who already know the exact URL. Semantics: - `stealth: true` implies `unlisted: true`. Setting stealth on a page automatically hides it from listings regardless of the `unlisted` field or the `unlistWhenEncrypted` plugin option. - `stealth: true` overrides explicit `unlisted: false`. A user who writes `stealth: true, unlisted: false` gets a hidden stealth page, because stealth without unlisted is semantically incoherent. - `stealth: true` has no effect on non-encrypted pages. Stealth only controls shadow-index emission, which only happens for encrypted unlisted pages. Non-encrypted pages with `stealth: true` are silently ignored (use `unlisted: true` for non-encrypted hiding, via the `unlisted-pages` plugin). - Non-boolean stealth values are ignored. Implementation: - transformer.ts: after setting `data.unlisted`, check if `frontmatter.stealth === true` and if so set `data.stealth = true` and force `data.unlisted = true`. - emitter.ts: in the shadow-index loop, skip any page where `data.stealth === true`. Tests: 8 new (6 transformer + 2 emitter) covering stealth -> unlisted implication, stealth overriding explicit unlisted: false, stealth on non-encrypted pages being a no-op, non-boolean stealth values being ignored, stealth pages being excluded from the shadow index while non-stealth pages pass through unchanged, and mixed stealth/non-stealth content being correctly partitioned. 29 tests total passing. --- CHANGELOG.md | 1 + README.md | 30 +++++++++++++++--- dist/index.js | 5 +++ dist/index.js.map | 2 +- src/emitter.ts | 1 + src/transformer.ts | 5 +++ test/emitter.test.ts | 32 +++++++++++++++++-- test/transformer.test.ts | 68 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 137 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b35659c..f30cf56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `EncryptedContentIndex` emitter that writes a versioned shadow content index (`static/encryptedContentIndex.json`) containing opaque encrypted blobs of per-page metadata (slug, title, links, tags) for pages marked `unlisted: true`. The shadow index uses a flat array format so no slugs or titles leak to anonymous visitors. - `unlistWhenEncrypted` option on the `EncryptedPages` transformer. When `true`, encrypted pages are marked `file.data.unlisted = true`, hiding them from every build-time listing surface that respects the `unlisted` convention (contentIndex, RSS, sitemap, backlinks, recent-notes, folder-page, tag-page, graph, explorer, search) while still emitting the HTML so the page remains accessible by direct URL. - Per-page `unlisted: true | false` frontmatter override. Explicit `unlisted: false` forces the page listed even when `unlistWhenEncrypted` is set. +- Per-page `stealth: true` frontmatter field. Stealth pages are encrypted pages that are hidden from every listing surface **permanently**, even after a successful client-side decryption — their metadata is never written to the shadow content index, so there is nothing for the client to recover. Useful for "secret door" pages that should only be accessible to users who already know the exact URL. `stealth: true` implies `unlisted: true` and overrides any explicit `unlisted: false`. No effect on non-encrypted pages. - Client-side shadow-index unlocking: on every page load with cached passwords, the client script fetches the shadow index, decrypts entries with cached passwords, patches the resolved `fetchData` object in place, and dispatches `content-index-updated` so graph, explorer, and search re-initialize with the unlocked pages. - `encryptAesGcm`, `decrypt`, and `SHADOW_INDEX_VERSION` exports for test and extension use. - `ShadowIndexBlob`, `ShadowIndexFile`, and `ShadowContentIndexEntry` type exports. diff --git a/README.md b/README.md index 2b32741..6e6b2ad 100644 --- a/README.md +++ b/README.md @@ -69,10 +69,11 @@ All options below are set at the single plugin-entry level and are shared betwee ### Frontmatter fields -| Field | Type | Description | -| ---------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| `password` | `string` | Enables encryption for this page. The field name is configurable via `passwordField`. | -| `unlisted` | `boolean` | Overrides `unlistWhenEncrypted`. `true` forces the page unlisted; `false` forces it listed even when `unlistWhenEncrypted` is also set. | +| Field | Type | Description | +| ---------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `password` | `string` | Enables encryption for this page. The field name is configurable via `passwordField`. | +| `unlisted` | `boolean` | Overrides `unlistWhenEncrypted`. `true` forces the page unlisted; `false` forces it listed even when `unlistWhenEncrypted` is also set. | +| `stealth` | `boolean` | When `true` and the page is encrypted, suppresses the page's entry in the shadow content index. The page stays hidden from every listing surface **even after successful client-side decryption**. Implies `unlisted: true` (overrides any explicit `unlisted: false`). No effect on non-encrypted pages. | ## How `unlisted` works @@ -84,6 +85,27 @@ When an encrypted page is marked `unlisted: true`: - On any page load, if the user has cached passwords in sessionStorage from a previous successful decryption, the client script fetches the shadow index, decrypts entries matching those passwords, and patches the in-memory content index in place. A `content-index-updated` event is dispatched so graph, explorer, and search reinitialize with the unlocked entries. - Server-side rendered listings (backlinks, recent-notes, folder-page, tag-page) remain statically hidden even after client-side decryption. This is a deliberate trade-off: those surfaces are HTML baked at build time and cannot be patched client-side. +## How `stealth` works + +When an encrypted page is marked `stealth: true`, it behaves like an unlisted page with one critical difference: its entry is **never** emitted to the shadow content index. As a result: + +- The page HTML is still emitted at its normal URL and accessible to anyone who knows it. +- The page is absent from `contentIndex.json`, RSS, sitemap, graph, explorer, search, backlinks, recent notes, folder listings, and tag listings — same as any `unlisted` page. +- Unlike `unlisted`, **successful client-side decryption does not reveal the page in graph, explorer, or search**. There is no shadow-index entry to decrypt, so the in-memory content index is never patched for this page. +- The password cache still works: a user who unlocks a stealth page once will not have to re-enter the password on subsequent visits within the same session. Only discovery surfaces are affected. + +Use `stealth: true` when you want a "secret door" page: accessible only to users who already know the exact URL, invisible to everyone else permanently, even to users who have successfully decrypted other encrypted pages on the same site. + +```yaml +--- +title: Deep Secret +password: hunter2 +stealth: true +--- +``` + +Setting `stealth: true` is equivalent to `unlisted: true` on a page that does not also have a `password` field — the flag has no effect on non-encrypted pages, because stealth only controls the shadow-index emission, and non-encrypted pages do not have shadow-index entries in the first place. + ## Security - AES-256-GCM with 16-byte salt, 12-byte IV, 16-byte auth tag. diff --git a/dist/index.js b/dist/index.js index 703bd50..197bb4d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2274,6 +2274,10 @@ var rehypeEncryptedPages = (options) => { } else if (options.unlistWhenEncrypted) { data.unlisted = true; } + if (frontmatter.stealth === true) { + data.stealth = true; + data.unlisted = true; + } }; }; var EncryptedPages = (userOptions) => { @@ -2320,6 +2324,7 @@ var EncryptedContentIndex = (userOptions) => { const data = file.data ?? {}; if (data.encrypted !== true) continue; if (data.unlisted !== true) continue; + if (data.stealth === true) continue; const frontmatter = data.frontmatter ?? {}; const password = frontmatter[passwordField]; if (typeof password !== "string" || password.length === 0) continue; diff --git a/dist/index.js.map b/dist/index.js.map index 906e11d..587cda9 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/html-void-elements/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/index.js","../node_modules/zwitch/index.js","../node_modules/stringify-entities/lib/core.js","../node_modules/stringify-entities/lib/util/to-hexadecimal.js","../node_modules/stringify-entities/lib/util/to-decimal.js","../node_modules/character-entities-legacy/index.js","../node_modules/character-entities-html4/index.js","../node_modules/stringify-entities/lib/constant/dangerous.js","../node_modules/stringify-entities/lib/util/to-named.js","../node_modules/stringify-entities/lib/util/format-smart.js","../node_modules/stringify-entities/lib/index.js","../node_modules/hast-util-to-html/lib/handle/comment.js","../node_modules/hast-util-to-html/lib/handle/doctype.js","../node_modules/ccount/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/hast-util-to-html/lib/omission/util/siblings.js","../node_modules/hast-util-to-html/lib/omission/omission.js","../node_modules/hast-util-to-html/lib/omission/closing.js","../node_modules/hast-util-to-html/lib/omission/opening.js","../node_modules/hast-util-to-html/lib/handle/element.js","../node_modules/hast-util-to-html/lib/handle/text.js","../node_modules/hast-util-to-html/lib/handle/raw.js","../node_modules/hast-util-to-html/lib/handle/root.js","../node_modules/hast-util-to-html/lib/handle/index.js","../node_modules/hast-util-to-html/lib/index.js","../src/transformer.ts","../src/emitter.ts","../src/components/styles/encrypted.scss","../src/components/scripts/encrypted.inline.ts","../src/components/EncryptedPage.tsx"],"names":["key","html","svg","one","all","own","stringify","increment","siblings","body","tbody","head","child","emptyChildren","defaultOptions"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * List of HTML void tag names.\n *\n * @type {Array}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record} */\n const property = {}\n /** @type {Record} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record} */\n const properties = {}\n /** @type {Record} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `