diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b01c226..866e658a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Fixed +- Fix multiline comment support for `\r\n` line endings. ([#171][github-171], [#172][github-172]) ## [2.9.3] - 2021-09-01 ### Fixed @@ -149,6 +151,8 @@ https://discourse.julialang.org/t/ann-literate-jl/10651 for release announcement [github-167]: https://github.com/fredrikekre/Literate.jl/pull/167 [github-168]: https://github.com/fredrikekre/Literate.jl/issues/168 [github-169]: https://github.com/fredrikekre/Literate.jl/pull/169 +[github-171]: https://github.com/fredrikekre/Literate.jl/issues/171 +[github-172]: https://github.com/fredrikekre/Literate.jl/pull/172 [Unreleased]: https://github.com/fredrikekre/Literate.jl/compare/v2.9.3...HEAD [2.9.3]: https://github.com/fredrikekre/Literate.jl/compare/v2.9.2...v2.9.3 diff --git a/src/Literate.jl b/src/Literate.jl index 63bc6750..aecdb372 100644 --- a/src/Literate.jl +++ b/src/Literate.jl @@ -161,9 +161,9 @@ function replace_default(content, sym; end return str end - content = replace_multiline(r"^#=+\R^(\X*?)\R=+#$"m, content) + content = replace_multiline(r"(*ANYCRLF)^#=+$\R^(\X*?)\R^=+#$"m, content) if config["mdstrings"]::Bool - content = replace_multiline(r"^md\"\"\"\R^(\X*?)\R\"\"\"$"m, content) + content = replace_multiline(r"(*ANYCRLF)^md\"\"\"$\R^(\X*?)\R^\"\"\"$"m, content) end diff --git a/test/runtests.jl b/test/runtests.jl index 78327e93..45c8f2f5 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -827,10 +827,10 @@ end end @test isfile("inputfile.md") # fredrikekre/Literate.jl#165: \r\n line endings with multiline comments/mdstrings - write(inputfile, "#=\r\nhello world\r\nhej världen\r\n=#") + write(inputfile, "#=\r\nhello world\r\nhej världen\r\n=#\r\n") chunks, _ = Literate.preprocessor(inputfile, outdir; user_kwargs=(), user_config=(), type=:md) @test chunks[2].lines == ["" => "hello world", "" => "hej världen"] - write(inputfile, "md\"\"\"\r\nhello world\r\nhej världen\r\n\"\"\"") + write(inputfile, "md\"\"\"\r\nhello world\r\nhej världen\r\n\"\"\"\r\n") chunks, _ = Literate.preprocessor(inputfile, outdir; user_kwargs=pairs((; mdstrings=true)), user_config=(), type=:md) @test chunks[2].lines == ["" => "hello world", "" => "hej världen"]