Multilingual TODO-fixes, take 1
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 7 Aug 2016 22:12:06 +0000 (00:12 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 6 Sep 2016 15:32:18 +0000 (18:32 +0300)
See #2309

14 files changed:
commands/hugo.go
helpers/content.go
helpers/content_test.go
helpers/url.go
hugolib/handler_page.go
hugolib/hugo_sites.go
hugolib/hugo_sites_test.go
hugolib/multilingual.go
hugolib/node.go
hugolib/page.go
hugolib/site.go
hugolib/site_test.go
hugolib/translations.go
source/file.go

index 3ac35db1cb248532f2e6aba8f36fa684d49dc4b7..6c28b78bd43f7eef592b3b4605b15792049eace7 100644 (file)
@@ -630,11 +630,17 @@ func getDirList() []string {
 }
 
 func reCreateAndbuildSites(watching bool) (err error) {
+       if err := initSites(); err != nil {
+               return err
+       }
        fmt.Println("Started building sites ...")
        return Hugo.Build(hugolib.BuildCfg{CreateSitesFromConfig: true, Watching: watching, PrintStats: true})
 }
 
 func resetAndbuildSites(watching bool) (err error) {
+       if err := initSites(); err != nil {
+               return err
+       }
        fmt.Println("Started building sites ...")
        return Hugo.Build(hugolib.BuildCfg{ResetState: true, Watching: watching, PrintStats: true})
 }
@@ -655,13 +661,17 @@ func initSites() error {
 }
 
 func buildSites(watching bool) (err error) {
-       initSites()
+       if err := initSites(); err != nil {
+               return err
+       }
        fmt.Println("Started building sites ...")
        return Hugo.Build(hugolib.BuildCfg{Watching: watching, PrintStats: true})
 }
 
 func rebuildSites(events []fsnotify.Event) error {
-       initSites()
+       if err := initSites(); err != nil {
+               return err
+       }
        return Hugo.Rebuild(hugolib.BuildCfg{PrintStats: true, Watching: true}, events...)
 }
 
index 427d960a1d6da7751ad29028c7343a531e856f1e..49d3469c58e305803cb5c48819012d6dfafa7c84 100644 (file)
@@ -396,24 +396,6 @@ func WordCount(s string) map[string]int {
        return m
 }
 
-// RemoveSummaryDivider removes summary-divider <!--more--> from content.
-// TODO(bep) ml remove
-func RemoveSummaryDivider(content []byte) []byte {
-       b := bytes.Replace(content, summaryDividerAndNewLines, []byte(""), 1)
-       if len(b) != len(content) {
-               return b
-       }
-       return bytes.Replace(content, SummaryDivider, []byte(""), 1)
-}
-
-func removeInternalSummaryDivider(content []byte) []byte {
-       b := bytes.Replace(content, summaryDividerAndNewLines, []byte(""), 1)
-       if len(b) != len(content) {
-               return b
-       }
-       return bytes.Replace(content, SummaryDivider, []byte(""), 1)
-}
-
 // TruncateWordsByRune truncates words by runes.
 func TruncateWordsByRune(words []string, max int) (string, bool) {
        count := 0
index 85e0d7f4fa5b832db90fe9004b5fca12aef76468..3a038ea122ff1330d0ede8ec6681a3453a002582 100644 (file)
@@ -409,13 +409,3 @@ func TestWordCount(t *testing.T) {
                t.Errorf("Actual Map (%v) does not equal expected (%v)", actualMap, expectedMap)
        }
 }
-
-func TestRemoveSummaryDivider(t *testing.T) {
-       content := []byte("This is before. <!--more-->This is after.")
-       actualRemovedContent := RemoveSummaryDivider(content)
-       expectedRemovedContent := []byte("This is before. This is after.")
-
-       if !bytes.Equal(actualRemovedContent, expectedRemovedContent) {
-               t.Errorf("Actual removed content (%s) did not equal expected removed content (%s)", actualRemovedContent, expectedRemovedContent)
-       }
-}
index f9a41dde3e62abf7bc5e8973760b2ac3014a0da5..83273324dfba9edad79aa11a5803b91c2dad0351 100644 (file)
@@ -186,7 +186,6 @@ func getLanguagePrefix() string {
 }
 
 // IsAbsURL determines whether the given path points to an absolute URL.
-// TODO(bep) ml tests
 func IsAbsURL(path string) bool {
        url, err := url.Parse(path)
        if err != nil {
index 04af20ceb7614d4c4ab17a3ed7bafe58fdaea89b..fcc5b956107026cb10fddd9f5e682c216b8e6bc0 100644 (file)
@@ -104,15 +104,10 @@ func commonConvert(p *Page, t tpl.Template) HandledResult {
 
        // TODO(bep) these page handlers need to be re-evaluated, as it is hard to
        // process a page in isolation. See the new preRender func.
-       // TODO(bep) ml not so raw anymore, but do we need to keep it raw?
        if viper.GetBool("EnableEmoji") {
                p.rawContent = helpers.Emojify(p.rawContent)
        }
 
-       // TODO(bep) ml we let the summary divider survive the rendering. Must check if
-       // it actually survives, replace it with something more robus, or maybe
-       // rethink this fragile concept.
-       //p.rawContent = p.renderContent(helpers.RemoveSummaryDivider(p.rawContent))
        // We have to replace the <!--more--> with something that survives all the
        // rendering engines.
        // TODO(bep) inline replace
index 561c43a3a93c2a35d8b35c984036f0f36dfaa205..f0012d2af72a9637c7df53eb1d46835d956a5866 100644 (file)
@@ -62,8 +62,7 @@ func createSitesFromConfig() ([]*Site, error) {
        var sites []*Site
        multilingual := viper.GetStringMap("Languages")
        if len(multilingual) == 0 {
-               // TODO(bep) multilingo langConfigsList = append(langConfigsList, NewLanguage("en"))
-               sites = append(sites, newSite(helpers.NewLanguage("en")))
+               sites = append(sites, newSite(helpers.NewDefaultLanguage()))
        }
 
        if len(multilingual) > 0 {
@@ -85,10 +84,9 @@ func createSitesFromConfig() ([]*Site, error) {
 }
 
 // Reset resets the sites, making it ready for a full rebuild.
-// TODO(bep) multilingo
 func (h *HugoSites) reset() {
        for i, s := range h.Sites {
-               h.Sites[i] = s.Reset()
+               h.Sites[i] = s.reset()
        }
 }
 
index 9ccfed054af7a96884aaa6c2fa4aba87dfac6f9e..e2a110d18929bfab18563f3fdc8f974b48bbff11 100644 (file)
@@ -73,9 +73,7 @@ func TestMultiSitesBuild(t *testing.T) {
        assert.NoError(t, err, "permalink call failed")
        assert.Equal(t, "http://example.com/blog/superbob", permalink, "invalid doc3 permalink")
 
-       // TODO(bep) multilingo. Check this case. This has url set in frontmatter, but we must split into lang folders
-       // The assertion below was missing the /en prefix.
-       assert.Equal(t, "/en/superbob", doc3.URL(), "invalid url, was specified on doc3 TODO(bep)")
+       assert.Equal(t, "/en/superbob", doc3.URL(), "invalid url, was specified on doc3")
 
        assert.Equal(t, doc2.Next, doc3, "doc3 should follow doc2, in .Next")
 
index 6105876591139b154addd26a589740ceec0132de..a9a2f256c3eceb26de0bc0fc9b5f27e05adaee82 100644 (file)
@@ -75,15 +75,6 @@ func (s *Site) multilingualEnabled() bool {
        return s.Multilingual != nil && s.Multilingual.enabled()
 }
 
-// TODO(bep) multilingo remove these
-func (s *Site) currentLanguageString() string {
-       return s.currentLanguage().Lang
-}
-
-func (s *Site) currentLanguage() *helpers.Language {
-       return s.Language
-}
-
 func toSortedLanguages(l map[string]interface{}) (helpers.Languages, error) {
        langs := make(helpers.Languages, len(l))
        i := 0
@@ -107,7 +98,6 @@ func toSortedLanguages(l map[string]interface{}) (helpers.Languages, error) {
                        }
 
                        // Put all into the Params map
-                       // TODO(bep) ml reconsile with the type handling etc. from other params handlers.
                        language.SetParam(loki, v)
                }
 
index e9a5ab1a9148652e155ef9f52adb4a6ce9bb777f..57bd5021f28eba1e1d11da2a92d0bb58c84f111d 100644 (file)
@@ -49,7 +49,7 @@ type Node struct {
 
        language     *helpers.Language
        languageInit sync.Once
-       lang         string // TODO(bep) multilingo
+       lang         string
 
        translations     Nodes
        translationsInit sync.Once
@@ -168,7 +168,6 @@ func (n *Node) RelRef(ref string) (string, error) {
        return n.Site.RelRef(ref, nil)
 }
 
-// TODO(bep) multilingo some of these are now hidden. Consider unexport.
 type URLPath struct {
        URL       string
        Permalink string
@@ -192,7 +191,6 @@ func (n *Node) Scratch() *Scratch {
        return n.scratch
 }
 
-// TODO(bep) multilingo consolidate. See Page.
 func (n *Node) Language() *helpers.Language {
        n.initLanguage()
        return n.language
@@ -223,8 +221,7 @@ func (n *Node) initLanguage() {
                language := ml.Language(pageLang)
 
                if language == nil {
-                       // TODO(bep) ml
-                       // This may or may not be serious. It can be a file named stefano.chiodino.md.
+                       // It can be a file named stefano.chiodino.md.
                        jww.WARN.Printf("Page language (if it is that) not found in multilang setup: %s.", pageLang)
                        language = ml.DefaultLang
                }
index da9fa4f87b0de5fcf38e107a986555f9e2b0154f..a15af60bf8618ff78ab6dfd0ce5e8a97c2effdaf 100644 (file)
@@ -327,25 +327,6 @@ func (p *Page) setAutoSummary() error {
        return nil
 }
 
-// TODO(bep) ml not used???
-func (p *Page) _renderBytes(content []byte) []byte {
-       var fn helpers.LinkResolverFunc
-       var fileFn helpers.FileResolverFunc
-       if p.getRenderingConfig().SourceRelativeLinksEval {
-               fn = func(ref string) (string, error) {
-                       return p.Node.Site.SourceRelativeLink(ref, p)
-               }
-               fileFn = func(ref string) (string, error) {
-                       return p.Node.Site.SourceRelativeLinkFile(ref, p)
-               }
-       }
-       return helpers.RenderBytes(
-               &helpers.RenderingContext{
-                       Content: content, PageFmt: p.determineMarkupType(),
-                       ConfigProvider: p.Language(),
-                       DocumentID:     p.UniqueID(), Config: p.getRenderingConfig(), LinkResolver: fn, FileResolver: fileFn})
-}
-
 func (p *Page) renderContent(content []byte) []byte {
        var fn helpers.LinkResolverFunc
        var fileFn helpers.FileResolverFunc
index 8ae3cd16f8b21a56b8a1ba381fc33f964b5efa12..1029a38bf56e35c992e8e1781ad99bd365a8b129 100644 (file)
@@ -99,9 +99,8 @@ type Site struct {
        Language     *helpers.Language
 }
 
-// Reset returns a new Site prepared for rebuild.
-// TODO(bep) multilingo
-func (s *Site) Reset() *Site {
+// reset returns a new Site prepared for rebuild.
+func (s *Site) reset() *Site {
        return &Site{Language: s.Language, Multilingual: s.Multilingual}
 }
 
@@ -144,21 +143,20 @@ type targetList struct {
 }
 
 type SiteInfo struct {
-       BaseURL     template.URL
-       Taxonomies  TaxonomyList
-       Authors     AuthorList
-       Social      SiteSocial
-       Sections    Taxonomy
-       Pages       *Pages // Includes only pages in this language
-       AllPages    *Pages // Includes other translated pages, excluding those in this language.
-       rawAllPages *Pages // Includes absolute all pages, including drafts etc.
-       Files       *[]*source.File
-       Menus       *Menus
-       Hugo        *HugoInfo
-       Title       string
-       RSSLink     string
-       Author      map[string]interface{}
-       // TODO(bep) multilingo
+       BaseURL               template.URL
+       Taxonomies            TaxonomyList
+       Authors               AuthorList
+       Social                SiteSocial
+       Sections              Taxonomy
+       Pages                 *Pages // Includes only pages in this language
+       AllPages              *Pages // Includes other translated pages, excluding those in this language.
+       rawAllPages           *Pages // Includes absolute all pages, including drafts etc.
+       Files                 *[]*source.File
+       Menus                 *Menus
+       Hugo                  *HugoInfo
+       Title                 string
+       RSSLink               string
+       Author                map[string]interface{}
        LanguageCode          string
        DisqusShortname       string
        GoogleAnalytics       string
@@ -701,7 +699,6 @@ func (s *Site) readI18nSources() error {
 
        themeI18nDir, err := helpers.GetThemeI18nDirPath()
        if err == nil {
-               // TODO(bep) multilingo what is this?
                i18nSources = []source.Input{&source.Filesystem{Base: themeI18nDir}, i18nSources[0]}
        }
 
@@ -1622,7 +1619,7 @@ func (s *Site) newTaxonomyNode(t taxRenderInfo) (*Node, string) {
 func (s *Site) addMultilingualPrefix(basePath string) string {
        hadPrefix := strings.HasPrefix(basePath, "/")
        if s.multilingualEnabled() {
-               basePath = path.Join(s.currentLanguageString(), basePath)
+               basePath = path.Join(s.Language.Lang, basePath)
                if hadPrefix {
                        basePath = "/" + basePath
                }
@@ -1992,7 +1989,6 @@ func (s *Site) Stats() {
 func (s *Site) setURLs(n *Node, in string) {
        n.URLPath.URL = helpers.URLizeAndPrep(in)
        n.URLPath.Permalink = permalink(n.URLPath.URL)
-       // TODO(bep) multilingo
        n.RSSLink = template.HTML(permalink(in + ".xml"))
 }
 
index b93e08acaba3bb0a563a38fe620bb7dcfe35638a..3f6e25bad537e3fbe65ee71c8eeb94115366591d 100644 (file)
@@ -216,9 +216,7 @@ func TestFutureExpirationRender(t *testing.T) {
 }
 
 // Issue #957
-// TODO(bep) ml
 func TestCrossrefs(t *testing.T) {
-       hugofs.InitMemFs()
        for _, uglyURLs := range []bool{true, false} {
                for _, relative := range []bool{true, false} {
                        doTestCrossrefs(t, relative, uglyURLs)
index 05dcfb26085713acd69baff9f99f4d183aed2a78..e3df3acd1a38edebc0330cdff7ca117dccb778f2 100644 (file)
@@ -50,7 +50,6 @@ func assignTranslationsToPages(allTranslations map[string]Translations, pages []
                        continue
                }
 
-               // TODO(bep) multilingo remove lang
                for _, translatedPage := range trans {
                        page.translations = append(page.translations, translatedPage)
                }
index 4bee882a644e7c0f461eb646572d53f4b117edc9..500da25489823a223867a1b3b282b2cfdce44e7d 100644 (file)
@@ -129,10 +129,6 @@ func NewFile(relpath string) *File {
        f.lang = strings.TrimPrefix(filepath.Ext(f.baseName), ".")
        if f.lang == "" {
                f.lang = viper.GetString("DefaultContentLanguage")
-               if f.lang == "" {
-                       // TODO(bep) ml
-                       f.lang = "en"
-               }
        }
        f.translationBaseName = helpers.Filename(f.baseName)