pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/textproc/rumdl



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sun Feb  8 22:29:21 UTC 2026

Modified Files:
        pkgsrc/textproc/rumdl: Makefile cargo-depends.mk distinfo

Log Message:
rumdl: update to 0.1.15.

## [0.1.15] - 2026-02-07

### Added

- **MD057: `relative-to-docs` option** - New config option for validating absolute
  link paths relative to a documentation root directory

### Performance

- **2.5x faster on real-world repositories** - Comprehensive performance audit and
  optimization across the core pipeline, rule implementations, and infrastructure.
  Validated against ripgrep, ruff, and rust repositories (1,832 files, 276K lines)
  with zero regressions.

  Key optimizations:
  - Switch release profile from size optimization (`opt-level = "z"`) to speed (`opt-level = 3`)
  - Zero-allocation line ending normalization for LF-only files (common case)
  - Replace `chars().nth()` O(n) calls with O(1) byte indexing for ASCII checks
  - Promote MD034 regex patterns to `LazyLock` statics (eliminated ~160K mutex cycles per 10K-line file)
  - Reduce `LineInfo` memory 79% by boxing rare struct variants (3.4MB → 720KB for 10K-line files)
  - Eliminate redundant `Vec<char>` allocation in horizontal rule detection
  - Cache debug environment variable lookups in list parser
  - Move `ListBlock` by value instead of cloning
  - Fix MD044 O(n×m) boundary checks and full-document regex scans
  - Fix MD052 repeated full-document HTML comment scans
  - Replace per-line `HashMap` cloning in `InlineConfig` with state-transition storage
  - Deduplicate `content.lines().collect()` across 48 call sites in 27 rules
  - Compute content lines once in `LintContext`, share via `ctx.raw_lines()`
  - Unify code block detection into a single pass shared with `LineIndex`
  - Eliminate redundant `InlineConfig` parsing (parse once in `LintContext`)
  - Deduplicate line offset and front matter computation during context construction
  - Add O(1) line access via pre-computed line starts in `LineIndex`
  - Lazy-initialize rule registry with `LazyLock` (eliminated 5+ redundant `all_rules()` calls)
  - Remove unused mmap code path from file reading

### Changed

- **`explain` command completeness** - Now uses the full rule registry instead of
  a manually maintained list, ensuring all rules (including MD069-MD074) are included

## [0.1.14] - 2026-02-06

### Added

- **MD074: MkDocs nav validation** - Validate that `mkdocs.yml` navigation entries
  point to existing files (requires `flavor = "mkdocs"`)
  - `not-found = "warn"` (default): Report nav entries pointing to non-existent files
  - `omitted-files = "ignore"` (default): Optionally report markdown files not in nav
  - `absolute-links = "ignore"` (default): Optionally warn about absolute paths
  - Smart handling of directory nav entries, `docs_dir` setting, and session caching

- **MD057: Absolute links configuration** - New `absolute-links` config option
  for controlling how absolute link paths are handled

- **MkDocs flavor: Extension-aware support** - Recognize Python-Markdown and
  pymdown-extensions syntax to prevent false positives
  - Python-Markdown anchor style (`{#custom-id}` header attributes)
  - Unified PyMdown markup detection with span-based architecture

### Fixed

