now using compiled go/C lib with koffi

This commit is contained in:
rafaelsideguide
2024-09-03 10:56:07 -03:00
parent 48056ea1bd
commit 291d9e375b
9 changed files with 144 additions and 118 deletions
@@ -1,41 +1,25 @@
package main
import (
"flag"
"fmt"
"C"
"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()
//export ConvertHTMLToMarkdown
func ConvertHTMLToMarkdown(html *C.char) *C.char {
converter := md.NewConverter("", true, nil)
converter.Use(plugin.GitHubFlavored())
markdown, err := converter.ConvertString(html)
markdown, err := converter.ConvertString(C.GoString(html))
if err != nil {
log.Fatal(err)
}
results <- markdown
return C.CString(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)
}
// This function is required for the main package
}