diff --git a/CHANGELOG.md b/CHANGELOG.md index afe6179..e851fac 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. ([#165][github-165], [#167][github-167]) ## [2.9.1] - 2021-07-30 ### Fixed @@ -136,6 +138,8 @@ https://discourse.julialang.org/t/ann-literate-jl/10651 for release announcement [github-159]: https://github.com/fredrikekre/Literate.jl/pull/159 [github-162]: https://github.com/fredrikekre/Literate.jl/issues/162 [github-163]: https://github.com/fredrikekre/Literate.jl/pull/163 +[github-165]: https://github.com/fredrikekre/Literate.jl/issues/165 +[github-167]: https://github.com/fredrikekre/Literate.jl/pull/167 [Unreleased]: https://github.com/fredrikekre/Literate.jl/compare/v2.9.1...HEAD [2.9.1]: https://github.com/fredrikekre/Literate.jl/compare/v2.9.0...v2.9.1 diff --git a/src/Literate.jl b/src/Literate.jl index efce6b8..8d77df1 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"^#=+\R^(\X*?)\R=+#$"m, content) if config["mdstrings"]::Bool - content = replace_multiline(r"^md\"\"\"$\R^(\X*?)\R^\"\"\"$"m, content) + content = replace_multiline(r"^md\"\"\"\R^(\X*?)\R\"\"\"$"m, content) end diff --git a/test/runtests.jl b/test/runtests.jl index be76f83..c021524 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -825,6 +825,15 @@ end end @test !isfile("inputfile.md") Literate.markdown(inputfile; execute=false) @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=#") + 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\"\"\"") + chunks, _ = Literate.preprocessor(inputfile, outdir; user_kwargs=pairs((; mdstrings=true)), + user_config=(), type=:md) + @test chunks[2].lines == ["" => "hello world", "" => "hej världen"] end end end end