- **Tables in list items lose indentation** ([#383](https://github.com/rvben/rumdl/issues/383))
  - `rumdl fmt` now preserves indentation for tables on list continuation lines
  - Stack-based list context tracking handles nested lists, mixed ordered/unordered,
    and respects CommonMark code block boundaries

- **MD065: Fix idempotency for consecutive horizontal rules** - Running `--fix`
  twice on consecutive `---` rules no longer produces different output

- **MD032: Fix idempotency for ordered-non-1 items with code fences** - Fix mode
  no longer produces different output on repeated runs for this edge case

### Changed

- **Codebase modularization** - Major internal restructuring for maintainability
  - LSP server extracted into configuration, completion, and linting submodules
  - File processor extracted into module directory with 3 submodules
  - Config extracted into module directory with 8 submodules
  - CLI extracted into commands directory with separate command handlers
  - LintContext extracted into module directory with 8 submodules

## [0.1.13] - 2026-02-05

### Added

- **LSP: Code block language completion** - Autocomplete fenced code block languages
  - Type ` ``` ` and press Ctrl+Space for language suggestions
  - Includes 100+ languages from GitHub Linguist
  - Added documentation in [docs/lsp.md](docs/lsp.md)

- **MD041: Opt-in auto-fix** - Add missing first-line heading with `--fix`
  - Disabled by default to prevent unwanted changes
  - Enable with `fix = true` in MD041 config
  - Uses document title or filename as heading text

- **MD040: GitHub Linguist integration** - Normalize code block languages
  - Recognizes language aliases (e.g., `py` → `python`)
  - Uses GitHub Linguist database for accurate normalization

- **Code Block Tools: Additional built-in tools**
  - Added djlint (Jinja/HTML), beautysh (bash), tombi (TOML), oxfmt (Jinja)
  - 35 total built-in tool definitions

- **Code Block Tools: Configurable missing tool handling**
  - `on-missing-language-definition`: What to do when language has no tools (`skip`, `warn`, `fail`)
  - `on-missing-tool-binary`: What to do when tool binary not found (`skip`, `warn`, `fail`)

- **MkDocs: PyMdown Blocks support** - Recognize PyMdown extension syntax
  - Supports `/// note`, `/// warning`, `/// details` and other block types

- **npm: CLI distribution** - Install via npm/npx
  - `npx rumdl check .` - Run without global install
  - Platform-specific packages for macOS, Linux, Windows

### Fixed

- **Code Block Tools: Embedded markdown linting is now opt-in** ([#380](https://github.com/rvben/rumdl/issues/380))
  - Linting markdown inside code blocks was unexpectedly enabled by default
  - Now requires explicit `[code-block-tools.languages.md]` configuration

- **MD040: Skip disabled lines when computing preferred labels**
  - Fixed incorrect suggestions when some code blocks are disabled

- **Schema: Use standard integer type for timeout field** ([#374](https://github.com/rvben/rumdl/issues/374))
  - Fixed JSON Schema validation in editors

## [0.1.12] - 2026-02-04

### Added

- **Code Block Tools [preview]** - Run external linters and formatters on fenced code blocks ([#331](https://github.com/rvben/rumdl/issues/331))
  - `rumdl check`: Run configured linters (ruff, shellcheck, eslint, etc.) on code blocks
  - `rumdl check --fix`: Run configured formatters (ruff, prettier, shfmt, etc.) to auto-format code blocks
  - 31 built-in tool definitions with support for custom tools
  - Language resolution via GitHub Linguist aliases (e.g., `py` → `python`, `bash` → `shell`)
  - Configurable error handling per language (`fail`, `warn`, `skip`)
  - See [docs/code-block-tools.md](docs/code-block-tools.md) for configuration guide

- **MD018: Per-rule magiclink configuration** - Control whether `magiclink` syntax is recognized per rule
  - Add `magiclink = true` to MD018 config to skip email-like syntax

- **MD033: Auto-fix for `<a>` and `<img>` tags** - Convert simple HTML links and images to Markdown
  - `<a href="url">text</a>` → `[text](url)`
  - `<img src="url" alt="text">` → `![text](url)`
  - Requires `fix = true` in MD033 config (disabled by default)

- **MkDocs: Support for markdown-enabled HTML blocks** - Properly handle `<div markdown>` grid cards and similar patterns
  - Supports 10 HTML5 sectioning elements (div, section, article, aside, details, figure, footer, header, main, nav)
  - MD030 and MD035 now skip content inside markdown-enabled HTML blocks
  - Added `skip_mkdocs_html_markdown()` filter to filtered_lines API

### Fixed

- **MD013: Prevent infinite loop in MkDocs admonition reflow** - Fixed edge case causing reflow to hang on certain admonition content

- **Config: Remove deprecated MD002 from example** - `rumdl.toml.example` no longer includes deprecated rules

### Changed

- **Config: Compact inline table syntax in example** - `rumdl.toml.example` now uses more readable inline tables for code-block-tools

## [0.1.11] - 2026-02-03

### Added

- **CI: Automated SchemaStore sync workflow** - Schema updates are now automatically synced to SchemaStore on release

### Fixed

- **MD044: Check proper names in link text, image alt text, and WikiLinks** ([#369](https://github.com/rvben/rumdl/issues/369))
  - Previously only checked regular text and YAML front matter
  - Now also checks `[link text](url)`, `![alt text](url)`, and `[[WikiLinks]]`

- **Schema: Remove non-standard 'uint' format** ([#368](https://github.com/rvben/rumdl/issues/368))
  - Fixed JSON Schema validation errors in editors when using `flavor = "obsidian"`
  - Schema now uses standard `integer` with `minimum: 0` instead of non-standard `uint` format

## [0.1.10] - 2026-02-02

### Added

- **Obsidian flavor support** - New markdown flavor for Obsidian-specific syntax
  - Tags (`#my-tag`) - Not flagged as missing heading space (MD018)
  - Callouts (`> [!NOTE]`) - Recognized as valid blockquotes
  - Highlights (`==text==`) - Not flagged as spacing issues
  - Comments (`%%comment%%`) - Content inside is skipped by all rules
  - Extended checkboxes (`- [/]`, `- [-]`, `- [>]`) - Recognized as valid task items
  - Dataview fields (`field:: value`) - Not flagged as consecutive spaces
  - Templater syntax (`<% code %>`) - Recognized as template syntax
  - Block references (`^block-id`) - Not flagged

- **WASM: Obsidian flavor support** - Use `flavor: 'obsidian'` in Linter config
  - Enables Obsidian-specific syntax recognition in browser/plugin contexts

- **WASM: Rule-specific configuration** - Pass rule configs to Linter constructor
  - Example: `new Linter({ 'MD013': { 'line-length': 120 } })`

### Fixed

- **MD041: Skip MkDocs anchor lines** - Lines starting with `[](){#id}` are now skipped when checking for first-line heading

## [0.1.9] - 2026-02-01

### Fixed

- **MD033: Don't remove HTML tags that can't be converted to Markdown**
  - Previously, auto-fix would destructively remove tags like `<img>`, `<span>`, and `<div>`
  - Now only safe fixable tags (`em`, `i`, `strong`, `b`, `code`, `br`, `hr`) are converted
  - All other HTML tags are left unchanged as expected

- **Fix mode: Respect per-file-flavor configuration**
  - `rumdl check --fix` now correctly uses per-file flavor settings from `[per-file-flavor]`
  - Previously used global flavor instead of file-specific flavor during fix coordination


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 pkgsrc/textproc/rumdl/Makefile \
    pkgsrc/textproc/rumdl/distinfo
cvs rdiff -u -r1.3 -r1.4 pkgsrc/textproc/rumdl/cargo-depends.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/textproc/rumdl/Makefile
diff -u pkgsrc/textproc/rumdl/Makefile:1.8 pkgsrc/textproc/rumdl/Makefile:1.9
--- pkgsrc/textproc/rumdl/Makefile:1.8  Sun Feb  1 14:00:20 2026
+++ pkgsrc/textproc/rumdl/Makefile      Sun Feb  8 22:29:21 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.8 2026/02/01 14:00:20 pin Exp $
+# $NetBSD: Makefile,v 1.9 2026/02/08 22:29:21 wiz Exp $
 
-DISTNAME=      rumdl-0.1.8
+DISTNAME=      rumdl-0.1.15
 CATEGORIES=    textproc
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=rvben/}
 GITHUB_TAG=    v${PKGVERSION_NOREV}
Index: pkgsrc/textproc/rumdl/distinfo
diff -u pkgsrc/textproc/rumdl/distinfo:1.8 pkgsrc/textproc/rumdl/distinfo:1.9
--- pkgsrc/textproc/rumdl/distinfo:1.8  Sun Feb  1 14:00:20 2026
+++ pkgsrc/textproc/rumdl/distinfo      Sun Feb  8 22:29:21 2026
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.8 2026/02/01 14:00:20 pin Exp $
+$NetBSD: distinfo,v 1.9 2026/02/08 22:29:21 wiz Exp $
 
 BLAKE2s (adler2-2.0.1.crate) = 4d391e0fcde91c7435ee9a5503fee4a5346f549f1b45e482ce3e1e151d90f8f5
 SHA512 (adler2-2.0.1.crate) = 555b2b7ba6f8116acccd0bcd16ed34cc78162c81023cff31a8566ffcd456c03832089fca2d5b668ceaac4fe8f922d31aa9c487f226a36cace294ff4a219bd91d
@@ -444,9 +444,6 @@ Size (lsp-types-0.94.1.crate) = 66997 by
 BLAKE2s (memchr-2.7.6.crate) = a830db86394a8743df7c419957373ffa2ab158d6580c70556213bd109e985d93
 SHA512 (memchr-2.7.6.crate) = 38843817334da88ad74ce679b4401cf948cf8138815f3acc5eb0d005da3aabceb2216e20887e79344396569a2fa136e3aa1f7f3251a00d07dd6934cee79f4fad
 Size (memchr-2.7.6.crate) = 97616 bytes
-BLAKE2s (memmap2-0.9.9.crate) = 60a90aba4800e654f6a5e9e0f6654c2deaff2d1e912e94f1020903c7c4cce5b8
-SHA512 (memmap2-0.9.9.crate) = abb110a3b209c0358262ae7395efa5b2995710306e608ef3990598d70eb3cb50ba49158f7a0afb10d0d12dc6d2408824ac00179c83681ad2777b953a0b055391
-Size (memmap2-0.9.9.crate) = 34576 bytes
 BLAKE2s (memory-stats-1.2.0.crate) = 39573611e5d6bfe512500b556dddd04d53f67a1d5175347fbb670a7c05010d2d
 SHA512 (memory-stats-1.2.0.crate) = 47399bcd9c5ce73fa45992924ba66431d50cebdbaf46a045a129b25d704ceb9dccd49b67dba72b18f464a17488cebe6a3718348e16cd0fc9cf49a3edf74c3001
 Size (memory-stats-1.2.0.crate) = 11060 bytes
@@ -642,9 +639,9 @@ Size (reqwest-0.12.24.crate) = 159974 by
 BLAKE2s (ring-0.17.14.crate) = 1480ea4de12099a897e831682ebaf48ed6e688e06f58e79e496a06e227ed58bd
 SHA512 (ring-0.17.14.crate) = 88d38205dc1a1f89bd4ae887ec5c168e68a4b749b3ac0612674092331e99d14a9b8d0f4a98d72c1a3853bcc9da420402336da3ee053bedcfd598da8de93afa14
 Size (ring-0.17.14.crate) = 1502610 bytes
-BLAKE2s (rumdl-0.1.8.tar.gz) = 0c29d85be80063c209dab0109bf6eea08660987e14131767461ff91c031d86e9
-SHA512 (rumdl-0.1.8.tar.gz) = c2d6fab30a90be570e23cff8ef80f9b3e886d0484b013b806a95f35845abf5bec1927d6331f58a9d50d764b9dcb3ce6f552478716e62b1298a80e6a03e307d7f
-Size (rumdl-0.1.8.tar.gz) = 1806930 bytes
+BLAKE2s (rumdl-0.1.15.tar.gz) = 2472ebc53722b0c1ec7f5f1f33931a9ccfd412f412cd8939b9f416ffc1d15c58
+SHA512 (rumdl-0.1.15.tar.gz) = e486958dfe28c851ac7c62702131192e43394259aa918c013e23741edf5ce3ea2efb3c34d466a85c140656994ede228045d0c6e0db6a323ac9b7dc76d0e35916
+Size (rumdl-0.1.15.tar.gz) = 1995196 bytes
 BLAKE2s (rustc_version-0.4.1.crate) = f0d198d0457135ca7572b41cd2440f1b0ca075013f53b384d07c00db8c5d2e84
 SHA512 (rustc_version-0.4.1.crate) = 7aa8a487ca7411b6d23cae62f7568fa3474a7b1fd1589621071be3428a550ed3b7c4ad68277a8f86849e5900397d7d0e9d678f5d423742a045dc7c660fa6c598
 Size (rustc_version-0.4.1.crate) = 12245 bytes

Index: pkgsrc/textproc/rumdl/cargo-depends.mk
diff -u pkgsrc/textproc/rumdl/cargo-depends.mk:1.3 pkgsrc/textproc/rumdl/cargo-depends.mk:1.4
--- pkgsrc/textproc/rumdl/cargo-depends.mk:1.3  Sun Feb  1 14:00:20 2026
+++ pkgsrc/textproc/rumdl/cargo-depends.mk      Sun Feb  8 22:29:21 2026
@@ -1,4 +1,4 @@
-# $NetBSD: cargo-depends.mk,v 1.3 2026/02/01 14:00:20 pin Exp $
+# $NetBSD: cargo-depends.mk,v 1.4 2026/02/08 22:29:21 wiz Exp $
 
 CARGO_CRATE_DEPENDS+=  adler2-2.0.1
 CARGO_CRATE_DEPENDS+=  ahash-0.8.12
@@ -148,7 +148,6 @@ CARGO_CRATE_DEPENDS+=       lock_api-0.4.14
 CARGO_CRATE_DEPENDS+=  log-0.4.29
 CARGO_CRATE_DEPENDS+=  lsp-types-0.94.1
 CARGO_CRATE_DEPENDS+=  memchr-2.7.6
-CARGO_CRATE_DEPENDS+=  memmap2-0.9.9
 CARGO_CRATE_DEPENDS+=  memory-stats-1.2.0
 CARGO_CRATE_DEPENDS+=  mimalloc-0.1.48
 CARGO_CRATE_DEPENDS+=  miniz_oxide-0.8.9



Home | Main Index | Thread Index | Old Index