The <!--more--> (summary divider) now works even if it is on the same line as content
authorMark Sanborn <marcrosoft@gmail.com>
Sun, 1 Sep 2013 04:07:22 +0000 (21:07 -0700)
committerNoah Campbell <noahcampbell@gmail.com>
Sun, 1 Sep 2013 14:44:29 +0000 (07:44 -0700)
Signed-off-by: Noah Campbell <noahcampbell@gmail.com>
hugolib/helpers.go
hugolib/page.go
hugolib/page_test.go
hugolib/site.go

index cf84835fd7165970abe8adbcae8ba3582aba7a79..feed341e59e92d8c50b4df41237050e302897405 100644 (file)
@@ -270,6 +270,10 @@ func WordCount(s string) map[string]int {
        return m
 }
 
+func RemoveSummaryDivider(content []byte) []byte {
+       return bytes.Replace(content, summaryDivider, []byte(""), -1)
+}
+
 func StripHTML(s string) string {
        output := ""
 
index 409da23bcac2217d8a53a76619202eda612b0ca7..eb8f142b3829579437b47bba6aceae66d64acea4 100644 (file)
@@ -481,7 +481,7 @@ func (page *Page) convertMarkdown(lines io.Reader) {
        b := new(bytes.Buffer)
        b.ReadFrom(lines)
        content := b.Bytes()
-       page.Content = template.HTML(string(blackfriday.MarkdownCommon(content)))
+       page.Content = template.HTML(string(blackfriday.MarkdownCommon(RemoveSummaryDivider(content))))
        summary, plain := getSummaryString(content)
        if plain {
                page.Summary = template.HTML(string(summary))
index a1c7c755d6b1c6eebc4c4c392f210201ee360cf1..4ffda4461d9ac4e1192a43c349ddfeb8c595ed2e 100644 (file)
@@ -100,6 +100,14 @@ Simple Page
 Some more text
 `
 
+var SIMPLE_PAGE_WITH_SUMMARY_DELIMITER_SAME_LINE = `---
+title: Simple
+---
+Simple Page<!--more-->
+
+Some more text
+`
+
 func checkError(t *testing.T, err error, expected string) {
        if err == nil {
                t.Fatalf("err is nil")
@@ -175,7 +183,20 @@ func TestPageWithDelimiter(t *testing.T) {
                t.Fatalf("Unable to create a page with frontmatter and body content: %s", err)
        }
        checkPageTitle(t, p, "Simple")
-       checkPageContent(t, p, "<p>Simple Page</p>\n\n<!--more-->\n\n<p>Some more text</p>\n")
+       checkPageContent(t, p, "<p>Simple Page</p>\n\n<p>Some more text</p>\n")
+       checkPageSummary(t, p, "<p>Simple Page</p>\n")
+       checkPageType(t, p, "page")
+       checkPageLayout(t, p, "page/single.html")
+
+}
+
+func TestPageWithMoreTag(t *testing.T) {
+       p, err := ReadFrom(strings.NewReader(SIMPLE_PAGE_WITH_SUMMARY_DELIMITER_SAME_LINE), "simple")
+       if err != nil {
+               t.Fatalf("Unable to create a page with frontmatter and body content: %s", err)
+       }
+       checkPageTitle(t, p, "Simple")
+       checkPageContent(t, p, "<p>Simple Page</p>\n\n<p>Some more text</p>\n")
        checkPageSummary(t, p, "<p>Simple Page</p>\n")
        checkPageType(t, p, "page")
        checkPageLayout(t, p, "page/single.html")
index 94e9b50dc4a6928b25b93c85955b4e74cfeb53c4..0b8090f794d9e7a94d4d82d37e0abd50770a0b49 100644 (file)
@@ -31,16 +31,16 @@ import (
 var DefaultTimer = nitro.Initalize()
 
 type Site struct {
-       Config      Config
-       Pages       Pages
-       Tmpl        *template.Template
-       Indexes     IndexList
-       Files       []string
-       Sections    Index
-       Info        SiteInfo
-       Shortcodes  map[string]ShortcodeFunc
-       timer       *nitro.B
-       Target      target.Publisher
+       Config     Config
+       Pages      Pages
+       Tmpl       *template.Template
+       Indexes    IndexList
+       Files      []string
+       Sections   Index
+       Info       SiteInfo
+       Shortcodes map[string]ShortcodeFunc
+       timer      *nitro.B
+       Target     target.Publisher
 }
 
 type SiteInfo struct {