URI: 
       Wordcount restored. fixed #92 - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit be5ace1588e54c2b0081d7c8ad57795b67307cde
   DIR parent e58d8fe7911ed2748fd76ee61ccc8e9b18850086
  HTML Author: spf13 <steve.francia@gmail.com>
       Date:   Tue, 15 Oct 2013 09:15:52 -0400
       
       Wordcount restored. fixed #92
       
       Diffstat:
         M hugolib/page.go                     |      15 +++++++++++----
         M hugolib/page_test.go                |      27 +++++++++++++++++++++++++++
       
       2 files changed, 38 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/hugolib/page.go b/hugolib/page.go
       @@ -38,7 +38,7 @@ type Page struct {
                Images      []string
                Content     template.HTML
                Summary     template.HTML
       -        RawMarkdown string // TODO should be []byte
       +        plain       string // TODO should be []byte
                Params      map[string]interface{}
                contentType string
                Draft       bool
       @@ -77,6 +77,13 @@ func (p Pages) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
        func (p Pages) Sort()             { sort.Sort(p) }
        func (p Pages) Limit(n int) Pages { return p[0:n] }
        
       +func (p Page) Plain() string {
       +        if len(p.plain) == 0 {
       +                p.plain = StripHTML(StripShortcodes(string(p.Content)))
       +        }
       +        return p.plain
       +}
       +
        func getSummaryString(content []byte, fmt string) []byte {
                if bytes.Contains(content, summaryDivider) {
                        // If user defines split:
       @@ -85,8 +92,8 @@ func getSummaryString(content []byte, fmt string) []byte {
                } else {
                        // If hugo defines split:
                        // render, strip html, then split
       -                plainContent := StripHTML(StripShortcodes(string(renderBytes(content, fmt))))
       -                return []byte(TruncateWordsToWholeSentence(plainContent, summaryLength))
       +                plain := StripHTML(StripShortcodes(string(renderBytes(content, fmt))))
       +                return []byte(TruncateWordsToWholeSentence(plain, summaryLength))
                }
        }
        
       @@ -217,7 +224,7 @@ func ReadFrom(buf io.Reader, name string) (page *Page, err error) {
        }
        
        func (p *Page) analyzePage() {
       -        p.WordCount = TotalWords(p.RawMarkdown)
       +        p.WordCount = TotalWords(p.Plain())
                p.FuzzyWordCount = int((p.WordCount+100)/100) * 100
        }
        
   DIR diff --git a/hugolib/page_test.go b/hugolib/page_test.go
       @@ -127,6 +127,18 @@ Summary Same Line<!--more-->
        
        Some more text
        `
       +
       +        SIMPLE_PAGE_WITH_LONG_CONTENT = `---
       +title: Simple
       +---
       +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
       +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
       +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
       +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
       +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
       +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
       +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
       +`
        )
        
        func checkError(t *testing.T, err error, expected string) {
       @@ -252,6 +264,21 @@ func TestPageWithDate(t *testing.T) {
                checkPageDate(t, p, d)
        }
        
       +func TestWordCount(t *testing.T) {
       +        p, err := ReadFrom(strings.NewReader(SIMPLE_PAGE_WITH_LONG_CONTENT), "simple")
       +        if err != nil {
       +                t.Fatalf("Unable to create a page with frontmatter and body content: %s", err)
       +        }
       +
       +        if p.WordCount != 483 {
       +                t.Fatalf("incorrect word count. expected %v, got %v", 483, p.WordCount)
       +        }
       +
       +        if p.FuzzyWordCount != 500 {
       +                t.Fatalf("incorrect word count. expected %v, got %v", 500, p.WordCount)
       +        }
       +}
       +
        func TestCreatePage(t *testing.T) {
                var tests = []struct {
                        r string