diff --git a/README.md b/README.md index 9f3468e..4f7e127 100644 --- a/README.md +++ b/README.md @@ -332,765 +332,7 @@ Please review the [LICENSE] file for the full text of the license. # Changelog -## v22.11.0 (2022-11-19) - -### New - -* Apply unicode normalization while resolving notes. \[Nick Groenen\] - - The unicode standard allows for certain (visually) identical characters to - be represented in different ways. - - For example the character ä may be represented as a single combined - codepoint "Latin Small Letter A with Diaeresis" (U+00E4) or by the - combination of "Latin Small Letter A" (U+0061) followed by "Combining - Diaeresis" (U+0308). - - When encoded with UTF-8, these are represented as respectively the two - bytes 0xC3 0xA4, and the three bytes 0x61 0xCC 0x88. - - A user linking to notes with these characters in their titles would - expect these two variants to link to the same file, given they are - visually identical and have the exact same semantic meaning. - - The unicode standard defines a method to deconstruct and normalize these - forms, so that a byte comparison on the normalized forms of these - variants ends up comparing the same thing. This is called Unicode - Normalization, defined in Unicode® Standard Annex #15 - (http://www.unicode.org/reports/tr15/). - - The W3C Working Group has written an excellent explanation of the - problems regarding string matching, and how unicode normalization helps - with this process: https://www.w3.org/TR/charmod-norm/#unicodeNormalization - - With this change, obsidian-export will perform unicode normalization - (specifically the C (or NFC) normalization form) on all note titles - while looking up link references, ensuring visually identical links are - treated as being similar, even if they were encoded as different - variants. - - A special thanks to Hans Raaf (@oderwat) for reporting and helping track - down this issue. - -### Breaking Changes (affects library API only) - -* Pass context and events as mutable references to postprocessors. \[Nick Groenen\] - - Instead of passing clones of context and the markdown tree to - postprocessors, pass them a mutable reference which may be modified - in-place. - - This is a breaking change to the postprocessor implementation, changing - both the input arguments as well as the return value: - - ````diff - - dyn Fn(Context, MarkdownEvents) -> (Context, MarkdownEvents, PostprocessorResult) + Send + Sync; - + dyn Fn(&mut Context, &mut MarkdownEvents) -> PostprocessorResult + Send + Sync; - ```` - - With this change the postprocessor API becomes a little more ergonomic - to use however, especially making the intent around return statements more clear. - -### Other - -* Use path.Join to construct hugo links (#92) \[Chang-Yen Tseng\] - - Use path.Join so that it will render correctly on Windows - (path.Join will convert Windows backslash to forward slash) - -* Bump crossbeam-utils from 0.8.5 to 0.8.12. \[dependabot\[bot\]\] - - Bumps [crossbeam-utils](https://github.com/crossbeam-rs/crossbeam) from 0.8.5 to 0.8.12. - - * [Release notes](https://github.com/crossbeam-rs/crossbeam/releases) - * [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md) - * [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-utils-0.8.5...crossbeam-utils-0.8.12) - --- - - updated-dependencies: - - * dependency-name: crossbeam-utils - dependency-type: indirect - ... -* Bump regex from 1.6.0 to 1.7.0. \[dependabot\[bot\]\] - - Bumps [regex](https://github.com/rust-lang/regex) from 1.6.0 to 1.7.0. - - * [Release notes](https://github.com/rust-lang/regex/releases) - * [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - * [Commits](https://github.com/rust-lang/regex/compare/1.6.0...1.7.0) - --- - - updated-dependencies: - - * dependency-name: regex - dependency-type: direct:production - update-type: version-update:semver-minor - ... -* Bump actions/checkout from 2 to 3. \[dependabot\[bot\]\] - - Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - - * [Release notes](https://github.com/actions/checkout/releases) - * [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - * [Commits](https://github.com/actions/checkout/compare/v2...v3) - --- - - updated-dependencies: - - * dependency-name: actions/checkout - dependency-type: direct:production - update-type: version-update:semver-major - ... -* Bump actions/upload-artifact from 2 to 3. \[dependabot\[bot\]\] - - Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3. - - * [Release notes](https://github.com/actions/upload-artifact/releases) - * [Commits](https://github.com/actions/upload-artifact/compare/v2...v3) - --- - - updated-dependencies: - - * dependency-name: actions/upload-artifact - dependency-type: direct:production - update-type: version-update:semver-major - ... -* Bump thread_local from 1.1.3 to 1.1.4. \[dependabot\[bot\]\] - - Bumps [thread_local](https://github.com/Amanieu/thread_local-rs) from 1.1.3 to 1.1.4. - - * [Release notes](https://github.com/Amanieu/thread_local-rs/releases) - * [Commits](https://github.com/Amanieu/thread_local-rs/compare/v1.1.3...1.1.4) - --- - - updated-dependencies: - - * dependency-name: thread_local - dependency-type: indirect - ... -* Remove needless borrows. \[Nick Groenen\] - -* Upgrade snafu to 0.7.x. \[Nick Groenen\] - -* Upgrade pulldown-cmark-to-cmark to 10.0.x. \[Nick Groenen\] - -* Upgrade serde_yaml to 0.9.x. \[Nick Groenen\] - -* Upgrade minor dependencies. \[Nick Groenen\] - -* Fix new clippy lints. \[Nick Groenen\] - -* Add a contributor guide. \[Nick Groenen\] - -* Simplify pre-commit setup. \[Nick Groenen\] - - No need to depend on a third-party hook repository when each of these - checks is easily defined and run through system commands. - - This also allows us to actually run tests, which is current unsupported - (https://github.com/doublify/pre-commit-rust/pull/19) - -* Bump tempfile from 3.2.0 to 3.3.0. \[dependabot\[bot\]\] - - Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.2.0 to 3.3.0. - - * [Release notes](https://github.com/Stebalien/tempfile/releases) - * [Changelog](https://github.com/Stebalien/tempfile/blob/master/NEWS) - * [Commits](https://github.com/Stebalien/tempfile/compare/v3.2.0...v3.3.0) - --- - - updated-dependencies: - - * dependency-name: tempfile - dependency-type: direct:production - update-type: version-update:semver-minor - ... - -## v22.1.0 (2022-01-02) - -Happy new year! On this second day of 2022 comes a fresh release with one -notable new feature. - -### New - -* Support Obsidian's "Strict line breaks" setting. \[Nick Groenen\] - - This change introduces a new `--hard-linebreaks` CLI argument. When - used, this converts soft line breaks to hard line breaks, mimicking - Obsidian's "Strict line breaks" setting. - - > - > Implementation detail: I considered naming this flag - > `--strict-line-breaks` to be consistent with Obsidian itself, however I - > feel the name is somewhat misleading and ill-chosen. - -### Other - -* Give release binaries file extensions. \[Nick Groenen\] - - This may make it more clear to users that these are precompiled, binary - files. This is especially relevant on Windows, where the convention is - that executable files have a `.exe` extension, as seen in #49. - -* Upgrade dependencies. \[Nick Groenen\] - - This commit upgrades all dependencies to their current latest versions. Most - notably, this includes upgrades to the following most critical libraries: - - ```` - pulldown-cmark v0.8.0 -> v0.9.0 - pulldown-cmark-to-cmark v7.1.1 -> v9.0.0 - ```` - - In total, these dependencies were upgraded: - - ```` - bstr v0.2.16 -> v0.2.17 - ignore v0.4.17 -> v0.4.18 - libc v0.2.101 -> v0.2.112 - memoffset v0.6.4 -> v0.6.5 - num_cpus v1.13.0 -> v1.13.1 - once_cell v1.8.0 -> v1.9.0 - ppv-lite86 v0.2.10 -> v0.2.16 - proc-macro2 v1.0.29 -> v1.0.36 - pulldown-cmark v0.8.0 -> v0.9.0 - pulldown-cmark-to-cmark v7.1.1 -> v9.0.0 - quote v1.0.9 -> v1.0.14 - rayon v1.5.0 -> v1.5.1 - regex v1.5.3 -> v1.5.4 - serde v1.0.130 -> v1.0.132 - syn v1.0.75 -> v1.0.84 - unicode-width v0.1.8 -> v0.1.9 - version_check v0.9.3 -> v0.9.4 - ```` - -* Bump serde_yaml from 0.8.21 to 0.8.23 (#52) \[dependabot\[bot\]\] - - Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.8.21 to 0.8.23. - - * [Release notes](https://github.com/dtolnay/serde-yaml/releases) - * [Commits](https://github.com/dtolnay/serde-yaml/compare/0.8.21...0.8.23) - --- - - updated-dependencies: - - * dependency-name: serde_yaml - dependency-type: direct:production - update-type: version-update:semver-patch - ... -* Bump pulldown-cmark-to-cmark from 7.1.0 to 7.1.1 (#51) \[dependabot\[bot\]\] - - Bumps [pulldown-cmark-to-cmark](https://github.com/Byron/pulldown-cmark-to-cmark) from 7.1.0 to 7.1.1. - - * [Release notes](https://github.com/Byron/pulldown-cmark-to-cmark/releases) - * [Changelog](https://github.com/Byron/pulldown-cmark-to-cmark/blob/main/CHANGELOG.md) - * [Commits](https://github.com/Byron/pulldown-cmark-to-cmark/compare/v7.1.0...v7.1.1) - --- - - updated-dependencies: - - * dependency-name: pulldown-cmark-to-cmark - dependency-type: direct:production - update-type: version-update:semver-patch - ... -* Bump pulldown-cmark-to-cmark from 7.0.0 to 7.1.0 (#48) \[dependabot\[bot\]\] - - Bumps [pulldown-cmark-to-cmark](https://github.com/Byron/pulldown-cmark-to-cmark) from 7.0.0 to 7.1.0. - - * [Release notes](https://github.com/Byron/pulldown-cmark-to-cmark/releases) - * [Changelog](https://github.com/Byron/pulldown-cmark-to-cmark/blob/main/CHANGELOG.md) - * [Commits](https://github.com/Byron/pulldown-cmark-to-cmark/compare/v7.0.0...v7.1.0) - --- - - updated-dependencies: - - * dependency-name: pulldown-cmark-to-cmark - dependency-type: direct:production - update-type: version-update:semver-minor - ... -* Bump pulldown-cmark-to-cmark from 6.0.4 to 7.0.0 (#47) \[dependabot\[bot\]\] - - Bumps [pulldown-cmark-to-cmark](https://github.com/Byron/pulldown-cmark-to-cmark) from 6.0.4 to 7.0.0. - - * [Release notes](https://github.com/Byron/pulldown-cmark-to-cmark/releases) - * [Changelog](https://github.com/Byron/pulldown-cmark-to-cmark/blob/main/CHANGELOG.md) - * [Commits](https://github.com/Byron/pulldown-cmark-to-cmark/compare/v6.0.4...v7.0.0) - --- - - updated-dependencies: - - * dependency-name: pulldown-cmark-to-cmark - dependency-type: direct:production - update-type: version-update:semver-major - ... -* Bump pathdiff from 0.2.0 to 0.2.1 (#46) \[dependabot\[bot\]\] - - Bumps [pathdiff](https://github.com/Manishearth/pathdiff) from 0.2.0 to 0.2.1. - - * [Release notes](https://github.com/Manishearth/pathdiff/releases) - * [Commits](https://github.com/Manishearth/pathdiff/commits) - --- - - updated-dependencies: - - * dependency-name: pathdiff - dependency-type: direct:production - update-type: version-update:semver-patch - ... -* Bump pulldown-cmark-to-cmark from 6.0.3 to 6.0.4 (#44) \[dependabot\[bot\]\] - - Bumps [pulldown-cmark-to-cmark](https://github.com/Byron/pulldown-cmark-to-cmark) from 6.0.3 to 6.0.4. - - * [Release notes](https://github.com/Byron/pulldown-cmark-to-cmark/releases) - * [Changelog](https://github.com/Byron/pulldown-cmark-to-cmark/blob/main/CHANGELOG.md) - * [Commits](https://github.com/Byron/pulldown-cmark-to-cmark/compare/v6.0.3...v6.0.4) - --- - - updated-dependencies: - - * dependency-name: pulldown-cmark-to-cmark - dependency-type: direct:production - update-type: version-update:semver-patch - ... -* Bump pretty_assertions from 0.7.2 to 1.0.0 (#45) \[dependabot\[bot\]\] - - Bumps [pretty_assertions](https://github.com/colin-kiegel/rust-pretty-assertions) from 0.7.2 to 1.0.0. - - * [Release notes](https://github.com/colin-kiegel/rust-pretty-assertions/releases) - * [Changelog](https://github.com/colin-kiegel/rust-pretty-assertions/blob/main/CHANGELOG.md) - * [Commits](https://github.com/colin-kiegel/rust-pretty-assertions/compare/v0.7.2...v1.0.0) - --- - - updated-dependencies: - - * dependency-name: pretty_assertions - dependency-type: direct:production - update-type: version-update:semver-major - ... - -## v21.9.1 (2021-09-24) - -### Changes - -* Treat SVG files as embeddable images. \[Narayan Sainaney\] - - This will ensure SVG files are included as an image when using `![[foo.svg]]` syntax, as opposed to only being linked to. - -### Other - -* Bump pulldown-cmark-to-cmark from 6.0.2 to 6.0.3. \[dependabot\[bot\]\] - - Bumps [pulldown-cmark-to-cmark](https://github.com/Byron/pulldown-cmark-to-cmark) from 6.0.2 to 6.0.3. - - * [Release notes](https://github.com/Byron/pulldown-cmark-to-cmark/releases) - * [Changelog](https://github.com/Byron/pulldown-cmark-to-cmark/blob/main/CHANGELOG.md) - * [Commits](https://github.com/Byron/pulldown-cmark-to-cmark/compare/v6.0.2...v6.0.3) - --- - - updated-dependencies: - - * dependency-name: pulldown-cmark-to-cmark - dependency-type: direct:production - update-type: version-update:semver-patch - ... -* Bump serde_yaml from 0.8.20 to 0.8.21. \[dependabot\[bot\]\] - - Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.8.20 to 0.8.21. - - * [Release notes](https://github.com/dtolnay/serde-yaml/releases) - * [Commits](https://github.com/dtolnay/serde-yaml/compare/0.8.20...0.8.21) - --- - - updated-dependencies: - - * dependency-name: serde_yaml - dependency-type: direct:production - update-type: version-update:semver-patch - ... - -## v21.9.0 (2021-09-12) - - > - > This release switches to a [calendar versioning scheme](https://calver.org/overview.html). - > Details on this decision can be read in [switching obsidian-export to CalVer](https://nick.groenen.me/posts/switching-obsidian-export-to-calver/). - -### New - -* Support postprocessors running on embedded notes. \[Nick Groenen\] - - This introduces support for postprocessors that are run on the result of - a note that is being embedded into another note. This differs from the - existing postprocessors (which remain unchanged) that run once all - embeds have been processed and merged with the final note. - - These "embed postprocessors" may be set through the new - `Exporter::add_embed_postprocessor` method. - -* Add start_at option to export a partial vault. \[Nick Groenen\] - - This introduces a new `--start-at` CLI argument and corresponding - `start_at()` method on the Exporter type that allows exporting of only a - given subdirectory within a vault. - - See the updated README file for more details on when and how this may be - used. - -### Other - -* Don't build docs for the bin target. \[Nick Groenen\] - - The library contains documentation covering both CLI and library usage, - there's no separate documentation for just the binary target. - -* Move postprocessor tests into their own file for clarity. \[Nick Groenen\] - -* Update indirect dependencies. \[Nick Groenen\] - -* Bump serde_yaml from 0.8.19 to 0.8.20. \[dependabot\[bot\]\] - - Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.8.19 to 0.8.20. - - * [Release notes](https://github.com/dtolnay/serde-yaml/releases) - * [Commits](https://github.com/dtolnay/serde-yaml/compare/0.8.19...0.8.20) - --- - - updated-dependencies: - - * dependency-name: serde_yaml - dependency-type: direct:production - update-type: version-update:semver-patch - ... -* Don't borrow references that are immediately dereferenced. \[Nick Groenen\] - - This was caught by a recently introduced clippy rule - -* Bump serde_yaml from 0.8.17 to 0.8.19. \[dependabot\[bot\]\] - - Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.8.17 to 0.8.19. - - * [Release notes](https://github.com/dtolnay/serde-yaml/releases) - * [Commits](https://github.com/dtolnay/serde-yaml/compare/0.8.17...0.8.19) - --- - - updated-dependencies: - - * dependency-name: serde_yaml - dependency-type: direct:production - update-type: version-update:semver-patch - ... -* Update dependencies. \[Nick Groenen\] - -* Fix 4 new clippy lints. \[Nick Groenen\] - -* Bump regex from 1.4.6 to 1.5.3. \[dependabot\[bot\]\] - - Bumps [regex](https://github.com/rust-lang/regex) from 1.4.6 to 1.5.3. - - * [Release notes](https://github.com/rust-lang/regex/releases) - * [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - * [Commits](https://github.com/rust-lang/regex/compare/1.4.6...1.5.3) -* Bump pretty_assertions from 0.7.1 to 0.7.2. \[dependabot\[bot\]\] - - Bumps [pretty_assertions](https://github.com/colin-kiegel/rust-pretty-assertions) from 0.7.1 to 0.7.2. - - * [Release notes](https://github.com/colin-kiegel/rust-pretty-assertions/releases) - * [Changelog](https://github.com/colin-kiegel/rust-pretty-assertions/blob/main/CHANGELOG.md) - * [Commits](https://github.com/colin-kiegel/rust-pretty-assertions/compare/v0.7.1...v0.7.2) -* Bump regex from 1.4.5 to 1.4.6. \[dependabot\[bot\]\] - - Bumps [regex](https://github.com/rust-lang/regex) from 1.4.5 to 1.4.6. - - * [Release notes](https://github.com/rust-lang/regex/releases) - * [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - * [Commits](https://github.com/rust-lang/regex/compare/1.4.5...1.4.6) - -## v0.7.0 (2021-04-11) - -### New - -* Postprocessing support. \[Nick Groenen\] - - Add support for postprocessing of Markdown prior to writing converted - notes to disk. - - Postprocessors may be used when making use of Obsidian export as a Rust - library to do the following: - - 1. Modify a note's `Context`, for example to change the destination - filename or update its Frontmatter. - 1. Change a note's contents by altering `MarkdownEvents`. - 1. Prevent later postprocessors from running or cause a note to be - skipped entirely. - Future releases of Obsidian export may come with built-in postprocessors - for users of the command-line tool to use, if general use-cases can be - identified. - - For example, a future release might include functionality to make notes - more suitable for the Hugo static site generator. This functionality - would be implemented as a postprocessor that could be enabled through - command-line flags. - -### Fixes - -* Also percent-encode `?` in filenames. \[Nick Groenen\] - - A recent Obsidian update expanded the list of allowed characters in - filenames, which now includes `?` as well. This needs to be - percent-encoded for proper links in static site generators like Hugo. - -### Other - -* Bump pretty_assertions from 0.6.1 to 0.7.1. \[dependabot\[bot\]\] - - Bumps [pretty_assertions](https://github.com/colin-kiegel/rust-pretty-assertions) from 0.6.1 to 0.7.1. - - * [Release notes](https://github.com/colin-kiegel/rust-pretty-assertions/releases) - * [Changelog](https://github.com/colin-kiegel/rust-pretty-assertions/blob/main/CHANGELOG.md) - * [Commits](https://github.com/colin-kiegel/rust-pretty-assertions/compare/v0.6.1...v0.7.1) -* Bump walkdir from 2.3.1 to 2.3.2. \[dependabot\[bot\]\] - - Bumps [walkdir](https://github.com/BurntSushi/walkdir) from 2.3.1 to 2.3.2. - - * [Release notes](https://github.com/BurntSushi/walkdir/releases) - * [Commits](https://github.com/BurntSushi/walkdir/compare/2.3.1...2.3.2) -* Bump regex from 1.4.3 to 1.4.5. \[dependabot\[bot\]\] - - Bumps [regex](https://github.com/rust-lang/regex) from 1.4.3 to 1.4.5. - - * [Release notes](https://github.com/rust-lang/regex/releases) - * [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - * [Commits](https://github.com/rust-lang/regex/compare/1.4.3...1.4.5) - -## v0.6.0 (2021-02-15) - -### New - -* Add `--version` flag. \[Nick Groenen\] - -### Changes - -* Don't Box FilterFn in WalkOptions. \[Nick Groenen\] - - Previously, `filter_fn` on the `WalkOptions` struct looked like: - - ```` - pub filter_fn: Option>, - ```` - - This boxing was unneccesary and has been changed to: - - ```` - pub filter_fn: Option<&'static FilterFn>, - ```` - - This will only affect people who use obsidian-export as a library in - other Rust programs, not users of the CLI. - - For those library users, they no longer need to supply `FilterFn` - wrapped in a Box. - -### Fixes - -* Recognize notes beginning with underscores. \[Nick Groenen\] - - Notes with an underscore would fail to be recognized within Obsidian - `[[_WikiLinks]]` due to the assumption that the underlying Markdown - parser (pulldown_cmark) would emit the text between `[[` and `]]` as - a single event. - - The note parser has now been rewritten to use a more reliable state - machine which correctly recognizes this corner-case (and likely some - others). - -* Support self-references. \[Joshua Coles\] - - This ensures links to headings within the same note (`[[#Heading]]`) - resolve correctly. - -### Other - -* Avoid redundant "Release" in GitHub release titles. \[Nick Groenen\] - -* Add failing testcase for files with underscores. \[Nick Groenen\] - -* Add unit tests for display of ObsidianNoteReference. \[Nick Groenen\] - -* Add some unit tests for ObsidianNoteReference::from_str. \[Nick Groenen\] - -* Also run tests on pull requests. \[Nick Groenen\] - -* Apply clippy suggestions following rust 1.50.0. \[Nick Groenen\] - -* Fix infinite recursion bug with references to current file. \[Joshua Coles\] - -* Add tests for self-references. \[Joshua Coles\] - - Note as there is no support for block references at the moment, the generated link goes nowhere, however it is to a reasonable ID - -* Bump tempfile from 3.1.0 to 3.2.0. \[dependabot\[bot\]\] - - Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.1.0 to 3.2.0. - - * [Release notes](https://github.com/Stebalien/tempfile/releases) - * [Changelog](https://github.com/Stebalien/tempfile/blob/master/NEWS) - * [Commits](https://github.com/Stebalien/tempfile/commits) -* Bump eyre from 0.6.3 to 0.6.5. \[dependabot\[bot\]\] - - Bumps [eyre](https://github.com/yaahc/eyre) from 0.6.3 to 0.6.5. - - * [Release notes](https://github.com/yaahc/eyre/releases) - * [Changelog](https://github.com/yaahc/eyre/blob/v0.6.5/CHANGELOG.md) - * [Commits](https://github.com/yaahc/eyre/compare/v0.6.3...v0.6.5) -* Bump regex from 1.4.2 to 1.4.3. \[dependabot\[bot\]\] - - Bumps [regex](https://github.com/rust-lang/regex) from 1.4.2 to 1.4.3. - - * [Release notes](https://github.com/rust-lang/regex/releases) - * [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - * [Commits](https://github.com/rust-lang/regex/compare/1.4.2...1.4.3) - -## v0.5.1 (2021-01-10) - -### Fixes - -* Find uppercased notes when referenced with lowercase. \[Nick Groenen\] - - This commit fixes a bug where, if a note contained uppercase characters - (for example `Note.md`) but was referred to using lowercase - (`[[note]]`), that note would not be found. - -## v0.5.0 (2021-01-05) - -### New - -* Add --no-recursive-embeds to break infinite recursion cycles. \[Nick Groenen\] - - It's possible to end up with "recursive embeds" when two notes embed - each other. This happens for example when a `Note A.md` contains - `![[Note B]]` but `Note B.md` also contains `![[Note A]]`. - - By default, this will trigger an error and display the chain of notes - which caused the recursion. - - Using the new `--no-recursive-embeds`, if a note is encountered for a - second time while processing the original note, rather than embedding it - again a link to the note is inserted instead to break the cycle. - - See also: https://github.com/zoni/obsidian-export/issues/1 - -* Make walk options configurable on CLI. \[Nick Groenen\] - - By default hidden files, patterns listed in `.export-ignore` as well as - any files ignored by git are excluded from exports. This behavior has - been made configurable on the CLI using the new flags `--hidden`, - `--ignore-file` and `--no-git`. - -* Support links referencing headings. \[Nick Groenen\] - - Previously, links referencing a heading (`[[note#heading]]`) would just - link to the file name without including an anchor in the link target. - Now, such references will include an appropriate `#anchor` attribute. - - Note that neither the original Markdown specification, nor the more - recent CommonMark standard, specify how anchors should be constructed - for a given heading. - - There are also some differences between the various Markdown rendering - implementations. - - Obsidian-export uses the [slug] crate to generate anchors which should - be compatible with most implementations, however your mileage may vary. - - (For example, GitHub may leave a trailing `-` on anchors when headings - end with a smiley. The slug library, and thus obsidian-export, will - avoid such dangling dashes). - -* Support embeds referencing headings. \[Nick Groenen\] - - Previously, partial embeds (`![[note#heading]]`) would always include - the entire file into the source note. Now, such embeds will only include - the contents of the referenced heading (and any subheadings). - - Links and embeds of [arbitrary blocks] remains unsupported at this time. - -### Changes - -* Print warnings to stderr rather than stdout. \[Nick Groenen\] - - Warning messages emitted when encountering broken links/references will - now be printed to stderr as opposed to stdout. - -### Other - -* Include filter_fn field in WalkOptions debug display. \[Nick Groenen\] - -## v0.4.0 (2020-12-23) - -### Fixes - -* Correct relative links within embedded notes. \[Nick Groenen\] - - Links within an embedded note would point to other local resources - relative to the filesystem location of the note being embedded. - - When a note inside a different directory would embed such a note, these - links would point to invalid locations. - - Now these links are calculated relative to the top note, which ensures - these links will point to the right path. - -### Other - -* Add brief library documentation to all public types and functions. \[Nick Groenen\] - -## v0.3.0 (2020-12-21) - -### New - -* Report file tree when RecursionLimitExceeded is hit. \[Nick Groenen\] - - This refactors the Context to maintain a list of all the files which - have been processed so far in a chain of embeds. This information is - then used to print a more helpful error message to users of the CLI when - RecursionLimitExceeded is returned. - -### Changes - -* Add extra whitespace around multi-line warnings. \[Nick Groenen\] - - This makes errors a bit easier to distinguish after a number of warnings - has been printed. - -### Other - -* Setup gitchangelog. \[Nick Groenen\] - - This adds a changelog (CHANGES.md) which is automatically generated with - [gitchangelog]. - -## v0.2.0 (2020-12-13) - -* Allow custom filter function to be passed with WalkOptions. \[Nick Groenen\] - -* Re-export vault_contents and WalkOptions as pub from crate root. \[Nick Groenen\] - -* Run mdbook hook against README.md too. \[Nick Groenen\] - -* Update installation instructions. \[Nick Groenen\] - - Installation no longer requires a git repository URL now that a crate is - published. - -* Add MdBook generation script and precommit hook. \[Nick Groenen\] - -* Add more reliable non-ASCII tetscase. \[Nick Groenen\] - -* Create FUNDING.yml. \[Nick Groenen\] - -## v0.1.0 (2020-11-28) - -* Public release. \[Nick Groenen\] +For a list of releases and the changes with each version, please refer to [CHANGES](CHANGES.md). [Obsidian]: https://obsidian.md/ [CommonMark]: https://commonmark.org/ @@ -1101,6 +343,3 @@ notable new feature. [Markdown Render Hooks]: https://gohugo.io/getting-started/configuration-markup#markdown-render-hooks [BSD-2-Clause Plus Patent License]: https://spdx.org/licenses/BSD-2-Clause-Patent.html [LICENSE]: LICENSE -[slug]: https://crates.io/crates/slug -[arbitrary blocks]: https://publish.obsidian.md/help/How+to/Link+to+blocks -[gitchangelog]: https://github.com/vaab/gitchangelog diff --git a/docs/_combined.md b/docs/_combined.md index 303dc36..6d7de9a 100644 --- a/docs/_combined.md +++ b/docs/_combined.md @@ -6,4 +6,4 @@ ![[usage-library]] ![[contributing]] ![[license]] -![[CHANGES]] +![[changelog]] diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 0000000..18e95fd --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,3 @@ +# Changelog + +For a list of releases and the changes with each version, please refer to [[CHANGES]].