ref: 1039356edf747f044c989a5bc0e85d792341ed5d
parent: ccdd08d57ab64441e93d6861ae126b5faacdb92f
author: Victor Kropp <victor.kropp@gmail.com>
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 itv = 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 {--
⑨