firecrawl/apps/api/src/lib/go-html-to-md/html-to-markdown.go

42 lines
732 B
Go
Raw Normal View History

2024-09-02 14:15:56 -03:00
package main
import (
"flag"
"fmt"
"log"
"sync"
md "github.com/JohannesKaufmann/html-to-markdown"
"github.com/JohannesKaufmann/html-to-markdown/plugin"
)
func convertHTMLToMarkdown(html string, wg *sync.WaitGroup, results chan<- string) {
defer wg.Done()
converter := md.NewConverter("", true, nil)
converter.Use(plugin.GitHubFlavored())
markdown, err := converter.ConvertString(html)
if err != nil {
log.Fatal(err)
}
results <- markdown
}
func main() {
html := flag.String("html", "", "")
flag.Parse()
var wg sync.WaitGroup
results := make(chan string, 1)
wg.Add(1)
go convertHTMLToMarkdown(*html, &wg, results)
wg.Wait()
close(results)
for markdown := range results {
fmt.Println(markdown)
}
}