2017-06-24 17:19:21 +02:00
|
|
|
package pages
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io"
|
|
|
|
|
|
|
|
"github.com/osteele/gojekyll/templates"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Page is a Jekyll page.
|
|
|
|
type Page interface {
|
|
|
|
// Paths
|
|
|
|
SiteRelPath() string // relative to the site source directory
|
|
|
|
Permalink() string // relative URL path
|
|
|
|
OutputExt() string
|
|
|
|
|
|
|
|
// Output
|
|
|
|
Published() bool
|
|
|
|
Static() bool
|
|
|
|
Write(RenderingContext, io.Writer) error
|
|
|
|
|
|
|
|
// Variables
|
|
|
|
PageVariables() templates.VariableMap
|
|
|
|
|
|
|
|
// internal
|
|
|
|
initPermalink() error
|
|
|
|
}
|
|
|
|
|
|
|
|
// RenderingContext provides context information to a Page.
|
|
|
|
type RenderingContext interface {
|
2017-06-24 17:58:12 +02:00
|
|
|
RenderingPipeline() RenderingPipeline
|
|
|
|
SiteVariables() templates.VariableMap // value of the "site" template variable
|
|
|
|
}
|
|
|
|
|
2017-06-24 18:03:33 +02:00
|
|
|
// RenderingPipeline applies transformations to a document.
|
2017-06-24 17:58:12 +02:00
|
|
|
type RenderingPipeline interface {
|
2017-06-24 17:19:21 +02:00
|
|
|
ApplyLayout(string, []byte, templates.VariableMap) ([]byte, error)
|
|
|
|
OutputExt(pathname string) string
|
|
|
|
Render(io.Writer, []byte, string, templates.VariableMap) ([]byte, error)
|
|
|
|
}
|
|
|
|
|
2017-06-24 17:58:12 +02:00
|
|
|
// Container is the Page container; either the Site or Collection.
|
2017-06-24 17:19:21 +02:00
|
|
|
type Container interface {
|
2017-06-24 17:58:12 +02:00
|
|
|
OutputExt(pathname string) string
|
2017-06-24 17:19:21 +02:00
|
|
|
PathPrefix() string // PathPrefix is the relative prefix, "" for the site and "_coll/" for a collection
|
|
|
|
}
|