0
0
mirror of https://github.com/crazy-max/diun.git synced 2024-12-22 19:38:28 +00:00
crazy-max_diun/vendor/github.com/vanng822/css/import_parser.go
2024-12-14 22:30:21 +01:00

57 lines
1.1 KiB
Go

package css
import (
"strings"
"github.com/gorilla/css/scanner"
)
func newImportRule(statement string) *CSSRule {
statement = strings.TrimSpace(statement)
if statement != "" {
rule := NewRule(IMPORT_RULE)
rule.Style.SelectorText = statement
return rule
}
return nil
}
func parseImport(s *scanner.Scanner) *CSSRule {
/*
Syntax:
@import url; or
@import url list-of-media-queries;
Example:
@import url("fineprint.css") print;
@import url("bluish.css") projection, tv;
@import 'custom.css';
@import url("chrome://communicator/skin/");
@import "common.css" screen, projection;
@import url('landscape.css') screen and (orientation:landscape);
*/
var statement string
for {
token := s.Next()
//fmt.Printf("Import: %s:'%s'\n", token.Type.String(), token.Value)
if token.Type == scanner.TokenEOF || token.Type == scanner.TokenError {
return nil
}
// take everything for now
switch token.Type {
case scanner.TokenChar:
if token.Value == ";" {
return newImportRule(statement)
}
statement += token.Value
default:
statement += token.Value
}
}
}