annotate vendor/github.com/yosssi/gcss/README.md @ 67:4edfa07d5fe0 draft

bfchroma turned out to be a hassle Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Thu, 07 Sep 2023 16:52:43 +0000
parents 787b5ee0289d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
1 # GCSS - Pure Go CSS Preprocessor
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
2
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
3 [![wercker status](https://app.wercker.com/status/4857161fd705e6c43df492e6a33ce87f/m "wercker status")](https://app.wercker.com/project/bykey/4857161fd705e6c43df492e6a33ce87f)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
4 [![Build status](https://ci.appveyor.com/api/projects/status/ocbu6upgr3j0m3vc/branch/master)](https://ci.appveyor.com/project/yosssi/gcss/branch/master)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
5 [![Coverage Status](https://img.shields.io/coveralls/yosssi/gcss.svg)](https://coveralls.io/r/yosssi/gcss?branch=master)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
6 [![GoDoc](http://godoc.org/github.com/yosssi/gcss?status.svg)](http://godoc.org/github.com/yosssi/gcss)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
7 [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/yosssi/gcss?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 ## Overview
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11 GCSS is a pure Go CSS preprocessor. This is inspired by [Sass](http://sass-lang.com/) and [Stylus](http://learnboost.github.io/stylus/).
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 ## Syntax
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 ### Variables
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17 ```scss
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 $base-font: Helvetica, sans-serif
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19 $main-color: blue
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 body
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 font: 100% $base-font
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 color: $main-color
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 ### Nesting
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28 ```scss
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 nav
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30 ul
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 margin: 0
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32 padding: 0
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
34 a
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
35 color: blue
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
36 &:hover
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
37 color: red
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
38 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
39
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
40 ### Mixins
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
41
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
42 ```scss
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
43 $border-radius($radius)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
44 -webkit-border-radius: $radius
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
45 -moz-border-radius: $radius
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
46 -ms-border-radius: $radius
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
47 border-radius: $radius
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
48
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
49 .box
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
50 $border-radius(10px)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
51 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
52
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
53 ## Installation
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
54
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
55 ```sh
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
56 $ go get -u github.com/yosssi/gcss/...
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
57 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
58
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
59 ## Compile from the Command-Line
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
60
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
61 ```sh
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
62 $ gcss /path/to/gcss/file
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
63 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
64
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
65 or
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
67 ```sh
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
68 $ cat /path/to/gcss/file | gcss > /path/to/css/file
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
69 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
70
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
71 ## Compile from Go programs
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
72
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
73 You can compile a GCSS file from Go programs by invoking the `gcss.CompileFile` function.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
74
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
75 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
76 cssPath, err := gcss.CompileFile("path_to_gcss_file")
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
77
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
78 if err != nil {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
79 http.Error(w, err.Error(), http.StatusInternalServerError)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
80 return
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
81 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
82
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
83 http.ServeFile(w, r, cssPath)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
84 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
85
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
86 You can invoke the `gcss.Compile` function instead of the `gcss.CompileFile` function. The `gcss.Compile` function takes `io.Writer` and `io.Reader` as a parameter, compiles the GCSS data which is read from the `io.Reader` and writes the result CSS data to the `io.Writer`. Please see the [GoDoc](http://godoc.org/github.com/yosssi/gcss) for the details.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
87
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
88 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
89 f, err := os.Open("path_to_gcss_file")
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
90
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
91 if err != nil {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
92 panic(err)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
93 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
94
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
95 defer func() {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
96 if err := f.Close(); err != nil {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
97 panic(err)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
98 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
99 }()
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
100
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
101 n, err := gcss.Compile(os.Stdout, f)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
102 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
103
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
104 ## Documentation
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
105
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
106 * [GoDoc](http://godoc.org/github.com/yosssi/gcss)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
107
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
108 ## Syntax Highlightings
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
109
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
110 * [vim-gcss](https://github.com/yosssi/vim-gcss) - Vim syntax highlighting for GCSS