تمرين إعادة البناء
Markdown to HTML
أعد كتابة برنامج Go يحول Markdown بسيطا إلى HTML.
go
~20 دقيقة
متوسط
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
package main
import (
"fmt"
"html"
"strings"
)
func renderLine(line string) string {
line = strings.TrimSpace(line)
switch {
case strings.HasPrefix(line, "# "):
return "<h1>" + html.EscapeString(strings.TrimPrefix(line, "# ")) + "</h1>"
case strings.HasPrefix(line, "## "):
return "<h2>" + html.EscapeString(strings.TrimPrefix(line, "## ")) + "</h2>"
case line == "":
return ""
default:
return "<p>" + html.EscapeString(line) + "</p>"
}
}
func markdownToHTML(markdown string) string {
var lines []string
for _, line := range strings.Split(markdown, "\n") {
rendered := renderLine(line)
if rendered != "" {
lines = append(lines, rendered)
}
}
return strings.Join(lines, "\n")
}
func main() {
markdown := `# Rebuild
## Go
Copy code by typing it yourself.`
fmt.Println(markdownToHTML(markdown))
}اكتب هنا