slight-lang 1.0.5 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +69 -132
- data/lib/slight.rb +3 -2
- data/slight.gemspec +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2fb6397892fd342cc22a6e31478efbbc6ca5744
|
4
|
+
data.tar.gz: ec9f31523e9a92a671bdfb19b2ce05c943516855
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6928741a6d117a8d18cb48d8f94df7965edcf286147d9dc35b8d4adebf8e9d742125d4da0d0e93c48d94391becc0c66ecb9a9890429428eb977570e0826542b
|
7
|
+
data.tar.gz: '089f7d90260ad1b5c6712903621af6bba9fd48479b18f91dc73c4fab26be66cef920f6ec3854511e54eccdeb992b1ff949732fb378ad7098223069d52494ad98'
|
data/README.md
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
# Slight-lang
|
2
2
|
A light and sweet template language.
|
3
3
|
|
4
|
-
|
5
|
-
Slight is a very simple and easy to use template language.
|
6
|
-
Advantage of Slight:
|
4
|
+
with:
|
7
5
|
- Pure Ruby syntax
|
8
6
|
- Html friendly
|
9
|
-
-
|
7
|
+
- 0 learning cost
|
10
8
|
|
11
9
|
## Quick Start
|
12
10
|
#### [Installation]
|
@@ -14,33 +12,33 @@ Advantage of Slight:
|
|
14
12
|
gem install slight-lang
|
15
13
|
|
16
14
|
# you can also build gem from gemspec
|
17
|
-
gem build slight.gemspec
|
18
|
-
gem install ./slight-lang-1.0.
|
15
|
+
# gem build slight.gemspec
|
16
|
+
# gem install ./slight-lang-1.0.5.gem
|
19
17
|
```
|
20
18
|
|
21
|
-
#### [
|
22
|
-
######
|
19
|
+
#### [Usage]
|
20
|
+
###### - Command
|
23
21
|
```bash
|
24
|
-
slight [-v] <source> [<output>]
|
22
|
+
root@ubuntu: slight [-v] <source> [<output>]
|
25
23
|
|
26
|
-
|
27
|
-
|
28
|
-
=> index.htm
|
29
|
-
|
30
|
-
slight index.slight
|
31
|
-
=> <tag>abcde</tag>
|
32
|
-
|
33
|
-
slight -v
|
34
|
-
=> v 1.0.1
|
24
|
+
# slight index.slight index.htm
|
25
|
+
# => index.htm
|
35
26
|
```
|
36
27
|
|
37
|
-
###### REPL
|
38
|
-
```
|
39
|
-
slsh
|
28
|
+
###### - REPL
|
29
|
+
```bash
|
30
|
+
root@ubuntu: slsh
|
40
31
|
```
|
41
|
-
- build-in commands
|
42
|
-
|
43
32
|
```ruby
|
33
|
+
sl:> button 'btn btn-success btn-lg', name:'btn_submit', type:'submit' do
|
34
|
+
sl:> "Submit"
|
35
|
+
sl:> end
|
36
|
+
sl:> ; (Enter ';' to run the script)
|
37
|
+
|
38
|
+
# compile from file
|
39
|
+
sl:> @../../example/component.slight.rb
|
40
|
+
LOAD PATH="../../example/component.slight.rb"
|
41
|
+
|
44
42
|
# help
|
45
43
|
sl:> \h
|
46
44
|
@file => load and compile file dynamically. E.g. @/tmp/page.slight
|
@@ -48,124 +46,67 @@ sl:> \h
|
|
48
46
|
\eg => example
|
49
47
|
\q => exit
|
50
48
|
\v => show version (also: \ver, \version)
|
51
|
-
|
52
|
-
|
53
|
-
# exit
|
54
|
-
sl:> \q (ctrl + c)
|
55
|
-
*** Exit now ***
|
56
|
-
--bye--
|
57
|
-
|
58
|
-
|
59
|
-
# show example
|
60
|
-
sl:> \eg
|
61
|
-
button "btn btn-primary" do
|
62
|
-
"Click me"
|
63
|
-
end
|
64
|
-
=>
|
65
|
-
<button class="btn btn-primary">Click me</button>
|
66
|
-
|
67
|
-
|
68
|
-
# compile slight file
|
69
|
-
sl:> @../../example/component.slight.rb
|
70
|
-
LOAD PATH="../../example/component.slight.rb"
|
71
|
-
<button class="btn btn-success btn-lg">
|
72
|
-
submit</button>
|
73
|
-
|
74
|
-
|
75
|
-
# redirect output to file
|
76
|
-
sl:> >@output.htm (>@off to turn off)
|
77
|
-
spool turned on
|
78
|
-
OUTPUT PATH="output.htm"
|
79
|
-
```
|
80
|
-
- Run Slight in REPL
|
81
|
-
|
82
|
-
```ruby
|
83
|
-
sl:> button 'btn btn-success btn-lg', name:'btn_submit', type:'submit' do
|
84
|
-
sl:> "Submit"
|
85
|
-
sl:> end
|
86
|
-
sl:> ; (Enter ';' to run the script)
|
87
|
-
|
88
|
-
<button class="btn btn-success btn-lg" name="btn_submit" type="submit">
|
89
|
-
Submit</button>
|
90
49
|
```
|
91
50
|
|
92
51
|
#### [Syntax]
|
93
52
|
|
94
|
-
- Pure Ruby Syntax
|
53
|
+
###### - Pure Ruby Syntax
|
95
54
|
|
96
55
|
```ruby
|
97
56
|
tag_name "class", [attributes: id, name, style, etc.] do; <content>; end
|
98
57
|
|
99
|
-
|
58
|
+
# example
|
100
59
|
div "panel panel-lg", css: "border: 5 dotted green", id: "msgbox" do
|
101
60
|
button "btn btn-primary" do
|
102
61
|
"Ok"
|
103
62
|
end
|
104
|
-
button "btn btn-default" do
|
105
|
-
"Cancel"
|
106
|
-
end
|
107
63
|
end
|
108
|
-
|
109
|
-
(of course {} syntax is also spported)
|
110
64
|
```
|
111
|
-
-
|
65
|
+
###### - HTML attributes and tags are naturally supported
|
112
66
|
|
113
|
-
-
|
67
|
+
###### - Support Shortcuts for HTML tags and attributes(can be customized)
|
114
68
|
|
115
|
-
|
116
|
-
[attribute]
|
117
|
-
css => "style"
|
118
|
-
ln => "href"
|
119
|
-
url => "href"
|
120
|
-
char => "charset"
|
121
|
-
fn => "src"
|
122
|
-
lang => "language"
|
123
|
-
xn => "xmlns"
|
124
|
-
mf => "manifest"
|
125
|
-
|
126
|
-
e.g.
|
127
|
-
|
128
|
-
div css:'border: 10 solid blue' do; "hello"; end
|
129
|
-
=>
|
130
|
-
<div style="border: 10 solid blue">
|
131
|
-
Hello
|
132
|
-
<div>
|
69
|
+
- Attribute Shortcuts
|
133
70
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
71
|
+
| shortcut | attribute | shortcut | attribute |
|
72
|
+
|-------|--------------| -------|--------------|
|
73
|
+
| :css | style | :fn | src |
|
74
|
+
| :ln | href | :lang | language |
|
75
|
+
| :url | href | :xn | xmlns |
|
76
|
+
| :char | charset | :mf | manifest |
|
140
77
|
|
141
|
-
|
78
|
+
```ruby
|
79
|
+
# example
|
80
|
+
div css:'border: 10 solid blue' do; "hello"; end
|
81
|
+
# <div style="border: 10 solid blue">
|
82
|
+
# Hello
|
83
|
+
# <div>
|
84
|
+
```
|
142
85
|
|
143
|
-
|
144
|
-
=>
|
145
|
-
<div>hello</div>
|
86
|
+
- Html Tag Shortcuts
|
146
87
|
|
88
|
+
| shortcut | attribute |
|
89
|
+
|-------|--------------|
|
90
|
+
| _ | <div>$content</div> |
|
91
|
+
| js | <script language='javscript'>$content</script> |
|
92
|
+
| use | <script type='text/javascript' src='$content'></script> |
|
93
|
+
| use | <link rel='stylesheet' href='$content'></link> |
|
147
94
|
|
95
|
+
```ruby
|
96
|
+
# example
|
148
97
|
js %{
|
149
98
|
console.log("hello slight");
|
150
99
|
}
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
</script>
|
155
|
-
|
100
|
+
# <script language="javascript">
|
101
|
+
# console.log("hello slight");
|
102
|
+
# </script>
|
156
103
|
|
157
104
|
use 'resource/bootstrap.js'
|
158
|
-
|
159
|
-
<script type='text/javascript' src='resource/bootstrap.js'></script>
|
160
|
-
|
161
|
-
|
162
|
-
use 'resource/bootstrap.css'
|
163
|
-
=>
|
164
|
-
<link rel='stylesheet' href='resource/bootstrap.css'></link>
|
105
|
+
# <script type='text/javascript' src='resource/bootstrap.js'></script>
|
165
106
|
```
|
166
107
|
|
167
|
-
#### [
|
168
|
-
-
|
108
|
+
#### [Customization]
|
109
|
+
###### - Usage (more details please refer to example)
|
169
110
|
|
170
111
|
```ruby
|
171
112
|
conf = Slight::Configuration.new do |c|
|
@@ -176,29 +117,25 @@ end
|
|
176
117
|
custom_engine = Slight::Engine.new(conf)
|
177
118
|
```
|
178
119
|
|
179
|
-
-
|
120
|
+
###### - Configuration Options
|
180
121
|
|
181
122
|
```ruby
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
# Before-Filters accept original source pass the output to Slight compiler.
|
194
|
-
# After-Filters accept output from Slight compiler pass the output to end user.
|
195
|
-
c.use FilterA, :before
|
196
|
-
c.use FilterB, :after
|
197
|
-
end
|
123
|
+
shortcut :A, :endpoint, "href" #add an attribute shortcut
|
124
|
+
shortcut :T, "box", "div" #add a tag shortcut
|
125
|
+
# set output IO
|
126
|
+
setIO STDOUT
|
127
|
+
# undef ruby methods in slight context
|
128
|
+
blinding :p, :select, :puts, :send, :class
|
129
|
+
# use Filter
|
130
|
+
# Before-Filters accept original source pass the output to Slight compiler.
|
131
|
+
# After-Filters accept output from Slight compiler pass the output to end user.
|
132
|
+
use FilterA, :before
|
133
|
+
use FilterB, :after
|
198
134
|
```
|
199
135
|
|
200
|
-
#### [Tilt]
|
201
|
-
|
136
|
+
#### [Tilt Intergration]
|
137
|
+
|
138
|
+
##### Working with Tilt
|
202
139
|
```ruby
|
203
140
|
require 'slight/tilt'
|
204
141
|
|
data/lib/slight.rb
CHANGED
@@ -2,7 +2,8 @@ require 'slight/engine'
|
|
2
2
|
module Slight
|
3
3
|
# Slight version string
|
4
4
|
# @api public
|
5
|
-
VERSION = '1.0
|
5
|
+
VERSION = '1.1.0'
|
6
6
|
# 1.0.0 => Basic Template features | 201703
|
7
|
-
# 1.0.5 => Support Tilt
|
7
|
+
# 1.0.5 => Support Tilt | 201704
|
8
|
+
# 1.1.0 => Doc Update | 201705
|
8
9
|
end
|
data/slight.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
|
|
6
6
|
gem.authors = ["oliver.yu"]
|
7
7
|
gem.email = ["nemo1023@gmail.com"]
|
8
8
|
gem.description = %q{A light and sweet template language}
|
9
|
-
gem.summary = %q{The goal of this is to use ruby syntax
|
9
|
+
gem.summary = %q{The goal of this is to use pure ruby syntax to write template.}
|
10
10
|
gem.homepage = "https://github.com/OliversCat/Slight"
|
11
11
|
gem.files = `git ls-files`.split($\)
|
12
12
|
#gem.files = dir('.')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slight-lang
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- oliver.yu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A light and sweet template language
|
14
14
|
email:
|
@@ -67,5 +67,5 @@ rubyforge_project:
|
|
67
67
|
rubygems_version: 2.6.11
|
68
68
|
signing_key:
|
69
69
|
specification_version: 4
|
70
|
-
summary: The goal of this is to use ruby syntax
|
70
|
+
summary: The goal of this is to use pure ruby syntax to write template.
|
71
71
|
test_files: []
|