| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- // Package examples demonstrates basic usage of mermaid-go
- package main
- import (
- "fmt"
- "log"
- "mermaid-go/pkg/parser"
- "mermaid-go/pkg/renderer"
- )
- func main() {
- // Example 1: Flowchart
- fmt.Println("=== Flowchart Example ===")
- flowchartExample()
- // Example 2: Gantt Chart
- fmt.Println("\n=== Gantt Chart Example ===")
- ganttExample()
- // Example 3: User Journey
- fmt.Println("\n=== User Journey Example ===")
- journeyExample()
- // Example 4: Architecture
- fmt.Println("\n=== Architecture Example ===")
- architectureExample()
- }
- func flowchartExample() {
- input := `flowchart TD
- A[Start] --> B{Decision}
- B -->|Yes| C[Process]
- B -->|No| D[End]
- C --> D`
- // Parse
- parser := parser.NewMermaidParser()
- diagram, err := parser.Parse(input)
- if err != nil {
- log.Fatal(err)
- }
- // Render
- renderer := renderer.NewMermaidRenderer()
- output, err := renderer.Render(diagram)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Printf("Original:\n%s\n\nParsed and rendered:\n%s\n", input, output)
- }
- func ganttExample() {
- input := `gantt
- title Software Development Project
- dateFormat YYYY-MM-DD
- section Analysis
- Requirements : 2024-01-01, 5d
- Design : 2024-01-06, 3d
- section Implementation
- Backend : 2024-01-09, 10d
- Frontend : 2024-01-15, 8d
- Testing : 2024-01-20, 5d`
- parser := parser.NewMermaidParser()
- diagram, err := parser.Parse(input)
- if err != nil {
- log.Fatal(err)
- }
- renderer := renderer.NewMermaidRenderer()
- output, err := renderer.Render(diagram)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Printf("Original:\n%s\n\nParsed and rendered:\n%s\n", input, output)
- }
- func journeyExample() {
- input := `journey
- title Customer Purchase Journey
- section Discovery
- Search product : 5 : Customer
- Compare options : 3 : Customer
- section Purchase
- Add to cart : 5 : Customer
- Payment : 2 : Customer, System
- section Post-purchase
- Delivery : 4 : Customer, Courier
- Review : 3 : Customer`
- parser := parser.NewMermaidParser()
- diagram, err := parser.Parse(input)
- if err != nil {
- log.Fatal(err)
- }
- renderer := renderer.NewMermaidRenderer()
- output, err := renderer.Render(diagram)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Printf("Original:\n%s\n\nParsed and rendered:\n%s\n", input, output)
- }
- func architectureExample() {
- input := `architecture
- title Microservices Architecture
- group frontend[Frontend]
- group backend[Backend Services]
- group data[Data Layer]
-
- service web[Web App] in frontend
- service api[API Gateway] in backend
- service auth[Auth Service] in backend
- service db[Database] in data
- service cache[Redis Cache] in data
-
- web L--R api : HTTP requests
- api L--R auth : authentication
- api L--R db : queries
- api L--R cache : caching`
- parser := parser.NewMermaidParser()
- diagram, err := parser.Parse(input)
- if err != nil {
- log.Fatal(err)
- }
- renderer := renderer.NewMermaidRenderer()
- output, err := renderer.Render(diagram)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Printf("Original:\n%s\n\nParsed and rendered:\n%s\n", input, output)
- }
|