shithub: hugo

Download patch

ref: 1039356edf747f044c989a5bc0e85d792341ed5d
parent: ccdd08d57ab64441e93d6861ae126b5faacdb92f
author: Victor Kropp <[email protected]>
date: Tue Mar 14 13:46:33 EDT 2017

commands: Support human-readable YAML boolean values in undraft

--- a/commands/undraft.go
+++ b/commands/undraft.go
@@ -25,8 +25,8 @@
 
 var undraftCmd = &cobra.Command{
 	Use:   "undraft path/to/content",
-	Short: "Undraft changes the content's draft status from 'True' to 'False'",
-	Long: `Undraft changes the content's draft status from 'True' to 'False'
+	Short: "Undraft resets the content's draft status",
+	Long: `Undraft resets the content's draft status
 and updates the date to the current date and time.
 If the content's draft status is 'False', nothing is done.`,
 	RunE: Undraft,
@@ -138,14 +138,12 @@
 	for _, v := range fmLines {
 		pos := bytes.Index(v, []byte("draft"))
 		if pos != -1 {
-			v = bytes.Replace(v, []byte("true"), []byte("false"), 1)
-			goto write
+			continue
 		}
 		pos = bytes.Index(v, []byte("date"))
 		if pos != -1 { // if date field wasn't found, add it
 			v = bytes.Replace(v, []byte(date), []byte(time.Now().Format(time.RFC3339)), 1)
 		}
-	write:
 		buff.Write(v)
 		buff.Write(lineEnding)
 	}
--- a/commands/undraft_test.go
+++ b/commands/undraft_test.go
@@ -25,12 +25,13 @@
 )
 
 var (
-	jsonFM      = "{\n \"date\": \"12-04-06\",\n \"title\": \"test json\"\n}"
-	jsonDraftFM = "{\n \"draft\": true,\n \"date\": \"12-04-06\",\n \"title\":\"test json\"\n}"
-	tomlFM      = "+++\n date= \"12-04-06\"\n title= \"test toml\"\n+++"
-	tomlDraftFM = "+++\n draft= true\n date= \"12-04-06\"\n title=\"test toml\"\n+++"
-	yamlFM      = "---\n date: \"12-04-06\"\n title: \"test yaml\"\n---"
-	yamlDraftFM = "---\n draft: true\n date: \"12-04-06\"\n title: \"test yaml\"\n---"
+	jsonFM         = "{\n \"date\": \"12-04-06\",\n \"title\": \"test json\"\n}"
+	jsonDraftFM    = "{\n \"draft\": true,\n \"date\": \"12-04-06\",\n \"title\":\"test json\"\n}"
+	tomlFM         = "+++\n date= \"12-04-06\"\n title= \"test toml\"\n+++"
+	tomlDraftFM    = "+++\n draft= true\n date= \"12-04-06\"\n title=\"test toml\"\n+++"
+	yamlFM         = "---\n date: \"12-04-06\"\n title: \"test yaml\"\n---"
+	yamlDraftFM    = "---\n draft: true\n date: \"12-04-06\"\n title: \"test yaml\"\n---"
+	yamlYesDraftFM = "---\n draft: yes\n date: \"12-04-06\"\n title: \"test yaml\"\n---"
 )
 
 func TestUndraftContent(t *testing.T) {
@@ -44,6 +45,7 @@
 		{tomlDraftFM, ""},
 		{yamlFM, "not a Draft: nothing was done"},
 		{yamlDraftFM, ""},
+		{yamlYesDraftFM, ""},
 	}
 
 	for i, test := range tests {