Adds spacing to gemini docs to normalize the formatting with gopher docs #188
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -977,6 +977,7 @@ func (c *client) handleGemini(u Url) {
|
|||
case 2:
|
||||
// Success
|
||||
if capsule.MimeMaj == "text" || (c.Options["showimages"] == "true" && capsule.MimeMaj == "image") {
|
||||
u.Mime = capsule.MimeMin
|
||||
pg := MakePage(u, capsule.Content, capsule.Links)
|
||||
pg.FileType = capsule.MimeMaj
|
||||
pg.WrapContent(c.Width-1, (c.Options["theme"] == "color"))
|
||||
|
|
Binary file not shown.
|
@ -361,6 +361,7 @@ func parseGemini(b, currentUrl string) (string, []string) {
|
|||
links := make([]string, 0, 10)
|
||||
|
||||
inPreBlock := false
|
||||
spacer := " "
|
||||
|
||||
outputIndex := 0
|
||||
for i, ln := range splitContent {
|
||||
|
@ -371,7 +372,7 @@ func parseGemini(b, currentUrl string) (string, []string) {
|
|||
alt := strings.TrimSpace(ln)
|
||||
if len(alt) > 3 {
|
||||
alt = strings.TrimSpace(alt[3:])
|
||||
splitContent[outputIndex] = fmt.Sprintf("[ %s ]", alt)
|
||||
splitContent[outputIndex] = fmt.Sprintf("%s[ALT][ %s ]", spacer, alt)
|
||||
outputIndex++
|
||||
}
|
||||
} else if isPreBlockDeclaration {
|
||||
|
@ -401,7 +402,12 @@ func parseGemini(b, currentUrl string) (string, []string) {
|
|||
if inPreBlock && (BlockBehavior == "alt" || BlockBehavior == "neither") {
|
||||
continue
|
||||
}
|
||||
splitContent[outputIndex] = ln
|
||||
var leader, tail string = "", ""
|
||||
if len(ln) > 0 && ln[0] == '#' {
|
||||
leader = "\033[1m"
|
||||
tail = "\033[0m"
|
||||
}
|
||||
splitContent[outputIndex] = fmt.Sprintf("%s%s%s%s", spacer, leader, ln, tail)
|
||||
outputIndex++
|
||||
}
|
||||
}
|
||||
|
|
10
page.go
10
page.go
|
@ -72,7 +72,8 @@ func (p *Page) WrapContent(width int, color bool) {
|
|||
}
|
||||
width = min(width, 100)
|
||||
counter := 0
|
||||
spacer := " "
|
||||
gopherspacer := " "
|
||||
geminispacer := " "
|
||||
var content strings.Builder
|
||||
var esc strings.Builder
|
||||
escape := false
|
||||
|
@ -126,8 +127,11 @@ func (p *Page) WrapContent(width int, color bool) {
|
|||
content.WriteRune('\n')
|
||||
counter = 0
|
||||
if p.Location.Mime == "1" {
|
||||
|
||||
content.WriteString(spacer)
|
||||
counter += len(spacer)
|
||||
content.WriteString(gopherspacer)
|
||||
counter += len(gopherspacer)
|
||||
} else if strings.HasSuffix(p.Location.Mime, "gemini") {
|
||||
content.WriteString(geminispacer)
|
||||
counter += len(geminispacer)
|
||||
}
|
||||
content.WriteRune(ch)
|
||||
counter++
|
||||
|
|
Loading…
Reference in New Issue
Maybe this
if
andelse if
block could be changed so we don't runstrings.HasSuffix
for each line of a document that isn't a gopher map.The mime type check could be done before the loop in this function, followed by setting the appropriate spacer value for the document type. This block could then become a test of the spacer value itself. A bit like:
I'm not sure if this is easy to understand, so I can make these changes for you to review if it helps.
Setting the spacer to
0
to start with wont work due to typing issues, but aside from that this is a very practical change. I'll do this. 👍I have updated to more or less this exact thing and I just always write the spacer for each new with no link inside the for loop, it is just often set to
""
and thus has no effect. This is much improved in a very confusing area of the codebase. Thanks for the suggestion!