From a7ce20fee62a52794bf8bf940d0fd1f4134158b1 Mon Sep 17 00:00:00 2001 From: tjpcc Date: Sun, 17 Sep 2023 16:35:13 -0600 Subject: protocol-aware README escaping --- repo.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'repo.go') diff --git a/repo.go b/repo.go index 72291b6..938bcc9 100644 --- a/repo.go +++ b/repo.go @@ -211,10 +211,19 @@ type Readme struct { RawContents string } -func (r Readme) EscapedContents() string { +func (r Readme) GeminiEscapedContents() string { return strings.ReplaceAll(r.RawContents, "\n```", "\n ```") } +func (r Readme) GopherEscapedContents(selector, host, port string) string { + trailer := "\t"+selector+"\t"+host+"\t"+port+"\r\n" + lines := strings.Split(r.RawContents, "\n") + for i := range lines { + lines[i] = "i"+strings.TrimRight(strings.ReplaceAll(lines[i], "\t", " "), "\r\n") + trailer + } + return strings.Join(lines, "") +} + func (r *Repository) Readme(ctx context.Context, ref string) (*Readme, error) { dir, err := r.Tree(ctx, ref, "") if err != nil { -- cgit v1.2.3