Build Logs

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