juicelang-theme 0.4.4 → 0.5.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/lib/custom_tags.rb +3 -3
- data/lib/juice_lexer.rb +181 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d091d794594724f2fd4ddd2a8cc25650237a83517536a4bfd13ced599aac2a9c
|
|
4
|
+
data.tar.gz: 7645974aa4ce62c401c117905c266df4a23986b7dc1b31928baa03082900086e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bf17f82e1968ada92376d0fadf83f4cab66fa9cf97fbf9ade047f6f779dacc6ce31c76a0045d2ac8b3eeeef921318fc9c4461457a457b0fdbe06de47d5059b84
|
|
7
|
+
data.tar.gz: 7bf696530ca7be79464512b87b728f2379867a96e3667e308012b9d86f281c633c2c6d5a0ef0ad8e0ac22d614f4e74bf324d1c20d1ab55c76e9522cb8d8dfde1
|
data/lib/custom_tags.rb
CHANGED
|
@@ -16,13 +16,13 @@ class ToCTag < Liquid::Tag
|
|
|
16
16
|
toc = Kramdown::Document.new(context.registers[:page]['content'], {
|
|
17
17
|
input: "GFM"
|
|
18
18
|
}).to_ToC
|
|
19
|
-
build_list(toc.select { |item| item[0] == 2 }, toc.first
|
|
19
|
+
build_list(toc.select { |item| item[0] == 2 }, toc.first)
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
private
|
|
23
23
|
|
|
24
|
-
def build_list(toc,
|
|
25
|
-
result = '<li class="uk-active"><a href="#' +
|
|
24
|
+
def build_list(toc, top)
|
|
25
|
+
result = '<li class="uk-active"><a href="#' + top[1] + '">' + top[2][0].value + '</a></li>' + "\n"
|
|
26
26
|
|
|
27
27
|
for i in 0...toc.count
|
|
28
28
|
item = toc[i]
|
data/lib/juice_lexer.rb
CHANGED
|
@@ -14,7 +14,187 @@ Jekyll::Hooks.register :site, :pre_render do |site|
|
|
|
14
14
|
filenames '*.juice'
|
|
15
15
|
|
|
16
16
|
state :root do
|
|
17
|
-
|
|
17
|
+
mixin :whitespace
|
|
18
|
+
mixin :keyword
|
|
19
|
+
mixin :operator
|
|
20
|
+
mixin :punctuation
|
|
21
|
+
mixin :identifier
|
|
22
|
+
mixin :literal
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
state :whitespace do
|
|
26
|
+
rule %r/[\x20\x0A\x0D\x09\x0B\x0C\x00]+/, Text::Whitespace
|
|
27
|
+
rule %r(//.*\n), Comment::Single
|
|
28
|
+
rule %r(/\*), Comment::Multiline, :multiline_comment
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
state :multiline_comment do
|
|
32
|
+
rule %r/(?:[^\*\/]|\*(?!\/)|\/(?!\*))+/, Comment::Multiline
|
|
33
|
+
|
|
34
|
+
rule %r(/\*), Comment::Multiline, :multiline_comment
|
|
35
|
+
rule %r(\*/), Comment::Multiline, :pop!
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
state :keyword do
|
|
39
|
+
rule %r/binary|enum|extension|func|import|init|internal|let|module|operator|private|precedencegroup|public|static|struct|subscript|throws|trait|type|typeprivate|var/, Keyword::Declaration
|
|
40
|
+
rule %r/break|case|catch|continue|default|defer|do|else|fallthrough|for|guard|if|in|loop|match|return|throw|where|while/, Keyword
|
|
41
|
+
rule %r/as|case|is|self|try/, Keyword
|
|
42
|
+
rule %r/any|some|throws|_/, Keyword::Type
|
|
43
|
+
rule %r/_/, Keyword
|
|
44
|
+
rule %r/above|associativity|below|binary|didSet|get|indirect|left|none|postfix|prefix|right|set|Type|value|willSet/, Keyword
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
state :operator do
|
|
48
|
+
rule %r/[+\-\*\/%<>=&\|\^!\?~]+/, Operator
|
|
49
|
+
rule %r/\.[+\-\*\/%<>=&\|\^!\?~\.]+/, Operator
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
state :punctuation do
|
|
53
|
+
rule %r/\(|\)|\[|\]|\{|\}|\.|,|:|;|=|&|->|=>|`|\?|!/, Punctuation
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
state :identifier do
|
|
57
|
+
rule %r/[_A-Za-z][_A-Za-z0-9]*/, Name
|
|
58
|
+
rule %r/`[_A-Za-z][_A-Za-z0-9]*`/, Name
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
state :literal do
|
|
62
|
+
rule %r/true|false|nil/, Keyword::Constant
|
|
63
|
+
rule %r/'/, Str::Delimiter, :character_literal
|
|
64
|
+
|
|
65
|
+
rule %r/(#*)"""/ do |m|
|
|
66
|
+
token Str::Delimiter
|
|
67
|
+
@multiline = true
|
|
68
|
+
@rawLevel = m[1].length
|
|
69
|
+
push :string_literal
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
rule %r/(#*)"/ do |m|
|
|
73
|
+
token Str::Delimiter
|
|
74
|
+
@multiline = false
|
|
75
|
+
@rawLevel = m[1].length
|
|
76
|
+
push :string_literal
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
rule %r/[0-9][0-9_]*(?:\.[0-9][0-9_]*(?:[eE][+-]?[0-9][0-9_]*)?|[eE][+-]?[0-9][0-9_]*)/, Num::Float
|
|
80
|
+
rule %r/[0-9][0-9_]*/, Num::Integer
|
|
81
|
+
rule %r/0b[01][01_]*/, Num::Bin
|
|
82
|
+
rule %r/0o[0-7][0-7_]*/, Num::Oct
|
|
83
|
+
rule %r/0x[0-9a-fA-F][0-9a-fA-F_]*/, Num::Hex
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
state :character_literal do
|
|
87
|
+
rule %r/[^\\']/ do
|
|
88
|
+
token Str::Char
|
|
89
|
+
goto :character_literal_ending
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
rule %r/\\/ do
|
|
93
|
+
token Str::Escape
|
|
94
|
+
goto :character_literal_ending
|
|
95
|
+
push :escape
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
state :character_literal_ending do
|
|
100
|
+
rule %r/'/, Str::Delimiter, :pop!
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
state :string_literal do
|
|
104
|
+
rule %r/[^\\"\$]+/, Str
|
|
105
|
+
rule %r/"""/ do
|
|
106
|
+
if @multiline
|
|
107
|
+
if @rawLevel > 0
|
|
108
|
+
@delimiter = '"""'
|
|
109
|
+
@currentRawLevel = @rawLevel
|
|
110
|
+
goto :raw_string_literal_ending
|
|
111
|
+
else
|
|
112
|
+
token Str::Delimiter
|
|
113
|
+
pop!
|
|
114
|
+
end
|
|
115
|
+
else
|
|
116
|
+
token Error
|
|
117
|
+
pop!
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
rule %r/"/ do
|
|
122
|
+
if !@multiline
|
|
123
|
+
if @rawLevel > 0
|
|
124
|
+
@delimiter = '"'
|
|
125
|
+
@currentRawLevel = @rawLevel
|
|
126
|
+
goto :raw_string_literal_ending
|
|
127
|
+
else
|
|
128
|
+
token Str::Delimiter
|
|
129
|
+
pop!
|
|
130
|
+
end
|
|
131
|
+
else
|
|
132
|
+
token Str
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
rule %r/\\?\n/ do
|
|
137
|
+
if @multiline
|
|
138
|
+
token Str
|
|
139
|
+
else
|
|
140
|
+
token Error
|
|
141
|
+
pop!
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
rule %r/(\\)(#*)/ do |m|
|
|
146
|
+
if m[2].length < @rawLevel
|
|
147
|
+
token Str
|
|
148
|
+
elsif m[2].length == @rawLevel
|
|
149
|
+
token Str::Escape
|
|
150
|
+
push :escape
|
|
151
|
+
else
|
|
152
|
+
token Error
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
rule %r/\$\{/, Str::Interpol, :interpolation
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
state :raw_string_literal_ending do
|
|
160
|
+
rule %r/#/ do
|
|
161
|
+
@delimiter += '#'
|
|
162
|
+
|
|
163
|
+
if @currentRawLevel > 1
|
|
164
|
+
@currentRawLevel -= 1
|
|
165
|
+
else
|
|
166
|
+
token Str::Delimiter, @delimiter
|
|
167
|
+
pop!
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
rule %r/[^#]/ do
|
|
172
|
+
token Str, @delimiter
|
|
173
|
+
token Str
|
|
174
|
+
goto :string_literal
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
rule %r/\n/ do
|
|
178
|
+
if @multiline
|
|
179
|
+
token Str, @delimiter
|
|
180
|
+
token Str
|
|
181
|
+
goto :string_literal
|
|
182
|
+
else
|
|
183
|
+
token Error
|
|
184
|
+
pop!
|
|
185
|
+
end
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
state :interpolation do # TODO
|
|
190
|
+
rule %r/[^\{\}]+/, Str::Interpol
|
|
191
|
+
rule %r/\{/, Str::Interpol, :interpolation
|
|
192
|
+
rule %r/\}/, Str::Interpol, :pop!
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
state :escape do
|
|
196
|
+
rule %r/0|\\|t|n|r|"|'|\$/, Str::Escape, :pop!
|
|
197
|
+
rule %r/u\{[0-9a-fA-F]{1,8}\}/, Str::Escape, :pop!
|
|
18
198
|
end
|
|
19
199
|
end
|
|
20
200
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: juicelang-theme
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Josef Zoller
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-09
|
|
11
|
+
date: 2022-11-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|