Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/JAVA/Openclaw/scripts/docs-i18n/   (KI Agentensystem Version 22©)  Datei vom 26.3.2026 mit Größe 2 kB image not shown  

Quelle  masking.go   Sprache: unbekannt

 
Spracherkennung für: .go vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

package main

import (
 "fmt"
 "regexp"
 "strings"
)

var (
 inlineCodeRe  = regexp.MustCompile("`[^`]+`")
 angleLinkRe   = regexp.MustCompile(`<https?://[^>]+>`)
 linkURLRe     = regexp.MustCompile(`\[[^\]]*\]\(([^)]+)\)`)
 placeholderRe = regexp.MustCompile(`__OC_I18N_\d+__`)
)

func maskMarkdown(text string, nextPlaceholder func() string, placeholders *[]string, mapping map[string]string) string {
 masked := maskMatches(text, inlineCodeRe, nextPlaceholder, placeholders, mapping)
 masked = maskMatches(masked, angleLinkRe, nextPlaceholder, placeholders, mapping)
 masked = maskLinkURLs(masked, nextPlaceholder, placeholders, mapping)
 return masked
}

func maskMatches(text string, re *regexp.Regexp, nextPlaceholder func() string, placeholders *[]string, mapping map[string]string) string {
 matches := re.FindAllStringIndex(text, -1)
 if len(matches) == 0 {
  return text
 }
 var out strings.Builder
 pos := 0
 for _, span := range matches {
  start, end := span[0], span[1]
  if start < pos {
   continue
  }
  out.WriteString(text[pos:start])
  placeholder := nextPlaceholder()
  mapping[placeholder] = text[start:end]
  *placeholders = append(*placeholders, placeholder)
  out.WriteString(placeholder)
  pos = end
 }
 out.WriteString(text[pos:])
 return out.String()
}

func maskLinkURLs(text string, nextPlaceholder func() string, placeholders *[]string, mapping map[string]string) string {
 matches := linkURLRe.FindAllStringSubmatchIndex(text, -1)
 if len(matches) == 0 {
  return text
 }
 var out strings.Builder
 pos := 0
 for _, span := range matches {
  fullStart := span[0]
  urlStart, urlEnd := span[2], span[3]
  if urlStart < 0 || urlEnd < 0 {
   continue
  }
  if fullStart < pos {
   continue
  }
  out.WriteString(text[pos:urlStart])
  placeholder := nextPlaceholder()
  mapping[placeholder] = text[urlStart:urlEnd]
  *placeholders = append(*placeholders, placeholder)
  out.WriteString(placeholder)
  pos = urlEnd
 }
 out.WriteString(text[pos:])
 return out.String()
}

func unmaskMarkdown(text string, placeholders []string, mapping map[string]string) string {
 out := text
 for _, placeholder := range placeholders {
  original := mapping[placeholder]
  out = strings.ReplaceAll(out, placeholder, original)
 }
 return out
}

func validatePlaceholders(text string, placeholders []string) error {
 for _, placeholder := range placeholders {
  if !strings.Contains(text, placeholder) {
   return fmt.Errorf("placeholder missing: %s", placeholder)
  }
 }
 return nil
}

[Dauer der Verarbeitung: 0.19 Sekunden, vorverarbeitet 2026-04-27]