slim 4.1.0 → 5.2.1
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/.github/workflows/test.yml +107 -0
- data/.yardopts +1 -1
- data/CHANGES +44 -8
- data/Gemfile +18 -45
- data/LICENSE +1 -1
- data/README.jp.md +28 -41
- data/README.md +66 -43
- data/Rakefile +2 -9
- data/doc/jp/translator.md +1 -1
- data/doc/logic_less.md +1 -1
- data/doc/translator.md +1 -1
- data/lib/slim/code_attributes.rb +2 -1
- data/lib/slim/command.rb +2 -8
- data/lib/slim/controls.rb +1 -0
- data/lib/slim/do_inserter.rb +4 -3
- data/lib/slim/embedded.rb +17 -17
- data/lib/slim/end_inserter.rb +3 -2
- data/lib/slim/engine.rb +3 -0
- data/lib/slim/erb_converter.rb +1 -0
- data/lib/slim/filter.rb +1 -0
- data/lib/slim/grammar.rb +1 -0
- data/lib/slim/include.rb +1 -0
- data/lib/slim/interpolation.rb +1 -0
- data/lib/slim/logic_less/context.rb +6 -7
- data/lib/slim/logic_less/filter.rb +1 -0
- data/lib/slim/logic_less.rb +1 -0
- data/lib/slim/parser.rb +26 -39
- data/lib/slim/railtie.rb +19 -0
- data/lib/slim/smart/escaper.rb +1 -1
- data/lib/slim/smart/filter.rb +3 -2
- data/lib/slim/smart/parser.rb +4 -3
- data/lib/slim/smart.rb +1 -0
- data/lib/slim/splat/builder.rb +16 -8
- data/lib/slim/splat/filter.rb +6 -4
- data/lib/slim/template.rb +1 -14
- data/lib/slim/translator.rb +4 -3
- data/lib/slim/version.rb +2 -1
- data/lib/slim.rb +2 -0
- data/slim.gemspec +14 -5
- data/test/core/helper.rb +3 -11
- data/test/core/test_code_evaluation.rb +1 -0
- data/test/core/test_code_structure.rb +17 -0
- data/test/core/test_commands.rb +19 -22
- data/test/core/test_embedded_engines.rb +18 -14
- data/test/core/test_encoding.rb +2 -2
- data/test/core/test_erb_converter.rb +4 -6
- data/test/core/test_html_attributes.rb +8 -0
- data/test/core/test_html_structure.rb +54 -0
- data/test/core/test_pretty.rb +4 -7
- data/test/core/test_ruby_errors.rb +19 -0
- data/test/literate/TESTS.md +72 -22
- data/test/literate/helper.rb +1 -1
- data/test/literate/run.rb +3 -3
- data/test/logic_less/test_logic_less.rb +15 -0
- data/test/rails/app/controllers/slim_controller.rb +7 -1
- data/test/rails/app/views/layouts/application.html+testvariant.slim +10 -0
- data/test/rails/app/views/slim/attributes.html.slim +3 -0
- data/test/rails/app/views/slim/splat_with_delimiter.slim +1 -0
- data/test/rails/config/application.rb +1 -18
- data/test/rails/test/test_slim.rb +24 -12
- data/test/sinatra/helper.rb +0 -2
- metadata +27 -37
- data/.travis.yml +0 -38
- data/benchmarks/context.rb +0 -11
- data/benchmarks/profile-parser.rb +0 -10
- data/benchmarks/profile-render.rb +0 -12
- data/benchmarks/run-benchmarks.rb +0 -120
- data/benchmarks/run-diffbench.rb +0 -21
- data/benchmarks/view.erb +0 -25
- data/benchmarks/view.haml +0 -20
- data/benchmarks/view.slim +0 -19
- data/test/rails/config/initializers/secret_token.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '085658b8d4677686a978750dd41c27103fce119ea347f2678ab614e1ac0846c4'
|
4
|
+
data.tar.gz: 17f0fda92a470e970e7530a6bcb55c761885a42fb0dcd4a5043fd833a454f1ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35c1bcb1e6da5dfd567587f977fb08126196056ee029dd4de0126539606012056bd34daa36e0afb8a62af0794a11b86667176ecd47500f6c62b5fb61d24beb9d
|
7
|
+
data.tar.gz: 821a4300dba1555cd80a099274450c2ad51d36982c609f89182e62ec3e02cb16c0ba7b2f6bbe9183bc588ac90a824cea5753718ff55add9afbe21d494e6d97a2
|
@@ -0,0 +1,107 @@
|
|
1
|
+
name: test
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
paths-ignore:
|
5
|
+
- '**.md'
|
6
|
+
pull_request:
|
7
|
+
paths-ignore:
|
8
|
+
- '**.md'
|
9
|
+
schedule:
|
10
|
+
- cron: "0 15 * * 0"
|
11
|
+
jobs:
|
12
|
+
basic:
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
strategy:
|
15
|
+
fail-fast: false
|
16
|
+
matrix:
|
17
|
+
ruby: ['2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3']
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v4
|
20
|
+
- name: Set up Ruby
|
21
|
+
uses: ruby/setup-ruby@v1
|
22
|
+
with:
|
23
|
+
ruby-version: ${{ matrix.ruby }}
|
24
|
+
- run: bundle update && bundle exec rake test
|
25
|
+
- run: bundle update && bundle exec rake test:sinatra
|
26
|
+
name: "rake test:sinatra SINATRA=2.2.4"
|
27
|
+
env:
|
28
|
+
SINATRA: 2.2.4
|
29
|
+
- run: bundle update && bundle exec rake test:sinatra
|
30
|
+
name: "rake test:sinatra SINATRA=3.0.6"
|
31
|
+
if: ${{ matrix.ruby != '2.5' }}
|
32
|
+
env:
|
33
|
+
SINATRA: 3.0.6
|
34
|
+
- run: bundle update && bundle exec rake test:sinatra
|
35
|
+
name: "rake test:sinatra SINATRA=3.1.0"
|
36
|
+
if: ${{ matrix.ruby != '2.5' }}
|
37
|
+
env:
|
38
|
+
SINATRA: 3.1.0
|
39
|
+
- run: bundle update && bundle exec rake test:sinatra
|
40
|
+
name: "rake test:sinatra SINATRA=3.2.0"
|
41
|
+
if: ${{ matrix.ruby != '2.5' }}
|
42
|
+
env:
|
43
|
+
SINATRA: 3.2.0
|
44
|
+
- run: bundle update && bundle exec rake test:sinatra
|
45
|
+
name: "rake test:sinatra SINATRA=4.0.0"
|
46
|
+
if: ${{ matrix.ruby != '2.5' && matrix.ruby != '2.6' }}
|
47
|
+
env:
|
48
|
+
SINATRA: 4.0.0
|
49
|
+
- run: bundle update && bundle exec rake test:sinatra
|
50
|
+
name: "rake test:sinatra SINATRA=main"
|
51
|
+
if: ${{ matrix.ruby != '2.5' && matrix.ruby != '2.6' }}
|
52
|
+
env:
|
53
|
+
SINATRA: main
|
54
|
+
rails-5:
|
55
|
+
runs-on: ubuntu-latest
|
56
|
+
strategy:
|
57
|
+
fail-fast: false
|
58
|
+
steps:
|
59
|
+
- uses: actions/checkout@v4
|
60
|
+
- name: Set up Ruby
|
61
|
+
uses: ruby/setup-ruby@v1
|
62
|
+
with:
|
63
|
+
ruby-version: 2.7
|
64
|
+
- run: bundle update && bundle exec rake test:rails
|
65
|
+
name: "rake test:rails RAILS=5.2.8"
|
66
|
+
env:
|
67
|
+
RAILS: 5.2.8
|
68
|
+
rails-6:
|
69
|
+
runs-on: ubuntu-latest
|
70
|
+
strategy:
|
71
|
+
fail-fast: false
|
72
|
+
steps:
|
73
|
+
- uses: actions/checkout@v4
|
74
|
+
- name: Set up Ruby
|
75
|
+
uses: ruby/setup-ruby@v1
|
76
|
+
with:
|
77
|
+
ruby-version: 2.7
|
78
|
+
- run: bundle update && bundle exec rake test:rails
|
79
|
+
name: "rake test:rails RAILS=6.0.6"
|
80
|
+
env:
|
81
|
+
RAILS: 6.0.6
|
82
|
+
- run: bundle update && bundle exec rake test:rails
|
83
|
+
name: "rake test:rails RAILS=6.1.7"
|
84
|
+
env:
|
85
|
+
RAILS: 6.1.7
|
86
|
+
rails-7:
|
87
|
+
runs-on: ubuntu-latest
|
88
|
+
strategy:
|
89
|
+
fail-fast: false
|
90
|
+
steps:
|
91
|
+
- uses: actions/checkout@v4
|
92
|
+
- name: Set up Ruby
|
93
|
+
uses: ruby/setup-ruby@v1
|
94
|
+
with:
|
95
|
+
ruby-version: 3.3
|
96
|
+
- run: bundle update && bundle exec rake test:rails
|
97
|
+
name: "rake test:rails RAILS=7.0.8"
|
98
|
+
env:
|
99
|
+
RAILS: 7.0.8
|
100
|
+
- run: bundle update && bundle exec rake test:rails
|
101
|
+
name: "rake test:rails RAILS=7.1.3"
|
102
|
+
env:
|
103
|
+
RAILS: 7.1.3
|
104
|
+
- run: bundle update && bundle exec rake test:rails
|
105
|
+
name: "rake test:rails RAILS=main"
|
106
|
+
env:
|
107
|
+
RAILS: main
|
data/.yardopts
CHANGED
data/CHANGES
CHANGED
@@ -1,3 +1,39 @@
|
|
1
|
+
5.2.1 (2024-01-20)
|
2
|
+
|
3
|
+
* Support Ruby 3.3
|
4
|
+
* Update Gem metadata
|
5
|
+
|
6
|
+
5.2.0 (2023-11-11)
|
7
|
+
|
8
|
+
* Fix logic less bug - #783
|
9
|
+
* Support Rails 7.1 - #936
|
10
|
+
* Fix splat arguments on Rails 7.1 - #942
|
11
|
+
|
12
|
+
5.1.1 (2023-05-16)
|
13
|
+
|
14
|
+
* Support lambda functions as shortcuts - #677 #813 #903
|
15
|
+
* Support --enable-frozen-string-literal - #851
|
16
|
+
|
17
|
+
5.1.0 (2023-03-06)
|
18
|
+
|
19
|
+
* Allow whitespace markers for verbatim text: `|<`, `|>`, and `|<>` - #912
|
20
|
+
* Do not swallow single quote after output line indicator - #911
|
21
|
+
* Support Tilt 2.1.0 - #910
|
22
|
+
* Fix Railtie load error - #904
|
23
|
+
* Fix attribute parsing with square brackets - #796
|
24
|
+
|
25
|
+
5.0.0 (2023-01-23)
|
26
|
+
|
27
|
+
* Fix markdown interpolation #773
|
28
|
+
* Support case/in #884
|
29
|
+
* Extract slim/railtie #850
|
30
|
+
* css: doesn't add type='text/css' anymore #828
|
31
|
+
* Remove deprecated whitespace syntax =' etc
|
32
|
+
* Add support for annotate_rendered_view_with_filenames #867, #878, #901
|
33
|
+
* Remove deprecated syntax
|
34
|
+
* Add option to hyphenate underscore attributes - #852
|
35
|
+
* Update CI/CD testing and dependencies
|
36
|
+
|
1
37
|
4.1.0 (2020-05-07)
|
2
38
|
* Add support for Tailwind CSS - #841
|
3
39
|
* Update dependencies and testing
|
@@ -120,10 +156,10 @@
|
|
120
156
|
div id=('obj' + name) data={:a => 1, :b => 2} class=['alpha', 'beta']
|
121
157
|
* Quoted attributes are escaped by default
|
122
158
|
Old:
|
123
|
-
a href='http://slim-
|
159
|
+
a href='http://github.com/slim-template/slim/?a=1&b=2'
|
124
160
|
New:
|
125
|
-
a href='http://slim-
|
126
|
-
a href=='http://slim-
|
161
|
+
a href='http://github.com/slim-template/slim/?a=1&b=2'
|
162
|
+
a href=='http://github.com/slim-template/slim/?a=1&b=2'
|
127
163
|
You can always disable escaping completly by using :disable_escape if you don't want to write '=='.
|
128
164
|
* Added hyphenation support for data attributes (Option :hyphen_attrs)
|
129
165
|
Example: div data={key1_key2: 2, key1: {key3: 3}} will render as '<div data-key1-key2="2" data-key1-key3="3"></div>'
|
@@ -164,11 +200,11 @@
|
|
164
200
|
* Deprecated :escape_quoted_attrs (done by default in 2.0)
|
165
201
|
* Warn if quoted attributes might be double escaped in Slim 2.0.0
|
166
202
|
Old syntax:
|
167
|
-
a href='http://slim-
|
168
|
-
a href=='http://slim-
|
203
|
+
a href='http://github.com/slim-template/slim/?a=1&b=2'
|
204
|
+
a href=='http://github.com/slim-template/slim/?a=1&b=2'
|
169
205
|
New syntax in 2.0.0:
|
170
|
-
a href='http://slim-
|
171
|
-
a href=='http://slim-
|
206
|
+
a href='http://github.com/slim-template/slim/?a=1&b=2'
|
207
|
+
a href=='http://github.com/slim-template/slim/?a=1&b=2'
|
172
208
|
* Improved pretty printing (Issue #202)
|
173
209
|
* Renamed Slim::EmbeddedEngine to Slim::Embedded (Old constant still available until 2.0)
|
174
210
|
* Renamed Slim::ControlStructures to Slim::Controls
|
@@ -218,7 +254,7 @@
|
|
218
254
|
* BACKWARD INCOMPATIBLE CHANGE - Dynamic attributes which return empty value "" are not removed anymore
|
219
255
|
(this means "" is now interpreted as true), whereas false and nil are still removed.
|
220
256
|
This corresponds to the definition of boolean attributes in XHTML and HTML5.
|
221
|
-
* Deprecated option :remove_empty_attrs
|
257
|
+
* Deprecated option :remove_empty_attrs
|
222
258
|
* Add option :escape_quoted_attrs to escape quoted attributes, use == if you don't want that.
|
223
259
|
The default is false to stay backward compatible.
|
224
260
|
* Use Temple::FilterError exception
|
data/Gemfile
CHANGED
@@ -2,69 +2,42 @@ source 'https://rubygems.org/'
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
end
|
9
|
-
|
10
|
-
group :perf do
|
11
|
-
gem 'benchmark-ips'
|
12
|
-
gem 'erubis'
|
13
|
-
gem 'haml'
|
14
|
-
end
|
15
|
-
|
16
|
-
if ENV['TRAVIS']
|
17
|
-
gem 'rails-controller-testing'
|
18
|
-
end
|
5
|
+
gem 'minitest', '~> 5.15'
|
6
|
+
gem 'rake', '~> 13.0'
|
7
|
+
gem 'kramdown', '~> 2.4'
|
19
8
|
|
20
|
-
if
|
21
|
-
gem 'temple',
|
9
|
+
if ENV['TEMPLE'] && ENV['TEMPLE'] != 'master'
|
10
|
+
gem 'temple', "= #{ENV['TEMPLE']}"
|
11
|
+
else
|
12
|
+
# Test against temple master by default
|
13
|
+
gem 'temple', github: 'judofyr/temple'
|
22
14
|
end
|
23
15
|
|
24
16
|
if ENV['TILT']
|
25
17
|
if ENV['TILT'] == 'master'
|
26
|
-
gem 'tilt', :
|
18
|
+
gem 'tilt', github: 'jeremyevans/tilt'
|
27
19
|
else
|
28
20
|
gem 'tilt', "= #{ENV['TILT']}"
|
29
21
|
end
|
30
22
|
end
|
31
23
|
|
32
24
|
if ENV['RAILS']
|
25
|
+
gem 'rails-controller-testing'
|
26
|
+
|
33
27
|
# we need some smarter test logic for the different Rails versions
|
34
|
-
if ENV['RAILS'] == '
|
35
|
-
gem 'rails', :
|
28
|
+
if ENV['RAILS'] == 'main'
|
29
|
+
gem 'rails', github: 'rails/rails', branch: 'main'
|
36
30
|
else
|
37
31
|
gem 'rails', "= #{ENV['RAILS']}"
|
38
32
|
end
|
39
|
-
|
40
|
-
gem 'slim-rails', require: false
|
41
|
-
end
|
42
|
-
|
43
|
-
gem 'test-unit', '~> 3.3', '>= 3.3.5'
|
44
|
-
gem 'minitest', '~> 5.14'
|
45
|
-
|
46
|
-
if RUBY_ENGINE == 'rbx' && !ENV['TRAVIS']
|
47
|
-
gem 'psych'
|
48
33
|
end
|
49
34
|
|
50
35
|
if ENV['SINATRA']
|
51
|
-
|
52
|
-
|
36
|
+
gem 'rack-test'
|
37
|
+
|
38
|
+
if ENV['SINATRA'] == 'main'
|
39
|
+
gem 'sinatra', github: 'sinatra/sinatra'
|
53
40
|
else
|
54
|
-
gem 'sinatra',
|
41
|
+
gem 'sinatra', "= #{ENV['SINATRA']}"
|
55
42
|
end
|
56
43
|
end
|
57
|
-
|
58
|
-
gem 'rake', '~> 13.0', '>= 13.0.1'
|
59
|
-
gem 'sassc', '~> 2.2', '>= 2.2.1'
|
60
|
-
gem 'kramdown', '~> 2.1'
|
61
|
-
|
62
|
-
if ENV['TASK'] == 'bench'
|
63
|
-
gem 'benchmark-ips'
|
64
|
-
gem 'erubis'
|
65
|
-
gem 'haml'
|
66
|
-
end
|
67
|
-
|
68
|
-
if ENV['CODECLIMATE_REPO_TOKEN']
|
69
|
-
gem 'codeclimate-test-reporter'
|
70
|
-
end
|
data/LICENSE
CHANGED
data/README.jp.md
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# Slim
|
2
2
|
|
3
|
-
[](http://rubygems.org/gems/slim)
|
4
|
-
|
3
|
+
[](http://rubygems.org/gems/slim)
|
4
|
+

|
5
|
+
[](https://github.com/sponsors/slim-template)
|
5
6
|
|
6
7
|
Slim は 不可解にならない程度に view の構文を本質的な部品まで減らすことを目指したテンプレート言語です。標準的な HTML テンプレートからどれだけのものを減らせるか、検証するところから始まりました。(<, >, 閉じタグなど) 多くの人が Slim に興味を持ったことで, 機能的で柔軟な構文に成長しました。
|
7
8
|
|
@@ -28,26 +29,25 @@ Slim は 不可解にならない程度に view の構文を本質的な部品
|
|
28
29
|
|
29
30
|
## リンク
|
30
31
|
|
31
|
-
* ホームページ: <
|
32
|
-
* ソース: <
|
33
|
-
* バグ: <
|
34
|
-
* リスト: <http://groups.google.com/group/slim-template>
|
32
|
+
* ホームページ: <https://slim-template.github.io>
|
33
|
+
* ソース: <https://github.com/slim-template/slim>
|
34
|
+
* バグ: <https://github.com/slim-template/slim/issues>
|
35
35
|
* API ドキュメント:
|
36
|
-
* 最新の Gem: <
|
37
|
-
* GitHub
|
36
|
+
* 最新の Gem: <https://rubydoc.info/gems/slim/frames>
|
37
|
+
* GitHub main: <https://rubydoc.info/github/slim-template/slim/main/frames>
|
38
38
|
|
39
39
|
## イントロダクション
|
40
40
|
|
41
41
|
### Slim とは?
|
42
42
|
|
43
|
-
Slim は
|
44
|
-
私たちは継続的インテグレーションを採用しています。(
|
43
|
+
Slim は __Rails5 以降__ に対応した高速, 軽量なテンプレートエンジンです。主要な Ruby の実装全てでしっかりテストされています。
|
44
|
+
私たちは継続的インテグレーションを採用しています。(github actions)
|
45
45
|
|
46
46
|
Slim の核となる構文は1つの考えによって導かれています: "この動作を行うために最低限必要なものは何か。"
|
47
47
|
|
48
48
|
多くの人々の Slim への貢献によって, 彼らが使う [Haml](https://github.com/haml/haml) や [Jade](https://github.com/visionmedia/jade) の影響を受け構文の追加が行われています。 Slim の開発チームは美は見る人の目の中にあることを分っているので、こういった追加にオープンです。
|
49
49
|
|
50
|
-
Slim は 構文解析/コンパイルに [Temple](https://github.com/judofyr/temple) を使い [Tilt](https://github.com/
|
50
|
+
Slim は 構文解析/コンパイルに [Temple](https://github.com/judofyr/temple) を使い [Tilt](https://github.com/jeremyevans/tilt) に組み込まれます。これにより [Sinatra](https://github.com/sinatra/sinatra) やプレーンな [Rack](https://github.com/rack/rack) とも一緒に使えます。
|
51
51
|
|
52
52
|
Temple のアーキテクチャはとても柔軟で, モンキーパッチなしで構文解析とコンパイルのプロセスの拡張が可能です。これはロジックレスのプラグインや I18n が提供する翻訳プラグインに
|
53
53
|
使用されます。ロジックレスモードでは HTML をビルドするために Slim の構文を使いたいが, テンプレートの中で Ruby を書きたくない場合にも Slim を使うことができます。
|
@@ -59,7 +59,6 @@ Temple のアーキテクチャはとても柔軟で, モンキーパッチな
|
|
59
59
|
* Slim のアーキテクチャは非常に柔軟なので, 構文の拡張やプラグインを書くことができます。
|
60
60
|
|
61
61
|
___そう, Slim は速い!___ Slim は開発当初からパフォーマンスに注意して開発されてきました。
|
62
|
-
ベンチマークはコミット毎に <http://travis-ci.org/slim-template/slim> で取られています。
|
63
62
|
この数字が信じられませんか? それは仕方ないことです。是非 rake タスクを使って自分でベンチマークを取ってみてください!
|
64
63
|
|
65
64
|
私たちの考えでは, あなたは Slim の機能と構文を使うべきです。Slim はあなたのアプリケーションのパフォーマンスに悪影響を与えないことを保証します。
|
@@ -408,7 +407,7 @@ body
|
|
408
407
|
タグの後に直接属性を書きます。通常の属性記述にはダブルクォート `"` か シングルクォート `'` を使わなければなりません (引用符で囲まれた属性)。
|
409
408
|
|
410
409
|
~~~ slim
|
411
|
-
a href="
|
410
|
+
a href="https://slim-template.github.io" title='Slim のホームページ' Slim のホームページへ
|
412
411
|
~~~
|
413
412
|
|
414
413
|
引用符で囲まれたテキストを属性として使えます。
|
@@ -444,7 +443,7 @@ h2 [ id = "tagline" ] = page_tagline
|
|
444
443
|
例:
|
445
444
|
|
446
445
|
~~~ slim
|
447
|
-
a href="
|
446
|
+
a href="https://slim-template.github.io" title='Slim のホームページ' Slim のホームページへ
|
448
447
|
~~~
|
449
448
|
|
450
449
|
引用符で囲まれたテキストを属性として使えます:
|
@@ -509,13 +508,13 @@ input type="text" disabled=nil
|
|
509
508
|
class 属性はスペース区切りで結合されます。
|
510
509
|
|
511
510
|
~~~ slim
|
512
|
-
a.menu class="highlight" href="
|
511
|
+
a.menu class="highlight" href="https://slim-template.github.io/" slim-template.github.io
|
513
512
|
~~~
|
514
513
|
|
515
514
|
レンダリング結果:
|
516
515
|
|
517
516
|
~~~ html
|
518
|
-
<a class="menu highlight" href="
|
517
|
+
<a class="menu highlight" href="https://slim-template.github.io/">slim-template.github.io</a>
|
519
518
|
~~~
|
520
519
|
|
521
520
|
また, `Array` を属性値として使うと、配列要素が区切り文字で結合されます。
|
@@ -568,7 +567,7 @@ div class="first second third"
|
|
568
567
|
~~~ slim
|
569
568
|
ruby:
|
570
569
|
def a_unless_current
|
571
|
-
@page_current ? {tag: 'span'} : {tag: 'a', href: '
|
570
|
+
@page_current ? {tag: 'span'} : {tag: 'a', href: 'https://slim-template.github.io/'}
|
572
571
|
end
|
573
572
|
- @page_current = true
|
574
573
|
*a_unless_current リンク
|
@@ -579,7 +578,7 @@ ruby:
|
|
579
578
|
レンダリング結果:
|
580
579
|
|
581
580
|
~~~ html
|
582
|
-
<span>リンク</span><a href="
|
581
|
+
<span>リンク</span><a href="https://slim-template.github.io/">リンク</a>
|
583
582
|
~~~
|
584
583
|
|
585
584
|
### ショートカット
|
@@ -793,7 +792,7 @@ end
|
|
793
792
|
そして, 次のように使用出来ます。
|
794
793
|
|
795
794
|
~~~ slim
|
796
|
-
- links = { '
|
795
|
+
- links = { 'https://slim-template.github.io' => 'The Slim Template Language' }
|
797
796
|
= capture link_list=:link_list, links do |url, text|
|
798
797
|
a href=url = text
|
799
798
|
~~~
|
@@ -842,7 +841,7 @@ body
|
|
842
841
|
|
843
842
|
## 埋め込みエンジン (Markdown, ...)
|
844
843
|
|
845
|
-
[Tilt](https://github.com/
|
844
|
+
[Tilt](https://github.com/jeremyevans/tilt)のおかげで, Slim は他のテンプレートエンジンの埋め込みに見事に対応しています。
|
846
845
|
|
847
846
|
例:
|
848
847
|
|
@@ -865,8 +864,8 @@ p: markdown: Tag with **inline** markdown!
|
|
865
864
|
| ruby: | なし | ショートカット | Ruby コードを埋め込むショートカット |
|
866
865
|
| javascript: | なし | ショートカット | javascript コードを埋め込み、script タグで囲む |
|
867
866
|
| css: | なし | ショートカット | css コードを埋め込み、style タグで囲む |
|
868
|
-
| sass: | sass | コンパイル時 | sass コードを埋め込み、style タグで囲む |
|
869
|
-
| scss: | sass | コンパイル時 | scss コードを埋め込み、style タグで囲む |
|
867
|
+
| sass: | sass-embedded または sassc または sass | コンパイル時 | sass コードを埋め込み、style タグで囲む |
|
868
|
+
| scss: | sass-embedded または sassc または sass | コンパイル時 | scss コードを埋め込み、style タグで囲む |
|
870
869
|
| less: | less | コンパイル時 | less コードを埋め込み、style タグで囲む |
|
871
870
|
| coffee: | coffee-script | コンパイル時 | CoffeeScript をコンパイルし、 script タグで囲む |
|
872
871
|
| markdown: | redcarpet/rdiscount/kramdown | コンパイル時 + 展開 | Markdown をコンパイルし、テキスト中の # \{variables} を展開 |
|
@@ -905,7 +904,7 @@ scss class="myClass":
|
|
905
904
|
## Slim の設定
|
906
905
|
|
907
906
|
Slim とその基礎となる [Temple](https://github.com/judofyr/temple) は非常に柔軟に設定可能です。
|
908
|
-
Slim を設定する方法はコンパイル機構に少し依存します。(Rails や [Tilt](https://github.com/
|
907
|
+
Slim を設定する方法はコンパイル機構に少し依存します。(Rails や [Tilt](https://github.com/jeremyevans/tilt))。デフォルトオプションの設定は `Slim::Engine` クラスでいつでも可能です。Rails の 環境設定ファイルで設定可能です。例えば, config/environments/developers.rb で設定したいとします:
|
909
908
|
|
910
909
|
### デフォルトオプション
|
911
910
|
|
@@ -1020,7 +1019,7 @@ Slim はロジックレスモードと I18n, インクルードプラグイン
|
|
1020
1019
|
|
1021
1020
|
### Tilt
|
1022
1021
|
|
1023
|
-
Slim は生成されたコードをコンパイルするために [Tilt](https://github.com/
|
1022
|
+
Slim は生成されたコードをコンパイルするために [Tilt](https://github.com/jeremyevans/tilt) を使用します。Slim テンプレートを直接使いたい場合, Tilt インターフェイスが使用できます。
|
1024
1023
|
|
1025
1024
|
~~~ ruby
|
1026
1025
|
Tilt.new['template.slim'].render(scope)
|
@@ -1185,8 +1184,6 @@ markdown:
|
|
1185
1184
|
rake bench slow=1 iterations=1000
|
1186
1185
|
~~~
|
1187
1186
|
|
1188
|
-
私たちはコミット毎に Travis-CI でベンチマークをとっています。最新のベンチマーク結果はこちらです: <http://travis-ci.org/slim-template/slim>
|
1189
|
-
|
1190
1187
|
### テストスイートと継続的インテグレーション
|
1191
1188
|
|
1192
1189
|
Slim は minitest ベースの拡張性のあるテストスイートを提供します。テストは 'rake test' または
|
@@ -1194,13 +1191,10 @@ rails のインテグレーションテストの場合 'rake test:rails' で実
|
|
1194
1191
|
|
1195
1192
|
私たちは現在 markdown ファイルで書かれ, 人間が読み書きしやすいテストを試しています: [TESTS.md](test/literate/TESTS.md)
|
1196
1193
|
|
1197
|
-
Travis-CI は継続的インテグレーションテストに利用されています: <http://travis-ci.org/slim-template/slim>
|
1198
|
-
|
1199
1194
|
Slim は主要な Ruby 実装全てで動作します:
|
1200
1195
|
|
1201
|
-
* Ruby 2.
|
1202
|
-
* JRuby
|
1203
|
-
* Rubinius 2.0
|
1196
|
+
* Ruby 2.5
|
1197
|
+
* JRuby
|
1204
1198
|
|
1205
1199
|
## 貢献
|
1206
1200
|
|
@@ -1212,7 +1206,7 @@ $ git clone git://github.com/slim-template/slim
|
|
1212
1206
|
|
1213
1207
|
魔法をかけた後 pull request を送ってください。私たちは pull request が大好きです!
|
1214
1208
|
|
1215
|
-
Ruby の 2.
|
1209
|
+
Ruby の 2.5.0 でテストをすることを覚えておいてください。
|
1216
1210
|
|
1217
1211
|
もしドキュメントの不足を見つけたら, README.md をアップデートして私たちを助けて下さい。Slim に割ける時間がないが, 私たちが知っておくべきことを見つけた場合には issue を送ってください。
|
1218
1212
|
|
@@ -1228,16 +1222,9 @@ Slim は [MIT license](http://www.opensource.org/licenses/MIT) に基づいて
|
|
1228
1222
|
|
1229
1223
|
## 寄付と支援
|
1230
1224
|
|
1231
|
-
このプロジェクトをサポートしたい場合,
|
1232
|
-
|
1233
|
-
[](https://www.gittip.com/min4d/ "Donate weekly to this project using Gittip")
|
1234
|
-
[](https://flattr.com/submit/auto?user_id=min4d&url=http%3A%2F%2Fslim-lang.org%2F "Donate monthly to this project using Flattr")
|
1235
|
-
|
1236
|
-
今のところ, 寄付はホスティング費用 (ドメインなど) に当てられる予定です。
|
1237
|
-
|
1238
|
-
## 議論
|
1225
|
+
このプロジェクトをサポートしたい場合, GitHub sponsors のページを見てください。
|
1239
1226
|
|
1240
|
-
|
1227
|
+
[](https://github.com/sponsors/slim-template)
|
1241
1228
|
|
1242
1229
|
## 関連プロジェクト
|
1243
1230
|
|