Build Logs

typelevel/laika • 3.8.1-RC1:2026-01-13

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