haml 5.2.2 → 6.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +3 -0
- data/.github/workflows/test.yml +15 -15
- data/.gitignore +16 -16
- data/.yardopts +0 -3
- data/CHANGELOG.md +168 -4
- data/FAQ.md +1 -1
- data/Gemfile +21 -10
- data/MIT-LICENSE +1 -1
- data/README.md +22 -34
- data/REFERENCE.md +95 -159
- data/Rakefile +15 -82
- data/bin/bench +66 -0
- data/bin/console +11 -0
- data/bin/ruby +3 -0
- data/bin/setup +7 -0
- data/bin/stackprof +27 -0
- data/bin/test +24 -0
- data/exe/haml +6 -0
- data/haml.gemspec +34 -36
- data/lib/haml/ambles.rb +20 -0
- data/lib/haml/attribute_builder.rb +127 -184
- data/lib/haml/attribute_compiler.rb +90 -194
- data/lib/haml/attribute_parser.rb +92 -126
- data/lib/haml/cli.rb +154 -0
- data/lib/haml/compiler/children_compiler.rb +155 -0
- data/lib/haml/compiler/comment_compiler.rb +51 -0
- data/lib/haml/compiler/doctype_compiler.rb +52 -0
- data/lib/haml/compiler/script_compiler.rb +114 -0
- data/lib/haml/compiler/silent_script_compiler.rb +24 -0
- data/lib/haml/compiler/tag_compiler.rb +76 -0
- data/lib/haml/compiler.rb +63 -296
- data/lib/haml/dynamic_merger.rb +67 -0
- data/lib/haml/engine.rb +48 -227
- data/lib/haml/error.rb +5 -4
- data/lib/haml/escape.rb +13 -0
- data/lib/haml/escape_any.rb +21 -0
- data/lib/haml/filters/base.rb +12 -0
- data/lib/haml/filters/cdata.rb +20 -0
- data/lib/haml/filters/coffee.rb +17 -0
- data/lib/haml/filters/css.rb +33 -0
- data/lib/haml/filters/erb.rb +10 -0
- data/lib/haml/filters/escaped.rb +22 -0
- data/lib/haml/filters/javascript.rb +33 -0
- data/lib/haml/filters/less.rb +20 -0
- data/lib/haml/filters/markdown.rb +11 -0
- data/lib/haml/filters/plain.rb +29 -0
- data/lib/haml/filters/preserve.rb +22 -0
- data/lib/haml/filters/ruby.rb +10 -0
- data/lib/haml/filters/sass.rb +15 -0
- data/lib/haml/filters/scss.rb +15 -0
- data/lib/haml/filters/text_base.rb +25 -0
- data/lib/haml/filters/tilt_base.rb +59 -0
- data/lib/haml/filters.rb +54 -378
- data/lib/haml/force_escape.rb +29 -0
- data/lib/haml/helpers.rb +3 -697
- data/lib/haml/html.rb +22 -0
- data/lib/haml/identity.rb +13 -0
- data/lib/haml/object_ref.rb +35 -0
- data/lib/haml/parser.rb +158 -23
- data/lib/haml/rails_helpers.rb +53 -0
- data/lib/haml/rails_template.rb +62 -0
- data/lib/haml/railtie.rb +3 -46
- data/lib/haml/ruby_expression.rb +32 -0
- data/lib/haml/string_splitter.rb +140 -0
- data/lib/haml/template.rb +15 -34
- data/lib/haml/temple_line_counter.rb +2 -1
- data/lib/haml/util.rb +19 -15
- data/lib/haml/version.rb +1 -2
- data/lib/haml/whitespace.rb +8 -0
- data/lib/haml.rb +8 -20
- metadata +188 -50
- data/.gitmodules +0 -3
- data/TODO +0 -24
- data/benchmark.rb +0 -70
- data/bin/haml +0 -9
- data/lib/haml/.gitattributes +0 -1
- data/lib/haml/buffer.rb +0 -182
- data/lib/haml/escapable.rb +0 -77
- data/lib/haml/exec.rb +0 -347
- data/lib/haml/generator.rb +0 -42
- data/lib/haml/helpers/action_view_extensions.rb +0 -60
- data/lib/haml/helpers/action_view_mods.rb +0 -132
- data/lib/haml/helpers/action_view_xss_mods.rb +0 -60
- data/lib/haml/helpers/safe_erubi_template.rb +0 -20
- data/lib/haml/helpers/safe_erubis_template.rb +0 -33
- data/lib/haml/helpers/xss_mods.rb +0 -114
- data/lib/haml/options.rb +0 -273
- data/lib/haml/plugin.rb +0 -54
- data/lib/haml/sass_rails_filter.rb +0 -47
- data/lib/haml/template/options.rb +0 -27
- data/lib/haml/temple_engine.rb +0 -124
- data/yard/default/.gitignore +0 -1
- data/yard/default/fulldoc/html/css/common.sass +0 -15
- data/yard/default/layout/html/footer.erb +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8754d03da194f9c74e620887cbc29d3aa95d93651129ca33aa60dc72be08dd1
|
4
|
+
data.tar.gz: f4d26ea914200ac345926641d0d0d8ba36fb4b62a47600f63015d5c2d1dc8a11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eccf9fb6676267281b3c918425e93f07e8771c2f41e8481a08f327cb2ddbd5b53e07f3c9025f37c1abc977ad732d3b2f67d3023c4e1f356897bed03e3572ca20
|
7
|
+
data.tar.gz: 5ecd4d17716d5b0b4be7b57ebcfd28457f1b803cd376e37d4bcece2f30632e4e46d988eba1048e0c303a3599db5049b464e31854dda7f538bfe30565169769e9
|
data/.github/FUNDING.yml
ADDED
data/.github/workflows/test.yml
CHANGED
@@ -8,29 +8,29 @@ on:
|
|
8
8
|
- opened
|
9
9
|
- synchronize
|
10
10
|
- reopened
|
11
|
+
schedule:
|
12
|
+
- cron: "00 15 * * *"
|
11
13
|
jobs:
|
12
14
|
test:
|
13
|
-
name: 'Ruby: ${{ matrix.ruby }}, Rails: ${{ matrix.rails }}'
|
14
15
|
runs-on: ubuntu-latest
|
15
16
|
strategy:
|
16
17
|
fail-fast: false
|
17
18
|
matrix:
|
18
|
-
ruby:
|
19
|
-
|
19
|
+
ruby:
|
20
|
+
- '2.5'
|
21
|
+
- '2.6'
|
22
|
+
- '2.7'
|
23
|
+
- '3.0'
|
24
|
+
- '3.1'
|
25
|
+
- '3.2'
|
26
|
+
- jruby
|
27
|
+
- truffleruby-head
|
20
28
|
steps:
|
21
|
-
- uses: actions/checkout@
|
29
|
+
- uses: actions/checkout@v3
|
30
|
+
- run: sudo apt-get update && sudo apt-get install -y nodejs libxslt-dev # nodejs for execjs, libxslt for TruffleRuby nokogiri
|
22
31
|
- name: Set up Ruby
|
23
32
|
uses: ruby/setup-ruby@v1
|
24
33
|
with:
|
25
34
|
ruby-version: ${{ matrix.ruby }}
|
26
|
-
|
27
|
-
|
28
|
-
path: vendor/bundle
|
29
|
-
key: ${{ runner.os }}-${{ matrix.ruby }}-gems-${{ hashFiles('**/Gemfile.lock') }}
|
30
|
-
restore-keys: ${{ runner.os }}-gems-
|
31
|
-
- name: bundle install --gemfile=test/gemfiles/Gemfile.rails-${{matrix.rails}}.x
|
32
|
-
run: bundle config path vendor/bundle && bundle install -j$(nproc) --retry 3
|
33
|
-
- name: rake test
|
34
|
-
run: bundle exec rake test submodules
|
35
|
-
env:
|
36
|
-
RUBYOPT: "--enable-frozen-string-literal"
|
35
|
+
bundler-cache: true
|
36
|
+
- run: bundle exec rake test
|
data/.gitignore
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
/.
|
1
|
+
/.bundle/
|
2
2
|
/.yardoc
|
3
|
-
/
|
4
|
-
/
|
5
|
-
|
6
|
-
/
|
7
|
-
/
|
8
|
-
/
|
9
|
-
|
10
|
-
/
|
11
|
-
|
3
|
+
/Gemfile.lock
|
4
|
+
/_yardoc/
|
5
|
+
/.idea
|
6
|
+
/coverage/
|
7
|
+
/doc/
|
8
|
+
/pkg/
|
9
|
+
/spec/reports/
|
10
|
+
/tmp/
|
11
|
+
/haml/
|
12
12
|
.sass-cache
|
13
|
-
.rbenv-version
|
14
|
-
.rbx
|
15
13
|
.ruby-version
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
*.bundle
|
15
|
+
*.so
|
16
|
+
*.su
|
17
|
+
*.a
|
18
|
+
*.o
|
19
|
+
*.swp
|
data/.yardopts
CHANGED
@@ -7,10 +7,7 @@
|
|
7
7
|
--title "Haml Documentation"
|
8
8
|
--query 'object.type != :classvariable'
|
9
9
|
--query 'object.type != :constant || @api && @api.text == "public"'
|
10
|
-
--exclude lib/haml/plugin.rb
|
11
10
|
--exclude lib/haml/railtie.rb
|
12
|
-
--exclude lib/haml/helpers/action_view_mods.rb
|
13
|
-
--exclude lib/haml/helpers/xss_mods.rb
|
14
11
|
--hide-void-return
|
15
12
|
--protected
|
16
13
|
--no-private
|
data/CHANGELOG.md
CHANGED
@@ -1,12 +1,176 @@
|
|
1
1
|
# Haml Changelog
|
2
2
|
|
3
|
+
## 6.3.0
|
4
|
+
|
5
|
+
* Remove `Haml::RailsTemplate#default_format` that was added in v6.1.3 for Turbo [#1152](https://github.com/haml/haml/issues/1152), [#1154](https://github.com/haml/haml/issues/1154) ([discussion](https://github.com/haml/haml/pull/1144#issuecomment-1755088572))
|
6
|
+
* See [the reference](https://github.com/haml/haml/blob/v6.3.0/REFERENCE.md#turbo) for suggested alternatives.
|
7
|
+
|
8
|
+
## 6.2.5
|
9
|
+
|
10
|
+
* Deprecate `Haml::RailsTemplate#default_format` that was added in v6.1.3 for Turbo ([discussion](https://github.com/haml/haml/pull/1144#issuecomment-1755088572))
|
11
|
+
* See [the reference](https://github.com/haml/haml/blob/v6.2.5/REFERENCE.md#turbo) for suggested alternatives.
|
12
|
+
|
13
|
+
## 6.2.4
|
14
|
+
|
15
|
+
* Support case-in statement [#1155](https://github.com/haml/haml/issues/1155)
|
16
|
+
|
17
|
+
## 6.2.3
|
18
|
+
|
19
|
+
* Resurrect RDFa doctype support [#1147](https://github.com/haml/haml/issues/1147)
|
20
|
+
|
21
|
+
## 6.2.2
|
22
|
+
|
23
|
+
* Allow adding custom attributes to `Haml::BOOLEAN_ATTRIBUTES` [#1148](https://github.com/haml/haml/issues/1148)
|
24
|
+
* Consider `aria-xxx: false` as a boolean attribute
|
25
|
+
|
26
|
+
## 6.2.1
|
27
|
+
|
28
|
+
* Fix v6.2.0's bug in rendering dynamic `aria` attributes [#1149](https://github.com/haml/haml/issues/1149)
|
29
|
+
|
30
|
+
## 6.2.0
|
31
|
+
|
32
|
+
* Drop the C extension [#1146](https://github.com/haml/haml/issues/1146)
|
33
|
+
|
34
|
+
## 6.1.4
|
35
|
+
|
36
|
+
* Let `Haml::Util.escape_html` use `ERB::Escape` if available [#1145](https://github.com/haml/haml/issues/1145)
|
37
|
+
|
38
|
+
## 6.1.3
|
39
|
+
|
40
|
+
* Add `Haml::RailsTemplate#default_format` for Turbo compatibility [#1144](https://github.com/haml/haml/issues/1144)
|
41
|
+
|
42
|
+
## 6.1.2
|
43
|
+
|
44
|
+
* Use the rails template path as `filename` [#1140](https://github.com/haml/haml/issues/1140)
|
45
|
+
|
46
|
+
## 6.1.1
|
47
|
+
|
48
|
+
* Fix an empty output of Ruby 3.1's Hash shorthand syntax [#1083](https://github.com/haml/haml/issues/1083)
|
49
|
+
|
50
|
+
## 6.1.0
|
51
|
+
|
52
|
+
* Optimize away a `to_s` call on `=` scripts
|
53
|
+
* Fix escaping for objects that return an `html_safe` string on `to_s` [#1117](https://github.com/haml/haml/issues/1117)
|
54
|
+
|
55
|
+
## 6.0.12
|
56
|
+
|
57
|
+
* Fix a whitespace removal with `>` and an `if`-`else` statement [#1114](https://github.com/haml/haml/issues/1114)
|
58
|
+
|
59
|
+
## 6.0.11
|
60
|
+
|
61
|
+
* Fix a whitespace removal with `>` and an `if` statement [#1114](https://github.com/haml/haml/issues/1114)
|
62
|
+
|
63
|
+
## 6.0.10
|
64
|
+
|
65
|
+
* Evaluate :erb filter in the template context like Haml 5
|
66
|
+
|
67
|
+
## 6.0.9
|
68
|
+
|
69
|
+
* Support sass-embedded [#1112](https://github.com/haml/haml/issues/1112)
|
70
|
+
|
71
|
+
## 6.0.8
|
72
|
+
|
73
|
+
* Support interpolation in HTML comments, which has not been working since 6.0.0
|
74
|
+
[#1107](https://github.com/haml/haml/issues/1107)
|
75
|
+
|
76
|
+
## 6.0.7
|
77
|
+
|
78
|
+
* `Haml::Engine` and `Haml::Template` use StringBuffer instead of ArrayBuffer
|
79
|
+
* It seems more performant in many cases with recent Ruby versions.
|
80
|
+
* `Haml::RailsTemplate` is not affected.
|
81
|
+
|
82
|
+
## 6.0.6
|
83
|
+
|
84
|
+
* Prevent CRuby from accidentally using the Ruby implementation fallback
|
85
|
+
* Reversing what v6.0.3 and v6.0.4 did, but still supporting Wasm.
|
86
|
+
|
87
|
+
## 6.0.5
|
88
|
+
|
89
|
+
* Resurrect `#haml_object_ref` support in an object reference [#1097](https://github.com/haml/haml/issues/1097)
|
90
|
+
* This was removed in 6.0.0, and added back in this version.
|
91
|
+
* Stop warning `remove_whitespace: true` option.
|
92
|
+
|
93
|
+
## 6.0.4
|
94
|
+
|
95
|
+
Released on October 2, 2022
|
96
|
+
([diff](https://github.com/haml/haml/compare/v6.0.3...v6.0.4)).
|
97
|
+
|
98
|
+
* Fix a parse failure of `%` in attributes [#1096](https://github.com/haml/haml/issues/1096)
|
99
|
+
* Add another fallback from C to Ruby for Wasm.
|
100
|
+
|
101
|
+
## 6.0.3
|
102
|
+
|
103
|
+
Released on September 28, 2022
|
104
|
+
([diff](https://github.com/haml/haml/compare/v6.0.2...v6.0.3)).
|
105
|
+
|
106
|
+
* For Wasm, fallback to Ruby when C extension is not available.
|
107
|
+
|
108
|
+
## 6.0.2
|
109
|
+
|
110
|
+
Released on September 28, 2022
|
111
|
+
([diff](https://github.com/haml/haml/compare/v6.0.1...v6.0.2)).
|
112
|
+
|
113
|
+
* Unescape HTML-safe arguments for `surround`, `succeed`, and `precede` on Rails
|
114
|
+
[#1088](https://github.com/haml/haml/issues/1088)
|
115
|
+
|
116
|
+
## 6.0.1
|
117
|
+
|
118
|
+
Released on September 23, 2022
|
119
|
+
([diff](https://github.com/haml/haml/compare/v6.0.0...v6.0.1)).
|
120
|
+
|
121
|
+
* Unescape HTML-safe interpolation on Rails [#1084](https://github.com/haml/haml/issues/1084)
|
122
|
+
* Resurrect Haml 5's `AttributeParser.available?` for syntax\_tree-haml [#1085](https://github.com/haml/haml/issues/1085)
|
123
|
+
|
124
|
+
## 6.0.0
|
125
|
+
|
126
|
+
Released on September 21, 2022
|
127
|
+
([diff](https://github.com/haml/haml/compare/v5.2.2...v6.0.0)).
|
128
|
+
|
129
|
+
* Replace the implementation with Hamlit
|
130
|
+
* Haml 6 is about 1.7x faster than Haml 5 in [this benchmark](benchmark/slim/run-benchmarks.rb).
|
131
|
+
* The parser is kept as is, but everything else is replaced.
|
132
|
+
* The `haml` CLI interface was also replaced.
|
133
|
+
* The interface of `Haml::Engine` is changed. `Haml::Template` is most likely what you need now.
|
134
|
+
* before: `Haml::Engine.new("%p Haml code!").render`
|
135
|
+
* after: `Haml::Template.new { "%p Haml code!" }.render`
|
136
|
+
* Most Haml helpers are removed.
|
137
|
+
* Rails:
|
138
|
+
* Kept: `find_and_reserve`, `preserve`, `surround`, `precede`, `succeed`, `capture_haml`
|
139
|
+
* Removed: `block_is_haml?`, `flatten`, `haml_concat`, `haml_indent`, `haml_tag`, `haml_tag_if`, `html_attrs`,
|
140
|
+
`html_escape`, `init_haml_helpers`, `is_haml?`, `list_of`, `non_haml`, `tab_down`, `tab_up`, `with_tabs`
|
141
|
+
* Tilt:
|
142
|
+
* Kept: `preserve`
|
143
|
+
* Removed: `block_is_haml?`, `capture_haml`, `escape_once`, `find_and_preserve`, `flatten`, `haml_concat`,
|
144
|
+
`haml_indent`, `haml_tag`, `haml_tag_if`, `html_attrs`, `html_escape`, `init_haml_helpers`, `is_haml?`,
|
145
|
+
`list_of`, `non_haml`, `precede`, `succeed`, `surround`, `tab_down`, `tab_up`, `with_tabs`
|
146
|
+
* `:ruby` filter
|
147
|
+
* Removed: `haml_io`
|
148
|
+
* Alternatives to the removed helpers:
|
149
|
+
* Some simple ones could work by copying [the original definition](https://github.com/haml/haml/blob/v5.2.2/lib/haml/helpers.rb).
|
150
|
+
* For helpers generating general HTML tags, also consider using what your framework provides, e.g. Rails `content_tag`.
|
151
|
+
Same applies to `capture_haml`, e.g. Rails `capture`.
|
152
|
+
* Ones that rely on `Haml::Buffer` have no direct alternative by design. They existed at the cost of performance.
|
153
|
+
You need to define a helper, instantiate a String buffer in it, append stuff to it, and call it inside `=`.
|
154
|
+
* Only the following attributes and `aria`/`data` attributes are considered boolean attributes:
|
155
|
+
* `allowfullscreen`, `async`, `autobuffer`, `autofocus`, `autoplay`, `checked`, `controls`, `default`,
|
156
|
+
`defer`, `disabled`, `download`, `formnovalidate`, `hidden`, `inert`, `ismap`, `itemscope`, `loop`,
|
157
|
+
`multiple`, `muted`, `novalidate`, `open`, `pubdate`, `readonly`, `required`, `reversed`, `scoped`,
|
158
|
+
`seamless`, `selected`, `sortable`, `truespeed`, `typemustmatch`
|
159
|
+
* Only `data` and `aria` attributes support using a nested Hash to render hyphenated attributes, e.g.
|
160
|
+
`data: { foo: 'bar' }` becomes `data-foo="bar"`, but this no longer works for non-`data`/`aria` attributes.
|
161
|
+
* Some legacy Rails integration is removed.
|
162
|
+
* The default value of `escape_html` option became true.
|
163
|
+
* `-` script lines no longer support capturing. Only `=` lines are supported to yield a nested block.
|
164
|
+
* Overriding `data` attributes with another falsy `data-*` attribute that has the same name
|
165
|
+
is no longer supported. [#1105](https://github.com/haml/haml/issues/1105)
|
166
|
+
* :erb filter is not executed in the template context (fixed in 6.0.10)
|
167
|
+
|
3
168
|
## 5.2.2
|
169
|
+
|
4
170
|
Released on July 27, 2021
|
5
171
|
([diff](https://github.com/haml/haml/compare/v5.2.1...v5.2.2)).
|
6
172
|
|
7
|
-
* Support
|
8
|
-
* Expanded test matrix to include Ruby 3.0 and Rails 6.1
|
9
|
-
* Only testing Ruby 2.7+ and Rails 5.2+
|
173
|
+
* Support `config.action_view.annotate_rendered_view_with_filenames = true` of Rails 6.1
|
10
174
|
|
11
175
|
## 5.2.1
|
12
176
|
|
@@ -1311,7 +1475,7 @@ Haml 2.2 introduces a new syntax for attributes
|
|
1311
1475
|
based on the HTML syntax.
|
1312
1476
|
For example:
|
1313
1477
|
|
1314
|
-
%a(href="
|
1478
|
+
%a(href="https://haml.info" title="Haml's so cool!")
|
1315
1479
|
%img(src="/images/haml.png" alt="Haml")
|
1316
1480
|
|
1317
1481
|
There are two main reasons for this.
|
data/FAQ.md
CHANGED
@@ -141,7 +141,7 @@ For other plugins, a little searching will probably turn up a way to fix them as
|
|
141
141
|
|
142
142
|
## You still haven't answered my question!
|
143
143
|
|
144
|
-
Sorry! Try looking at the [Haml](
|
144
|
+
Sorry! Try looking at the [Haml](https://haml.info/docs/yardoc/file.REFERENCE.html) reference,
|
145
145
|
If you can't find an answer there,
|
146
146
|
feel free to ask in `#haml` on irc.freenode.net
|
147
147
|
or send an email to the [mailing list](http://groups.google.com/group/haml).
|
data/Gemfile
CHANGED
@@ -1,16 +1,27 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
git_source(:github) do |repo_name|
|
4
|
+
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
|
5
|
+
"https://github.com/#{repo_name}.git"
|
6
|
+
end
|
7
|
+
|
8
|
+
# Specify your gem's dependencies in haml.gemspec
|
2
9
|
gemspec
|
3
10
|
|
4
|
-
gem
|
5
|
-
gem
|
6
|
-
gem
|
11
|
+
gem 'benchmark-ips', '2.3.0'
|
12
|
+
gem 'maxitest'
|
13
|
+
gem 'pry'
|
14
|
+
|
15
|
+
if /java/ === RUBY_PLATFORM # JRuby
|
16
|
+
gem 'pandoc-ruby'
|
17
|
+
else
|
18
|
+
gem 'redcarpet'
|
7
19
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
gem "sass"
|
20
|
+
if RUBY_PLATFORM !~ /mswin|mingw/ && RUBY_ENGINE != 'truffleruby'
|
21
|
+
gem 'stackprof'
|
22
|
+
end
|
12
23
|
end
|
13
24
|
|
14
|
-
|
15
|
-
gem
|
25
|
+
if RUBY_VERSION < '2.6'
|
26
|
+
gem 'rake-compiler', '< 1.2.4'
|
16
27
|
end
|
data/MIT-LICENSE
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2006-
|
1
|
+
Copyright (c) 2006-2021 Hampton Catlin, Natalie Weizenbaum and Takashi Kokubun
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
a copy of this software and associated documentation files (the
|
data/README.md
CHANGED
@@ -1,22 +1,15 @@
|
|
1
1
|
# Haml
|
2
2
|
|
3
|
-
[![Gem Version](https://badge.fury.io/rb/haml.svg)](
|
4
|
-
[![
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/haml.svg)](https://rubygems.org/gems/haml)
|
4
|
+
[![test](https://github.com/haml/haml/actions/workflows/test.yml/badge.svg)](https://github.com/haml/haml/actions/workflows/test.yml)
|
5
5
|
[![Code Climate](https://codeclimate.com/github/haml/haml/badges/gpa.svg)](https://codeclimate.com/github/haml/haml)
|
6
|
-
[![Inline docs](
|
6
|
+
[![Inline docs](https://inch-ci.org/github/haml/haml.svg)](https://inch-ci.org/github/haml/haml)
|
7
7
|
|
8
8
|
Haml is a templating engine for HTML. It's designed to make it both easier and
|
9
9
|
more pleasant to write HTML documents, by eliminating redundancy, reflecting the
|
10
10
|
underlying structure that the document represents, and providing an elegant syntax
|
11
11
|
that's both powerful and easy to understand.
|
12
12
|
|
13
|
-
### Supported Versions
|
14
|
-
|
15
|
-
* Ruby 2.6+
|
16
|
-
* Rails 5.1+
|
17
|
-
|
18
|
-
Other versions may likely work, but we don't test against them.
|
19
|
-
|
20
13
|
## Basic Usage
|
21
14
|
|
22
15
|
Haml can be used from the command line or as part of a Ruby web framework. The
|
@@ -29,7 +22,7 @@ gem install haml
|
|
29
22
|
After you write some Haml, you can run
|
30
23
|
|
31
24
|
~~~sh
|
32
|
-
haml document.haml
|
25
|
+
haml render document.haml
|
33
26
|
~~~
|
34
27
|
|
35
28
|
to compile it to HTML. For more information on these commands, check out
|
@@ -38,7 +31,7 @@ to compile it to HTML. For more information on these commands, check out
|
|
38
31
|
haml --help
|
39
32
|
~~~
|
40
33
|
|
41
|
-
To use Haml programmatically, check out the [YARD documentation](
|
34
|
+
To use Haml programmatically, check out the [YARD documentation](https://haml.info/docs/yardoc/).
|
42
35
|
|
43
36
|
## Using Haml with Rails
|
44
37
|
|
@@ -48,8 +41,8 @@ To use Haml with Rails, simply add Haml to your Gemfile and run `bundle`.
|
|
48
41
|
gem 'haml'
|
49
42
|
~~~
|
50
43
|
|
51
|
-
If you'd like to replace Rails's
|
52
|
-
[haml-rails](https://github.com/
|
44
|
+
If you'd like to replace Rails's ERB-based generators with Haml, add
|
45
|
+
[haml-rails](https://github.com/haml/haml-rails) to your Gemfile as well.
|
53
46
|
|
54
47
|
## Formatting
|
55
48
|
|
@@ -127,7 +120,7 @@ output the result. You can even use control statements like `if` and `while`:
|
|
127
120
|
~~~
|
128
121
|
|
129
122
|
Haml provides far more tools than those presented here. Check out the [reference
|
130
|
-
documentation](
|
123
|
+
documentation](https://haml.info/docs/yardoc/file.REFERENCE.html)
|
131
124
|
for full details.
|
132
125
|
|
133
126
|
### Indentation
|
@@ -139,7 +132,7 @@ can't be mixed, and the same number of tabs or spaces must be used throughout.
|
|
139
132
|
## Contributing
|
140
133
|
|
141
134
|
Contributions are welcomed, but before you get started please read the
|
142
|
-
[guidelines](
|
135
|
+
[guidelines](https://haml.info/development.html#contributing).
|
143
136
|
|
144
137
|
After forking and then cloning the repo locally, install Bundler and then use it
|
145
138
|
to install the development gem dependencies:
|
@@ -153,12 +146,6 @@ Once this is complete, you should be able to run the test suite:
|
|
153
146
|
rake
|
154
147
|
~~~
|
155
148
|
|
156
|
-
You'll get a warning that you need to install haml-spec, so run this:
|
157
|
-
|
158
|
-
~~~sh
|
159
|
-
git submodule update --init
|
160
|
-
~~~
|
161
|
-
|
162
149
|
At this point `rake` should run without error or warning and you are ready to
|
163
150
|
start working on your patch!
|
164
151
|
|
@@ -169,34 +156,35 @@ on a specific area:
|
|
169
156
|
ruby -Itest test/helper_test.rb -n test_buffer_access
|
170
157
|
~~~
|
171
158
|
|
172
|
-
Haml currently supports Ruby 2.
|
159
|
+
Haml currently supports Ruby 2.0.0 and higher, so please make sure your changes run on 2.0+.
|
173
160
|
|
174
161
|
## Team
|
175
162
|
|
176
163
|
### Current Maintainers
|
177
164
|
|
178
|
-
* [Hampton Catlin](https://github.com/hcatlin)
|
179
|
-
* [Takashi Kokubun](https://github.com/k0kubun)
|
180
165
|
* [Akira Matsuda](https://github.com/amatsuda)
|
166
|
+
* [Matt Wildig](https://github.com/mattwildig)
|
167
|
+
* [Tee Parham](https://github.com/teeparham)
|
168
|
+
* [Takashi Kokubun](https://github.com/k0kubun)
|
181
169
|
|
182
170
|
### Alumni
|
183
171
|
|
184
172
|
Haml was created by [Hampton Catlin](http://hamptoncatlin.com), the author of
|
185
|
-
the original implementation.
|
173
|
+
the original implementation. Hampton is no longer involved in day-to-day coding,
|
174
|
+
but still consults on language issues.
|
186
175
|
|
187
|
-
[Natalie Weizenbaum](
|
176
|
+
[Natalie Weizenbaum](http://nex-3.com) was for many years the primary developer
|
188
177
|
and architect of the "modern" Ruby implementation of Haml.
|
189
178
|
|
190
|
-
|
191
|
-
alive! as former maintainers like:
|
192
|
-
|
193
|
-
[Norman Clarke](http://github.com/norman)
|
194
|
-
[Matt Wildig](https://github.com/mattwildig)
|
195
|
-
[Tee Parham](https://github.com/teeparham)
|
179
|
+
[Norman Clarke](https://github.com/norman) was the primary maintainer of Haml from 2012 to 2016.
|
196
180
|
|
197
181
|
## License
|
198
182
|
|
199
|
-
|
183
|
+
Some of Natalie's work on Haml was supported by Unspace Interactive.
|
184
|
+
|
185
|
+
Beyond that, the implementation is licensed under the MIT License.
|
186
|
+
|
187
|
+
Copyright (c) 2006-2019 Hampton Catlin, Natalie Weizenbaum and the Haml team
|
200
188
|
|
201
189
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
202
190
|
this software and associated documentation files (the "Software"), to deal in
|