Build Logs

typelevel/laika • 3.8.0-RC2:2025-11-28

Errors

0

Warnings

0

Total Lines

2889

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