AzLearn

تمرين إعادة البناء

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))
}
اكتب هنا