hugolib, output: Add NotAlternative to OutputFormat
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 8 Apr 2017 09:15:28 +0000 (11:15 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 8 Apr 2017 09:21:12 +0000 (11:21 +0200)
To make sure CSS and similar does not appear in the AlternativeOutputFormats list.

hugolib/page_output.go
hugolib/site_render.go
output/outputFormat.go

index c6a72d3249301d518eeb92f05eee1f52c9f78c0a..7b299b575b07ff4d7c62d730d98b127e98deb890 100644 (file)
@@ -177,8 +177,6 @@ type OutputFormat struct {
        // This is value is fetched from the output format definition.
        // Note that for pages with only one output format,
        // this method will always return "canonical".
-       // TODO(bep) output -- the above may not be correct for CSS etc. Figure out a way around that.
-       // TODO(bep) output -- re the above, maybe add a "alternate" filter to AlternativeOutputFormats.
        // As an example, the AMP output format will, by default, return "amphtml".
        //
        // See:
@@ -222,10 +220,12 @@ func newOutputFormat(p *Page, f output.Format) *OutputFormat {
 }
 
 // OutputFormats gives the alternative output formats for this PageOutput.
+// Note that we use the term "alternative" and not "alternate" here, as it
+// does not necessarily replace the other format, it is an alternative representation.
 func (p *PageOutput) AlternativeOutputFormats() (OutputFormats, error) {
        var o OutputFormats
        for _, of := range p.OutputFormats() {
-               if of.f == p.outputFormat {
+               if of.f.NotAlternative || of.f == p.outputFormat {
                        continue
                }
                o = append(o, of)
index 0c9da2134373129bbf47291491555778ca886c68..17a14bd103ae265da9528dd947ce4fc11f2e802a 100644 (file)
@@ -290,7 +290,7 @@ func (s *Site) renderSitemap() error {
        n.Data["Pages"] = pages
        n.Pages = pages
 
-       // TODO(bep) output
+       // TODO(bep) we have several of these
        if err := page.initTargetPathDescriptor(); err != nil {
                return err
        }
index bd0236278f32c4fd351c6faa430733d14ebbe3f3..0845b5d317a0776d8b55bf2645abe62fd99ef62a 100644 (file)
@@ -63,6 +63,12 @@ type Format struct {
 
        // Enable to ignore the global uglyURLs setting.
        NoUgly bool
+
+       // Enable if it doesn't make sense to include this format in an alternative
+       // format listing, CSS being one good example.
+       // Note that we use the term "alternative" and not "alternate" here, as it
+       // does not necessarily replace the other format, it is an alternative representation.
+       NotAlternative bool
 }
 
 var (
@@ -88,11 +94,12 @@ var (
        }
 
        CSSFormat = Format{
-               Name:        "CSS",
-               MediaType:   media.CSSType,
-               BaseName:    "styles",
-               IsPlainText: true,
-               Rel:         "stylesheet",
+               Name:           "CSS",
+               MediaType:      media.CSSType,
+               BaseName:       "styles",
+               IsPlainText:    true,
+               Rel:            "stylesheet",
+               NotAlternative: true,
        }
        CSVFormat = Format{
                Name:        "CSV",