Build Logs
typelevel/laika • 3.8.0-RC5:2025-12-31
Errors
0
Warnings
0
Total Lines
2889
1##################################
2Clonning https://github.com/typelevel/laika.git into /build/repo using revision v1.3.2
3##################################
4Note: switching to 'b87fc9906bdad8200505fd26245bde5205ef0c42'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Would override fixed Scala version: 3.3.5
22Using target Scala version for migration: 3.7.4
23Migrating project for -source:3.4 using Scala 3.7.4
24----
25Preparing build for 3.7.4
26Would try to apply common scalacOption (best-effort, sbt/mill only):
27Append: -rewrite,REQUIRE:-source:3.4-migration
28Remove: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
29
30Try apply source patch:
31Path: core/shared/src/main/scala/laika/ast/Cursor.scala
32Pattern: RewritableContainer with Block
33Replacement: (RewritableContainer & Block)
34Starting compilation server
35Compiling project (Scala 3.7.3, JVM (17))
36Compiled project (Scala 3.7.3, JVM (17))
37Successfully applied pattern ' RewritableContainer with Block ' in core/shared/src/main/scala/laika/ast/Cursor.scala
38
39Try apply source patch:
40Path: core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala
41Pattern: SpanContainer with Block
42Replacement: (SpanContainer & Block)
43Successfully applied pattern ' SpanContainer with Block ' in core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala
44
45Try apply source patch:
46Path: core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala
47Pattern: SpanContainer with Span
48Replacement: (SpanContainer & Span)
49Successfully applied pattern ' SpanContainer with Span ' in core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala
50
51Try apply source patch:
52Path: core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala
53Pattern: Hidden with Block
54Replacement: (Hidden & Block)
55Successfully applied pattern ' Hidden with Block ' in core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala
56
57Try apply source patch:
58Path: project/Dependencies.scala
59Pattern: val scala3 = "3.3.5"
60Replacement: val scala3 = "3.7.4"
61Successfully applied pattern 'val scala3 = "3.3.5"' in project/Dependencies.scala
62----
63Starting build for 3.7.4
64Execute tests: false
65sbt project found:
66Sbt version 1.10.11 is not supported, minimal supported version is 1.11.5
67Enforcing usage of sbt in version 1.11.5
68No prepare script found for project typelevel/laika
69##################################
70Scala version: 3.7.4
71Targets: org.typelevel%laika-core org.typelevel%laika-docs org.typelevel%laika-io org.typelevel%laika-pdf org.typelevel%laika-preview
72Project projectConfig: {"projects":{"exclude":["org.typelevel%laika-docs"],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.4"],"sourcePatches":[{"path":"core/shared/src/main/scala/laika/ast/Cursor.scala","pattern":" RewritableContainer with Block ","replaceWith":" (RewritableContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Block ","replaceWith":" (SpanContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Span ","replaceWith":" (SpanContainer & Span) "},{"path":"core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala","pattern":" Hidden with Block ","replaceWith":" (Hidden & Block) "},{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.3.5\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
73##################################
74Using extra scalacOptions: -rewrite,REQUIRE:-source:3.4-migration
75Filtering out scalacOptions: -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
76[sbt_options] declare -a sbt_options=()
77[process_args] java_version = '17'
78[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
79# Executing command line:
80java
81-Xms1G
82-Xmx4G
83-XX:+UseG1GC
84-Dcommunitybuild.scala=3.7.4
85-Dcommunitybuild.project.dependencies.add=
86-Xmx7G
87-Xms4G
88-Xss8M
89-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
90-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
91-jar
92/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
93"setCrossScalaVersions 3.7.4"
94"++3.7.4 -v"
95"mapScalacOptions "-rewrite,REQUIRE:-source:3.4-migration,-Wconf:msg=can be rewritten automatically under:s" "-indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
96"set every credentials := Nil"
97"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
98"removeScalacOptionsStartingWith -P:wartremover"
99
100moduleMappings
101"runBuild 3.7.4 """{"projects":{"exclude":["org.typelevel%laika-docs"],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.4"],"sourcePatches":[{"path":"core/shared/src/main/scala/laika/ast/Cursor.scala","pattern":" RewritableContainer with Block ","replaceWith":" (RewritableContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Block ","replaceWith":" (SpanContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Span ","replaceWith":" (SpanContainer & Span) "},{"path":"core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala","pattern":" Hidden with Block ","replaceWith":" (Hidden & Block) "},{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.3.5\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" org.typelevel%laika-core org.typelevel%laika-docs org.typelevel%laika-io org.typelevel%laika-pdf org.typelevel%laika-preview"
102
103[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
104[info] loading settings for project repo-build from akka.sbt, plugins.sbt, scripted.sbt...
105[info] loading project definition from /build/repo/project
106[info] compiling 8 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
107[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
108[info] Compilation completed in 8.888s.
109[info] done compiling
110[info] loading settings for project root from build.sbt...
111[info] resolving key references (12491 settings) ...
112[info] set scmInfo to https://github.com/typelevel/laika
113[info] set current project to root (in build file:/build/repo/)
114Execute setCrossScalaVersions: 3.7.4
115OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in api/crossScalaVersions
116OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in pdf/crossScalaVersions
117OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in docs/crossScalaVersions
118OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in rootNative/crossScalaVersions
119OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in rootJS/crossScalaVersions
120OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in core/crossScalaVersions
121OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in io/crossScalaVersions
122OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in preview/crossScalaVersions
123OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in coreJS/crossScalaVersions
124[info] set scmInfo to https://github.com/typelevel/laika
125OpenCB::Changing crossVersion 3.7.4 -> 3.7.4 in rootJVM/crossScalaVersions
126OpenCB::Limitting incorrect crossVersions List() -> List(2.12.20) in root/crossScalaVersions
127[info] set current project to root (in build file:/build/repo/)
128[info] Setting Scala version to 3.7.4 on 10 projects.
129[info] Switching Scala version on:
130[info] pdf (2.12.20, 2.13.15, 3.7.4)
131[info] rootJS (2.12.20, 2.13.15, 3.7.4)
132[info] preview (2.12.20, 2.13.15, 3.7.4)
133[info] docs (2.12.20, 2.13.15, 3.7.4)
134[info] coreJS (2.12.20, 2.13.15, 3.7.4)
135[info] rootJVM (2.12.20, 2.13.15, 3.7.4)
136[info] rootNative (2.12.20, 2.13.15, 3.7.4)
137[info] io (2.12.20, 2.13.15, 3.7.4)
138[info] api (2.12.20, 2.13.15, 3.7.4)
139[info] core (2.12.20, 2.13.15, 3.7.4)
140[info] Excluding projects:
141[info] plugin (2.12.20)
142[info] * root (2.12.20)
143[info] Reapplying settings...
144[info] set scmInfo to https://github.com/typelevel/laika
145[info] set current project to root (in build file:/build/repo/)
146Execute mapScalacOptions: -rewrite,REQUIRE:-source:3.4-migration,-Wconf:msg=can be rewritten automatically under:s -indent,-no-indent,-new-syntax,,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
147[info] Reapplying settings...
148[info] set scmInfo to https://github.com/typelevel/laika
149[info] set current project to root (in build file:/build/repo/)
150[info] Defining Global / credentials, api / credentials and 10 others.
151[info] The new values will be used by Compile / scalafmtOnly, IntegrationTest / scalafmtOnly and 105 others.
152[info] Run `last` for details.
153[info] Reapplying settings...
154[info] set scmInfo to https://github.com/typelevel/laika
155[info] set current project to root (in build file:/build/repo/)
156Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
157[info] Reapplying settings...
158OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
159
160 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
161 Did you mean allExcludeDependencies ?
162 , retry without global scopes
163[info] Reapplying settings...
164[info] set scmInfo to https://github.com/typelevel/laika
165[info] set current project to root (in build file:/build/repo/)
166Execute removeScalacOptionsStartingWith: -P:wartremover
167[info] Reapplying settings...
168[info] set scmInfo to https://github.com/typelevel/laika
169[info] set current project to root (in build file:/build/repo/)
170[success] Total time: 0 s, completed Dec 31, 2025, 9:02:22 PM
171Build config: {"projects":{"exclude":["org.typelevel%laika-docs"],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"compile-only","migrationVersions":["3.4"],"sourcePatches":[{"path":"core/shared/src/main/scala/laika/ast/Cursor.scala","pattern":" RewritableContainer with Block ","replaceWith":" (RewritableContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Block ","replaceWith":" (SpanContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Span ","replaceWith":" (SpanContainer & Span) "},{"path":"core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala","pattern":" Hidden with Block ","replaceWith":" (Hidden & Block) "},{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.3.5\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
172Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(org.typelevel%laika-docs),Map()),CompileOnly,List()))
173Excluding target 'org.typelevel%laika-docs' - matches exclusion rule: 'org.typelevel%laika-docs'
174Starting build...
175Projects: Set(core, io, pdf, preview)
176Starting build for ProjectRef(file:/build/repo/,core) (laika-core)... [0/4]
177OpenCB::Exclude Scala3 specific scalacOption `-rewrite` in Scala 2.12.20 module Global
178OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.4-migration` in Scala 2.12.20 module Global
179OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
180OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
181Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, -java-output-version, 8, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
182[info] compiling 223 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
183[info] [patched file /build/repo/core/shared/src/main/scala/laika/api/builder/TwoPhaseRendererBuilder.scala]
184[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/text/PrefixedParser.scala]
185[info] [patched file /build/repo/core/shared/src/main/scala/laika/ast/links.scala]
186[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/parse/markup/RootParser.scala]
187[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/rst/TableParsers.scala]
188[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/Parser.scala]
189[info] [patched file /build/repo/core/shared/src/main/scala/laika/api/bundle/ParserBundle.scala]
190[info] [patched file /build/repo/core/shared/src/main/scala/laika/ast/RewriteRules.scala]
191[info] [patched file /build/repo/core/shared/src/main/scala/laika/api/format/TagFormatter.scala]
192[info] [patched file /build/repo/core/shared/src/main/scala/laika/ast/OutputContext.scala]
193[info] [patched file /build/repo/core/shared/src/main/scala/laika/api/bundle/ParserBuilder.scala]
194[info] [patched file /build/repo/core/shared/src/main/scala/laika/ast/documents.scala]
195[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/parse/markup/DefaultEscapedTextParsers.scala]
196[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/code/languages/HOCONSyntax.scala]
197[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/rst/ext/TextRoles.scala]
198[info] [patched file /build/repo/core/shared/src/main/scala/laika/ast/RomanNumerals.scala]
199[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/code/languages/ShellSyntax.scala]
200[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/rst/ListParsers.scala]
201[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/rst/std/StandardBlockDirectives.scala]
202[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/code/languages/SQLSyntax.scala]
203[info] [patched file /build/repo/core/shared/src/main/scala/laika/api/builder/TwoPhaseTransformerBuilder.scala]
204[info] [patched file /build/repo/core/shared/src/main/scala/laika/api/builder/OperationConfig.scala]
205[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/rewrite/RecursiveResolverRules.scala]
206[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/markdown/BlockParsers.scala]
207[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/text/TextParsers.scala]
208[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/rst/std/StandardTextRoles.scala]
209[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/markup/BlockParsers.scala]
210[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/SourceCursor.scala]
211[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/rst/ExplicitBlockParsers.scala]
212[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/code/languages/PythonSyntax.scala]
213[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/render/HTMLRenderer.scala]
214[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/parse/markup/DocumentParser.scala]
215[info] [patched file /build/repo/core/shared/src/main/scala/laika/api/bundle/directives.scala]
216[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/text/CharGroup.scala]
217[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/render/FOFormatter.scala]
218[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/directive/StandardDirectives.scala]
219[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/parse/hocon/HoconParsers.scala]
220[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/code/common/Keywords.scala]
221[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/code/common/Identifier.scala]
222[info] [patched file /build/repo/core/shared/src/main/scala/laika/ast/ElementTraversal.scala]
223[info] [patched file /build/repo/core/shared/src/main/scala/laika/api/bundle/ExtensionBundle.scala]
224[info] [patched file /build/repo/core/shared/src/main/scala/laika/parse/text/DelimiterParser.scala]
225[info] [patched file /build/repo/core/shared/src/main/scala/laika/internal/render/FORenderer.scala]
226[info] done compiling
227[info] compiling 43 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
228[info] done compiling
229[info] compiling 57 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
230[info] done compiling
231[info] compiling 41 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
232[info] done compiling
233[info] compiling 223 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/classes ...
234[info] done compiling
235[info] compiling 87 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/test-classes ...
236[info] [patched file /build/repo/core/shared/src/test/scala/laika/directive/std/LinkDirectiveSpec.scala]
237[info] [patched file /build/repo/core/shared/src/test/scala/laika/directive/TemplateDirectiveAPISpec.scala]
238[info] [patched file /build/repo/core/shared/src/test/scala/laika/markdown/APISpec.scala]
239[info] [patched file /build/repo/core/shared/src/test/scala/laika/markdown/HTMLModelBuilder.scala]
240[info] [patched file /build/repo/core/shared/src/test/scala/laika/api/RenderPhaseRewrite.scala]
241[info] [patched file /build/repo/core/shared/src/test/scala/laika/ast/DocumentTreeAPISpec.scala]
242[info] [patched file /build/repo/core/shared/src/test/scala/laika/parse/ParserSpec.scala]
243[info] [patched file /build/repo/core/shared/src/test/scala/laika/directive/SpanDirectiveAPISpec.scala]
244[info] [patched file /build/repo/core/shared/src/test/scala/laika/rewrite/SectionNumberSpec.scala]
245[info] [patched file /build/repo/core/shared/src/test/scala/laika/internal/rst/ext/DirectiveSpec.scala]
246[info] [patched file /build/repo/core/shared/src/test/scala/laika/internal/rst/APISpec.scala]
247[info] [patched file /build/repo/core/shared/src/test/scala/laika/internal/rst/bundle/ExtendedHTMLRendererSpec.scala]
248[info] [patched file /build/repo/core/shared/src/test/scala/laika/rewrite/RewriteRulesSpec.scala]
249[info] [patched file /build/repo/core/shared/src/test/scala/laika/directive/BlockDirectiveAPISpec.scala]
250[info] [patched file /build/repo/core/shared/src/test/scala/laika/directive/std/NavigationDirectiveSpec.scala]
251[info] done compiling
252[info] compiling 15 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/test-classes ...
253[info] done compiling
254[info] compiling 15 Scala sources to /build/repo/core/jvm/target/scala-3.7.4/test-classes ...
255[info] done compiling
256Starting build for ProjectRef(file:/build/repo/,io) (laika-io)... [1/4]
257Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, -java-output-version, 8, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
258[info] compiling 91 Scala sources to /build/repo/io/target/scala-3.7.4/classes ...
259[info] [patched file /build/repo/io/src/main/scala/laika/io/ops/BinaryOutputOps.scala]
260[info] [patched file /build/repo/io/src/main/scala/laika/io/internal/runtime/RendererRuntime.scala]
261[info] [patched file /build/repo/io/src/main/scala/laika/io/api/BinaryTreeTransformer.scala]
262[info] [patched file /build/repo/io/src/main/scala/laika/io/api/TreeTransformer.scala]
263[info] [patched file /build/repo/io/src/main/scala/laika/io/syntax.scala]
264[info] [patched file /build/repo/io/src/main/scala/laika/io/api/TreeParser.scala]
265[info] [patched file /build/repo/io/src/main/scala/laika/io/api/BinaryTreeRenderer.scala]
266[info] [patched file /build/repo/io/src/main/scala/laika/io/model/FilePath.scala]
267[info] [patched file /build/repo/io/src/main/scala/laika/io/ops/InputOps.scala]
268[info] done compiling
269[info] compiling 9 Scala sources to /build/repo/io/target/scala-3.7.4/classes ...
270[info] done compiling
271[info] compiling 44 Scala sources to /build/repo/io/target/scala-3.7.4/test-classes ...
272[info] [patched file /build/repo/io/src/test/scala/laika/io/TreeRendererSpec.scala]
273[info] [patched file /build/repo/io/src/test/scala/laika/theme/ThemeBundleSpec.scala]
274[info] [patched file /build/repo/io/src/test/scala/laika/io/helper/TestThemeBuilder.scala]
275[info] done compiling
276[info] compiling 3 Scala sources to /build/repo/io/target/scala-3.7.4/test-classes ...
277[info] done compiling
278[info] compiling 3 Scala sources to /build/repo/io/target/scala-3.7.4/test-classes ...
279[info] done compiling
280Starting build for ProjectRef(file:/build/repo/,pdf) (laika-pdf)... [2/4]
281Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, -java-output-version, 8, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
282[info] compiling 7 Scala sources to /build/repo/pdf/target/scala-3.7.4/classes ...
283[info] done compiling
284[info] compiling 6 Scala sources to /build/repo/pdf/target/scala-3.7.4/test-classes ...
285[info] [patched file /build/repo/pdf/src/test/scala/laika/render/PDFTreeModel.scala]
286[info] done compiling
287[info] compiling 1 Scala source to /build/repo/pdf/target/scala-3.7.4/test-classes ...
288[info] done compiling
289[info] compiling 2 Scala sources to /build/repo/pdf/target/scala-3.7.4/test-classes ...
290[info] done compiling
291Starting build for ProjectRef(file:/build/repo/,preview) (laika-preview)... [3/4]
292Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, -java-output-version, 8, -rewrite, -Wconf:msg=can be rewritten automatically under:s, -source:3.4-migration
293[info] compiling 7 Scala sources to /build/repo/preview/target/scala-3.7.4/classes ...
294[info] [patched file /build/repo/preview/src/main/scala/laika/preview/internal/SourceChangeWatcher.scala]
295[info] [patched file /build/repo/preview/src/main/scala/laika/preview/ServerBuilder.scala]
296[info] done compiling
297[info] compiling 2 Scala sources to /build/repo/preview/target/scala-3.7.4/classes ...
298[info] done compiling
299[info] compiling 1 Scala source to /build/repo/preview/target/scala-3.7.4/test-classes ...
300[info] done compiling
301
302************************
303Build summary:
304[{
305 "module": "laika-core",
306 "compile": {"status": "ok", "tookMs": 36939, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
307 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
308 "test-compile": {"status": "ok", "tookMs": 42787, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
309 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
310 "publish": {"status": "skipped", "tookMs": 0},
311 "metadata": {
312 "crossScalaVersions": ["2.12.20", "2.13.15", "3.3.5"]
313}
314},{
315 "module": "laika-io",
316 "compile": {"status": "ok", "tookMs": 4286, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
317 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
318 "test-compile": {"status": "ok", "tookMs": 5206, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
319 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
320 "publish": {"status": "skipped", "tookMs": 0},
321 "metadata": {
322 "crossScalaVersions": ["2.12.20", "2.13.15", "3.3.5"]
323}
324},{
325 "module": "laika-pdf",
326 "compile": {"status": "ok", "tookMs": 888, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
327 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
328 "test-compile": {"status": "ok", "tookMs": 1148, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
329 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
330 "publish": {"status": "skipped", "tookMs": 0},
331 "metadata": {
332 "crossScalaVersions": ["2.12.20", "2.13.15", "3.3.5"]
333}
334},{
335 "module": "laika-preview",
336 "compile": {"status": "ok", "tookMs": 2448, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
337 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
338 "test-compile": {"status": "ok", "tookMs": 2633, "warnings": 0, "errors": 0, "sourceVersion": "3.4-migration"},
339 "test": {"status": "skipped", "tookMs": 0, "passed": 0, "failed": 0, "ignored": 0, "skipped": 0, "total": 0, "byFramework": []},
340 "publish": {"status": "skipped", "tookMs": 0},
341 "metadata": {
342 "crossScalaVersions": ["2.12.20", "2.13.15", "3.3.5"]
343}
344}]
345************************
346[success] Total time: 111 s (0:01:51.0), completed Dec 31, 2025, 9:04:14 PM
347[0JChecking patch project/plugins.sbt...
348Checking patch project/build.properties...
349Checking patch project/Dependencies.scala...
350Checking patch core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala...
351Checking patch core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala...
352Checking patch core/shared/src/main/scala/laika/ast/Cursor.scala...
353Checking patch build.sbt...
354Applied patch project/plugins.sbt cleanly.
355Applied patch project/build.properties cleanly.
356Applied patch project/Dependencies.scala cleanly.
357Applied patch core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala cleanly.
358Applied patch core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala cleanly.
359Applied patch core/shared/src/main/scala/laika/ast/Cursor.scala cleanly.
360Applied patch build.sbt cleanly.
361Commit migration rewrites
362Switched to a new branch 'opencb/migrate-source-3.4'
363[opencb/migrate-source-3.4 86800d3d8] Apply Scala compiler rewrites using -source:3.4-migration using Scala 3.7.4
364 73 files changed, 139 insertions(+), 139 deletions(-)
365----
366Preparing build for 3.8.0-RC5
367Scala binary version found: 3.8
368Implicitly using source version 3.8
369Scala binary version found: 3.8
370Implicitly using source version 3.8
371Would try to apply common scalacOption (best-effort, sbt/mill only):
372Append: ,REQUIRE:-source:3.8
373Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
374
375Try apply source patch:
376Path: core/shared/src/main/scala/laika/ast/Cursor.scala
377Pattern: RewritableContainer with Block
378Replacement: (RewritableContainer & Block)
379Successfully applied pattern ' RewritableContainer with Block ' in core/shared/src/main/scala/laika/ast/Cursor.scala
380
381Try apply source patch:
382Path: core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala
383Pattern: SpanContainer with Block
384Replacement: (SpanContainer & Block)
385Successfully applied pattern ' SpanContainer with Block ' in core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala
386
387Try apply source patch:
388Path: core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala
389Pattern: SpanContainer with Span
390Replacement: (SpanContainer & Span)
391Successfully applied pattern ' SpanContainer with Span ' in core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala
392
393Try apply source patch:
394Path: core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala
395Pattern: Hidden with Block
396Replacement: (Hidden & Block)
397Successfully applied pattern ' Hidden with Block ' in core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala
398
399Try apply source patch:
400Path: project/Dependencies.scala
401Pattern: val scala3 = "3.3.5"
402Replacement: val scala3 = "3.8.0-RC5"
403Successfully applied pattern 'val scala3 = "3.3.5"' in project/Dependencies.scala
404----
405Starting build for 3.8.0-RC5
406Execute tests: true
407sbt project found:
408Sbt version 1.10.11 is not supported, minimal supported version is 1.11.5
409Enforcing usage of sbt in version 1.11.5
410No prepare script found for project typelevel/laika
411##################################
412Scala version: 3.8.0-RC5
413Targets: org.typelevel%laika-core org.typelevel%laika-docs org.typelevel%laika-io org.typelevel%laika-pdf org.typelevel%laika-preview
414Project projectConfig: {"projects":{"exclude":["org.typelevel%laika-docs"],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.4"],"sourcePatches":[{"path":"core/shared/src/main/scala/laika/ast/Cursor.scala","pattern":" RewritableContainer with Block ","replaceWith":" (RewritableContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Block ","replaceWith":" (SpanContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Span ","replaceWith":" (SpanContainer & Span) "},{"path":"core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala","pattern":" Hidden with Block ","replaceWith":" (Hidden & Block) "},{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.3.5\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
415##################################
416Using extra scalacOptions: ,REQUIRE:-source:3.8
417Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
418[sbt_options] declare -a sbt_options=()
419[process_args] java_version = '17'
420[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
421# Executing command line:
422java
423-Xms1G
424-Xmx4G
425-XX:+UseG1GC
426-Dcommunitybuild.scala=3.8.0-RC5
427-Dcommunitybuild.project.dependencies.add=
428-Xmx7G
429-Xms4G
430-Xss8M
431-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
432-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
433-jar
434/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
435"setCrossScalaVersions 3.8.0-RC5"
436"++3.8.0-RC5 -v"
437"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
438"set every credentials := Nil"
439"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
440"removeScalacOptionsStartingWith -P:wartremover"
441
442moduleMappings
443"runBuild 3.8.0-RC5 """{"projects":{"exclude":["org.typelevel%laika-docs"],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.4"],"sourcePatches":[{"path":"core/shared/src/main/scala/laika/ast/Cursor.scala","pattern":" RewritableContainer with Block ","replaceWith":" (RewritableContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Block ","replaceWith":" (SpanContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Span ","replaceWith":" (SpanContainer & Span) "},{"path":"core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala","pattern":" Hidden with Block ","replaceWith":" (Hidden & Block) "},{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.3.5\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" org.typelevel%laika-core org.typelevel%laika-docs org.typelevel%laika-io org.typelevel%laika-pdf org.typelevel%laika-preview"
444
445[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
446[info] loading settings for project repo-build from akka.sbt, plugins.sbt, scripted.sbt...
447[info] loading project definition from /build/repo/project
448[info] compiling 1 Scala source to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
449[info] done compiling
450[info] loading settings for project root from build.sbt...
451[info] resolving key references (12491 settings) ...
452[info] set scmInfo to https://github.com/typelevel/laika
453[info] set current project to root (in build file:/build/repo/)
454Execute setCrossScalaVersions: 3.8.0-RC5
455OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in pdf/crossScalaVersions
456OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in docs/crossScalaVersions
457OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in rootNative/crossScalaVersions
458OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in api/crossScalaVersions
459[info] set scmInfo to https://github.com/typelevel/laika
460OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in coreJS/crossScalaVersions
461OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in rootJS/crossScalaVersions
462OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in core/crossScalaVersions
463OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in io/crossScalaVersions
464OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in preview/crossScalaVersions
465OpenCB::Limitting incorrect crossVersions List() -> List(2.12.20) in root/crossScalaVersions
466OpenCB::Changing crossVersion 3.8.0-RC5 -> 3.8.0-RC5 in rootJVM/crossScalaVersions
467[info] set current project to root (in build file:/build/repo/)
468[info] Setting Scala version to 3.8.0-RC5 on 10 projects.
469[info] Switching Scala version on:
470[info] pdf (2.12.20, 2.13.15, 3.8.0-RC5)
471[info] rootJS (2.12.20, 2.13.15, 3.8.0-RC5)
472[info] preview (2.12.20, 2.13.15, 3.8.0-RC5)
473[info] docs (2.12.20, 2.13.15, 3.8.0-RC5)
474[info] coreJS (2.12.20, 2.13.15, 3.8.0-RC5)
475[info] rootJVM (2.12.20, 2.13.15, 3.8.0-RC5)
476[info] rootNative (2.12.20, 2.13.15, 3.8.0-RC5)
477[info] io (2.12.20, 2.13.15, 3.8.0-RC5)
478[info] api (2.12.20, 2.13.15, 3.8.0-RC5)
479[info] core (2.12.20, 2.13.15, 3.8.0-RC5)
480[info] Excluding projects:
481[info] plugin (2.12.20)
482[info] * root (2.12.20)
483[info] Reapplying settings...
484[info] set scmInfo to https://github.com/typelevel/laika
485[info] set current project to root (in build file:/build/repo/)
486Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
487[info] Reapplying settings...
488[info] set scmInfo to https://github.com/typelevel/laika
489[info] set current project to root (in build file:/build/repo/)
490[info] Defining Global / credentials, api / credentials and 10 others.
491[info] The new values will be used by Compile / scalafmtOnly, IntegrationTest / scalafmtOnly and 105 others.
492[info] Run `last` for details.
493[info] Reapplying settings...
494[info] set scmInfo to https://github.com/typelevel/laika
495[info] set current project to root (in build file:/build/repo/)
496Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
497[info] Reapplying settings...
498OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
499
500 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
501 Did you mean allExcludeDependencies ?
502 , retry without global scopes
503[info] Reapplying settings...
504[info] set scmInfo to https://github.com/typelevel/laika
505[info] set current project to root (in build file:/build/repo/)
506Execute removeScalacOptionsStartingWith: -P:wartremover
507[info] Reapplying settings...
508[info] set scmInfo to https://github.com/typelevel/laika
509[info] set current project to root (in build file:/build/repo/)
510[success] Total time: 0 s, completed Dec 31, 2025, 9:04:39 PM
511Build config: {"projects":{"exclude":["org.typelevel%laika-docs"],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":["3.4"],"sourcePatches":[{"path":"core/shared/src/main/scala/laika/ast/Cursor.scala","pattern":" RewritableContainer with Block ","replaceWith":" (RewritableContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Block ","replaceWith":" (SpanContainer & Block) "},{"path":"core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala","pattern":" SpanContainer with Span ","replaceWith":" (SpanContainer & Span) "},{"path":"core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala","pattern":" Hidden with Block ","replaceWith":" (Hidden & Block) "},{"path":"project/Dependencies.scala","pattern":"val scala3 = \"3.3.5\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
512Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(org.typelevel%laika-docs),Map()),Full,List()))
513Excluding target 'org.typelevel%laika-docs' - matches exclusion rule: 'org.typelevel%laika-docs'
514Starting build...
515Projects: Set(core, io, pdf, preview)
516Starting build for ProjectRef(file:/build/repo/,core) (laika-core)... [0/4]
517OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
518OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
519OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
520Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
521[info] compiling 223 Scala sources to /build/repo/core/jvm/target/scala-3.8.0-RC5/classes ...
522[info] done compiling
523[info] compiling 87 Scala sources to /build/repo/core/jvm/target/scala-3.8.0-RC5/test-classes ...
524[info] done compiling
525laika.internal.rst.LineBlockSpec:
526 + block with out continuation or indentation 0.09s
527 + block with a continuation line 0.005s
528 + nested structure (pointing right) 0.005s
529 + nested structure (pointing left) 0.002s
530laika.config.BlockParserConfigSpec:
531 + merge parsers from a host language with parsers from an app extension 0.327s
532 + merge parsers from two app extensions 0.026s
533 + let a parser from an app extension override a parser from the host language 0.025s
534 + let a parser from the host language override a low-precedence parser from an app extension 0.011s
535laika.internal.rst.bundle.ExtendedHTMLRendererSpec:
536 + render a doctest block 0.116s
537 + render a field list 0.034s
538 + render a list of program options 0.012s
539 + render nested line blocks 0.009s
540laika.parse.PositionTrackingSpec:
541 + report an invalid block directive 0.113s
542 + report an invalid span directive 0.019s
543 + report an invalid block directive inside a list element 0.027s
544 + report an invalid span directive indented inside a quoted block 0.013s
545 + report an invalid span directive not indented inside a quoted block 0.013s
546 + report an invalid span directive inside a table cell 0.032s
547 + format multiple errors correctly 0.012s
548laika.internal.rst.RewriteRulesSpec:
549 + link id refs - resolve references when some parent element also gets rewritten 0.028s
550 + decorated headers - set the level of the header in a flat list of headers 0.005s
551 + decorated headers - set the level of the header in a nested list of headers 0.004s
552 + decorated headers - do not create title nodes in the default configuration for orphan documents 0.005s
553 + decorated headers - respect explicitly assigned ids 0.003s
554laika.internal.rst.TableParsersSpec:
555 + grid table - 2 rows and 2 cells 0.04s
556 + grid table - horizontally merged cells in the first row 0.011s
557 + grid table - horizontally merged cells in the second row 0.003s
558 + grid table - vertically merged cells in the left column 0.003s
559 + grid table - vertically merged cells in the right column 0.005s
560 + grid table - vertically and horizontally merged cells 0.017s
561 + grid table - empty cells 0.002s
562 + grid table - fail in case of illegal merging of cells (variant 1) 0.009s
563 + grid table - fail in case of illegal merging of cells (variant 2) 0.006s
564 + grid table - fail in case of illegal merging of cells (variant 3) 0.002s
565 + grid table - fail in case of illegal merging of cells (variant 4) 0.005s
566 + grid table - parse cells containing multiple block elements 0.019s
567 + grid table - parse tables with header cells 0.005s
568 + simple table - 2 rows and 2 cells 0.018s
569 + simple table - horizontally merged cells in the first row 0.002s
570 + simple table - horizontally merged cells in the second row 0.005s
571 + simple table - empty cells 0.006s
572 + simple table - cells containing multiple block elements 0.007s
573 + simple table - header cells 0.003s
574laika.parse.hocon.HoconParserSpec:
575 + empty root object that is not enclosed in braces 0.001s
576 + root object with two properties that is not enclosed in braces 0.002s
577 + root object with all property types that is not enclosed in braces 0.015s
578 + root object with two properties that use '=' instead of ':' 0.001s
579 + object property without separator 0.002s
580 + object property with a trailing comma 0.004s
581 + array property with a trailing comma 0.002s
582 + array property with elements separated by newline characters 0.004s
583 + root object with members separated by newline characters 0.002s
584 + root object with members separated by two newline characters 0.001s
585 + multiline string property 0.004s
586 + multiline string property with more than 3 closing quotes 0.004s
587 + multiline string property - ignore escapes 0.002s
588 + object with unquoted keys 0.001s
589 + object with unquoted string values 0.004s
590 + object with the += field separator 0.003s
591 + simple values containing booleans 0.001s
592 + simple values containing numbers 0.0s
593 + object values on a single line 0.002s
594 + object values spanning multiple lines 0.004s
595 + array values on a single line 0.001s
596 + array values spanning multiple lines 0.001s
597 + concatenated key consisting of unquoted strings 0.005s
598 + concatenated key consisting of unquoted and quoted strings 0.0s
599 + substitution as a simple value 0.002s
600 + substitution for an optional value 0.003s
601 + substitution as the first part in a concatenated value 0.001s
602 + substitution as the last part in a concatenated value 0.0s
603 + comment at the beginning of the input 0.001s
604 + comment at the end of the input 0.0s
605 + comment in the middle of the input 0.004s
606 + multiple comments in the middle of the input 0.0s
607 + comment next to an object member 0.001s
608 + comment next to an array property 0.001s
609 + unquoted path 0.0s
610 + unquoted path with whitespace 0.001s
611 + quoted path 0.0s
612 + quoted and unquoted path combined 0.001s
613 + quoted empty string as a path element 0.0s
614 + optional file include 0.012s
615 + optional classpath include 0.001s
616 + optional URL include 0.002s
617 + optional heuristic include 0.001s
618 + required heuristic include 0.001s
619 + required file include 0.0s
620 + multiple include statements on different nesting levels 0.001s
621laika.internal.rst.BulletListSpec:
622 + list items not separated by blank lines 0.009s
623 + list items separated by blank lines 0.002s
624 + list items starting with '+' treated the same way as those starting with a '*' 0.006s
625 + list items starting with '-' treated the same way as those starting with a '*' 0.005s
626 + list items containing multiple paragraphs in a single item 0.007s
627 + nested items indented by spaces 0.002s
628 + ignore items when the second line is not indented 0.009s
629 + literal block after the first line of a list item 0.006s
630laika.parse.hocon.HoconParserIntegrationSpec:
631 + successfully parse the full Akka default configuration 0.172s
632laika.ast.DocumentTreeAPISpec:
633 + access to the root tree when rewriting a document in the root tree 0.231s
634 + access to the parent tree when rewriting a document in the root tree 0.006s
635 + access to the root tree when rewriting a document in a child tree 0.017s
636 + access to the parent tree when rewriting a document in a child tree 0.01s
637 + obtain the tree title from the title document if present 0.004s
638 + obtain the title from the document config if present 0.049s
639 + do not inherit the tree title as the document title 0.011s
640 + allow to select a document from a subdirectory using a relative path 0.01s
641 + allow to select a document in the current directory using a relative path 0.001s
642 + allow to select a title document in the current directory using a relative path 0.005s
643 + allow to select a subtree in a child directory using a relative path 0.009s
644 + allow to select a subtree in the current directory using a relative path 0.001s
645 + allow to specify a template for a document using an absolute path 0.02s
646 + allow to specify a template for a document for a specific output format 0.006s
647 + allow to specify a template for a document using a relative path 0.005s
648 + fail if a specified template does not exist 0.007s
649 + allow to rewrite the tree using a custom rule 0.008s
650 + give access to the previous sibling in a hierarchical view 0.037s
651 + return None for the next document in the final leaf node of the tree 0.019s
652 + give access to the previous title document in a hierarchical view for a title document 0.034s
653 + give access to the previous sibling in a flattened view 0.035s
654 + resolve a substitution reference to the source path of the previous document 0.028s
655 + resolve a substitution reference to the output path of the previous document 0.016s
656 + be empty for the next document in the final leaf node of the tree 0.02s
657 + resolve a substitution reference to the source path of the parent document 0.016s
658 + resolve a substitution reference to the output path of the parent document 0.01s
659 + resolve a substitution reference to the source path of the previous document in a flattened view 0.026s
660 + resolve a substitution reference to the output path of the previous document in a flattened view 0.032s
661 + provide all runtime messages in the tree 0.012s
662 + provide all invalid spans in the tree 0.015s
663 + fail if cursor creation fails due to invalid configuration entries 0.017s
664 + adjust the path property of documents when appending to a DocumentTree 0.003s
665laika.internal.rst.BaseParsersSpec:
666 + parse a name consisting of characters 0.0s
667 + parse a name consisting of characters and digits 0.0s
668 + parse a name consisting of characters and any of the supported symbols 0.0s
669 + fail if the name starts with a symbol 0.001s
670 + ignore a trailing symbol 0.0s
671 + stop parsing at two consecutive symbols 0.0s
672 + stop parsing at unsupported symbols 0.001s
673 + parse a name containing non-ASCII characters 0.0s
674laika.config.ConfigProviderSpec:
675 + should let configuration providers from app bundles override providers from parsers 0.009s
676 + let an app config override a config provider in a previously installed app config 0.002s
677 + use the default fallback parser in case no provider is installed 0.001s
678 + fail when it does not recognize the header separator 0.001s
679laika.ast.ElementTraversalSpec:
680 + select all elements that satisfy the predicate 0.004s
681 + select the elements in depth-first order 0.001s
682 + select elements which are not part of the content collection of a container 0.0s
683 + return an empty list if no element satisfies the predicate 0.002s
684 + collect values based on a partial function applied to all elements 0.01s
685laika.parse.hocon.HoconErrorSpec:
686 + missing closing quotes in a top level property 0.004s
687 + missing closing quotes in an array property 0.002s
688 + missing closing quotes in a nested object property 0.001s
689 + missing closing quotes in a substitution reference 0.006s
690 + missing closing quotes in a property key 0.004s
691 + invalid characters for unquoted strings in a top level property value 0.0s
692 + invalid characters for unquoted strings in an array property 0.0s
693 + invalid characters for unquoted strings in a nested object property value 0.001s
694 + invalid characters for unquoted strings in a substitution reference 0.0s
695 + invalid characters for unquoted strings in a property key 0.001s
696 + invalid characters for unquoted strings as a consequence of a missing separator between fields 0.0s
697 + invalid escape sequences in a top level property 0.003s
698 + missing closing brackets for arrays in a top level property 0.004s
699 + missing closing brackets for arrays in a top level property in a multiline array 0.0s
700 + missing closing brackets for arrays in a nested object property 0.003s
701 + missing closing brackets for objects in a top level property 0.0s
702 + missing closing brackets for objects in a multiline array 0.001s
703 + missing closing brackets for objects in a nested object property 0.001s
704 + missing '=' or ':' between key and value in a top level property 0.0s
705 + missing '=' or ':' between key and value in a multiline array 0.002s
706 + missing '=' or ':' between key and value in a nested object property 0.003s
707 + missing closing braces for substitution references in a top level property 0.001s
708 + missing closing braces for substitution references in a multiline array 0.0s
709 + missing closing braces for substitution references in a nested object property 0.001s
710 + missing closing triple quotes in a top level object 0.0s
711 + missing closing triple quotes in a nested object 0.001s
712 + invalid include syntax - missing closing quotes 0.002s
713 + invalid include syntax - missing closing quotes (file syntax) 0.001s
714 + invalid include syntax - missing closing parenthesis (file syntax) 0.0s
715 + invalid include syntax - missing closing parenthesis (required/file syntax) 0.004s
716 + invalid include syntax - missing quotes 0.0s
717laika.internal.rst.ExplicitBlockParsersSpec:
718 + citation spanning a single line 0.017s
719 + citation spanning two lines 0.001s
720 + footnote with autonumber label 0.004s
721 + footnote with autosymbol label 0.001s
722 + footnote with an autonumber named label 0.003s
723 + footnote with a numeric label 0.004s
724 + named external target on one line 0.011s
725 + named internal target on one line 0.001s
726 + named external target with the reference name in backticks 0.0s
727 + named external target on two lines 0.004s
728 + named external target with the URL entirely on the next line 0.0s
729 + named internal target with the URL entirely on the next line 0.001s
730 + anonymous external target 0.0s
731 + anonymous internal target 0.001s
732 + short anonymous external target 0.0s
733 + short anonymous internal target 0.001s
734 + indirect simple reference 0.002s
735 + indirect phrase reference on one line 0.0s
736 + indirect phrase reference on two lines 0.0s
737 + indirect phrase reference on the following line 0.0s
738 + internal target 0.002s
739 + comment on one line 0.001s
740 + comment on two lines 0.0s
741 + comment with all text on the second line 0.001s
742laika.markdown.APISpec:
743 + registration of block directives 0.025s
744 + ignore the registration of block directives when run in strict mode 0.022s
745 + registration of block directives with inherited attributes 0.017s
746 + registration of span directives 0.021s
747 + ignore the registration of span directives when run in strict mode 0.007s
748laika.api.TransformAPISpec:
749 + string to string 0.048s
750 + empty string 0.01s
751 + render override for a specific element type 0.032s
752 + custom rewrite rule 0.021s
753 + multiple rewrite rules 0.019s
754 + process a Replace followed by a Retain 0.015s
755 + custom rewrite rule that depends on the document 0.019s
756 + process rules with access to a document cursor in a later phase 0.023s
757 + do not validate or translate URLs when transforming a single string - Markdown 0.034s
758 + do not validate or translate URLs when transforming a single string - reStructuredText 0.085s
759laika.config.SpanParserConfigSpec:
760 + merge parsers from a host language with parsers from an app extension 0.021s
761 + merge parsers from two app extensions 0.005s
762 + let a parser from an app extension override a parser from the host language 0.006s
763 + let a parser from the host language override a low-precedence parser from an app extension 0.007s
764laika.markdown.HTMLParsersSpec:
765 + single start tag without attributes in flow content 0.006s
766 + single empty tag without attributes in flow content 0.001s
767 + single empty tag with whitespace without attributes in flow content 0.0s
768 + single end tag in flow content 0.001s
769 + single element in flow content 0.001s
770 + two nested elements in flow content 0.003s
771 + Markdown markup inside HTML elements 0.006s
772 + start tag with an attribute value in double quotes 0.002s
773 + start tag with an attribute value in single quotes 0.003s
774 + start tag with an unquoted attribute value 0.001s
775 + start tag with an attribute without value 0.001s
776 + ignore a start tag with a malformed attribute 0.0s
777 + start tag with two attribute values 0.001s
778 + named reference 0.0s
779 + decimal reference 0.0s
780 + hex reference 0.001s
781 + ignore a malformed named reference 0.0s
782 + ignore a malformed decimal reference 0.0s
783 + ignore a malformed hex reference 0.0s
784 + standard HTML comment 0.001s
785 + ignore other HTML tags inside the HTML comment 0.0s
786 + ignore Markdown markup inside the HTML comment 0.0s
787laika.directive.std.StandardDirectiveSpec:
788 + fragment directive with single paragraph 0.032s
789 + fragment directive with two paragraphs 0.01s
790 + two fragment directives with the same name 0.009s
791 + pageBreak directive 0.01s
792 + todo directive as block 0.007s
793 + todo directive as span 0.01s
794 + target directive - translate a relative path 0.042s
795 + target directive - translate an absolute path 0.007s
796 + target directive - fail with an invalid target 0.029s
797 + target directive - translate an absolute path from a config value 0.006s
798 + target directive - render an external target 0.006s
799 + attribute directive - produce a string value for a valid config value 0.006s
800 + attribute directive - produce an empty string for a missing config value 0.004s
801 + attribute directive - fail with an invalid config value 0.013s
802 + style directive - body with a single block 0.017s
803 + style directive - body containing a header 0.01s
804 + style directive - multiple styles 0.016s
805 + style directive - body with two blocks 0.017s
806 + style directive - single nested span 0.01s
807 + style directive - two nested spans 0.007s
808 + style directive - including link 0.015s
809 + icon directive - success 0.011s
810 + icon directive - fail when the specified icon does not exist 0.006s
811 + callout directive - body with a single block 0.006s
812 + callout directive - body with a link reference 0.004s
813 + callout directive - body with two blocks 0.006s
814 + format directive - body with a single paragraph 0.02s
815 + format directive - body with two paragraphs 0.004s
816 + format directive - multiple formats 0.004s
817laika.config.ParserHookSpec:
818 + preProcessInput - apply the hook from a parser extension before the hook in an app extension 0.008s
819 + preProcessInput - apply the hook from an app extension before the hook in a subsequently installed app extension 0.007s
820 + preProcessInput - provide the identity function when no hook is defined 0.01s
821 + postProcessBlocks hook- apply the hook from a parser extension before the hook in an app extension 0.01s
822 + postProcessBlocks - apply the hook from an app extension before the hook in a subsequently installed app extension 0.005s
823 + postProcessBlocks - provide the identity function when no hook is defined 0.003s
824 + postProcessDocument - apply the hook from a parser extension before the hook in an app extension 0.004s
825 + postProcessDocument - apply the hook from an app extension before the hook in a subsequently installed app extension 0.004s
826 + postProcessDocument - provide the identity function when no hook is defined 0.003s
827laika.directive.SpanDirectiveAPISpec:
828 + empty directive 0.02s
829 + directive producing a span resolver 0.022s
830 + directive with one required default string attribute 0.007s
831 + invalid - directive with a missing required positional attribute 0.009s
832 + directive with an optional default int attribute 0.007s
833 + invalid - directive with an optional invalid default int attribute 0.009s
834 + directive with a missing optional default int attribute 0.003s
835 + directive with one required named string attribute 0.004s
836 + directive with a named string attribute value in quotes 0.005s
837 + invalid - directive with a missing required named attribute 0.002s
838 + invalid - directive with an invalid HOCON string attribute (missing closing quote) 0.005s
839 + invalid - directive with an invalid HOCON string attribute (invalid character in in unquoted string) 0.006s
840 + directive with an optional named int attribute 0.004s
841 + invalid - directive with an optional invalid named int attribute 0.005s
842 + directive with a missing optional named int attribute 0.014s
843 + directive with the allAttributes combinator 0.006s
844 + directive with a body 0.004s
845 + support a directive with a nested pair of braces 0.003s
846 + invalid - directive with a missing body 0.001s
847 + directive with a separated body 0.017s
848 + invalid - directive with an invalid separator 0.004s
849 + invalid - directive with a separator not meeting the min count requirements 0.016s
850 + invalid - directive with a separator exceeding the max count constraint 0.007s
851 + detect an orphaned separator directive 0.006s
852 + full directive spec with all elements present 0.01s
853 + full directive spec with all elements present with attributes spanning two lines 0.007s
854 + full directive spec with all optional elements missing 0.005s
855 + invalid - full directive spec with positional attributes and the body missing 0.006s
856 + directive with a custom body parser 0.008s
857 + directive with a body and cursor access 0.004s
858 + invalid - directive with an unknown name 0.002s
859 + link directive 0.008s
860 + link directive inside a native link expression 0.018s
861 + unknown link directive 0.011s
862 + invalid link directive 0.006s
863 + invalid link directive syntax 0.012s
864laika.ast.DocumentAPISpec:
865 + specify a title in a config section 0.011s
866 + no title if run in the default mode for pure parsers where title extraction is disabled 0.01s
867 + use the title from the first headline if it is not overridden in a config section and title extraction is enabled 0.012s
868 + return an empty list if there is neither a structure with a title nor a title in a config section 0.004s
869 + produce the same result when rewriting a document once or twice 0.006s
870 + allow to rewrite the document using a custom rule 0.003s
871laika.directive.TemplateDirectiveAPISpec:
872 + parse an empty directive 0.005s
873 + parse a directive with one required default string attribute 0.004s
874 + detect a directive with a missing required positional attribute 0.002s
875 + parse a directive with an optional default int attribute 0.008s
876 + detect a directive with an optional invalid default int attribute 0.002s
877 + parse a directive with a missing optional default int attribute 0.002s
878 + parse a directive with one required named string attribute 0.013s
879 + parse a directive with a named string attribute value in quotes 0.002s
880 + detect a directive with a missing required named attribute 0.002s
881 + parse a directive with an optional named int attribute 0.002s
882 + detect a directive with an optional invalid named int attribute 0.005s
883 + parse a directive with a missing optional named int attribute 0.001s
884 + parse a directive with the allAttributes combinator 0.008s
885 + parse a directive with a body 0.005s
886 + support a directive with a nested pair of braces 0.008s
887 + detect a directive with a missing body 0.003s
888 + parse a directive with a separated body 0.011s
889 + detect a directive with an invalid separator 0.006s
890 + detect a directive with a separator not meeting the min count requirements 0.005s
891 + detect a directive with a separator exceeding the max count constraint 0.003s
892 + detect an orphaned separator directive 0.002s
893 + parse a full directive spec with all elements present 0.01s
894 + parse a full directive spec with all elements present with attributes spanning three lines 0.007s
895 + parse a full directive spec with all optional elements missing 0.011s
896 + detect a full directive spec with all positional attributes and the required body missing 0.002s
897 + parse a directive with a custom body parser 0.009s
898 + parse a directive with a required default body and cursor access 0.002s
899 + detect a directive with an unknown name 0.004s
900laika.ast.DocumentTreeBuilderSpec:
901 + empty tree 0.003s
902 + tree with documents in root and sub-trees 0.007s
903 + tree with documents and templates 0.004s
904 + tree with title documents 0.001s
905 + root tree with cover document 0.004s
906 + document config inherits from tree config 0.001s
907 + document config inherits from tree config when appended to the tree after its construction 0.003s
908 + document config inherits from base config 0.002s
909 + documents override existing instances with the same path 0.005s
910laika.ast.PathAPISpec:
911 + decoder - absolute path with three segments 0.0s
912 + decoder - absolute path with one segment 0.004s
913 + decoder - ignore trailing slashes for absolute paths 0.0s
914 + decoder - root path from a single slash 0.0s
915 + decoder - relative path with three segments 0.0s
916 + decoder - relative path with one segment 0.0s
917 + decoder - ignore trailing slashes for relative paths 0.0s
918 + decoder - current document from the empty string 0.001s
919 + decoder - current document from a hash 0.0s
920 + decoder - current relative path from a dot 0.0s
921 + decoder - fragment of the current document 0.0s
922 + decoder - relative path to parent with three segments 0.0s
923 + decoder - relative path to parent with one segment 0.0s
924 + decoder - relative path to parent three levels up 0.0s
925 + decoder - relative path to parent two levels up without any path segments 0.0s
926 + decoder - relative path to parent one level up without any path segments 0.0s
927 + decoder - relative path to parent two levels up without trailing slash 0.0s
928 + decoder - relative path to parent one level up without trailing slash 0.002s
929 + decoder - ignore leading slashes when RelativePath.parse is invoked directly 0.0s
930 + decoder - assume leading slashes when Path.parse is invoked directly 0.0s
931 + parent - Root for Root 0.0s
932 + parent - Root for a path with a single segment 0.0s
933 + parent - a path with 2 segments for an absolute path with 3 segments 0.0s
934 + parent - Parent(1) for Current 0.0s
935 + parent - CurrentTree for CurrentDocument 0.001s
936 + parent - CurrentTree for a path with a single segment 0.0s
937 + parent - a path with 2 segments for a relative path with 3 segments 0.0s
938 + parent - Parent(2) for Parent(1) 0.0s
939 + parent - Parent(1) for a path with a single segment 0.001s
940 + parent - a path with 2 segments for a parent path with 3 segments 0.0s
941 + depth - 0 for Root 0.0s
942 + depth - 1 for a path with one segment 0.0s
943 + depth - 3 for a path with three segments 0.0s
944 + basename - / for Root 0.0s
945 + basename - . for CurrentTree 0.0s
946 + basename - empty for CurrentDocument 0.001s
947 + basename - ../ for Parent(1) 0.0s
948 + basename - for an absolute path without suffix 0.0s
949 + basename - for a relative path without suffix 0.0s
950 + basename - for an absolute path with suffix 0.0s
951 + basename - for an absolute path with suffix and fragment 0.0s
952 + basename - for a relative path with suffix 0.0s
953 + basename - for a relative path with suffix and fragment 0.0s
954 + withBasename - called on an absolute path without suffix 0.007s
955 + withBasename - called on a relative path without suffix 0.0s
956 + withBasename - called on an absolute path with suffix 0.0s
957 + withBasename - called on an absolute path with suffix and with fragment 0.003s
958 + withBasename - called on a relative path with suffix 0.0s
959 + withBasename - called on a relative path with suffix with fragment 0.0s
960 + suffix - empty for Root 0.0s
961 + suffix - empty for CurrentTree 0.0s
962 + suffix - empty for CurrentDocument 0.0s
963 + suffix - empty for Parent(1) 0.0s
964 + suffix - empty for an absolute path without suffix 0.0s
965 + suffix - empty for a relative path without suffix 0.0s
966 + suffix - defined for an absolute path with suffix 0.0s
967 + suffix - use shortest suffix in case of multiple dots 0.0s
968 + suffix - defined for an absolute path with suffix and fragment 0.0s
969 + suffix - defined for a relative path with suffix 0.0s
970 + suffix - defined for a relative path with suffix and fragment 0.0s
971 + withSuffix - called on an absolute path without suffix 0.004s
972 + withSuffix - called on an absolute path without suffix with fragment 0.0s
973 + withSuffix - called on a relative path without suffix 0.0s
974 + withSuffix - called on a relative path without suffix with fragment 0.0s
975 + withSuffix - called on an absolute path with suffix 0.0s
976 + withSuffix - called on an absolute path with suffix and with fragment 0.001s
977 + withSuffix - called on a relative path with suffix 0.0s
978 + withSuffix - called on a relative path with suffix with fragment 0.0s
979 + fragment - empty for Root 0.0s
980 + fragment - empty for CurrentTree 0.0s
981 + fragment - empty for Parent(1) 0.001s
982 + fragment - empty for an absolute path without fragment 0.0s
983 + fragment - empty for a relative path without fragment 0.0s
984 + fragment - empty for the current document without a fragment 0.0s
985 + fragment - defined for the current document with a fragment 0.0s
986 + fragment - defined for an absolute path with fragment 0.0s
987 + fragment - defined for an absolute path with suffix and fragment 0.0s
988 + fragment - defined for a relative path with fragment 0.0s
989 + fragment - defined for a relative path with suffix and fragment 0.0s
990 + withFragment - called on an absolute path without fragment 0.001s
991 + withFragment - called on an absolute path without fragment with suffix 0.0s
992 + withFragment - called on a relative path without fragment 0.003s
993 + withFragment - called on a relative path without fragment with suffix 0.001s
994 + withFragment - called on an absolute path with fragment 0.0s
995 + withFragment - called on an absolute path with fragment and with suffix 0.0s
996 + withFragment - called on a relative path with fragment 0.0s
997 + withFragment - called on a relative path with fragment with suffix 0.0s
998 + path concatenation for absolute paths - return the same instance when invoked with CurrentTree 0.0s
999 + path concatenation for absolute paths - return the immediate parent when invoked with Parent(1) 0.0s
1000 + path concatenation for absolute paths - return Root when pointing to the top-most parent 0.0s
1001 + path concatenation for absolute paths - two paths with segments 0.0s
1002 + path concatenation for absolute paths - path pointing to a parent one level up 0.001s
1003 + path concatenation for absolute paths - path pointing to a parent two levels up 0.0s
1004 + path concatenation for absolute paths - keep the suffix when invoked with CurrentTree 0.0s
1005 + path concatenation for relative paths - return the same instance when invoked with Current 0.0s
1006 + path concatenation for relative paths - return the immediate parent when invoked with Parent(1) 0.0s
1007 + path concatenation for relative paths - return CurrentTree when pointing to the top-most parent 0.0s
1008 + path concatenation for relative paths - return Parent(1) when pointing past the top-most parent 0.003s
1009 + path concatenation for relative paths - two paths with segments 0.0s
1010 + path concatenation for relative paths - path pointing to a parent one level up 0.001s
1011 + path concatenation for relative paths - path pointing to a parent two levels up 0.0s
1012 + path concatenation for relative paths - append to CurrentTree 0.0s
1013 + path concatenation for relative paths - append to Parent(1) 0.0s
1014 + path concatenation for relative paths - path pointing to a parent one level up to another path pointing one level up 0.0s
1015 + path concatenation for relative paths - path pointing to a parent two levels up to another path pointing one level up 0.003s
1016 + relativeTo - pointing to the same document 0.0s
1017 + relativeTo - pointing to a parent tree 0.0s
1018 + relativeTo - pointing to a document in the parent tree 0.0s
1019 + relativeTo - pointing to a document in the same tree 0.0s
1020 + relativeTo - path relative to Root 0.0s
1021 + relativeTo - relative path pointing upwards to Root 0.0s
1022 + relativeTo - relative path pointing to a fragment in the same document 0.001s
1023 + relativeTo - preserve suffix and fragment 0.0s
1024 + isSubPath - true for two identical paths 0.0s
1025 + isSubPath - true for two identical paths with suffix 0.0s
1026 + isSubPath - false for two identical paths with different suffix 0.003s
1027 + isSubPath - false for two identical paths when one is without suffix 0.0s
1028 + isSubPath - true for a child path 0.001s
1029 + isSubPath - false for a parent path with a suffix 0.0s
1030 + isSubPath - false for a parent path 0.0s
1031laika.internal.rst.EnumListSpec:
1032 + arabic enumeration style 0.008s
1033 + lowercase alphabetic enumeration style 0.001s
1034 + uppercase alphabetic enumeration style 0.005s
1035 + lowercase Roman enumeration style 0.004s
1036 + uppercase Roman enumeration style 0.003s
1037 + keep the right start value for arabic enumeration style 0.001s
1038 + keep the right start value for lowercase alphabetic enumeration style 0.007s
1039 + keep the right start value for uppercase alphabetic enumeration style 0.001s
1040 + keep the right start value for lowercase Roman enumeration style 0.001s
1041 + keep the right start value for uppercase Roman enumeration style 0.001s
1042 + do not try to parse a Roman Numeral in a normal paragraph (issue #19) 0.006s
1043 + item label suffixed by right-parenthesis 0.002s
1044 + item label surrounded by parenthesis 0.001s
1045 + items separated by blank lines 0.005s
1046 + items containing multiple paragraphs 0.005s
1047 + nested items indented by spaces 0.006s
1048 + different enumeration patterns kept in separate lists 0.001s
1049laika.markdown.HTMLBlockParserSpec:
1050 + block level HTML element with a nested element and text content 0.013s
1051 + ignore Markdown markup inside a block level HTML element 0.001s
1052 + recognize a script tag inside a block level HTML element 0.001s
1053 + recognize a script tag with attributes inside a block level HTML element 0.001s
1054 + recognize a script tag as a root element 0.0s
1055 + ignore elements which are not listed as block-level elements 0.008s
1056 + ignore elements which are not at the very start of a block 0.001s
1057laika.internal.rst.FieldListSpec:
1058 + list with all bodies on the same line as the name 0.002s
1059 + list with bodies spanning multiple lines 0.001s
1060 + list with bodies spanning multiple blocks 0.001s
1061laika.parse.hocon.HoconJsonSpec:
1062 + empty object in 0.0s
1063 + object with one property in 0.004s
1064 + object with two properties in 0.001s
1065 + object with all property types 0.001s
1066 + empty string 0.0s
1067 + string containing only whitespace 0.0s
1068 + plain string 0.0s
1069 + new line character 0.0s
1070 + unicode character reference 0.011s
1071 + long 0.0s
1072 + signed long 0.0s
1073 + double 0.0s
1074 + double with an exponent 0.001s
1075 + double with a negative exponent 0.0s
1076laika.directive.std.LinkDirectiveSpec:
1077 + api directive - span link based on the default base URI 0.044s
1078 + api directive - with custom link text in native Markdown link syntax 0.018s
1079 + api directive - strip the $ postfix from the link text 0.019s
1080 + api directive - span link based on the longest prefix match 0.022s
1081 + api directive - span link based on the shorter prefix match 0.018s
1082 + api directive - span link to a method 0.017s
1083 + api directive - span link for a package 0.014s
1084 + api directive - fail for an internal link to a missing target 0.013s
1085 + api directive - fail when there is no matching base URI defined 0.006s
1086==> i laika.directive.std.LinkDirectiveSpec.api directive - as the only element of a block ignored 0.0s
1087 + api directive - as the first element of a block 0.015s
1088==> i laika.directive.std.LinkDirectiveSpec.api directive - as the first line of a block ignored 0.0s
1089 + source directive - span link based on the default base URI 0.019s
1090 + source directive - with custom link text in native Markdown link syntax 0.009s
1091 + source directive - span link based on the longest prefix match 0.004s
1092 + source directive - span link based on the shorter prefix match 0.005s
1093 + source directive - fail when there is no matching base URI defined 0.003s
1094laika.parse.ParserSpec:
1095 + provide the result of the parsing operation 0.007s
1096 + map the result 0.0s
1097 + flatMap with a different parser 0.0s
1098 + fail the flatMap when the first parser fails 0.001s
1099 + fail the flatMap when the second parser fails 0.0s
1100 + provide a fixed result 0.0s
1101 + apply a partial function to the result 0.001s
1102 + fail if the specified partial function is not defined for the result 0.0s
1103 + succeed if the specified Either function produces a Right 0.001s
1104 + fail if the specified Either function produces a Left 0.0s
1105 + handle errors from a failed parser 0.006s
1106 + handle errors from a failed parser with information from the error 0.001s
1107 + recover from a failed parser 0.003s
1108 + recover from a failed parser with information from the error 0.0s
1109 + alternatives - provide the result of the first parser if it succeeds 0.008s
1110 + alternatives - provide the result of the second parser if the first fails, but the second succeeds 0.0s
1111 + alternatives - fail if both parsers fail 0.0s
1112 + alternatives - pick the first error when it has the largest max offset 0.0s
1113 + alternatives - pick the last error when it has the largest max offset 0.0s
1114 + alternatives - pick the error of the parser with highest precedence if multiple failures have the same max offset 0.0s
1115 + concatenation - provide the combined result 0.0s
1116 + concatenation - fail if the first parser fails 0.0s
1117 + concatenation - fail if the second parser fails 0.0s
1118 + concatenation - provide the first result 0.003s
1119 + concatenation - provide the second result 0.0s
1120 + opt - produce a Some when the underlying parser succeeds 0.001s
1121 + opt - produce a None when the underlying parser fails 0.0s
1122 + not - fail when the underlying parser succeeds 0.0s
1123 + not - succeed when the underlying parser fails 0.0s
1124 + success parser always succeeds 0.0s
1125 + failure parser always fails 0.0s
1126 + rep - produce an empty result when the first invocation fails 0.0s
1127 + rep - provide all matching substrings 0.0s
1128 + rep.min - fail if the required minimum number of successful invocations is not reached 0.001s
1129 + rep.min - succeed if at least one invocation succeeds 0.0s
1130 + rep.min - succeed if the specified number of successful invocations is reached 0.0s
1131 + rep.max - produce an empty result when the first invocation fails 0.0s
1132 + rep.max - provide only the maximum number of result allowed 0.0s
1133 + rep with separator - produce an empty result when the first invocation fails 0.0s
1134 + rep with separator - provide all matching substrings 0.0s
1135 + rep with separator - succeed if the specified number of successful invocations is reached 0.0s
1136 + rep with separator - fail if the required minimum number of successful invocations is not reached 0.001s
1137 + repWith - parse a sequence based on a dynamically changing parser 0.006s
1138 + repWith - succeed when only the first parsing step succeeds 0.0s
1139 + repWith - succeed with an empty result when the first parsing step fails 0.001s
1140 + lookAhead - succeeds when the underlying parser succeeds at the current offset 0.0s
1141 + lookAhead - succeeds when the underlying parser succeeds at the specified offset 0.0s
1142 + lookAhead - fails when the underlying parser fails at the current offset 0.001s
1143 + lookAhead - fails when the underlying parser fails at the specified offset 0.0s
1144 + lookAhead - fails when the specified offset is too big 0.0s
1145 + lookBehind - succeeds when the specified parser succeeds at the given negative offset 0.001s
1146 + lookBehind - fails when the specified parser fails at the given negative offset 0.007s
1147 + lookBehind - fails when the specified negative offset is too big 0.0s
1148 + consumeAll - succeeds when all input has been consumed 0.0s
1149 + consumeAll - fails when not all input has been consumed 0.0s
1150 + source parser produces the consumed string as a result 0.0s
1151 + count parser produces the length of the consumed string as a result 0.0s
1152 + be set properly on a failing character parser 0.001s
1153 + be set properly on a failing literal parser 0.0s
1154 + be set properly on a failing delimited text parser 0.001s
1155laika.config.OperationConfigSpec:
1156 + extension bundles - merge bundles based on their origin and configuration order 0.005s
1157 + baseConfig - merge config from a markup extension with config from an app extension 0.006s
1158 + baseConfig - let an app config override an identical key in the extension config 0.001s
1159 + baseConfig - let an app config override an identical key in a previously installed app config 0.001s
1160 + docTypeMatcher - merge matcher from a markup extension with the matcher from an app extension 0.008s
1161 + docTypeMatcher - let an app config override an identical path key in the extension config 0.006s
1162 + docTypeMatcher - let an app config override an identical path key in a previously installed app config 0.001s
1163 + rewrite rules - merge a rule from a markup extension with the rule from an app extension 0.008s
1164 + rewrite rules - apply a rule from an app config and a rule from a markup extension successively 0.01s
1165 + rewrite rules - apply a rule from an app config and a rule from a previously installed app config successively 0.006s
1166 + strict/raw flags - remove all raw content bundles in the default settings 0.0s
1167 + strict/raw flags - keep all bundles if rawContent is set to true 0.0s
1168 + strict/raw flags - remove all non-strict and raw content bundles if strict is set to true 0.001s
1169 + strict/raw flags - remove all non-strict bundles if both flags are set to true 0.0s
1170laika.markdown.VerbatimHTMLRendererSpec:
1171 + render an HTML character reference unescaped 0.002s
1172 + render an HTML comment with content unescaped 0.0s
1173 + render a script element with content unescaped 0.001s
1174 + render a script element with attributes with content unescaped 0.001s
1175 + render an HTML end tag unescaped 0.001s
1176 + render an HTML start tag without attributes unescaped 0.001s
1177 + render an HTML start tag with one attribute unescaped 0.0s
1178 + render an HTML start tag with two attributes unescaped 0.001s
1179 + render an empty HTML tag without attributes unescaped 0.001s
1180 + render an empty HTML tag with one attribute unescaped 0.001s
1181 + render an HTML element without attributes unescaped 0.0s
1182 + render an HTML element with one attribute unescaped 0.001s
1183 + render two nested HTML elements unescaped 0.001s
1184 + render a <pre> element without indentation 0.001s
1185 + render an HTML attribute with the value in single quotes 0.001s
1186 + render an HTML attribute with an unquoted value 0.001s
1187 + render an HTML attribute without value 0.0s
1188 + render an HTML block unescaped 0.001s
1189 + verbatim HTML - skip HTML comment 0.063s
1190 + verbatim HTML - skip HTML block 0.033s
1191 + verbatim HTML - skip inline HTML 0.023s
1192laika.rst.ReStructuredTextToHTMLSpec:
1193 + transform the reStructuredText specification to HTML equivalent to the output of the reference parser 1.114s
1194laika.markdown.MarkdownToHTMLSpec:
1195 + pass for 'Amps and angle encoding' 0.185s
1196 + pass for 'Auto links' 0.04s
1197 + pass for 'Backslash escapes' 0.037s
1198 + pass for 'Blockquotes with code blocks' 0.02s
1199 + pass for 'Code Blocks' 0.016s
1200 + pass for 'Code Spans' 0.014s
1201 + pass for 'Hard-wrapped paragraphs with list-like lines' 0.015s
1202 + pass for 'Horizontal rules' 0.02s
1203 + pass for 'Inline HTML (Advanced)' 0.018s
1204 + pass for 'Inline HTML (Simple)' 0.039s
1205 + pass for 'Inline HTML comments' 0.013s
1206 + pass for 'Links, inline style' 0.017s
1207 + pass for 'Links, reference style' 0.039s
1208 + pass for 'Links, shortcut references' 0.019s
1209 + pass for 'Literal quotes in titles' 0.022s
1210 + pass for 'Nested blockquotes' 0.014s
1211 + pass for 'Ordered and unordered lists' 0.059s
1212 + pass for 'Strong and em together' 0.016s
1213 + pass for 'Tabs' 0.025s
1214 + pass for 'Tidyness' 0.011s
1215 + pass for 'Full Docs - Basics' 0.049s
1216 + pass for 'Full Docs - Syntax' 0.154s
1217laika.ast.ElementContainerToStringSpec:
1218 + toString for ElementContainer 0.007s
1219laika.time.PlatformDateTimeSpec:
1220 + parse a date without time 0.003s
1221 + parse a local date time 0.011s
1222 + parse a UTC date time 0.001s
1223 + parse a date time with an offset without colon 0.001s
1224 + parse a date time with an offset with colon 0.0s
1225 + fail in case of invalid date format 0.001s
1226laika.api.RenderAPISpec:
1227 + document to string 0.002s
1228 + override default renderer for specific element types 0.004s
1229 + use Document's configuration for rewrite rules 0.003s
1230laika.markdown.GitHubFlavorSpec:
1231 + parse standard Markdown 0.002s
1232 + strikethrough - enclosed in ~~ at the beginning of a phrase 0.001s
1233 + strikethrough - enclosed in ~~ at the end of a phrase 0.0s
1234 + strikethrough - enclosed in ~~ in the middle of a phrase 0.0s
1235 + strikethrough - enclosed in ~~ with a nested em span 0.001s
1236 + strikethrough - enclosed in ~~ when it spans the entire phrase 0.0s
1237 + strikethrough - ignore a ~~ sequence when it is enclosed in spaces 0.0s
1238 + strikethrough - ignore a ~~ sequence when it is not matched by a second ~~ 0.004s
1239 + auto-links - http URI 0.0s
1240 + auto-links - http URI containing an IP4 address 0.001s
1241 + auto-links - https URI 0.0s
1242 + auto-links - www URI 0.0s
1243 + auto-links - email address 0.001s
1244 + auto-links - http URI without trailing punctuation 0.0s
1245 + auto-links - www URI without trailing punctuation 0.003s
1246 + auto-links - do not parse a URI containing unicode characters 0.0s
1247 + auto-links - email address without surrounding punctuation 0.0s
1248 + code block with backtick fences 0.002s
1249 + code block with tilde fences 0.001s
1250 + code block with a closing fence that is longer than the opening fence 0.0s
1251 + code blocks - do not recognize a closing fence that is shorter than the opening fence 0.0s
1252 + code blocks - do not recognize a closing fence that consists of different fence characters 0.0s
1253 + code block with an info/language hint 0.003s
1254 + code block that is indented 0.0s
1255 + code block inside a list item, indented by 4 spaces 0.001s
1256 + code block without a closing fence 0.004s
1257 + code block - do not recognize a fence that is shorter than 3 characters 0.001s
1258 + code block - do not recognize a fence that is indented more than 3 characters 0.0s
1259 + code block - do not recognize a closing fence with additional characters 0.0s
1260 + code block with an empty line 0.0s
1261 + code block without a preceding empty line 0.001s
1262 + table head and body 0.003s
1263 + table with inline markup in one cell 0.0s
1264 + table head and body with leading and trailing '|' missing in some rows 0.001s
1265 + tables - ignore cells that are exceeding the number of header cells 0.001s
1266 + tables - insert empty cells when the row has less cells than the header row 0.0s
1267 + table with escaped '|' as literal text 0.001s
1268 + table that ends on a blank line 0.0s
1269 + table that ends when a new block item starts 0.001s
1270 + table with alignments 0.006s
1271 + table head without body 0.001s
1272 + table head without body without leading '|' in the separator row 0.0s
1273 + table head without body without trailing '|' in the separator row 0.0s
1274 + tables - do not recognize a table head where the number of cells in the separator row does not match the header row 0.001s
1275laika.directive.std.NavigationDirectiveSpec:
1276 + template nav - two manual entries 0.173s
1277 + template nav - one manual entry and a section with two manual entries 0.064s
1278 + template nav - a manual entry and a generated entry 0.083s
1279 + template nav - an entry generated from the root of the tree 0.098s
1280 + template nav - an entry generated from the root of the tree with documents filtered by target format 0.075s
1281 + template nav - an entry generated from the root of the tree with title documents 0.102s
1282 + template nav - an entry generated from the root of the tree with one document excluded via configuration 0.084s
1283 + template nav - an entry generated from the current tree 0.061s
1284 + template nav - an entry generated from the current tree with a maximum depth 0.042s
1285 + template nav - an entry generated from the current tree with the root excluded 0.039s
1286 + template nav - an entry generated from the current tree with the self link excluded 0.05s
1287 + template nav - an entry generated from the current tree with sections excluded 0.049s
1288 + template nav - an entry generated from the current document 0.043s
1289 + template nav - an entry generated from the current document with a custom title 0.049s
1290 + template nav - an entry generated from a document referred to with an absolute path 0.038s
1291 + template nav - fail when referring to a path that does not exist 0.019s
1292 + template nav - fail with an invalid depth attribute 0.056s
1293 + template nav - fail with a manual node without title 0.017s
1294 + block nav - two manual entries 0.023s
1295 + block nav - entry generated from a document referred to with a relative path 0.032s
1296 + template breadcrumb directive - three entries 0.044s
1297 + template breadcrumb directive - avoid duplicate entries when title documents are present 0.05s
1298 + block breadcrumb directive - three entries 0.035s
1299 + block breadcrumb directive - three entries with title documents 0.036s
1300laika.directive.std.ImageDirectiveSpec:
1301 + block directive - without any HOCON attributes 0.016s
1302 + block directive - alt and title attributes 0.006s
1303 + block directive - intrinsicWidth and intrinsicHeight attributes 0.016s
1304 + block directive - style attribute 0.006s
1305 + span directive - without any HOCON attributes 0.014s
1306 + span directive - alt and title attributes 0.008s
1307 + span directive - intrinsicWidth and intrinsicHeight attributes 0.003s
1308 + span directive - style attribute 0.006s
1309laika.parse.text.DelimiterParserSpec:
1310 + parse a character delimiter 0.003s
1311 + parse a string literal delimiter 0.001s
1312 + fail if a string literal delimiter is not matched 0.0s
1313 + parse a character group delimiter 0.001s
1314 + fail if a character group delimiter is not matched 0.001s
1315 + parse a delimiter with a character post-condition 0.0s
1316 + fail when a character post-condition is not satisfied 0.001s
1317 + parse a delimiter with a character set post-condition 0.0s
1318 + fail when a character set post-condition is not satisfied 0.005s
1319 + parse a delimiter with a post-condition function 0.0s
1320 + fail when a post-condition function is not satisfied 0.001s
1321 + parse a delimiter with a character pre-condition 0.0s
1322 + fail when a character pre-condition is not satisfied 0.001s
1323 + parse a delimiter with a character set pre-condition 0.0s
1324 + fail when a character set pre-condition is not satisfied 0.0s
1325 + parse a delimiter with a pre-condition function 0.001s
1326 + fail when a pre-condition function is not satisfied 0.006s
1327 + compose two delimiters 0.005s
1328laika.internal.rst.std.StandardTextRolesSpec:
1329 + emphasis - without styles 0.009s
1330 + emphasis - with custom style 0.018s
1331 + strong - without styles 0.005s
1332 + strong - with custom style 0.003s
1333 + literal - without styles 0.005s
1334 + literal - with custom style 0.005s
1335 + subscript - without styles 0.006s
1336 + subscript - with custom style 0.006s
1337 + subscript - sub alias 0.002s
1338 + superscript - without styles 0.006s
1339 + superscript - with custom style 0.002s
1340 + superscript - sup alias 0.005s
1341 + title-reference - without styles 0.01s
1342 + title-reference - with custom style 0.009s
1343 + support the title alias 0.001s
1344 + be used as the default role if none is specified 0.01s
1345 + code - without styles 0.006s
1346 + code - with custom style and language 0.006s
1347 + raw - with format and style options 0.014s
1348 + raw - disabled by default 0.007s
1349 + default text configurable through the API 0.014s
1350laika.parse.css.CSSParsersSpec:
1351 + parse a style with a type selector 0.017s
1352 + parse a style with a class selector 0.0s
1353 + parse a style with an id selector 0.0s
1354 + parse a style with a type and class selector 0.0s
1355 + parse a style with a type and id selector 0.001s
1356 + parse a style with a child selector 0.005s
1357 + parse a style with an immediate child selector 0.001s
1358 + parse a style with multiple child selectors 0.0s
1359 + parse a style with multiple selectors 0.006s
1360 + parse multiple style declarations 0.001s
1361 + parse multiple style declarations with comments 0.0s
1362 + parse a style with multiple comments 0.0s
1363laika.internal.rst.bundle.RewriteRulesSpec:
1364 + substitutions - replace a single reference with the target span 0.008s
1365 + substitutions - replace multiple occurrences of the same reference with the same target span 0.003s
1366 + substitutions - replace a reference with an unknown substitution id with an invalid span 0.001s
1367 + interpreted text roles - replace a single reference with the result of applying the role function 0.004s
1368 + interpreted text roles - replace multiple references with the result of applying corresponding role functions 0.002s
1369 + interpreted text roles - replace an unknown text role with an invalid span 0.001s
1370laika.parse.code.common.CommonSyntaxParserSpec:
1371 + identifier starting with a lower-case letter 0.005s
1372 + identifier starting with an underscore 0.0s
1373 + identifier containing a digit 0.0s
1374 + type name starting with an upper-case letter 0.001s
1375 + type name containing a digit 0.0s
1376 + type name containing an underscore 0.0s
1377 + binary literal 0.009s
1378 + binary literal with underscores 0.001s
1379 + binary literal with L suffix 0.0s
1380 + octal literal 0.0s
1381 + octal literal with underscores 0.001s
1382 + octal literal with L suffix 0.0s
1383 + hex literal 0.001s
1384 + hex literal with underscores 0.0s
1385 + hex literal with L suffix 0.003s
1386 + single-digit decimal literal 0.0s
1387 + multi-digit decimal literal 0.001s
1388 + decimal literal with underscores 0.0s
1389 + decimal literal with L suffix 0.0s
1390 + decimal float literal 0.001s
1391 + decimal float literal with leading dot 0.0s
1392 + decimal float literal with underscores 0.003s
1393 + decimal float literal with D suffix 0.0s
1394 + decimal float literal with exponent 0.0s
1395 + decimal float literal with a signed exponent 0.0s
1396 + decimal float literal with exponent and D suffix 0.001s
1397 + hex float literal 0.0s
1398 + hex float literal with an exponent 0.0s
1399 + do not recognize a number immediately followed by a letter 0.001s
1400 + recognize a number immediately followed by a letter if explicitly allowed (e.g. for numbers with unit like in CSS) 0.009s
1401 + single-line string literal 0.013s
1402 + multi-line string literal 0.001s
1403 + single character escape 0.0s
1404 + unicode escape 0.0s
1405 + octal escape 0.0s
1406 + hex escape 0.0s
1407 + literal escape 0.0s
1408 + substitution expression 0.001s
1409 + substitution identifier 0.0s
1410 + char literal 0.004s
1411 + char literal with single character escape 0.0s
1412 + char literal with unicode escape 0.001s
1413 + char literal with octal escape 0.0s
1414 + char literal with hex escape 0.0s
1415 + regex literal 0.004s
1416 + regex literal with an escape sequence 0.0s
1417 + regex literal with flags 0.0s
1418 + single line comment 0.0s
1419 + multi-line comment 0.001s
1420 + keywords 0.0s
1421 + ignore keywords when they are followed by more letters or digits 0.0s
1422 + ignore keywords when they are preceded by letters or digits 0.0s
1423 + newline detection - recognize input at the start of a line 0.003s
1424 + newline detection - recognize input at the start of the input 0.001s
1425 + newline detection - do not recognize input in the middle of a line 0.0s
1426laika.ast.StyleMatchingSpec:
1427 + not collect any styles when no selector matches 0.002s
1428 + collect styles with matching type selectors 0.0s
1429 + collect styles with matching class selectors 0.01s
1430 + collect styles with matching id selectors 0.001s
1431 + collect styles with matching type and class selectors 0.001s
1432 + collect styles with matching parent and child selectors 0.001s
1433 + not collect any styles when the parent selector does not match 0.0s
1434 + collect styles with matching parent and immediate child selectors 0.007s
1435 + not collect any styles when the matching parent selector is not an immediate parent 0.0s
1436 + collect styles with two matching parent selectors 0.0s
1437 + not collect any styles when one of the parent selectors does not match 0.0s
1438 + should apply styles based on order if two declarations have the same specificity 0.0s
1439laika.parse.text.TextParsersSpec:
1440 + prevNot - succeed if the previous character is not one of those specified 0.0s
1441 + prevNot - fail if the previous character is one of those specified 0.006s
1442 + prevNot - succeed at the start of the input 0.0s
1443 + prevNot - succeed if the predicate is not satisfied 0.0s
1444 + prevNot - fail if the the predicate is satisfied 0.0s
1445 + nextNot - succeed if the next character is not one of those specified 0.001s
1446 + nextNot - fail if the next character is one of those specified 0.0s
1447 + nextNot - succeed at the end of the input 0.0s
1448 + nextNot - succeed if the predicate is not satisfied 0.0s
1449 + nextNot - fail if the the predicate is satisfied 0.0s
1450 + prevIn - succeed if the previous character is one of those specified 0.0s
1451 + prevIn - fail if the previous character is not one of those specified 0.0s
1452 + prevIn - fail at the start of the input 0.0s
1453 + prevIn - succeed if the predicate is satisfied 0.003s
1454 + prevIn - fail if the the predicate is not satisfied 0.0s
1455 + nextIn - succeed if the next character is one of those specified 0.0s
1456 + nextIn - fail if the next character is not one of those specified 0.0s
1457 + nextIn - fail at the end of the input 0.001s
1458 + nextIs - succeed if the predicate is satisfied 0.0s
1459 + nextIs - fail if the the predicate is not satisfied 0.0s
1460 + literal - succeed with a matching string literal 0.0s
1461 + literal - fail when the string literal does not match 0.0s
1462 + eol - succeed for \\n 0.0s
1463 + eol - succeed for \\r\\n 0.001s
1464 + eol - succeed at the end of the input 0.0s
1465 + eol - fail when not at the end of a line 0.0s
1466 + eof - succeed at the end of the input 0.0s
1467 + eof - fail when not at the end of the input 0.0s
1468 + atStart - succeed at the start of the input 0.0s
1469 + atStart - fail when not at the start of the input 0.0s
1470 + ws - succeed with all whitespace characters 0.0s
1471 + ws - succeed with an empty string in case of non-whitespace characters 0.0s
1472 + wsEol - succeed with whitespace characters followed by newline 0.001s
1473 + wsEol - succeed with just a newline character since whitespace is optional 0.0s
1474 + wsEol - fail with non-whitespace chacracters 0.0s
1475 + blankLine - succeed with whitespace characters followed by newline 0.0s
1476 + blankLine - succeed with just a newline character since whitespace is optional 0.0s
1477 + blankLine - fail with non-whitespace chacracters 0.0s
1478 + blankLines - succeed with one blank line 0.0s
1479 + blankLines - succeed with three blank lines 0.0s
1480 + blankLines - fail with non-whitespace chacracters 0.001s
1481 + restOfLine - succeed with all characters of the current line 0.0s
1482 + restOfLine - succeed with an empty result 0.0s
1483 + textLine - succeed with all characters of the current line 0.0s
1484 + textLine - fail on an empty line 0.0s
1485 + anyChars - always succeed consuming the entire input 0.0s
1486 + anyChars - only consume the specified maximum number of characters 0.0s
1487 + anyOf - succeed with an empty result when no characters match 0.0s
1488 + anyOf - succeed for the matching character when 1 character is specified 0.001s
1489 + anyOf - succeed for all matching characters when 3 characters are specified 0.0s
1490 + anyOf - succeed in case the end of the input is reached 0.0s
1491 + anyOf - fail when it does not consume the specified minimum number of characters 0.0s
1492 + anyOf - succeed when it does consume the specified minimum number of characters 0.0s
1493 + anyOf - stop, but still succeed, when it has consumed the specified maximum number of characters 0.003s
1494 + someOf - succeed for the matching character when 1 character is specified 0.0s
1495 + someOf - succeed for all matching characters when 3 characters are specified 0.001s
1496 + someOf - succeed in case the end of the input is reached 0.0s
1497 + someOf - fail when it does not consume the specified minimum number of characters 0.0s
1498 + someOf - fail when it does not consume any characters as min(1) is implicit in someOf parsers 0.0s
1499 + someOf - succeed when it does consume the specified minimum number of characters 0.0s
1500 + someOf - stop, but still succeed, when it has consumed the specified maximum number of characters 0.0s
1501 + oneOf - succeed for the matching character when 1 character is specified 0.0s
1502 + oneOf - succeed for any of the specified 3 characters 0.0s
1503 + oneOf - fail in case the end of the input is reached 0.0s
1504 + oneOf - fail when the first character does not match 0.0s
1505 + anyNot - succeed for all non-matching characters when 1 character is specified 0.0s
1506 + anyNot - succeed for all non-matching characters when 3 characters are specified 0.0s
1507 + anyNot - succeed in case the end of the input is reached 0.0s
1508 + anyNot - fail when it does not consume the specified minimum number of characters 0.001s
1509 + anyNot - succeed when it does consume the specified minimum number of characters 0.0s
1510 + anyNot - stop, but still succeed, when it has consumed the specified maximum number of characters 0.0s
1511 + someNot - succeed for all non-matching characters when 1 character is specified 0.0s
1512 + someNot - succeed for all non-matching characters when 3 characters are specified 0.0s
1513 + someNot - succeed in case the end of the input is reached 0.0s
1514 + someNot - fail when it does not consume the specified minimum number of characters 0.0s
1515 + someNot - fail when it does not consume any characters as min(1) is implicit in someNot parsers 0.0s
1516 + someNot - succeed when it does consume the specified minimum number of characters 0.0s
1517 + someNot - stop, but still succeed, when it has consumed the specified maximum number of characters 0.0s
1518 + oneNot - succeed for a non-matching character when 1 character is specified 0.0s
1519 + oneNot - succeed for any of the specified 3 characters 0.0s
1520 + oneNot - fail in case the end of the input is reached 0.0s
1521 + oneNot - fail when the first character does not match 0.0s
1522 + anyOf - succeed for any character within the specified range when 1 range is specified 0.001s
1523 + anyOf - succeed for any character within the specified ranges when 2 ranges are specified 0.0s
1524 + anyOf - succeed in case the end of the input is reached-1 0.0s
1525 + anyWhile - succeed with an empty result when no characters match 0.006s
1526 + anyWhile - succeed as long as the specified condition is met 0.001s
1527 + anyWhile - succeed in case the end of the input is reached 0.0s
1528 + anyWhile - fail when it does not consume the specified minimum number of characters 0.0s
1529 + anyWhile - succeed when it does consume the specified minimum number of characters 0.001s
1530 + anyWhile - stop, but still succeed, when it has consumed the specified maximum number of characters 0.0s
1531 + someWhile - succeed as long as the specified condition is met 0.001s
1532 + someWhile - succeed in case the end of the input is reached 0.0s
1533 + someWhile - fail when it does not consume the specified minimum number of characters 0.0s
1534 + someWhile - fail when it does not consume any characters as min(1) is implicit in someNot parsers 0.001s
1535 + someWhile - succeed when it does consume the specified minimum number of characters 0.0s
1536 + someWhile - stop, but still succeed, when it has consumed the specified maximum number of characters 0.0s
1537 + oneIf - succeed as long as the specified condition is met 0.0s
1538 + oneIf - fail in case the end of the input is reached 0.0s
1539 + oneIf - fail in case the specified predicate is not met 0.0s
1540 + delimitedBy - stop as soon as one of the specified delimiter characters is seen 0.0s
1541 + delimitedBy - succeed even when the result is empty 0.0s
1542 + delimitedBy - fail when the result is empty but nonEmpty is specified 0.001s
1543 + delimitedBy - fail when a stop char is seen before the end delimiter 0.0s
1544 + delimitedBy - fail in case the end of the input is reached before seeing a delimiter character 0.0s
1545 + delimitedBy - stop as soon as the specified string delimiter is seen 0.0s
1546 + delimitedBy - succeed even when the result is empty-1 0.0s
1547 + delimitedBy - fail when the result is empty but nonEmpty is specified-1 0.0s
1548 + delimitedBy - fail when a stop char is seen before the end delimiter-1 0.0s
1549 + delimitedBy - fail in case the end of the input is reached before seeing the delimiter string 0.0s
1550 + delimitedBy - succeed when the specified post condition is met 0.0s
1551 + delimitedBy - fail when the specified post condition is not met 0.0s
1552laika.internal.rst.ext.DirectiveSpec:
1553 + directive with one required argument 0.004s
1554 + failure - directive with a required argument missing as invalid 0.0s
1555 + failure - directive with a required argument being invalid 0.001s
1556 + directive with a converted required argument 0.001s
1557 + directive with two required arguments 0.0s
1558 + failure - directive with one out of two required arguments missing as invalid 0.004s
1559 + directive with one optional argument 0.003s
1560 + directive with one optional argument missing 0.001s
1561 + directive with a converted optional argument 0.0s
1562 + failure - directive with an optional argument being invalid 0.0s
1563 + directive with one required and one optional argument 0.004s
1564 + directive with one required and one missing optional argument 0.0s
1565 + directive with one regular argument and one argument with whitespace 0.001s
1566 + failure - directive with a required argument with whitespace missing as invalid 0.001s
1567 + directive with one required field 0.003s
1568 + failure - directive with a required field missing as invalid 0.007s
1569 + failure - directive with a required field being invalid 0.003s
1570 + directive with a converted required field 0.001s
1571 + directive with two required fields 0.002s
1572 + failure - directive with one out of two required fields missing as invalid 0.001s
1573 + failure - directive with an unknown field name as invalid 0.001s
1574 + directive with one optional field 0.005s
1575 + directive with one optional field with a value spanning two lines 0.001s
1576 + directive with one optional field missing 0.001s
1577 + directive with a converted optional field 0.0s
1578 + failure - directive with an optional field being invalid 0.004s
1579 + directive with one required and one optional field 0.001s
1580 + directive with one required and one missing optional field 0.001s
1581 + directive with one converted argument and one converted field 0.001s
1582 + failure - directive with one converted argument and one required field missing as invalid 0.003s
1583 + failure - directive with one converted field and one required argument missing as invalid 0.0s
1584 + failure - directive with one converted argument and one field invalid 0.001s
1585 + failure - directive with one converted field and one argument invalid 0.001s
1586 + directive with one optional argument and one missing optional field 0.007s
1587 + directive with one optional argument, one missing optional field and standard body 0.001s
1588 + directive with one optional field and standard body 0.001s
1589 + directive with one missing optional field and standard body after a blank line 0.004s
1590 + directive with one missing optional field and standard body on the same line 0.0s
1591 + directive with standard block content 0.002s
1592 + directive with empty block content 0.0s
1593 + directive with custom content 0.004s
1594 + failure - directive with invalid custom content 0.0s
1595 + directive with an argument and standard block content 0.001s
1596 + directive with an argument and empty block content 0.001s
1597 + directive with an argument and standard span content 0.003s
1598 + directive with an argument and empty span content 0.001s
1599 + directive with a field and standard block content 0.001s
1600 + directive with a field and empty block content 0.003s
1601 + failure - directive with standard block content and a missing required field as invalid 0.001s
1602 + directive with an argument, a field and standard block content 0.001s
1603 + failure - directive with a field and standard block content, but a missing required argument as invalid 0.001s
1604 + failure - directive with an argument and standard block content, but a missing required field as invalid 0.0s
1605 + directive with an argument, a field and empty block content 0.0s
1606 + directive with a converted argument, field and body 0.013s
1607 + directive with a converted field and body and a missing optional argument 0.0s
1608 + directive with a converted argument and body and a missing optional field 0.001s
1609 + directive with a converted body and missing optional argument and field 0.004s
1610 + failure - directive with a converted field and body and an invalid argument 0.001s
1611 + failure - directive with a converted argument and body and an invalid field 0.001s
1612 + failure - directive with a converted field and argument and an invalid body 0.002s
1613 + failure - directive with an unknown name as invalid 0.001s
1614 + substitution definition 0.001s
1615 + substitution definition with an invalid directive 0.0s
1616 + role directive 0.013s
1617 + role directive with a missing required field as invalid 0.0s
1618laika.directive.std.ControlFlowDirectiveSpec:
1619 + for directive - process the default body once if the referenced object is a map 0.013s
1620 + for directive - process the default body multiple times if the referenced object is a list 0.006s
1621 + for directive - do not process the default body if the referenced object is an empty collection 0.002s
1622 + for directive - process the @:empty body part if the referenced object is an empty collection 0.01s
1623 + for directive - process the default body once if the referenced object is a scalar value 0.002s
1624 + if directive - process the default body once if the referenced object is the string 'true' 0.003s
1625 + if directive - process the default body once if the referenced object is the string 'on' 0.002s
1626 + if directive - do not process the default body if the referenced object does not exist 0.007s
1627 + if directive - process the @:else body if the referenced object does not exist 0.014s
1628 + if directive - process the first @:elseIf body if it is defined 0.008s
1629 + if directive - process the second @:elseIf body if it is defined 0.005s
1630 + if directive - do not process the default body if the referenced object is not a string recognized as true 0.001s
1631laika.parse.hocon.ConfigResolverSpec:
1632 + resolve a simple object 0.001s
1633 + resolve an object with expanded paths 0.001s
1634 + resolve an object with expanded paths 2 levels deep 0.0s
1635 + merge two object definitions with the same path 0.0s
1636 + don't merge an object if there is a simple overriding value between them 0.001s
1637 + resolve a nested object 0.0s
1638 + resolve an array of simple values 0.0s
1639 + resolve an array of objects 0.001s
1640 + resolve an object with an overridden field 0.0s
1641 + resolve a concatenated array 0.0s
1642 + resolve a merged object 0.002s
1643 + resolve a concatenated string 0.001s
1644 + resolve a backward looking reference to a simple value 0.006s
1645 + resolve a forward looking reference to a simple value 0.0s
1646 + resolve a reference to a value declared in the fallback config 0.001s
1647 + ignore an optional, missing reference 0.0s
1648 + ignore an optional, missing self reference 0.003s
1649 + fail with a missing required reference 0.007s
1650 + fail with a circular reference 0.003s
1651 + fail with a circular reference to a parent node 0.0s
1652 + resolve a backward looking reference to a simple value with a common path segment 0.001s
1653 + resolve a forward looking reference to a simple value with a common path segment 0.0s
1654 + resolve a backward looking reference to another object 0.003s
1655 + resolve a forward looking reference to another object 0.0s
1656 + resolve a backward looking reference in a concatenated string 0.001s
1657 + resolve a forward looking reference in a concatenated string 0.0s
1658 + ignore a missing, optional reference in a concatenated string 0.001s
1659 + resolve a backward looking reference in a concatenated array 0.007s
1660 + resolve a forward looking reference in a concatenated array 0.0s
1661 + ignore a missing, optional reference in a concatenated array 0.0s
1662 + fail with a missing required reference in a concatenated array 0.001s
1663 + fail when the combination of types is invalid in concatenated field 0.0s
1664 + resolve a self reference in a concatenated array 0.001s
1665 + resolve a self reference via += in a concatenated array 0.004s
1666 + resolve a self reference via += as the first occurrence in the input 0.0s
1667 + resolve a backward looking reference in a concatenated object 0.0s
1668 + resolve a forward looking reference in a concatenated object 0.001s
1669 + ignore an optional, missing reference in a concatenated object 0.0s
1670 + resolve a backward looking reference in a merged object 0.004s
1671 + resolve a forward looking reference in a merged object 0.0s
1672 + ignore a missing, optional reference in a merged object 0.0s
1673 + resolve a self reference in a merged object 0.0s
1674 + ignore a missing reference when it is later overridden 0.0s
1675 + resolve a self reference in a nested object 0.001s
1676 + include on the top level 0.001s
1677 + resolve a nested include 0.0s
1678 + ignore a missing optional resource 0.0s
1679 + fail with a missing required resource 0.001s
1680 + fail when an include failed to load 0.0s
1681 + expand a single path 0.0s
1682 + expand a nested path 0.004s
1683laika.internal.rst.InlineParsersSpec:
1684 + inline text - parse content without any markup as plain text 0.001s
1685 + markup recognition rules - recognize markup surrounded by whitespace 0.001s
1686 + markup recognition rules - recognize markup surrounded by punctuation 0.0s
1687 + markup recognition rules - recognize markup at the start of the input 0.0s
1688 + markup recognition rules - recognize markup at the end of the input 0.0s
1689 + markup recognition rules - recognize markup at the end and the end of the input 0.0s
1690 + markup recognition rules - ignore markup surrounded by characters (rules 1 and 4) 0.001s
1691 + markup recognition rules - ignore markup with a space after the start character (rule 2) 0.0s
1692 + markup recognition rules - ignore markup with a space before the end character (rule 3) 0.0s
1693 + markup recognition rules - ignore markup end characters immediately following the start character (rule 6) 0.0s
1694 + markup recognition rules - ignore markup characters between matching punctuation characters (rule 5) 0.0s
1695 + markup recognition rules - recognize markup when preceding and following characters are escaped 0.0s
1696 + em - content enclosed in * 0.0s
1697 + em - ignore an * character when it is not matched by a second * 0.0s
1698 + em - ignore markup for nested spans 0.0s
1699 + em - ignore markup for emphasis when strong failed at the same position based on the markup recognition rules 0.0s
1700 + strong - content enclosed in ** 0.001s
1701 + strong - ignore a ** sequence when it is not matched by a second ** 0.0s
1702 + inline literal - content enclosed in `` 0.0s
1703 + inline literal - ignore a ` character when it is not matched by a second ` 0.0s
1704 + inline literal - do not treat a single ` as markup when the code span is enclosed in double `` 0.001s
1705 + substitution reference - content enclosed in | 0.0s
1706 + substitution reference - ignore a | character when it is not matched by a second | 0.0s
1707 + internal link target - content enclosed in _` and ` 0.0s
1708 + interpreted text - enclosed in ` with implicit default role 0.001s
1709 + interpreted text - enclosed in ` with role prefix 0.0s
1710 + interpreted text - enclosed in ` with role suffix 0.0s
1711 + interpreted text - enclosed in ` but ignore illegal role prefix 0.0s
1712 + citation reference - enclosed between [ and ]_ 0.001s
1713 + footnote reference - enclosed between [ and ]_ with autonumber label 0.0s
1714 + footnote reference - enclosed between [ and ]_ with autosymbol label 0.001s
1715 + footnote reference - enclosed between [ and ]_ with an autonumber named label 0.001s
1716 + footnote reference - enclosed between [ and ]_ with a numeric label 0.0s
1717 + phrase link without url 0.0s
1718 + external phrase link with text and url 0.001s
1719 + internal phrase link with text and url 0.0s
1720 + phrase link with only a url 0.001s
1721 + internal phrase link with only a url 0.0s
1722 + phrase link - remove whitespace from an url 0.0s
1723 + anonymous phrase link without url 0.0s
1724 + anonymous phrase link with text and url 0.001s
1725 + anonymous phrase link with only an url 0.0s
1726 + named link reference 0.0s
1727 + anonymous link reference 0.0s
1728 + normalize the id of a phrase link 0.0s
1729 + standalone link - http URI 0.001s
1730 + standalone link - http URI containing an IP4 address 0.0s
1731 + standalone link - https URI 0.0s
1732 + standalone link - email address 0.0s
1733 + standalone link - http URI without trailing punctuation 0.001s
1734 + standalone link - do not parse a URI containing unicode characters 0.0s
1735 + standalone link - email address without surrounding punctuation 0.0s
1736 + backslash escape 0.0s
1737laika.rewrite.SectionNumberSpec:
1738 + number documents, sections and titles 0.021s
1739 + number documents and titles 0.019s
1740 + number sections only 0.028s
1741 + number nothing 0.009s
1742 + number documents and sections two levels deep 0.018s
1743laika.api.ParseAPISpec:
1744 + Markdown from a string 0.005s
1745 + Markdown with all link references resolved through the default rewrite rules 0.002s
1746 + set a config value programmatically 0.014s
1747 + parse Markdown into a raw document, without applying the default rewrite rules 0.009s
1748 + collect errors from runtime messages 0.01s
1749 + replace unresolved nodes with invalid elements 0.003s
1750laika.config.StyleSheetParserConfigSpec:
1751 + let an app config override a parser in the extension config 0.001s
1752 + let an app config override a parser in a previously installed app config 0.001s
1753 + use the default fallback parser in case all other parsers fail 0.007s
1754laika.markdown.BlockParsersSpec:
1755 + paragraphs - blocks without block-level markup parsed as normal paragraphs 0.001s
1756 + paragraphs - double space at a line end parsed as a hard line break 0.001s
1757 + bullet lists - items not separated by blank lines as list items with flow content 0.001s
1758 + bullet lists - items separated by blank lines as list items with 'forced' paragraphs 0.0s
1759 + bullet lists - items indented by a tab after the '*' treated the same way as items indented by a space 0.001s
1760 + bullet lists - items starting with a '+' treated the same way as those starting with a '*' 0.0s
1761 + bullet lists - items starting with a '-' treated the same way as those starting with a '*' 0.0s
1762 + bullet lists - items prefixed by numbers as items of an enumerated list 0.001s
1763 + enum lists - items prefixed by numbers and separated by blank lines as ordered list items with paragraph 0.0s
1764 + enum lists - items prefixed by numbers containing multiple paragraphs in a single item 0.001s
1765 + bullet lists - nested items indented by spaces 0.0s
1766 + bullet lists - nested items indented by tabs 0.001s
1767 + lists - bullet list nested inside enumerated list 0.0s
1768 + lists - bullet list nested inside enumerated list with blank lines between the items 0.0s
1769 + enum lists - list nested between two paragraphs inside a list item 0.001s
1770 + blockquotes - paragraph decorated with '>' at the beginning of each line 0.0s
1771 + blockquotes - paragraph decorated with '>' only at the beginning of the first line 0.0s
1772 + blockquotes - two adjacent paragraphs decorated with '>' as a single blockquote with two paragraphs 0.0s
1773 + blockquotes - nested blockquote decorated with a second '>' 0.001s
1774 + blockquotes - prevent endless recursion and stop after the configured maximum of 12 nest levels 0.002s
1775 + literal blocks - paragraphs indented with 4 or more spaces as a code block 0.0s
1776 + literal blocks - paragraphs indented with 1 or more tabs as a code block 0.0s
1777 + literal blocks - indented lines separated by blank lines as a single code block 0.001s
1778 + setext header - title decorated by one or more '=' on the following line as a level 1 header 0.0s
1779 + setext header - title decorated by one or more '-' on the following line as a level 2 header 0.0s
1780 + setext header - title that includes markup 0.001s
1781 + atx header - title decorated by one '#' on the beginning of the line as a level 1 header 0.0s
1782 + atx header - title decorated by three '#' on the beginning of the line as a level 3 header 0.0s
1783 + atx header - title decorated by six '#' on the beginning of the line as a level 3 header 0.002s
1784 + atx header - title that includes markup 0.001s
1785 + atx header - strip all trailing '#' from the header 0.0s
1786 + atx header - ignore title lines without title text 0.0s
1787 + atx header - recognize header without preceding blank line 0.001s
1788 + rules - line decorated by '-' and space characters ending on a '-' 0.0s
1789 + rules - line decorated by '-' and space characters ending on several spaces 0.0s
1790 + rules - line decorated by '-' and space characters even if the number of spaces varies 0.0s
1791 + rules - treat a line decorated by '_' and space characters as normal text in case it is followed by other characters 0.001s
1792 + rules - treat a line decorated by '_' and space characters as normal text in case the pattern is repeated less than 3 times 0.0s
1793 + rules - line decorated by '-' and space characters indented up to 3 spaces 0.003s
1794 + rules - line decorated by '-' without space characters 0.001s
1795 + rules - line decorated by '_' and space characters 0.0s
1796 + rules - line decorated by '*' and space characters 0.0s
1797 + link target without title and url without angle brackets 0.0s
1798 + link target without title and url in angle brackets 0.001s
1799 + link target with title enclosed in double quotes 0.002s
1800 + link target with title enclosed in single quotes 0.0s
1801 + link target with title enclosed in parentheses 0.0s
1802 + link target with the title indented on the following line 0.002s
1803 + link target ignoring the title when it is following after a blank line 0.0s
1804 + internal target 0.0s
1805 + internal target with title enclosed in parentheses 0.001s
1806 + code block nested inside a list 0.0s
1807 + blockquote nested inside a list 0.001s
1808 + list nested inside a blockquote 0.0s
1809 + code block nested inside a blockquote 0.004s
1810laika.parse.code.languages.LanguageSpec:
1811 + Scala 0.024s
1812 + Dotty 0.011s
1813 + Java 0.008s
1814 + Python 0.009s
1815 + JavaScript 0.017s
1816 + JSX 0.035s
1817 + Dart 0.016s
1818 + Haskell 0.013s
1819 + TypeScript 0.01s
1820 + TSX 0.009s
1821 + Alloy 0.006s
1822 + XML 0.026s
1823 + HTML 0.011s
1824 + CSS 0.005s
1825 + JSON 0.005s
1826 + HOCON 0.009s
1827 + Diff 0.004s
1828 + Dhall 0.011s
1829 + shell/bash 0.011s
1830 + SQL 0.015s
1831 + YAML 0.011s
1832 + EBNF 0.005s
1833 + Markdown 0.016s
1834 + Markdown with Laika extensions 0.02s
1835 + reStructuredText 0.004s
1836 + reStructuredText with Laika extensions 0.006s
1837 + HTML with Laika extensions 0.012s
1838 + Laika AST 0.003s
1839laika.parse.text.WhitespacePreprocessorSpec:
1840 + replace form feeds and vertical tabs with single spaces 0.003s
1841 + remove carriage return characters 0.001s
1842 + replace tabs with the corresponding number of whitespace characters depending on the column in occurs in 0.0s
1843 + allow the overriding of the tabStops value 0.0s
1844laika.parse.directive.TemplateParsersSpec:
1845 + content without any markup 0.0s
1846 + context reference as the only template content 0.001s
1847 + context reference at the beginning of a template 0.0s
1848 + context reference at the end of a template 0.003s
1849 + context reference in the middle of a template 0.0s
1850 + optional context reference 0.0s
1851 + invalid context reference 0.001s
1852laika.directive.BlockDirectiveAPISpec:
1853 + empty directive 0.013s
1854 + directive producing a block resolver 0.006s
1855 + directive with one required default string attribute 0.009s
1856 + invalid - directive with a missing positional default attribute 0.002s
1857 + directive with an optional default int attribute 0.007s
1858 + invalid - directive with an optional invalid default int attribute 0.01s
1859 + directive with a missing optional default int attribute 0.007s
1860 + directive with one required named string attribute 0.009s
1861 + directive with a named string attribute value in quotes 0.004s
1862 + invalid - directive with a missing required named attribute 0.009s
1863 + directive with an optional named int attribute 0.006s
1864 + invalid - directive with an optional invalid named int attribute 0.009s
1865 + directive with a missing optional named int attribute 0.002s
1866 + directive with the allAttributes combinator 0.007s
1867 + directive with the allAttributes combinator and an additional nested config object 0.011s
1868 + directive with a body 0.002s
1869 + directive with a body and trim empty lines at the start and end 0.004s
1870 + directive with a body and a custom fence 0.006s
1871 + directive with an empty body 0.008s
1872 + invalid - directive with a missing body 0.002s
1873 + directive with a separated body 0.014s
1874 + invalid - directive with an invalid separator 0.005s
1875 + invalid - directive with a separator not meeting the min count requirements 0.004s
1876 + invalid - directive with a separator exceeding the max count constraint 0.003s
1877 + detect an orphaned separator directive 0.003s
1878 + full directive spec with all elements present 0.006s
1879 + full directive spec with all elements present and attributes on multiple lines 0.005s
1880 + full directive spec with all optional elements missing 0.003s
1881 + full directive spec with a custom fence 0.002s
1882 + invalid - full directive spec with positional attributes and the body missing 0.008s
1883 + directive with a custom body parser 0.003s
1884 + directive with a required default body and cursor access 0.004s
1885 + invalid - directive with an unknown name 0.002s
1886 + merge options from two nested directives 0.006s
1887laika.internal.rst.std.StandardSpanDirectivesSpec:
1888 + image - without options 0.006s
1889 + image - with alt option 0.013s
1890 + image - with target option with a simple reference 0.016s
1891 + image - with target option with a phrase reference 0.007s
1892 + image - with target option with a uri 0.014s
1893 + image - with class option 0.008s
1894 + image - with align option 0.005s
1895 + image - with width and height options 0.02s
1896 + image - with scale option 0.007s
1897 + replace - regular inline markup 0.006s
1898 + date - using the default pattern when no pattern is specified 0.005s
1899 + date - custom pattern 0.013s
1900 + date - custom pattern with a time component 0.006s
1901 + unicode - hex values starting with '0x' intertwined with normal text 0.004s
1902 + unicode - hex values starting with 'x' intertwined with normal text 0.006s
1903 + unicode - hex values starting with '\\x' intertwined with normal text 0.002s
1904 + unicode - hex values starting with 'U+' intertwined with normal text 0.002s
1905 + unicode - hex values starting with 'u' intertwined with normal text 0.004s
1906 + unicode - hex values starting with '\\u' intertwined with normal text 0.007s
1907 + unicode - hex values as XML-style entities intertwined with normal text 0.004s
1908 + unicode - decimal values intertwined with normal text 0.008s
1909laika.rewrite.PathTranslatorSpec:
1910 + between two unversioned documents 0.0s
1911 + between two versioned documents 0.0s
1912 + versioned to unversioned document 0.001s
1913 + unversioned to versioned document 0.006s
1914 + static unversioned document 0.001s
1915 + static versioned document 0.0s
1916 + ignore versions when output format is not HTML 0.001s
1917 + apply versions when substituting an internal target with an external one 0.0s
1918laika.time.PlatformDateDirectiveSpec:
1919 + date directive - full offset date time 0.014s
1920 + date directive - input with time component - format without 0.002s
1921 + date directive - input without time component - format with 0.001s
1922 + date directive - ISO offset date time 0.003s
1923 + date directive - MEDIUM format 0.006s
1924 + date directive - MEDIUM format - German - language from document metadata 0.012s
1925 + date directive - MEDIUM format - German - language from directive argument 0.002s
1926laika.config.TemplateParserConfigSpec:
1927 + let an app config override a parser in the extension config 0.006s
1928 + let an app config override a parser in a previously installed app config 0.001s
1929 + use the default parser when there is no parser installed 0.004s
1930 + retain the template parser in strict mode 0.001s
1931laika.internal.rst.DefinitionListSpec:
1932 + items not separated by blank lines 0.005s
1933 + items separated by blank lines 0.001s
1934 + term with a classifier 0.001s
1935 + items containing multiple paragraphs 0.003s
1936 + items containing multiple paragraphs with different indentation 0.001s
1937 + inline markup in the term 0.001s
1938 + ignore subsequent tables 0.001s
1939 + ignore subsequent directives 0.002s
1940 + ignore subsequent bullet lists 0.0s
1941 + ignore subsequent enum lists 0.001s
1942 + ignore subsequent headers with overline 0.001s
1943laika.internal.rst.OptionListSpec:
1944 + list with short posix options 0.001s
1945 + list with long posix options 0.0s
1946 + list with short GNU-style options 0.004s
1947 + list with short DOS-style options 0.001s
1948 + option argument separated by a space 0.0s
1949 + option argument separated by '=' 0.008s
1950 + option argument enclosed in angle brackets 0.0s
1951 + description starting on the next line 0.004s
1952 + block of options with blank lines between them 0.0s
1953 + description containing multiple paragraphs 0.001s
1954 + option separated by more than 2 spaces 0.0s
1955laika.internal.rst.std.StandardBlockDirectivesSpec:
1956 + compound - sequence of two paragraphs 0.009s
1957 + compound - set an id for the sequence 0.005s
1958 + compound - set a style for the sequence 0.009s
1959 + container - sequence of two paragraphs 0.004s
1960 + container - sequence of two paragraphs with two custom styles 0.007s
1961 + admonition - generic 0.008s
1962 + admonition - set id and style 0.007s
1963 + attention admonition 0.006s
1964 + attention admonition with id and style 0.006s
1965 + attention admonition with nested blocks and inline markup 0.006s
1966 + caution admonition 0.006s
1967 + danger admonition 0.008s
1968 + the error admonition 0.005s
1969 + hint admonition 0.006s
1970 + important admonition 0.006s
1971 + note admonition 0.003s
1972 + tip admonition 0.003s
1973 + warning admonition 0.006s
1974 + warning admonition - match the name of the directive case-insensitively 0.005s
1975 + topic - sequence of two paragraphs 0.004s
1976 + topic - set id and style 0.004s
1977 + sidebar - sequence of two paragraphs 0.01s
1978 + sidebar - set id and style 0.005s
1979 + sidebar - set id and subtitle 0.003s
1980 + rubric - parse spans without other options 0.002s
1981 + rubric - set id and styles 0.003s
1982 + epigraph - single line 0.005s
1983 + epigraph - multiple lines 0.005s
1984 + epigraph - with attributions 0.011s
1985 + highlights - single line 0.005s
1986 + pull-quote - single line 0.004s
1987 + parsed-literal - multiple lines 0.005s
1988 + parsed-literal - set id and style 0.004s
1989 + parsed-literal - multiple lines separated by spaces, preserving indentation 0.006s
1990 + code - multiple lines 0.004s
1991 + code - set id and style 0.003s
1992 + code - multiple lines separated by spaces, preserving indentation 0.003s
1993 + grid table with caption 0.01s
1994 + simple table with caption 0.007s
1995 + simple table without caption 0.006s
1996 + image without options 0.008s
1997 + image with alt option 0.003s
1998 + image with target option with a simple reference 0.004s
1999 + image with target option with a phrase reference 0.003s
2000 + image with target option with a uri 0.011s
2001 + image with class option 0.011s
2002 + figure without options 0.009s
2003 + figure with a caption 0.009s
2004 + figure with a caption and a legend 0.005s
2005 + support the class option for the figure and the image 0.008s
2006 + support the target option with a simple reference and a caption 0.013s
2007 + header - creates a fragment in the document 0.006s
2008 + footer - creates a fragment in the document 0.004s
2009 + include - creates a placeholder in the document 0.002s
2010 + include rewriter replaces the node with the corresponding document 0.007s
2011 + title - sets the title in the document instance 0.016s
2012 + meta - creates config entries in the document instance 0.014s
2013 + sectnum - creates config entries in the document instance 0.006s
2014 + contents - creates a placeholder in the document 0.005s
2015 + contents rewriter replaces the node with the corresponding list element 0.013s
2016 + raw - support raw input with one format 0.007s
2017laika.internal.rst.BlockParsersSpec:
2018 + doctest block 0.001s
2019 + indented literal block in expanded form 0.01s
2020 + indented literal block in partially minimized form 0.0s
2021 + indented literal block in fully minimized form 0.001s
2022 + quoted literal block in expanded form 0.0s
2023 + quoted literal block in partially minimized form 0.0s
2024 + quoted literal block in fully minimized form 0.001s
2025 + indented literal block with blank lines 0.0s
2026 + quoted literal block with blank lines 0.0s
2027 + block quote with two paragraphs 0.004s
2028 + block quote with an attribution 0.001s
2029 + transition - line of = characters 0.0s
2030 + transition - ignore lines shorter than 4 characters 0.0s
2031 + header with overline and underline 0.001s
2032 + header with underline only 0.0s
2033 + headers with varying levels 0.006s
2034 + ignore headers where the underline is shorter than the text 0.0s
2035 + ignore headers where the underline does not have the same length as the overline 0.0s
2036 + block lists - apply an internal link target to the following regular block 0.001s
2037 + block lists - do not apply an internal link target to the following regular block when that already has an id 0.0s
2038 + block lists - treat an internal link target followed by another internal link target like an alias 0.001s
2039 + block lists - treat an internal link target followed by an external link target as an external link target 0.0s
2040 + block lists - treat an internal reference followed by an internal link target as two internal link targets 0.002s
2041 + paragraph parser - support a parser extension that can interrupt paragraphs 0.005s
2042laika.rewrite.RewriteSpec:
2043 + replace the first element of the children in a container 0.001s
2044 + replace an element in the middle of the list of children in a container 0.003s
2045 + replace the last element of the children in a container 0.001s
2046 + remove the first element of the children in a container 0.008s
2047 + remove an element in the middle of the list of children in a container 0.0s
2048 + remove the last element of the children in a container 0.001s
2049 + replace the content of the header of a section, which is not part of the content list 0.006s
2050 + return a new instance for a branch in the document tree that contains one or more modified children 0.001s
2051 + rewrite a span container 0.0s
2052 + rewrite a nested span container 0.0s
2053 + rewrite main content and attribution in a QuotedBlock 0.007s
2054 + rewrite text in bullet list items 0.0s
2055 + rewrite text in enum list items 0.001s
2056 + rewrite text in a template element 0.001s
2057 + rewrite text in table cells 0.005s
2058laika.parse.BlockCursorSpec:
2059 + not be at the end of input after creation 0.001s
2060 + be at the end of input after consuming all characters 0.0s
2061 + indicate the full input length as remaining after creation 0.0s
2062 + indicate zero remaining after consuming all characters 0.006s
2063 + return the first character after creation 0.001s
2064 + return the last character after consuming all but one characters 0.0s
2065 + return a character relative to the current offset 0.0s
2066 + capture the input from the beginning 0.001s
2067 + capture the input from the current position 0.0s
2068 + capture all remaining characters when trying to capture more characters than are available 0.0s
2069 + provide the input reversed 0.005s
2070 + indicate the position is on the first line (second in root source) 0.0s
2071 + indicate the position is on the second line (third in root source) 0.001s
2072 + provide the content of the first line 0.0s
2073 + provide the content of the second line 0.0s
2074 + provide the content of the second line with a positional caret 0.0s
2075 + indicate the correct column 0.001s
2076 + keep the path information 0.0s
2077laika.rewrite.RewriteRulesSpec:
2078 + citation rules - retain a single reference when it has a matching target 0.008s
2079 + citation rules - retain multiple references when they all have a matching targets 0.001s
2080 + citation rules - replace a reference with an unknown label with an invalid span 0.001s
2081 + footnote rules - retain a group of footnotes with a mix of explicit numeric and autonumber labels 0.004s
2082 + footnote rules - retain a group of footnotes with a mix of explicit numeric, autonumber and autonumber-labeled footnotes 0.005s
2083 + footnote rules - retain a group of footnotes with autosymbol labels 0.003s
2084 + footnote rules - replace references with unresolvable autonumber or numeric labels with invalid spans 0.007s
2085 + footnote rules - replace surplus autonumber references with invalid spans 0.0s
2086 + footnote rules - replace surplus autosymbol references with invalid spans 0.0s
2087 + link id refs - resolve external link definitions 0.001s
2088 + link id refs - resolve internal link definitions 0.002s
2089 + link id refs - interpret internal link definitions as external when they point upwards beyond the virtual root 0.001s
2090 + link id refs - resolve internal link targets 0.002s
2091 + link id refs - resolve anonymous link references 0.002s
2092 + link id refs - resolve anonymous internal link definitions 0.001s
2093 + link id refs - resolve anonymous external link definitions 0.009s
2094 + link id refs - replace an unresolvable reference with an invalid span 0.0s
2095 + link id refs - replace a surplus anonymous reference with an invalid span 0.0s
2096 + global link defs - resolve internal link references to a target in the parent tree 0.042s
2097 + global link defs - resolve internal link references with case-insensitive comparison 0.018s
2098 + global link defs - resolve external link references 0.014s
2099 + global link defs - produce an invalid span for an unresolved id 0.006s
2100 + global link defs - produce an invalid span for an unresolved reference 0.01s
2101 + internal links - resolve internal link references to a target in the same document 0.016s
2102 + internal links - resolve internal link references to a target in the same tree 0.014s
2103 + internal links - resolve internal link references to a target in the parent tree 0.009s
2104 + internal links - resolve internal link references to a target in a sibling tree 0.004s
2105 + internal links - resolve internal link references to a markup document 0.01s
2106 + internal links - resolve internal link references to a static document 0.004s
2107 + internal links - resolve internal link references to an image 0.004s
2108 + internal links - produce an invalid span for an unresolved reference 0.007s
2109 + internal links - produce an invalid span for a reference to a markup document with fewer target formats than the source 0.008s
2110 + internal links - produce an invalid span for a reference to a static document with fewer target formats than the source 0.007s
2111 + internal links - add a restricted target format parameter for a reference to a markup document with fewer target formats than the source when siteBaseURL is defined 0.005s
2112 + internal links - add a restricted target format parameter for a reference to a static document with fewer target formats than the source when siteBaseURL is defined 0.004s
2113 + internal links - avoid validation for references beyond the virtual root 0.004s
2114 + internal links - resolve a link id reference to a target in the same tree 0.003s
2115 + internal links - resolve a link id reference to a header with a duplicate id by precedence 0.004s
2116 + link aliases - resolve indirect link references 0.002s
2117 + link aliases - replace an unresolvable reference to a link alias with an invalid span 0.0s
2118 + link aliases - replace circular indirect references with invalid spans 0.001s
2119 + image id refs - resolve external link references 0.002s
2120 + image id refs - resolve internal link references 0.001s
2121 + image id refs - replace an unresolvable reference with an invalid span 0.0s
2122 + header ids - create the id for the header based on the header text 0.003s
2123 + header ids - respect explicitly assigned ids 0.001s
2124 + duplicate ids - append auto-increment numbers 0.005s
2125 + duplicate ids - remove invalid external link definitions altogether 0.0s
2126 + duplicate ids - replace ambiguous references to duplicate ids with invalid spans 0.0s
2127 + duplicate ids - replace ambiguous references for a link alias pointing to duplicate ids with invalid spans 0.001s
2128laika.rewrite.SelectionConfigSpec:
2129 + succeed with an empty config 0.038s
2130 + succeed with no choice groups in the config 0.0s
2131 + succeed with a single choice group without separation 0.011s
2132 + succeed with a single choice group with separation 0.034s
2133 + succeed with a two choice groups with separation and one without 0.007s
2134 + should use per-classifier cover image configuration 0.006s
2135 + should use the default cover image if none has been specified for a classifier 0.001s
2136laika.markdown.InlineParsersSpec:
2137 + content without any markup 0.001s
2138 + em - enclosed in * at the beginning of a phrase 0.002s
2139 + em - enclosed in * at the end of a phrase 0.0s
2140 + em - enclosed in * in the middle of a phrase 0.001s
2141 + em - enclosed in * when it spans the entire phrase 0.0s
2142 + em - ignore an * character when it is enclosed in spaces 0.0s
2143 + em - ignore an * start markup when it is at the end of the line 0.0s
2144 + em - ignore an * character when it is not matched by a second * 0.0s
2145 + em - treat an '_' the same as an '*' 0.0s
2146 + strong - enclosed in ** at the beginning of a phrase 0.0s
2147 + strong - enclosed in ** at the end of a phrase 0.001s
2148 + strong - enclosed in ** in the middle of a phrase 0.0s
2149 + strong - enclosed in ** with a nested em span 0.0s
2150 + strong - enclosed in ** when it spans the entire phrase 0.0s
2151 + strong - ignore a ** sequence when it is enclosed in spaces 0.0s
2152 + strong - ignore a ** sequence when it is not matched by a second ** 0.0s
2153 + strong - treat an '_' the same as an '*' 0.0s
2154 + literal - enclosed in ` at the beginning of a phrase 0.0s
2155 + literal - enclosed in ` at the end of a phrase 0.0s
2156 + literal - enclosed in ` in the middle of a phrase 0.001s
2157 + literal - enclosed in ` when it spans the entire phrase 0.0s
2158 + literal - treat a ` character as markup even when it is enclosed in spaces 0.0s
2159 + literal - ignore a ` character when it is not matched by a second ` 0.0s
2160 + literal - do not treat a single ` as markup when the code span is enclosed in double `` 0.0s
2161 + literal - support three ` characters as delimiter 0.0s
2162 + literal - support five ` characters as delimiter 0.0s
2163 + nested spans - code span inside emphasized text 0.003s
2164 + nested spans - ignore the attempt to close an outer span inside an inner span 0.0s
2165 + escapes - escapable character not treated as markup 0.0s
2166 + escapes - backslash treated as a literal character when the following character is not escapable 0.0s
2167 + links - inline link without title 0.0s
2168 + links - inline link with nested parenthesis 0.001s
2169 + links - recognize email link as external link 0.0s
2170 + links - inline link with an optional title enclosed in double quotes 0.0s
2171 + links - inline link destination within angle brackets 0.0s
2172 + links - inline link destination containing spaces within angle brackets 0.0s
2173 + links - inline link with an optional title enclosed in single quotes 0.001s
2174 + links - inline link with a malformed title 0.003s
2175 + links - markup inside the text of an inline link 0.0s
2176 + links - properly parse escape sequences in the text of an inline link 0.0s
2177 + images - inline image without title 0.001s
2178 + images - inline image with internal target 0.0s
2179 + images - inline image with an optional title enclosed in double quotes 0.0s
2180 + images - inline image with an optional title enclosed in single quotes 0.001s
2181 + images - ignore an inline image with a malformed title 0.0s
2182 + images - do not parse markup inside the text of an inline link 0.0s
2183 + link reference with an explicit id 0.0s
2184 + link reference with an empty id 0.0s
2185 + link reference with an explicit id separated by a space 0.0s
2186 + link reference with an empty id separated by a space 0.0s
2187 + link reference with an implicit id 0.0s
2188 + link reference with an implicit id, preserving the case for the link text 0.0s
2189 + image reference with an explicit id 0.001s
2190 + image reference with an empty id 0.0s
2191 + image reference with an implicit id 0.0s
2192 + link enclosed in angle brackets and set the url as the link text 0.0s
2193laika.parse.RootCursorSpec:
2194 + not at the end of input after creation 0.0s
2195 + at the end of input after consuming all characters 0.004s
2196 + indicate the full input length as remaining after creation 0.0s
2197 + indicate zero remaining after consuming all characters 0.0s
2198 + return the first character after creation 0.0s
2199 + return the last character after consuming all but one characters 0.0s
2200 + return a character relative to the current offset 0.0s
2201 + capture the input from the beginning 0.0s
2202 + capture the input from the current position 0.001s
2203 + capture all remaining characters when trying to capture more characters than are available 0.0s
2204 + provide the input reversed 0.0s
2205 + indicate the position is on the first line 0.001s
2206 + indicate the position is on the second line 0.0s
2207 + provide the content of the first line 0.003s
2208 + provide the content of the second line 0.001s
2209 + provide the content of the second line with a positional caret 0.0s
2210 + indicate the correct column 0.0s
2211 + keep the path information 0.0s
2212 + convert Windows line feeds 0.001s
2213laika.rewrite.LinkValidatorSpec:
2214 + valid markup link target 0.005s
2215 + valid markup link target with fragment 0.002s
2216 + valid static link target 0.002s
2217 + invalid link target 0.002s
2218 + ignore invalid link target when target directory is excluded 0.006s
2219 + ignore invalid link target when validation is configured to be local 0.009s
2220 + ignore invalid link target when validation is configured to be off 0.005s
2221 + invalid local link target 0.003s
2222 + ignore invalid local link target when validation is configured to be off 0.005s
2223 + recoverable markup link target 0.003s
2224 + recoverable static link target 0.003s
2225 + valid span link 0.003s
2226 + invalid span link 0.002s
2227 + recovered span link 0.001s
2228 + unrecoverable image link 0.007s
2229laika.directive.std.SelectDirectiveSpec:
2230 + body with two alternatives 0.016s
2231 + body with a two alternatives and a common body 0.003s
2232 + fail with less than two alternatives in the body 0.003s
2233 + fail when a label is missing in the configuration 0.006s
2234 + unwrap a selected choice in the template rewrite rules 0.004s
2235laika.internal.rst.APISpec:
2236 + registration of native block directives 0.014s
2237 + registration of native span directives 0.006s
2238 + registration of text roles 0.013s
2239 + registration of Laika block directives 0.017s
2240 + ignore registration of Laika block directives in strict mode 0.004s
2241 + registration of Laika span directives 0.009s
2242 + ignore registration of Laika span directives in strict mode 0.003s
2243 + pre-process tabs 0.01s
2244laika.config.ConfigCodecSpec:
2245 + LinkConfig - decode an instance with all fields populated 0.009s
2246 + LinkConfig - decode an instance with some fields populated 0.001s
2247 + LinkConfig - round-trip encode and decode 0.001s
2248 + LinkValidation - decode an instance with exclusions 0.0s
2249 + LinkValidation - decode an instance without exclusions 0.001s
2250 + LinkValidation - round-trip encode and decode 0.0s
2251 + ChoiceGroupsConfig - decode an instance with all fields populated 0.004s
2252 + ChoiceGroupsConfig - round-trip encode and decode 0.001s
2253 + AutonumberConfig - decode an instance with all fields populated 0.0s
2254 + AutonumberConfig - round-trip encode and decode 0.001s
2255 + Versions - decode an instance with all fields populated 0.013s
2256 + Versions - fail with invalid configuration 0.003s
2257 + Versions - round-trip encode and decode 0.004s
2258 + IconRegistry - encode a list of icons 0.003s
2259laika.render.HTMLRendererSpec:
2260 + paragraph with plain text 0.001s
2261 + render a document with two paragraphs with plain text 0.0s
2262 + render a blockquote with two paragraphs with plain text 0.001s
2263 + render a block sequence with a style 0.0s
2264 + render a block sequence without a style 0.001s
2265 + render a block sequence with a single element 0.0s
2266 + render a blockquote with simple flow content 0.001s
2267 + render a blockquote with an attribution 0.0s
2268 + render a bullet list with simple flow content 0.001s
2269 + render an enumerated list with simple flow content 0.0s
2270 + render an enumerated list with lower roman enumeration style 0.001s
2271 + render an enumerated list with upper roman enumeration style 0.0s
2272 + render an enumerated list with lower alpha enumeration style 0.001s
2273 + render an enumerated list with upper alpha enumeration style 0.001s
2274 + render an enumerated list with the start value if it is not 1 0.0s
2275 + render a bullet list with forced paragraphs as list items 0.001s
2276 + render an enumerated list with forced paragraphs as list items 0.0s
2277 + render a definition list with paragraphs 0.001s
2278 + render a definition list with simple flow content 0.0s
2279 + render a navigation list 0.002s
2280 + render a footnote 0.001s
2281 + render a citation 0.001s
2282 + render a table without header cells 0.001s
2283 + render a table with header cells 0.0s
2284 + render a table with a caption 0.001s
2285 + render a cell using colspan and rowspan attributes 0.001s
2286 + render a cell with two paragraphs 0.0s
2287 + render a titled block 0.001s
2288 + render a figure 0.002s
2289 + render a document with two paragraphs separated by a horizontal rule 0.001s
2290 + render a document with two nested sections 0.0s
2291 + render a selection 0.002s
2292==> i laika.render.HTMLRendererSpec.render a choice group ignored 0.0s
2293 + render a title containing emphasized text 0.006s
2294 + render a title containing a section number 0.0s
2295 + render a paragraph containing emphasized text 0.001s
2296 + render a paragraph containing strong text 0.002s
2297 + render a paragraph containing a deleted span 0.0s
2298 + render a paragraph containing an inserted span 0.001s
2299 + render a paragraph containing a literal span 0.001s
2300 + render a paragraph containing a code span 0.001s
2301 + render a paragraph containing a link without title 0.0s
2302 + render a paragraph containing a link with title 0.0s
2303 + render a paragraph containing a link with emphasized text 0.001s
2304 + render a paragraph containing an internal link with emphasized text 0.0s
2305 + render a paragraph containing a internal link with a fragment part 0.001s
2306 + render a paragraph containing a internal link without a fragment part 0.0s
2307 + render a paragraph containing an internal link while ignoring the restricted type parameter 0.001s
2308 + render a paragraph containing a citation link 0.001s
2309 + render a paragraph containing a footnote link 0.0s
2310 + render a raw internal link 0.0s
2311 + render a raw external link 0.0s
2312 + render a paragraph containing an image without title 0.0s
2313 + render a paragraph containing a versioned image 0.001s
2314 + render a paragraph containing an image with title 0.001s
2315 + render a paragraph containing an image with width and height in pixels 0.0s
2316 + render a paragraph containing an image with width and height in a unit other than pixels 0.001s
2317 + render a paragraph containing an image with just width in a unit other than pixels 0.001s
2318 + render a paragraph containing a link with an icon glyph 0.0s
2319 + render a paragraph containing a link with an icon style 0.001s
2320 + render a paragraph containing a link with an inline SVG icon 0.002s
2321 + render a paragraph containing a link with a SVG symbol icon 0.002s
2322 + render a paragraph containing an unresolved link reference 0.002s
2323 + render a paragraph containing an unresolved image reference 0.001s
2324 + render a paragraph containing an internal link target 0.0s
2325 + render a template root containing string elements 0.001s
2326 + render a template span sequence containing string elements 0.0s
2327 + render a template string without creating html entities 0.001s
2328 + render a template root containing a TemplateElement 0.0s
2329 + render a runtime message 0.001s
2330 + render a comment 0.005s
2331 + render an invalid block without the runtime message in default mode 0.0s
2332 + render an invalid block without the runtime message if the configured message level is higher 0.002s
2333 + render an invalid block with the runtime message if the configured message level is lower or equal 0.003s
2334 + render an invalid span without the runtime message in default mode 0.0s
2335 + render an invalid span without the runtime message if the configured message level is higher 0.001s
2336 + render an invalid span with the runtime message if the configured message level is lower or equal 0.0s
2337 + render a literal block 0.001s
2338 + render a parsed literal block 0.0s
2339 + render a code block 0.001s
2340 + render a code block with syntax highlighting 0.002s
2341 + render a literal block inside a blockquote without indentation 0.001s
2342 + render a parsed literal block inside a blockquote without indentation 0.001s
2343 + render a code block inside a blockquote without indentation 0.0s
2344 + render a table cell unformatted 0.001s
2345 + render raw content unchanged if the html format is specified 0.0s
2346 + ignore raw content if the html format is not specified 0.001s
2347 + render an embedded root with correct indentation 0.0s
2348 + render an embedded root without indentation 0.001s
2349Starting build for ProjectRef(file:/build/repo/,io) (laika-io)... [1/4]
2350Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
2351[info] compiling 91 Scala sources to /build/repo/io/target/scala-3.8.0-RC5/classes ...
2352[info] done compiling
2353[info] compiling 44 Scala sources to /build/repo/io/target/scala-3.8.0-RC5/test-classes ...
2354[info] done compiling
2355laika.epub.internal.XHTMLRendererSpec:
2356 + paragraph containing a citation link with an epub:type attribute 0.161s
2357 + paragraph containing a footnote link with an epub:type attribute 0.004s
2358 + footnote with an epub:type attribute 0.004s
2359 + citation with an epub:type attribute 0.002s
2360 + choice group without selections 0.013s
2361 + translate to external URL when an internal link is not defined for EPUB as a target 0.035s
2362laika.helium.HeliumFOTocPageSpec:
2363 + no table of content page configured 0.912s
2364 + table of content included 0.224s
2365laika.helium.generate.BalancedGroupsSpec:
2366 + create a single group when size is 1 0.01s
2367 + create groups of size 1 when the number of items is lower than the specified size 0.0s
2368 + create groups of size 1 when the number of items is equal to the specified size 0.0s
2369 + create groups of variable size when the number of items is not a multiple of the specified size 0.0s
2370 + create groups of equal size when the number of items is a multiple of the specified size 0.0s
2371laika.epub.internal.BookConfigSpec:
2372 + decode defaults with an empty config 0.002s
2373 + decode an instance with fallbacks 0.035s
2374 + round-trip encode and decode 0.001s
2375laika.helium.HeliumFooterSpec:
2376 + default footer 0.921s
2377 + footer disabled 0.155s
2378 + footer set as raw HTML 0.126s
2379 + footer set as AST nodes 0.117s
2380laika.epub.internal.ContainerWriterSpec:
2381 + collect a single target document 0.035s
2382 + render a tree with a two documents 0.002s
2383 + render a tree with a nested tree 0.003s
2384 + render a tree with two nested trees 0.009s
2385 + render a tree with a nested tree and static documents 0.006s
2386laika.epub.internal.HTMLNavRendererSpec:
2387 + render an empty tree 0.006s
2388 + render a tree with a single document 0.001s
2389 + render a tree with two documents 0.0s
2390 + render a tree with a single document and a CSS file 0.006s
2391 + render a tree with a title document 0.008s
2392 + render a tree with a cover image 0.001s
2393 + render a tree with a nested tree 0.001s
2394 + render a tree with a nested tree with a title document 0.004s
2395 + not render a nested tree if the depth is 1 0.0s
2396 + render a document with sections when the depth is 2 0.003s
2397 + not render a document with sections when the depth is 1 0.001s
2398 + escape special characters in titles 0.001s
2399laika.io.TreeParserFileIOSpec:
2400 + parse a directory using the fromDirectory method 0.551s
2401 + read a directory containing a file with non-ASCII characters 0.023s
2402 + read a directory using a custom document type matcher 0.057s
2403 + read a directory using a custom exclude filter 0.029s
2404 + read a directory from the file system plus one AST input 0.046s
2405 + read a directory from the file system plus one AST input from a theme 0.047s
2406 + read a directory from the file system plus one AST input from a theme extension overriding a theme input 0.052s
2407 + read a directory from the file system plus one string input 0.051s
2408 + read a directory from the file system plus one document from an input stream 0.064s
2409 + read a directory from the file system plus one document from an fs2 text stream 0.053s
2410 + read a directory from the file system plus one document from an fs2 binary stream 0.042s
2411 + read a directory from the file system plus one extra file 0.043s
2412 + read a directory from the file system plus one extra classpath resource 0.046s
2413 + read a directory from the file system plus one extra template from a string 0.039s
2414 + read a directory from the file system plus one extra template from a string in a theme 0.038s
2415 + read a directory from the file system plus one extra template from an AST 0.025s
2416 + read a directory from the file system plus one extra config document from a string 0.055s
2417 + read a directory from the file system plus one extra config document from a string in a theme 0.029s
2418 + read a directory from the file system plus one extra config document built programmatically 0.039s
2419 + merge two directories from the file system using the fromDirectories method 0.058s
2420 + merge two directories from the file system using an InputTreeBuilder 0.05s
2421 + merge a directory at a specific mount-point using an InputTreeBuilder 0.068s
2422laika.helium.HeliumLandingPageSpec:
2423 + no landing page configured 0.127s
2424 + full landing page configured 0.245s
2425 + partial landing page configured with custom content and fragment and light background gradient 0.175s
2426laika.helium.LineEstimatesSpec:
2427 + count paragraph lines 0.026s
2428 + count list item lines 0.012s
2429 + count table rows 0.014s
2430 + count sections and navigation list items 0.021s
2431laika.theme.ThemeConfigCodecSpec:
2432 + BookConfig - decode an instance with all fields populated 0.007s
2433 + BooKConfig - decode an instance with some fields populated 0.001s
2434 + BookConfig - round-trip encode and decode 0.001s
2435 + DocumentMetadata - decode an instance with all fields populated 0.007s
2436 + DocumentMetadata - decode an instance with a single author 0.001s
2437 + DocumentMetadata - round-trip encode and decode 0.002s
2438 + DocumentMetadata - fail with an invalid date 0.007s
2439 + DocumentMetadata - fail with an invalid URI 0.001s
2440laika.directive.std.IncludeDirectiveSpec:
2441 + block include without attributes 0.079s
2442 + block include with header 0.056s
2443 + block include with attributes 0.049s
2444 + block embed without attributes 0.037s
2445 + block embed with header 0.029s
2446 + block embed with attributes 0.032s
2447 + template include without attributes 0.041s
2448 + template include with attributes 0.035s
2449 + template embed without attributes 0.046s
2450 + template embed with attributes 0.056s
2451 + interaction of @:include and @:navigationTree directive 0.027s
2452laika.io.TreeRendererSpec:
2453 + empty tree 0.347s
2454 + tree with a single document 0.062s
2455 + tree with a single document to HTML using the default template 0.041s
2456 + fail with duplicate paths 0.057s
2457 + collect errors from multiple documents 0.058s
2458 + tree with a single document to HTML using a custom template in the root directory 0.047s
2459 + tree with a single document to HTML using a render override in a theme 0.023s
2460 + tree with a single document to HTML using a path translator in a theme 0.023s
2461 + tree with a single document to HTML with a render override that shadows an override in a theme 0.013s
2462 + tree with a single document to HTML with a render override in a theme extension that shadows an override in a base theme 0.024s
2463 + tree with a single document to HTML using a custom template in an extension bundle 0.024s
2464 + tree with a cover and title document to HTML 0.043s
2465 + tree with several documents to HTML using PrettyURLs extension 0.069s
2466 + tree with a single document to EPUB.XHTML using the default template 0.052s
2467 + tree with a single document to EPUB.XHTML using a custom template in the root directory 0.041s
2468 + tree with a single document to EPUB.XHTML using a custom template in a theme 0.019s
2469 + tree with a single document to EPUB.XHTML using a custom template in a theme extension overriding a template in the base theme 0.011s
2470 + tree with a single document to XSL-FO using the default template and default CSS 0.052s
2471 + tree with a single document to XSL-FO using a custom template 0.04s
2472 + tree with two documents to XSL-FO using a custom style sheet in a theme 0.017s
2473 + tree with two documents to XSL-FO using a custom style sheet in the tree root 0.052s
2474 + tree with a single static document 0.026s
2475 + tree with a single static document from a theme 0.01s
2476 + tree with all available file types 0.059s
2477 + render tree while excluding all unversioned documents, based on configuration 0.039s
2478 + tree with two documents using a RenderResultProcessor writing to an output stream 0.044s
2479 + tree with two documents using a RenderResultProcessor writing to a file 0.035s
2480 + render to a directory using the toDirectory method 0.112s
2481 + render versioned documents with an existing versionInfo JSON file 0.074s
2482 + directory with existing versioned renderer output 0.209s
2483 + directory containing a document with non-ASCII characters 0.04s
2484laika.io.model.FilePathSpec:
2485 + create and modify normalized FilePath from NIO path 0.003s
2486 + create and modify normalized FilePath from fs2 path 0.0s
2487 + create and modify normalized FilePath from Java File 0.0s
2488 + create and modify normalized FilePath from parsed string 0.001s
2489 + round trip absolute FilePath from and to NIO path 0.0s
2490 + round trip absolute FilePath from and to fs2 path 0.001s
2491 + round trip absolute FilePath from and to Java file 0.0s
2492 + round trip relative FilePath from and to NIO path 0.001s
2493 + round trip relative FilePath from and to fs2 path 0.0s
2494 + round trip relative FilePath from and to Java file 0.005s
2495laika.render.fo.XSLFORendererSpec:
2496 + render a paragraph with plain text 0.002s
2497 + render a document with two paragraphs with plain text 0.007s
2498 + render a block sequence with a custom style 0.01s
2499 + render a block sequence without a style 0.003s
2500 + render a block sequence with a single element 0.009s
2501 + render a blockquote with two paragraphs with plain text 0.012s
2502 + render a blockquote with one paragraph with plain text 0.003s
2503 + render a blockquote with an attribution 0.006s
2504 + render a bullet list with simple flow content 0.02s
2505 + render a bullet list with a nested list 0.01s
2506 + render an enumerated list with simple flow content 0.035s
2507 + render an enumerated list with lower roman enumeration style 0.021s
2508 + render an enumerated list with upper roman enumeration style 0.026s
2509 + render an enumerated list with lower alpha enumeration style 0.016s
2510 + render an enumerated list with upper alpha enumeration style 0.016s
2511 + render an enumerated list with the start value other than 1 0.014s
2512 + render a bullet list with forced paragraphs as list items the same way as normal paragraphs 0.025s
2513 + render an enumerated list with forced paragraphs as list items the same way as normal paragraphs 0.021s
2514 + render a definition list with paragraphs 0.044s
2515 + render a definition list with simple flow content 0.022s
2516 + render a paragraph containing a citation link 0.018s
2517 + render a paragraph containing a footnote link 0.025s
2518 + render a table without header cells 0.032s
2519 + render a table with header cells 0.029s
2520 + render a table with a caption 0.02s
2521 + render a cell using colspan and rowspan attributes 0.002s
2522 + render a cell with two paragraphs 0.003s
2523 + render a titled block 0.005s
2524 + render a figure 0.012s
2525 + render a choice group without selections 0.019s
2526 + render a document with two paragraphs separated by a horizontal rule 0.006s
2527 + render a document with two nested sections 0.009s
2528 + render a navigation list with two levels 0.036s
2529 + render a title containing emphasized text 0.008s
2530 + render a title containing a section number 0.008s
2531 + render a paragraph containing emphasized text 0.006s
2532 + render a paragraph containing strong text 0.008s
2533 + render a paragraph containing a deleted span 0.003s
2534 + render a paragraph containing an inserted span 0.003s
2535 + render a paragraph containing a literal span 0.002s
2536 + render a paragraph containing a code span 0.004s
2537 + render a paragraph containing a code span with syntax highlighting 0.007s
2538 + render a paragraph containing a link without title 0.012s
2539 + render a paragraph containing a link with title 0.008s
2540 + render a paragraph containing a link with emphasized text 0.006s
2541 + render a paragraph containing an internal link with emphasized text 0.005s
2542 + render a paragraph containing an internal link with a fragment part 0.003s
2543 + render a paragraph containing an internal link without a fragment part 0.003s
2544 + render a paragraph containing an internal link with a filename without suffix 0.003s
2545 + translate to external URL when an internal link is not defined for PDF as a target 0.007s
2546 + render a paragraph containing a raw internal link 0.002s
2547 + render a paragraph containing a raw external link 0.009s
2548 + render a paragraph containing only an image centered 0.003s
2549 + render a paragraph containing an image without title 0.004s
2550 + render a paragraph containing an image with title 0.002s
2551 + render a paragraph containing an image, ignoring intrinsic width and height attributes 0.004s
2552 + render a paragraph containing an image with vertical align style 0.005s
2553 + render a paragraph containing a link with an icon glyph 0.002s
2554 + render a paragraph containing a link with an inline SVG icon 0.003s
2555 + render a paragraph containing an unresolved link reference 0.007s
2556 + render a paragraph containing an unresolved image reference 0.013s
2557 + render a paragraph containing an internal link target 0.009s
2558 + render a template root containing string elements 0.001s
2559 + render a template span sequence containing string elements 0.002s
2560 + render a template string without creating XML entities 0.001s
2561 + render a template root containing a TemplateElement 0.017s
2562 + render a runtime message 0.001s
2563 + render a comment 0.005s
2564 + render an invalid block without the runtime message in default mode 0.006s
2565 + render an invalid block without the runtime message if the configured message level is higher 0.005s
2566 + render an invalid block with the runtime message if the configured message level is lower or equal 0.002s
2567 + render an invalid span without the runtime message in default mode 0.006s
2568 + render an invalid span without the runtime message if the configured message level is higher 0.001s
2569 + render an invalid span with the runtime message if the configured message level is lower or equal 0.001s
2570 + render a literal block 0.001s
2571 + render a parsed literal block 0.003s
2572 + render a code block 0.001s
2573 + render a literal block inside a blockquote without indentation 0.002s
2574 + render a parsed literal block inside a blockquote without indentation 0.002s
2575 + render a code block inside a blockquote without indentation 0.002s
2576 + render a table cell unformatted 0.003s
2577 + render raw content unchanged if the xsl-fo format is specified 0.001s
2578 + ignore raw content if the xsl-fo format is not specified 0.001s
2579 + render an embedded root with correct indentation 0.008s
2580 + render an embedded root without indentation 0.006s
2581laika.helium.HeliumFORendererSpec:
2582 + defaults - full XSL-FO output 0.314s
2583 + custom master page layout 0.088s
2584 + paragraph with custom font families, font sizes and layout 0.088s
2585 + custom font sizes and font families for titles and headers 0.097s
2586 + custom link colors 0.094s
2587 + custom color scheme for syntax highlighting 0.166s
2588 + callouts with icons 0.112s
2589 + cover image 0.093s
2590laika.helium.HeliumTocPageSpec:
2591 + no table of content page configured 0.144s
2592 + table of content included 0.181s
2593laika.helium.HeliumEPUBHeadSpec:
2594 + Helium defaults via transformer 0.057s
2595 + custom configuration for CSS and JS file locations 0.051s
2596 + metadata (authors, description) 0.06s
2597 + metadata (language) 0.051s
2598 + title 0.027s
2599laika.io.TreeTransformerSpec:
2600 + empty tree 0.042s
2601 + tree with a single document 0.05s
2602 + tree with a cover, title document and one content document 0.059s
2603 + tree with a cover, title document and two content documents with a document mapper 0.097s
2604 + tree with a document mapper from a theme 0.049s
2605 + tree with a document mapper from a theme and one from a theme extension 0.043s
2606 + tree with a document mapper from a theme specific to the output format 0.03s
2607 + ignore the document mapper from a theme if the format does not match 0.02s
2608 + tree with a template document populated by a config file in the directory 0.05s
2609 + tree with a template document populated by a root config string 0.059s
2610 + tree with a custom template engine 0.063s
2611 + tree with a custom style sheet engine 0.059s
2612 + tree with a template directive 0.042s
2613 + tree with a static document 0.047s
2614 + tree with an internal reference using the default slug builder 0.052s
2615 + tree with an internal reference using a custom slug builder 0.062s
2616 + tree with all available file types and multiple markup formats 0.267s
2617 + tree with while filtering documents based on their targetFormats setting 0.059s
2618 + describe a tree with all available file types and multiple markup formats 0.056s
2619 + do not fail a describe operation in case of a directory input that does not exist 0.025s
2620 + render a tree with a RenderResultProcessor writing to an output stream 0.076s
2621 + render a tree with a RenderResultProcessor writing to a file 0.051s
2622 + read from and write to directories 0.085s
2623 + directory with a custom document type matcher 0.066s
2624 + allow to specify custom exclude filter 0.081s
2625 + read from two root directories 0.12s
2626 + do not copy files from the output directory if it's nested inside the input directory 0.103s
2627laika.epub.internal.OPFRendererSpec:
2628 + render an empty tree 0.019s
2629 + render a tree with a single document 0.0s
2630 + render a tree with a single document with the default locale rendered correctly 0.0s
2631 + render a tree with a single document with valid XML id for the name starting with a digit 0.004s
2632 + render a tree with two documents 0.0s
2633 + render a tree with a title document 0.0s
2634 + render a tree with a cover 0.001s
2635 + render a tree with a nested tree 0.001s
2636 + render a tree with two nested trees 0.0s
2637 + render a tree with a nested tree and static documents 0.002s
2638 + render a tree with a nested tree and script documents 0.005s
2639 + render a tree with a nested tree and no script documents 0.003s
2640laika.ast.ConfigSpec:
2641 + parse configuration sections embedded in Markdown documents 0.04s
2642 + parse configuration sections embedded in Markdown documents after blank lines and whitespace 0.035s
2643 + parse configuration sections embedded in reStructuredText documents 0.041s
2644 + insert an invalid element when a required context reference is missing 0.042s
2645 + insert an empty string when an optional context reference is missing 0.033s
2646 + make directory configuration available for references in markup 0.042s
2647 + include classpath resources in directory configuration 0.067s
2648 + include file resources in directory configuration 0.052s
2649 + merge objects from config headers in markup with objects in directory configuration 0.046s
2650 + decode merged objects as a Map 0.064s
2651 + make directory configuration available for references in templates 0.032s
2652 + merge configuration found in documents, templates, directories, programmatic setup, bundles, themes and theme extensions 0.017s
2653 + decode a path in a document config header 0.041s
2654 + decode a local path in a document config header 0.033s
2655 + decode a path in a directory config file in a nested directory 0.015s
2656 + decode an array element in a document config header 0.026s
2657laika.helium.HeliumEPUBCSSSpec:
2658 + defaults 0.038s
2659 + embedded fonts 0.044s
2660 + custom font families and font sizes - via 'epub' selector 0.039s
2661 + custom font families and font sizes - via 'all' selector 0.032s
2662 + custom colors - via 'epub' selector 0.051s
2663 + custom colors - via 'all' selector 0.044s
2664 + custom colors in dark mode 0.041s
2665 + layout 0.031s
2666laika.epub.internal.NCXRendererSpec:
2667 + render an empty tree 0.001s
2668 + render a tree with a single document 0.0s
2669 + render a tree with a two documents 0.0s
2670 + render a tree with a nested tree 0.001s
2671 + not render a nested tree if the depth is 1 0.0s
2672 + render a document with sections when the depth is 2 0.007s
2673 + not render a document with sections when the depth is 1 0.0s
2674 + escape special characters in titles 0.0s
2675laika.helium.HeliumHTMLHeadSpec:
2676 + Helium defaults via separate parser and renderer 0.104s
2677 + Helium defaults via transformer 0.109s
2678 + exclude CSS and JS from API directory 0.082s
2679 + internal CSS and JS resources, some using conditions 0.075s
2680 + internal CSS and JS resources, including a file from a theme extension 0.064s
2681 + external CSS and JS resources, using attribute properties 0.064s
2682 + inline styles and script 0.075s
2683 + metadata (authors, description) 0.066s
2684 + metadata (language) 0.067s
2685 + metadata (canonical link) 0.079s
2686 + favicons 0.095s
2687 + favicons with explicit target formats 0.126s
2688 + unversioned favicons in a versioned input tree 0.096s
2689 + custom web fonts - added to default fonts 0.069s
2690 + custom web fonts - replacing default fonts 0.056s
2691 + version menu on a versioned page 0.062s
2692 + version menu on an unversioned page 0.044s
2693 + title - ignoring markup 0.055s
2694 + override head template fragment per page 0.038s
2695 + override head template fragment globally 0.063s
2696 + add mermaid initializer when document contains one or more mermaid diagrams 0.058s
2697laika.helium.HeliumSiteCSSSpec:
2698 + defaults 0.061s
2699 + custom font families and font sizes - via 'site' selector 0.073s
2700 + custom font families and font sizes - via 'all' selector 0.051s
2701 + custom colors - via 'site' selector 0.069s
2702 + custom colors - via 'all' selector 0.049s
2703 + custom colors in dark mode 0.049s
2704 + dark mode disabled 0.065s
2705 + layout 0.06s
2706laika.theme.ThemeBundleSpec:
2707 + baseConfig - merged from theme and app extension 0.011s
2708 + baseConfig - app config overrides an identical key in the theme config 0.009s
2709 + baseConfig - theme extension config overrides an identical key in the base theme's config 0.002s
2710 + docTypeMatcher - merged from a markup extension and an app extension 0.008s
2711 + docTypeMatcher - app config overrides an identical path key in the extension config 0.008s
2712 + path translator - translator from app config is applied after translator from theme config 0.003s
2713 + rewrite rules - merged from a markup extension and an app extension 0.015s
2714 + rewrite rules - apply a rule from an app config and a rule from a markup extension successively 0.008s
2715laika.helium.HeliumEPUBTocPageSpec:
2716 + no table of content page configured 0.056s
2717 + table of content included 0.052s
2718laika.io.TreeParserSpec:
2719 + an empty tree 0.003s
2720 + tree with a single document 0.009s
2721 + tree with a document containing an unvalidated link to a versioned directory 0.012s
2722 + tree with multiple subtrees 0.02s
2723 + collect errors from multiple documents 0.031s
2724 + report errors originating in templates with additional path info 0.014s
2725 + tree with a cover and a title document 0.014s
2726 + tree with a title document with a custom document name configuration 0.016s
2727==> i laika.io.TreeParserSpec.tree with a single template ignored 0.0s
2728 + fail with duplicate paths 0.006s
2729 + tree with a static document 0.005s
2730 + tree with static documents for different target formats 0.006s
2731 + tree with a provided path 0.01s
2732 + tree with all available file types and multiple markup formats 0.024s
2733==> i laika.io.TreeParserSpec.custom template engine ignored 0.0s
2734 + custom style sheet engine 0.021s
2735 + template directive 0.009s
2736 + add indentation information if an embedded root is preceded by whitespace characters 0.004s
2737 + do not add indentation information if an embedded root is preceded by non-whitespace characters 0.015s
2738 + custom navigation order 0.02s
2739 + always move title documents to the front, even with a custom navigation order 0.019s
2740 + use a span parser from a theme 0.011s
2741 + let a span parser from an app extension override a span parser from a theme 0.007s
2742 + let a span parser from a theme extension override a span parser from a base theme 0.008s
2743laika.helium.HeliumHTMLNavSpec:
2744 + main navigation - one level 0.152s
2745 + main navigation - two levels 0.177s
2746 + main navigation - customized depth 0.244s
2747 + main navigation - include page sections 0.192s
2748 + main navigation - append links 0.197s
2749 + main navigation - prepend links 0.159s
2750 + page navigation - two levels 0.119s
2751 + page navigation - one level only, configured globally 0.121s
2752 + page navigation - show on small screens, configured globally 0.082s
2753 + page navigation - one level only, configured in configuration header in markup 0.114s
2754 + page navigation - show on small screens, configured in configuration header in markup 0.113s
2755 + page navigation - disabled globally 0.112s
2756 + page navigation - disabled in configuration header in markup 0.136s
2757 + page navigation - with footer link 0.131s
2758 + page navigation - disabled in table of content 0.106s
2759 + top navigation - defaults 0.099s
2760 + top navigation - highContrast flag set 0.109s
2761 + top navigation - with custom links - references to other versions not validated 0.121s
2762 + top navigation - with menu 0.129s
2763 + top navigation - with menu, but after calling resetDefaults 0.08s
2764 + top navigation - with version dropdown on a versioned page 0.123s
2765 + top navigation - with version dropdown on an unversioned page 0.107s
2766laika.helium.HeliumRenderOverridesSpec:
2767 + selections as tabs 0.093s
2768 + callouts 0.052s
2769 + anchors for headers - left placement (default) 0.042s
2770 + anchors for headers - right placement 0.059s
2771 + anchors for headers - disabled 0.051s
2772 + mermaid block without nested <code> elements 0.06s
2773laika.helium.HeliumDownloadPageSpec:
2774 + no download page configured 0.06s
2775 + download page included - full HTML 0.069s
2776 + configure artifact base name 0.056s
2777 + include only EPUB 0.041s
2778 + include cover image 0.043s
2779 + include cover image with configured selections (choices) 0.044s
2780Starting build for ProjectRef(file:/build/repo/,pdf) (laika-pdf)... [2/4]
2781Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
2782[info] compiling 7 Scala sources to /build/repo/pdf/target/scala-3.8.0-RC5/classes ...
2783[info] done compiling
2784[info] compiling 6 Scala sources to /build/repo/pdf/target/scala-3.8.0-RC5/test-classes ...
2785[info] done compiling
2786laika.render.BookConfigSpec:
2787 + decode defaults with an empty config 0.118s
2788 + decode an instance with fallbacks 0.182s
2789 + round-trip encode and decode 0.002s
2790laika.render.FopFactoryConfigSpec:
2791 + defaults 0.296s
2792 + custom fonts via 'pdf' selector - removing default theme fonts 0.005s
2793 + custom fonts via 'all' selector - removing default theme fonts 0.006s
2794laika.render.FOConcatenationSpec:
2795 + fail when there are invalid elements in the template result 0.133s
2796 + succeed when there are errors in the template result, but the filter is None 0.039s
2797 + collect fragments from all documents 0.043s
2798laika.render.PDFNavigationSpec:
2799 + render a tree with all structure elements disabled 0.476s
2800 + render a tree with navigation elements enabled 0.107s
2801 + render a tree with navigation elements enabled, handling a title document in both subtrees 0.098s
28022025-12-31 21:06:00.406+0100 info [FOUserAgent] Rendered page #1.
28032025-12-31 21:06:00.415+0100 info [FOUserAgent] Rendered page #2.
28042025-12-31 21:06:00.421+0100 info [FOUserAgent] Rendered page #3.
28052025-12-31 21:06:00.427+0100 info [FOUserAgent] Rendered page #4.
28062025-12-31 21:06:00.432+0100 info [FOUserAgent] Rendered page #5.
28072025-12-31 21:06:00.438+0100 info [FOUserAgent] Rendered page #6.
28082025-12-31 21:06:00.607+0100 info [FOUserAgent] Rendered page #1.
28092025-12-31 21:06:00.613+0100 info [FOUserAgent] Rendered page #2.
28102025-12-31 21:06:00.618+0100 info [FOUserAgent] Rendered page #3.
28112025-12-31 21:06:00.624+0100 info [FOUserAgent] Rendered page #4.
28122025-12-31 21:06:00.630+0100 info [FOUserAgent] Rendered page #5.
28132025-12-31 21:06:00.636+0100 info [FOUserAgent] Rendered page #6.
2814laika.render.PDFRendererSpec:
2815 + render a tree to a file 1.159s
2816 + render a tree to an OutputStream 0.185s
2817Starting build for ProjectRef(file:/build/repo/,preview) (laika-preview)... [3/4]
2818Compile scalacOptions: -encoding, UTF-8, -unchecked, -Wunused:implicits, -Wunused:explicits, -Wunused:imports, -Wunused:locals, -Wunused:params, -Wunused:privates, -Wvalue-discard, -language:implicitConversions, -Xkind-projector, --java-output-version:17, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
2819[info] compiling 7 Scala sources to /build/repo/preview/target/scala-3.8.0-RC5/classes ...
2820[info] done compiling
2821[info] compiling 1 Scala source to /build/repo/preview/target/scala-3.8.0-RC5/test-classes ...
2822[info] done compiling
2823laika.preview.PreviewRouteSpec:
2824 + serve a rendered document 0.769s
2825 + serve a rendered index document 0.027s
2826 + serve the AST of a rendered document 0.054s
2827 + serve a static document 0.04s
2828 + serve a generated EPUB document 0.098s
2829 + return 404 for unknown target path 0.025s
2830
2831************************
2832Build summary:
2833[{
2834 "module": "laika-core",
2835 "compile": {"status": "ok", "tookMs": 37688, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
2836 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
2837 "test-compile": {"status": "ok", "tookMs": 12631, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
2838 "test": {"status": "ok", "tookMs": 4030, "passed": 1741, "failed": 0, "ignored": 3, "skipped": 0, "total": 1744, "byFramework": [{"framework": "munit", "stats": {"passed": 1741, "failed": 0, "ignored": 3, "skipped": 0, "total": 1744}}]},
2839 "publish": {"status": "skipped", "tookMs": 0},
2840 "metadata": {
2841 "crossScalaVersions": ["2.12.20", "2.13.15", "3.3.5"]
2842}
2843},{
2844 "module": "laika-io",
2845 "compile": {"status": "ok", "tookMs": 6655, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
2846 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
2847 "test-compile": {"status": "ok", "tookMs": 5632, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
2848 "test": {"status": "ok", "tookMs": 5556, "passed": 392, "failed": 0, "ignored": 2, "skipped": 0, "total": 394, "byFramework": [{"framework": "munit", "stats": {"passed": 392, "failed": 0, "ignored": 2, "skipped": 0, "total": 394}}]},
2849 "publish": {"status": "skipped", "tookMs": 0},
2850 "metadata": {
2851 "crossScalaVersions": ["2.12.20", "2.13.15", "3.3.5"]
2852}
2853},{
2854 "module": "laika-pdf",
2855 "compile": {"status": "ok", "tookMs": 1133, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
2856 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
2857 "test-compile": {"status": "ok", "tookMs": 1218, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
2858 "test": {"status": "ok", "tookMs": 2166, "passed": 14, "failed": 0, "ignored": 0, "skipped": 0, "total": 14, "byFramework": [{"framework": "munit", "stats": {"passed": 14, "failed": 0, "ignored": 0, "skipped": 0, "total": 14}}]},
2859 "publish": {"status": "skipped", "tookMs": 0},
2860 "metadata": {
2861 "crossScalaVersions": ["2.12.20", "2.13.15", "3.3.5"]
2862}
2863},{
2864 "module": "laika-preview",
2865 "compile": {"status": "ok", "tookMs": 2543, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
2866 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
2867 "test-compile": {"status": "ok", "tookMs": 1722, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
2868 "test": {"status": "ok", "tookMs": 1942, "passed": 6, "failed": 0, "ignored": 0, "skipped": 0, "total": 6, "byFramework": [{"framework": "munit", "stats": {"passed": 6, "failed": 0, "ignored": 0, "skipped": 0, "total": 6}}]},
2869 "publish": {"status": "skipped", "tookMs": 0},
2870 "metadata": {
2871 "crossScalaVersions": ["2.12.20", "2.13.15", "3.3.5"]
2872}
2873}]
2874************************
2875[success] Total time: 89 s (0:01:29.0), completed Dec 31, 2025, 9:06:08 PM
2876[0JChecking patch project/plugins.sbt...
2877Checking patch project/build.properties...
2878Checking patch project/Dependencies.scala...
2879Checking patch core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala...
2880Checking patch core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala...
2881Checking patch core/shared/src/main/scala/laika/ast/Cursor.scala...
2882Checking patch build.sbt...
2883Applied patch project/plugins.sbt cleanly.
2884Applied patch project/build.properties cleanly.
2885Applied patch project/Dependencies.scala cleanly.
2886Applied patch core/shared/src/test/scala/laika/internal/rst/std/StandardBlockDirectivesSpec.scala cleanly.
2887Applied patch core/shared/src/main/scala/laika/internal/rewrite/TemplateFormatter.scala cleanly.
2888Applied patch core/shared/src/main/scala/laika/ast/Cursor.scala cleanly.
2889Applied patch build.sbt cleanly.