monimark.go 470 B

12345678910111213141516171819202122232425
  1. package tool
  2. import (
  3. "strings"
  4. "github.com/dlclark/regexp2"
  5. )
  6. // 모니마크 렌더러는 전체가 아니라 나무마크로 변환
  7. func Monimark(data string) string {
  8. //
  9. r := regexp2.MustCompile(`<<((?:(?!<<|>>)))>>`, 0)
  10. for {
  11. if m, _ := r.FindStringMatch(data); m != nil {
  12. gps := m.Groups()
  13. m_string := m.String()
  14. data = strings.Replace(data, m_string, "[include("+gps[1].Captures[0].String()+")]", 1)
  15. } else {
  16. break
  17. }
  18. }
  19. return data
  20. }