mirror of
https://github.com/quartz-community/utils.git
synced 2026-07-22 02:50:27 +00:00
No description
With build tools (tsup, typescript) moved to devDependencies, the prepare script can no longer build when npm fetches this package from GitHub (npm does not install devDependencies for git dependencies). Commit the pre-built dist/ output so GitHub-based installs work without a build step. |
||
|---|---|---|
| .github/workflows | ||
| dist | ||
| src | ||
| test | ||
| .eslintrc.json | ||
| .gitignore | ||
| .prettierrc | ||
| CHANGELOG.md | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| tsup.config.ts | ||
| vitest.config.ts | ||
@quartz-community/utils
Shared utility functions for Quartz community plugins.
Installation
npm install @quartz-community/utils
Or using GitHub:
npm install github:quartz-community/utils
Usage
import {
simplifySlug,
getFullSlug,
joinSegments,
removeAllChildren,
classNames,
} from "@quartz-community/utils";
// Path utilities
const slug = simplifySlug("folder/index"); // "folder/"
const currentSlug = getFullSlug(window); // e.g., "blog/my-post"
const path = joinSegments("a", "b", "c"); // "a/b/c"
// DOM utilities
removeAllChildren(document.getElementById("container")!);
// Language utilities
const classes = classNames("btn", isActive && "active", null); // "btn active"
Modules
Path (@quartz-community/utils/path)
Path manipulation utilities for Quartz slugs:
simplifySlug(slug)- Remove/indexsuffix from slugsgetFullSlug(window)- Get current page slug from document body datasetgetFullSlugFromUrl()- Get current page slug from URL pathnamejoinSegments(...segments)- Join path segments with proper slash handlingresolvePath(path)- Ensure path starts with/endsWith(str, suffix)- Check if path ends with suffixtrimSuffix(str, suffix)- Remove suffix from pathstripSlashes(str, onlyPrefix?)- Remove leading/trailing slashesgetFileExtension(path)- Get file extensionisFolderPath(path)- Check if path represents a foldergetAllSegmentPrefixes(path)- Get all path prefixes
DOM (@quartz-community/utils/dom)
DOM manipulation utilities:
removeAllChildren(element)- Remove all child nodes from an elementregisterEscapeHandler(container, callback)- Register Escape key and click-outside handlersnormalizeRelativeURLs(document, baseUrl)- Convert relative URLs to absolute
Lang (@quartz-community/utils/lang)
Language/general utilities:
classNames(...classes)- Combine CSS class names, filtering falsy values
Types
The package exports TypeScript types for type-safe slug handling:
import type { FullSlug, SimpleSlug, RelativeURL } from "@quartz-community/utils";
License
MIT