No description
Find a file
saberzero1 71784b861f
fix: add createRequire banner for CJS compat in ESM bundles
Bundled CJS dependencies (e.g. reading-time) use require() for Node
builtins like 'stream' and 'util'. In ESM output, the esbuild-generated
__require shim throws 'Dynamic require of X is not supported' because
there is no global require in ESM context.

Add platform: 'node' and a banner that injects createRequire from the
'module' builtin, providing a working require() function for the CJS
compatibility layer.
2026-03-17 20:34:33 +01:00
.github/workflows ci: add dist externals verification step 2026-03-17 19:41:47 +01:00
dist fix: add createRequire banner for CJS compat in ESM bundles 2026-03-17 20:34:33 +01:00
src chore: centralize type declarations and standardize tooling config 2026-03-16 18:55:26 +01:00
types chore: centralize type declarations and standardize tooling config 2026-03-16 18:55:26 +01:00
.eslintrc.json chore: centralize type declarations and standardize tooling config 2026-03-16 18:55:26 +01:00
.gitignore chore: commit dist/ and remove prepare script 2026-03-14 22:00:25 +01:00
.prettierignore chore: centralize type declarations and standardize tooling config 2026-03-16 18:55:26 +01:00
.prettierrc Initial commit 2026-02-22 15:03:10 +01:00
CHANGELOG.md Initial commit 2026-02-22 15:03:10 +01:00
LICENSE Initial commit 2026-02-22 15:03:10 +01:00
package-lock.json fix: add missing peer dependencies as devDependencies for CI build 2026-03-16 19:07:37 +01:00
package.json fix: bundle non-shared deps into dist to prevent runtime resolution failures 2026-03-17 19:31:51 +01:00
README.md docs: update README for v5 unified config system 2026-02-25 16:07:03 +01:00
tsconfig.json Initial commit 2026-02-22 15:03:10 +01:00
tsup.config.ts fix: add createRequire banner for CJS compat in ESM bundles 2026-03-17 20:34:33 +01:00
vitest.config.ts fix: remove template boilerplate test files and add passWithNoTests 2026-03-09 03:21:37 +01:00

@quartz-community/note-properties

Parses frontmatter properties and renders them as a visible properties view on the page, similar to Obsidian's properties panel.

Installation

npx quartz plugin add github:quartz-community/note-properties

Usage

This plugin serves as both a transformer (parsing frontmatter) and a component (displaying the properties view).

plugins:
  # Transformer (parses frontmatter)
  - source: github:quartz-community/note-properties
    enabled: true
    options:
      includeAll: false
      includedProperties:
        - description
        - tags
        - aliases
      excludedProperties: []
      hidePropertiesView: false
      delimiters: "---"
      language: yaml

  # Component (displays properties in the page layout)
  - source: github:quartz-community/note-properties
    enabled: true
    layout:
      position: beforeBody
      priority: 15

For advanced use cases, you can override in TypeScript:

import * as ExternalPlugin from "./.quartz/plugins";

ExternalPlugin.NoteProperties({
  includeAll: false,
  includedProperties: ["description", "tags", "aliases"],
  excludedProperties: [],
  hidePropertiesView: false,
  delimiters: "---",
  language: "yaml",
});

Configuration

Option Type Default Description
includeAll boolean false Whether to include all frontmatter properties.
includedProperties string[] ["description", "tags", "aliases"] Properties to include when includeAll is false.
excludedProperties string[] [] Properties to exclude when includeAll is true.
hidePropertiesView boolean false Whether to hide the rendered properties view on the page.
delimiters string "---" The frontmatter delimiter style.
language string "yaml" The frontmatter language ("yaml" or "toml").

Documentation

See the Quartz documentation for more information.

License

MIT