= Asciidoctor Reducer Changelog :url-repo: https://github.com/asciidoctor/asciidoctor-reducer This document provides a high-level view of the changes to the Asciidoctor Reducer by release. For a detailed view of what has changed, refer to the {url-repo}/commits/main[commit history] on GitHub. == 1.0.0.alpha.8 (2022-02-23) - @mojavelinux === Added * Add secure mode as value of `-S` CLI option (#31) * Add `--trace` option to CLI to trace cause of application errors (#29) === Changed * Replace include directive with link macro if safe mode is secure (#31) * Track line numbers in include replacements using 1-based index * Only mix in preprocessor conditional tracker if `:preserve_conditionals` option is not set (#36) === Fixed * Handle signals gracefully (#33) === Details {url-repo}/releases/tag/v1.0.0.alpha.8[git tag] == 1.0.0.alpha.7 (2022-02-14) - @mojavelinux === Added * Add asciidoctor/reducer/api to require main API (#3) * Add `Asciidoctor::Reducer.reduce` and `Asciidoctor::Reducer.reduce_file` API methods (#3) * Add asciidoctor/reducer/extensions to require extensions API (#3) * Add `Asciidoctor::Reducer::Extensions` API (#3) === Changed * Scope extensions to single call instead of registering them globally (#3) * Use `:safe` as the default safe mode when using the API * Make `CurrentPosition` module private to the `PreprocessorDirectiveTracker` module === Fixed * Require asciidoctor/reducer/version automatically when `Asciidoctor::Reducer::VERSION` is accessed === Details {url-repo}/releases/tag/v1.0.0.alpha.7[git tag] == 1.0.0.alpha.6 (2022-02-10) - @mojavelinux === Added * Add `-S`, `--safe-mode` option to CLI to set safe mode (#13) * Add `-r`, `--require` option to CLI to specify additional libraries to require before running (#17) === Changed * Sort CLI options in help text, except for the `-h`, `--help` option * Update CLI to always use a new logger instance * Defer initializing logger until run method is called === Fixed * Replace include directives that follow an unresolved include (#19) * Don't activate reducer extensions on reduced document * Prevent custom extension registry from activating extensions twice during reload (#21) * Retain includes table in document catalog when reloading document (#23) === Details {url-repo}/releases/tag/v1.0.0.alpha.6[git tag] == 1.0.0.alpha.5 (2022-02-06) - @mojavelinux === Changed * Removing trailing empty lines after reducing when sourcemap is not enabled * Remove unnecessary override of lineno in preprocess_include_directive override * Simplify how include replacement target is tracked * Classify extensions in group named `:reducer` === Fixed * Suppress log messages when reloading document (#14) === Details {url-repo}/releases/tag/v1.0.0.alpha.5[git tag] == 1.0.0.alpha.4 (2022-02-03) - @mojavelinux === Fixed * Fix replacement of nested empty and unresolved includes === Details {url-repo}/releases/tag/v1.0.0.alpha.4[git tag] == 1.0.0.alpha.3 (2022-02-02) - @mojavelinux === Changed * Rename PreprocessorReader ext module to PreprocessorReaderTracker * Encapsulate logic to enhance PreprocessorReader inside PreprocessorReaderTracker module * Only reload document if source lines have changed; otherwise, update source lines on reader directly * Change default safe mode for CLI to :unsafe === Details {url-repo}/releases/tag/v1.0.0.alpha.3[git tag] == 1.0.0.alpha.2 (2022-01-27) - @mojavelinux === Added * Add `-a`, `--attribute` option to CLI for setting an AsciiDoc document attribute at runtime (#6) === Changed * Reduce preprocessor conditionals by default; add option (`--preserve-conditionals`, `:preserve_conditionals`) to preserve them (#8) * Don't enable sourcemap automatically (#4) * Don't override logger by default; instead, rely on `:logger` API option to change logger * Add `--log-level` option to CLI to set severity level on logger (#9) * Add `-q`, `--quiet` option to CLI to suppress log messages (#9) * Reserve zero index in include replacements for top-level document === Fixed * Preserve return value when overridding `preprocess_include_directive` method === Details {url-repo}/releases/tag/v1.0.0.alpha.2[git tag] == 1.0.0.alpha.1 (2022-01-12) - @mojavelinux Initial release. === Details {url-repo}/releases/tag/v1.0.0.alpha.1[git tag]