Challenge - 5 Problems
HTML Builder Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
What is the output of this Kotlin HTML builder code?
Consider this Kotlin code using the HTML builder pattern. What will it print?
Kotlin
import kotlinx.html.* import kotlinx.html.stream.createHTML fun main() { val htmlContent = createHTML().html { head { title { +"My Page" } } body { h1 { +"Welcome" } p { +"This is a simple page." } } } println(htmlContent) }
Attempts:
2 left
💡 Hint
Look at how the + operator adds text inside tags in the builder.
✗ Incorrect
The + operator inside the builder adds text content to the HTML tags. So the title, h1, and p tags all get their respective text.
🧠 Conceptual
intermediate1:30remaining
Which Kotlin feature enables the HTML builder pattern?
The HTML builder pattern in Kotlin relies on which language feature to create nested HTML elements in code?
Attempts:
2 left
💡 Hint
Think about how the builder allows calling nested tags as functions.
✗ Incorrect
The builder pattern uses extension functions combined with lambdas that have a receiver to allow nested calls like html { head { ... } }.
🔧 Debug
advanced2:30remaining
Why does this Kotlin HTML builder code fail to add paragraph text?
Look at this code snippet. Why does the paragraph appear empty in the output?
fun main() {
val htmlContent = createHTML().html {
body {
p { "Hello World" }
}
}
println(htmlContent)
}
Kotlin
import kotlinx.html.* import kotlinx.html.stream.createHTML fun main() { val htmlContent = createHTML().html { body { p { "Hello World" } } } println(htmlContent) }
Attempts:
2 left
💡 Hint
In Kotlin HTML builder, text must be added with + operator inside tag lambdas.
✗ Incorrect
Inside the builder, just writing a string does nothing. You must use +"text" to add text content to the tag.
📝 Syntax
advanced2:00remaining
Which option correctly creates a nested list using Kotlin HTML builder?
Select the code snippet that correctly creates an unordered list with three list items using Kotlin HTML builder.
Kotlin
import kotlinx.html.* import kotlinx.html.stream.createHTML fun main() { val htmlContent = createHTML().html { body { // Your code here } } println(htmlContent) }
Attempts:
2 left
💡 Hint
Remember how to add text inside tags using + operator in the builder.
✗ Incorrect
Option A uses the correct syntax: calling li as a function with a lambda that adds text with + operator.
🚀 Application
expert3:00remaining
What is the value of 'htmlContent' after running this Kotlin HTML builder code?
Given this code, what is the exact string value stored in 'htmlContent'?
Kotlin
import kotlinx.html.* import kotlinx.html.stream.createHTML fun main() { val htmlContent = createHTML().html { head { title { +"Page Title" } } body { div { h2 { +"Section" } ul { for (item in listOf("A", "B", "C")) { li { +item } } } } } } println(htmlContent) }
Attempts:
2 left
💡 Hint
Check how the for loop adds list items inside the ul tag.
✗ Incorrect
The for loop adds three li elements with text A, B, and C. The title and h2 tags have their text added with + operator.