package blog

import ""

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


Package Files


type Config

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

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

type Server struct {
    // contains filtered or unexported fields

Server implements an http.Handler that serves blog articles.

func NewServer

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

NewServer constructs a new Server using the specified config.

func (*Server) ServeHTTP

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.


blog/atomPackage atom defines XML data structures for an Atom feed.

Package blog imports 15 packages (graph).

Version v0.1.8 (latest) | Published Dec 2, 2021 | Platform: linux/amd64 | Updated 3 weeks ago

Tools for package owners.