parser

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Date

type Date int64

type Frontmatter

type Frontmatter struct {
	Title        string   `yaml:"title"`
	Date         string   `yaml:"date"`
	Draft        bool     `yaml:"draft"`
	JSFiles      []string `yaml:"scripts"`
	Type         string   `yaml:"type"`
	Description  string   `yaml:"description"`
	PreviewImage string   `yaml:"previewimage"`
	Tags         []string `yaml:"tags"`
	Authors      []string `yaml:"authors"`
}

type LayoutConfig

type LayoutConfig struct {
	Navbar      []string `yaml:"navbar"`
	BaseURL     string   `yaml:"baseURL"`
	SiteTitle   string   `yaml:"siteTitle"`
	SiteScripts []string `yaml:"siteScripts"`
	Author      string   `yaml:"author"`
	ThemeURL    string   `yaml:"themeURL"`
}

type Parser

type Parser struct {
	// Templates stores the template data of all the pages of the site
	// Access the data for a particular page by using the relative path to the file as the key
	Templates map[template.URL]TemplateData

	// K-V pair storing all templates correspoding to a particular tag in the site
	TagsMap map[string][]TemplateData

	// Stores data parsed from layout/config.yml
	LayoutConfig LayoutConfig

	// Posts contains the template data of files in the posts directory
	Posts []TemplateData

	// TODO: Look into the two below fields into a single one
	MdFilesName []string
	MdFilesPath []string

	// Stores flag value to render draft posts
	RenderDrafts bool

	// Common logger for all parser functions
	ErrorLogger *log.Logger

	Helper *helpers.Helper
}

func (*Parser) AddFileAndRender

func (p *Parser) AddFileAndRender(baseDirPath string, dirEntryPath string, frontmatter Frontmatter, body string)

func (*Parser) DateParse

func (p *Parser) DateParse(date string) time.Time

func (*Parser) ParseConfig

func (p *Parser) ParseConfig(inFilePath string)

func (*Parser) ParseLayoutFiles

func (p *Parser) ParseLayoutFiles() *template.Template

Parse all the ".html" layout files in the layout/ directory

func (*Parser) ParseMDDir

func (p *Parser) ParseMDDir(baseDirPath string, baseDirFS fs.FS)

func (*Parser) ParseMarkdownContent

func (p *Parser) ParseMarkdownContent(filecontent string) (Frontmatter, string, bool)

func (*Parser) ParseRobots

func (p *Parser) ParseRobots(inFilePath string, outFilePath string)

type TemplateData

type TemplateData struct {
	CompleteURL              template.URL
	FilenameWithoutExtension string
	Date                     int64
	Frontmatter              Frontmatter
	Body                     template.HTML
	Layout                   LayoutConfig

	// Do not use these fields to store tags!!
	// These fields are populated by the ssg to store merged tag data
	Tags                 []string
	SpecificTagTemplates []TemplateData
}

This struct holds all of the data required to render any page of the site

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL