peacecss

package module
v0.0.0-...-3a0d3d2 Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2022 License: MIT Imports: 2 Imported by: 0

README

peacecss

Postcss alternative.

Playground
Use
package main

import (
	"fmt"
	"github.com/yisar/peacecss"
)

func main() {
	parser := peacecss.NewParser()

	s := []byte(".a{color:#fff;}")

	ast := parser.Parse(s)
	
	ast.Traverse(func (node *peacecss.CSSDefinition){
		fmt.Printf("%v", node)
		
		node.Selector.Selector = ".b"
	
		fmt.Printf("%v", node)
	})

	mini := ast.Minisize()

	fmt.Printf("%s", mini.String())
	
}

Documentation

Index

Constants

View Source
const (
	BRACE_OPEN      = 123 // "{"
	BRACE_CLOSE     = 125 // "}"
	COLON           = 58  // ":"
	SEMI            = 59  // ";"
	COMMENT_SLASH   = 47  // "/"
	COMMENT_STAR    = 42  // "*"
	AT              = 64  // "@"
	DOUBLE_QUOTE    = 34  // "\""
	SINGLE_QUOTE    = 39  // "'"
	PAREN_LEFT      = 40  // "("
	PAREN_RIGHT     = 41  // ")"
	LINE_FEED       = 10  // "\n"
	CARRIAGE_RETURN = 13  // "\r"
	ESCAPE_SEQUENCE = 92  // "\"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CSSDefinition

type CSSDefinition struct {
	Selector *CSSSelector     `json:"selector"`
	Rules    []*CSSRule       `json:"rules"`
	Controls []*CSSDefinition `json:"controls"`
	DefLine  int              `json:"line"`
	Point    int              `json:"column"`
	Parent   *CSSDefinition   `json:"-"`
}

func NewDefinition

func NewDefinition(selector *CSSSelector, line, point int) *CSSDefinition

func (*CSSDefinition) AddChild

func (d *CSSDefinition) AddChild(def *CSSDefinition)

func (*CSSDefinition) AddControl

func (d *CSSDefinition) AddControl(control *CSSDefinition)

func (*CSSDefinition) AddRule

func (d *CSSDefinition) AddRule(rule *CSSRule)

func (*CSSDefinition) GetParent

func (d *CSSDefinition) GetParent() *CSSDefinition

func (*CSSDefinition) IsControl

func (d *CSSDefinition) IsControl() bool

type CSSDefinitionList

type CSSDefinitionList struct {
	// contains filtered or unexported fields
}

func NewDefinitionList

func NewDefinitionList() *CSSDefinitionList

func (*CSSDefinitionList) Add

func (l *CSSDefinitionList) Add(def *CSSDefinition)

func (*CSSDefinitionList) Get

func (l *CSSDefinitionList) Get() []*CSSDefinition

func (*CSSDefinitionList) Merge

func (l *CSSDefinitionList) Merge(defs []*CSSDefinition)

type CSSDefinitionTree

type CSSDefinitionTree struct {
	// contains filtered or unexported fields
}

func NewDefinitionTree

func NewDefinitionTree() *CSSDefinitionTree

func (*CSSDefinitionTree) AddDefinition

func (l *CSSDefinitionTree) AddDefinition(def *CSSDefinition)

func (*CSSDefinitionTree) AddDefinitionToChild

func (l *CSSDefinitionTree) AddDefinitionToChild(def *CSSDefinition)

func (*CSSDefinitionTree) GetLastChild

func (l *CSSDefinitionTree) GetLastChild() *CSSDefinition

func (*CSSDefinitionTree) HasParent

func (l *CSSDefinitionTree) HasParent() (has bool)

func (*CSSDefinitionTree) Remains

func (l *CSSDefinitionTree) Remains() (remains bool)

func (*CSSDefinitionTree) Remove

func (l *CSSDefinitionTree) Remove()

type CSSParseResult

type CSSParseResult struct {
	// contains filtered or unexported fields
}

func (CSSParseResult) GetData

func (c CSSParseResult) GetData() []*CSSDefinition

func (CSSParseResult) Minisize

func (c CSSParseResult) Minisize() bytes.Buffer

func (CSSParseResult) Traverse

func (c CSSParseResult) Traverse(callbacks ...func(*CSSDefinition))

type CSSParser

type CSSParser struct {
	// contains filtered or unexported fields
}

func NewParser

func NewParser() *CSSParser

func (*CSSParser) Parse

func (c *CSSParser) Parse(buffer []byte) CSSParseResult

type CSSRule

type CSSRule struct {
	Property  string    `json:"property"`
	Value     *CSSValue `json:"value"`
	DefLine   int       `json:"line"`
	Point     int       `json:"column"`
	RawData   string    `json:"raw"`
	RawPoint  int       `json:"-"`
	RawOffset int       `json:"-"`
}

func NewRule

func NewRule(property []byte, line, point int) *CSSRule

func (*CSSRule) IsSpecialProperty

func (r *CSSRule) IsSpecialProperty() (special bool)

func (*CSSRule) SetValue

func (r *CSSRule) SetValue(value []byte, index, point int, semicolon bool)

type CSSSelector

type CSSSelector struct {
	Selector        string `json:"selector"`
	ControlSelector bool   `json:"atrule"`
	RawData         string `json:"raw"`
	RawOffset       int    `json:"-"`
}

func NewSelector

func NewSelector(selBytes []byte) *CSSSelector

func (*CSSSelector) IsControlSelector

func (s *CSSSelector) IsControlSelector() bool

func (*CSSSelector) String

func (s *CSSSelector) String() string

type CSSValue

type CSSValue struct {
	Value     string `json:"value"`
	DefLine   int    `json:"line"`
	Point     int    `json:"column"`
	Semicolon bool   `json:"semicolon"`
	RawData   string `json:"raw"`
}

func NewValue

func NewValue(val []byte, line, point int, semicolon bool) *CSSValue

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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