Files
BitLogger/docs/changes/0.4.0.md
T
2026-05-10 15:17:13 +08:00

3.4 KiB

BitLogger Update Changes

version 0.4.0

Feature

  • feat: add ColorMode = Never | Auto | Always for text formatter color control
  • feat: add ANSI level, target, timestamp, and field rendering to format_text(...)
  • feat: add color_mode to TextFormatter and TextFormatterConfig
  • feat: support text_formatter.color_mode in JSON config parsing and serialization
  • feat: add inline style markup support in message text for ANSI text formatter output
  • feat: support named color tags like <red>...</>, style tags like <b>...</>, and hex tags like <#ff0000>...</> / <bg:#010203>...</>
  • feat: keep JSON formatter output unchanged and limit inline style parsing to text message rendering only
  • feat: add TextStyle, StyleTagRegistry, style_tag_registry(), and default_style_tag_registry() for reusable inline style tags
  • feat: add formatter-local style_tags, global style tag registry helpers, builtin-tag override support, and alias reuse via define_alias(...)
  • feat: support minimal sink.text_formatter.style_tags JSON config parsing and serialization for custom formatter tag styles
  • feat: add StyleMarkupMode = Disabled | Builtin | Full plus formatter helpers so callers can explicitly disable style parsing or allow builtin-only parsing
  • feat: support sink.text_formatter.style_markup in JSON config parsing and serialization
  • feat: add builtin semantic style tags such as accent, info, success, warning, danger, and muted
  • feat: add independent target_style_markup and fields_style_markup controls for TextFormatter and TextFormatterConfig

Test

  • test: cover ANSI text formatter rendering in Always mode
  • test: cover Auto mode fallback behavior when NO_COLOR is present
  • test: cover config parsing and serialization for color_mode
  • test: cover named inline color tags in ANSI mode
  • test: cover plain mode tag stripping, nested tags, hex tags, and unknown-tag fallback behavior
  • test: cover custom tags, builtin-tag override, formatter-vs-global priority, global registry fallback, and alias reuse
  • test: cover formatter style_tags JSON parsing, config roundtrip, JSON helper export, and config-driven styled formatter rendering
  • test: cover disabled markup mode, builtin-only mode, and config-driven style_markup behavior
  • test: cover builtin semantic tag rendering and confirm user overrides still take precedence
  • test: cover target and field markup rendering, plus config roundtrip for the new formatter markup scopes

Example

  • docs: add color_mode usage examples to formatter documentation
  • docs: add runtime and JSON style_tags examples, and document current JSON schema scope
  • docs: add runtime and JSON examples for toggling style markup parsing

Notes

  • Auto currently uses a conservative rule: if NO_COLOR exists, ANSI is disabled; otherwise ANSI is enabled
  • inline style markup currently supports short close </> only
  • unknown or invalid inline tags currently fall back to plain text and do not raise formatter errors
  • formatter-local tag lookup currently takes precedence over global tag lookup, and global lookup takes precedence over builtin tags
  • JSON config currently supports concrete style objects only; alias-style declarations remain runtime-only
  • users can now decide whether custom style parsing is enabled through runtime formatter APIs or sink.text_formatter.style_markup
  • fields_style_markup currently styles field values only and intentionally leaves field keys raw