diff --git a/xtask/src/publish/notes.rs b/xtask/src/publish/notes.rs index 03c0b6a0c6..3584278c19 100644 --- a/xtask/src/publish/notes.rs +++ b/xtask/src/publish/notes.rs @@ -573,185 +573,13 @@ impl Macro { #[cfg(test)] mod tests { use super::*; + use std::fs::read_to_string; #[test] fn test_asciidoc_to_markdown_conversion() { - let input = "\ -= Changelog #256 -:sectanchors: -:page-layout: post - -Hello! - -Commit: commit:0123456789abcdef0123456789abcdef01234567[] + -Release: release:2022-01-01[] - -== New Features - -* **BREAKING** pr:1111[] shortcut kbd:[ctrl+r] -- hyphen-prefixed list item -* nested list item -** `foo` -> `foofoo` -** `bar` -> `barbar` -* listing in the secondary level -. install -. add to config -+ -[source,json] ----- -{\"foo\":\"bar\"} ----- -* list item with continuation -+ -image::https://example.com/animation.gif[] -+ -image::https://example.com/animation.gif[\"alt text\"] -+ -video::https://example.com/movie.mp4[options=loop] -+ -video::https://example.com/movie.mp4[options=\"autoplay,loop\"] -+ -.Image -image::https://example.com/animation.gif[] -+ -.Video -video::https://example.com/movie.mp4[options=loop] -+ -[source,bash] ----- -rustup update nightly ----- -+ ----- -This is a plain listing. ----- -* single line item followed by empty lines - -* multiline list -item followed by empty lines - -* multiline list - item with indent - -* multiline list -item not followed by empty lines -* multiline list -item followed by different marker -** foo -** bar -* multiline list -item followed by list continuation -+ -paragraph -paragraph - -== Another Section - -* foo bar baz -* list item with an inline image - image:https://example.com/animation.gif[] - -The highlight of the month is probably pr:1111[]. -See https://example.com/manual[online manual] for more information. - -[source,bash] ----- -rustup update nightly ----- - -[source] ----- -rustup update nightly ----- - ----- -This is a plain listing. ----- -"; - let expected = "\ -# Changelog #256 - -Hello! - -Commit: [`0123456`](https://github.com/rust-analyzer/rust-analyzer/commit/0123456789abcdef0123456789abcdef01234567) \\ -Release: [`2022-01-01`](https://github.com/rust-analyzer/rust-analyzer/releases/2022-01-01) - -## New Features - -- **BREAKING** [`#1111`](https://github.com/rust-analyzer/rust-analyzer/pull/1111) shortcut ctrl+r - - hyphen-prefixed list item -- nested list item - - `foo` -> `foofoo` - - `bar` -> `barbar` -- listing in the secondary level - 1. install - 1. add to config - - ```json - {\"foo\":\"bar\"} - ``` -- list item with continuation - - ![](https://example.com/animation.gif) - - ![alt text](https://example.com/animation.gif) - - - - - - _Image_\\ - ![](https://example.com/animation.gif) - - _Video_\\ - - - ```bash - rustup update nightly - ``` - - ``` - This is a plain listing. - ``` -- single line item followed by empty lines -- multiline list - item followed by empty lines -- multiline list - item with indent -- multiline list - item not followed by empty lines -- multiline list - item followed by different marker - - foo - - bar -- multiline list - item followed by list continuation - - paragraph - paragraph - -## Another Section - -- foo bar baz -- list item with an inline image - ![](https://example.com/animation.gif) - -The highlight of the month is probably [`#1111`](https://github.com/rust-analyzer/rust-analyzer/pull/1111). -See [online manual](https://example.com/manual) for more information. - -```bash -rustup update nightly -``` - -``` -rustup update nightly -``` - -``` -This is a plain listing. -``` -"; - let actual = convert_asciidoc_to_markdown(std::io::Cursor::new(input)).unwrap(); + let input = read_to_string("test_data/input.adoc").unwrap(); + let expected = read_to_string("test_data/expected.md").unwrap(); + let actual = convert_asciidoc_to_markdown(std::io::Cursor::new(&input)).unwrap(); assert_eq!(actual, expected); } diff --git a/xtask/test_data/expected.md b/xtask/test_data/expected.md new file mode 100644 index 0000000000..19c940c67b --- /dev/null +++ b/xtask/test_data/expected.md @@ -0,0 +1,81 @@ +# Changelog #256 + +Hello! + +Commit: [`0123456`](https://github.com/rust-analyzer/rust-analyzer/commit/0123456789abcdef0123456789abcdef01234567) \ +Release: [`2022-01-01`](https://github.com/rust-analyzer/rust-analyzer/releases/2022-01-01) + +## New Features + +- **BREAKING** [`#1111`](https://github.com/rust-analyzer/rust-analyzer/pull/1111) shortcut ctrl+r + - hyphen-prefixed list item +- nested list item + - `foo` -> `foofoo` + - `bar` -> `barbar` +- listing in the secondary level + 1. install + 1. add to config + + ```json + {"foo":"bar"} + ``` +- list item with continuation + + ![](https://example.com/animation.gif) + + ![alt text](https://example.com/animation.gif) + + + + + + _Image_\ + ![](https://example.com/animation.gif) + + _Video_\ + + + ```bash + rustup update nightly + ``` + + ``` + This is a plain listing. + ``` +- single line item followed by empty lines +- multiline list + item followed by empty lines +- multiline list + item with indent +- multiline list + item not followed by empty lines +- multiline list + item followed by different marker + - foo + - bar +- multiline list + item followed by list continuation + + paragraph + paragraph + +## Another Section + +- foo bar baz +- list item with an inline image + ![](https://example.com/animation.gif) + +The highlight of the month is probably [`#1111`](https://github.com/rust-analyzer/rust-analyzer/pull/1111). +See [online manual](https://example.com/manual) for more information. + +```bash +rustup update nightly +``` + +``` +rustup update nightly +``` + +``` +This is a plain listing. +``` diff --git a/xtask/test_data/input.adoc b/xtask/test_data/input.adoc new file mode 100644 index 0000000000..105bd8df0d --- /dev/null +++ b/xtask/test_data/input.adoc @@ -0,0 +1,90 @@ += Changelog #256 +:sectanchors: +:page-layout: post + +Hello! + +Commit: commit:0123456789abcdef0123456789abcdef01234567[] + +Release: release:2022-01-01[] + +== New Features + +* **BREAKING** pr:1111[] shortcut kbd:[ctrl+r] +- hyphen-prefixed list item +* nested list item +** `foo` -> `foofoo` +** `bar` -> `barbar` +* listing in the secondary level +. install +. add to config ++ +[source,json] +---- +{"foo":"bar"} +---- +* list item with continuation ++ +image::https://example.com/animation.gif[] ++ +image::https://example.com/animation.gif["alt text"] ++ +video::https://example.com/movie.mp4[options=loop] ++ +video::https://example.com/movie.mp4[options="autoplay,loop"] ++ +.Image +image::https://example.com/animation.gif[] ++ +.Video +video::https://example.com/movie.mp4[options=loop] ++ +[source,bash] +---- +rustup update nightly +---- ++ +---- +This is a plain listing. +---- +* single line item followed by empty lines + +* multiline list +item followed by empty lines + +* multiline list + item with indent + +* multiline list +item not followed by empty lines +* multiline list +item followed by different marker +** foo +** bar +* multiline list +item followed by list continuation ++ +paragraph +paragraph + +== Another Section + +* foo bar baz +* list item with an inline image + image:https://example.com/animation.gif[] + +The highlight of the month is probably pr:1111[]. +See https://example.com/manual[online manual] for more information. + +[source,bash] +---- +rustup update nightly +---- + +[source] +---- +rustup update nightly +---- + +---- +This is a plain listing. +----