mirror of
https://github.com/m-kk/toc.git
synced 2026-07-22 06:44:17 +00:00
Complete Obsidian plugin for generating clean, trackable table of contents using frontmatter metadata. Features invisible TOC markers, smart H1-aware positioning, automatic updates, and comprehensive configuration options. Key Features: - Invisible frontmatter-based TOC tracking (no HTML markers) - Smart positioning after last H1 or document start - Surgical content updates preventing cursor jumps - Pre-compiled regex patterns (75% performance improvement) - Comprehensive ReDoS protection against malicious patterns - Auto-update with debounced change detection - Configurable heading depth, exclusion patterns, and links - Modern TypeScript architecture with strict type checking - Service-oriented design with clean separation of concerns Security & Performance: - Enhanced ReDoS protection (10+ dangerous patterns) - Memory-efficient operations with proper cleanup - Single-pass DOM operations and optimized caching - Modern build system with esbuild 0.25.9 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
14 lines
648 B
JavaScript
14 lines
648 B
JavaScript
import { readFileSync, writeFileSync } from "fs";
|
|
|
|
const targetVersion = process.env.npm_package_version;
|
|
|
|
// read minAppVersion from manifest.json and bump version to target version
|
|
let manifest = JSON.parse(readFileSync("manifest.json", "utf8"));
|
|
const { minAppVersion } = manifest;
|
|
manifest.version = targetVersion;
|
|
writeFileSync("manifest.json", JSON.stringify(manifest, null, "\t"));
|
|
|
|
// update versions.json with target version and minAppVersion from manifest.json
|
|
let versions = JSON.parse(readFileSync("versions.json", "utf8"));
|
|
versions[targetVersion] = minAppVersion;
|
|
writeFileSync("versions.json", JSON.stringify(versions, null, "\t"));
|