# Changelog ## 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](https://crates.io/crates/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](https://publish.obsidian.md/help/How+to/Link+to+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](https://github.com/vaab/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]