tools: Index | Files | Directories

package blog

import ""

Package blog implements a web server for articles written in present format.


Package Files


type Config Uses

type Config struct {
    ContentPath  string // Relative or absolute location of article files and related content.
    TemplatePath string // Relative or absolute location of template files.

    BaseURL       string        // Absolute base URL (for permalinks; no trailing slash).
    BasePath      string        // Base URL path relative to server root (no trailing slash).
    GodocURL      string        // The base URL of godoc (for menu bar; no trailing slash).
    Hostname      string        // Server host name, used for rendering ATOM feeds.
    AnalyticsHTML template.HTML // Optional analytics HTML to insert at the beginning of <head>.

    HomeArticles int    // Articles to display on the home page.
    FeedArticles int    // Articles to include in Atom and JSON feeds.
    FeedTitle    string // The title of the Atom XML feed

    PlayEnabled     bool
    ServeLocalLinks bool // rewrite{pkg,cmd} links to host-less, relative paths.

Config specifies Server configuration values.

type Doc Uses

type Doc struct {
    Permalink string        // Canonical URL for this document.
    Path      string        // Path relative to server root (including base).
    HTML      template.HTML // rendered article

    Related      []*Doc
    Newer, Older *Doc

Doc represents an article adorned with presentation data.

type Server Uses

type Server struct {
    // contains filtered or unexported fields

Server implements an http.Handler that serves blog articles.

func NewServer Uses

func NewServer(cfg Config) (*Server, error)

NewServer constructs a new Server using the specified config.

func (*Server) ServeHTTP Uses

func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP serves the front, index, and article pages as well as the ATOM and JSON feeds.


atomPackage atom defines XML data structures for an Atom feed.

Package blog imports 15 packages (graph) and is imported by 17 packages. Updated 2021-01-21. Refresh now. Tools for package owners.