mirror of
				https://github.com/cheat/cheat.git
				synced 2025-11-03 23:35:27 +01:00 
			
		
		
		
	fix(frontmatter): do not trim whitespace (#663)
Do not strip leading or trailing newlines. Doing so had interferred with users' intended cheatsheet layouts.
This commit is contained in:
		@@ -2,6 +2,7 @@ package frontmatter
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"runtime"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"gopkg.in/yaml.v1"
 | 
			
		||||
@@ -16,15 +17,21 @@ type Frontmatter struct {
 | 
			
		||||
// Parse parses cheatsheet frontmatter
 | 
			
		||||
func Parse(markdown string) (string, Frontmatter, error) {
 | 
			
		||||
 | 
			
		||||
	// determine the appropriate line-break for the platform
 | 
			
		||||
	linebreak := "\n"
 | 
			
		||||
	if runtime.GOOS == "windows" {
 | 
			
		||||
		linebreak = "\r\n"
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// specify the frontmatter delimiter
 | 
			
		||||
	delim := "---"
 | 
			
		||||
	delim := fmt.Sprintf("---%s", linebreak)
 | 
			
		||||
 | 
			
		||||
	// initialize a frontmatter struct
 | 
			
		||||
	var fm Frontmatter
 | 
			
		||||
 | 
			
		||||
	// if the markdown does not contain frontmatter, pass it through unmodified
 | 
			
		||||
	if !strings.HasPrefix(markdown, delim) {
 | 
			
		||||
		return strings.TrimSpace(markdown), fm, nil
 | 
			
		||||
		return markdown, fm, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// otherwise, split the frontmatter and cheatsheet text
 | 
			
		||||
@@ -40,5 +47,5 @@ func Parse(markdown string) (string, Frontmatter, error) {
 | 
			
		||||
		return markdown, fm, fmt.Errorf("failed to unmarshal frontmatter: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return strings.TrimSpace(parts[2]), fm, nil
 | 
			
		||||
	return parts[2], fm, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -51,7 +51,7 @@ func New(
 | 
			
		||||
		Title:     title,
 | 
			
		||||
		CheatPath: cheatpath,
 | 
			
		||||
		Path:      path,
 | 
			
		||||
		Text:      text + "\n",
 | 
			
		||||
		Text:      text,
 | 
			
		||||
		Tags:      tags,
 | 
			
		||||
		Syntax:    fm.Syntax,
 | 
			
		||||
		ReadOnly:  readOnly,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user