haml 5.1.2 → 6.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +3 -0
  3. data/.github/workflows/test.yml +36 -0
  4. data/.gitignore +16 -15
  5. data/.yardopts +0 -3
  6. data/CHANGELOG.md +189 -1
  7. data/FAQ.md +1 -1
  8. data/Gemfile +20 -12
  9. data/MIT-LICENSE +1 -1
  10. data/README.md +10 -17
  11. data/REFERENCE.md +129 -164
  12. data/Rakefile +15 -89
  13. data/bin/bench +66 -0
  14. data/bin/console +11 -0
  15. data/bin/ruby +3 -0
  16. data/bin/setup +7 -0
  17. data/bin/stackprof +27 -0
  18. data/bin/test +24 -0
  19. data/exe/haml +6 -0
  20. data/haml.gemspec +34 -35
  21. data/lib/haml/ambles.rb +20 -0
  22. data/lib/haml/attribute_builder.rb +131 -133
  23. data/lib/haml/attribute_compiler.rb +91 -182
  24. data/lib/haml/attribute_parser.rb +92 -126
  25. data/lib/haml/cli.rb +154 -0
  26. data/lib/haml/compiler/children_compiler.rb +155 -0
  27. data/lib/haml/compiler/comment_compiler.rb +51 -0
  28. data/lib/haml/compiler/doctype_compiler.rb +52 -0
  29. data/lib/haml/compiler/script_compiler.rb +114 -0
  30. data/lib/haml/compiler/silent_script_compiler.rb +24 -0
  31. data/lib/haml/compiler/tag_compiler.rb +76 -0
  32. data/lib/haml/compiler.rb +63 -296
  33. data/lib/haml/dynamic_merger.rb +67 -0
  34. data/lib/haml/engine.rb +48 -227
  35. data/lib/haml/error.rb +5 -4
  36. data/lib/haml/escape.rb +13 -0
  37. data/lib/haml/escape_any.rb +21 -0
  38. data/lib/haml/filters/base.rb +12 -0
  39. data/lib/haml/filters/cdata.rb +20 -0
  40. data/lib/haml/filters/coffee.rb +17 -0
  41. data/lib/haml/filters/css.rb +33 -0
  42. data/lib/haml/filters/erb.rb +10 -0
  43. data/lib/haml/filters/escaped.rb +22 -0
  44. data/lib/haml/filters/javascript.rb +33 -0
  45. data/lib/haml/filters/less.rb +20 -0
  46. data/lib/haml/filters/markdown.rb +11 -0
  47. data/lib/haml/filters/plain.rb +29 -0
  48. data/lib/haml/filters/preserve.rb +22 -0
  49. data/lib/haml/filters/ruby.rb +10 -0
  50. data/lib/haml/filters/sass.rb +15 -0
  51. data/lib/haml/filters/scss.rb +15 -0
  52. data/lib/haml/filters/text_base.rb +25 -0
  53. data/lib/haml/filters/tilt_base.rb +59 -0
  54. data/lib/haml/filters.rb +54 -378
  55. data/lib/haml/force_escape.rb +29 -0
  56. data/lib/haml/helpers.rb +3 -691
  57. data/lib/haml/html.rb +22 -0
  58. data/lib/haml/identity.rb +13 -0
  59. data/lib/haml/object_ref.rb +35 -0
  60. data/lib/haml/parser.rb +190 -27
  61. data/lib/haml/rails_helpers.rb +53 -0
  62. data/lib/haml/rails_template.rb +62 -0
  63. data/lib/haml/railtie.rb +3 -41
  64. data/lib/haml/ruby_expression.rb +32 -0
  65. data/lib/haml/string_splitter.rb +140 -0
  66. data/lib/haml/template.rb +15 -34
  67. data/lib/haml/temple_line_counter.rb +2 -1
  68. data/lib/haml/util.rb +20 -16
  69. data/lib/haml/version.rb +1 -2
  70. data/lib/haml/whitespace.rb +8 -0
  71. data/lib/haml.rb +8 -20
  72. metadata +205 -53
  73. data/.gitmodules +0 -3
  74. data/.travis.yml +0 -97
  75. data/TODO +0 -24
  76. data/benchmark.rb +0 -70
  77. data/bin/haml +0 -9
  78. data/lib/haml/.gitattributes +0 -1
  79. data/lib/haml/buffer.rb +0 -238
  80. data/lib/haml/escapable.rb +0 -50
  81. data/lib/haml/exec.rb +0 -347
  82. data/lib/haml/generator.rb +0 -42
  83. data/lib/haml/helpers/action_view_extensions.rb +0 -60
  84. data/lib/haml/helpers/action_view_mods.rb +0 -132
  85. data/lib/haml/helpers/action_view_xss_mods.rb +0 -60
  86. data/lib/haml/helpers/safe_erubi_template.rb +0 -20
  87. data/lib/haml/helpers/safe_erubis_template.rb +0 -33
  88. data/lib/haml/helpers/xss_mods.rb +0 -111
  89. data/lib/haml/options.rb +0 -273
  90. data/lib/haml/plugin.rb +0 -37
  91. data/lib/haml/sass_rails_filter.rb +0 -47
  92. data/lib/haml/template/options.rb +0 -27
  93. data/lib/haml/temple_engine.rb +0 -123
  94. data/yard/default/.gitignore +0 -1
  95. data/yard/default/fulldoc/html/css/common.sass +0 -15
  96. data/yard/default/layout/html/footer.erb +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ab71634acdfecb8525662d862961b21f26d77f32adf34457443b96aa5118b8d
4
- data.tar.gz: 3eae0d107f253137df0583ead35dfee0d7840d3de616db50e0dbbd5734acbe27
3
+ metadata.gz: b8754d03da194f9c74e620887cbc29d3aa95d93651129ca33aa60dc72be08dd1
4
+ data.tar.gz: f4d26ea914200ac345926641d0d0d8ba36fb4b62a47600f63015d5c2d1dc8a11
5
5
  SHA512:
6
- metadata.gz: fb8005b129e6874259a4ff900579a13cbc42c3f64b13640856a219c9f69fbd2cfc77d8126231148c2ebc6b58883e8687a4f447603fd6cdfc41195bf08e1127c3
7
- data.tar.gz: 813db45e219554933892a41e023419e9a1a0e10602ebdf525f7efc1f14fe6f2afa4ff96ac691a0d8552989016453e7ce553864fc778447e1f55725de43b53406
6
+ metadata.gz: eccf9fb6676267281b3c918425e93f07e8771c2f41e8481a08f327cb2ddbd5b53e07f3c9025f37c1abc977ad732d3b2f67d3023c4e1f356897bed03e3572ca20
7
+ data.tar.gz: 5ecd4d17716d5b0b4be7b57ebcfd28457f1b803cd376e37d4bcece2f30632e4e46d988eba1048e0c303a3599db5049b464e31854dda7f538bfe30565169769e9
@@ -0,0 +1,3 @@
1
+ github:
2
+ - haml
3
+ - k0kubun
@@ -0,0 +1,36 @@
1
+ name: test
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ pull_request:
7
+ types:
8
+ - opened
9
+ - synchronize
10
+ - reopened
11
+ schedule:
12
+ - cron: "00 15 * * *"
13
+ jobs:
14
+ test:
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
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
28
+ steps:
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
31
+ - name: Set up Ruby
32
+ uses: ruby/setup-ruby@v1
33
+ with:
34
+ ruby-version: ${{ matrix.ruby }}
35
+ bundler-cache: true
36
+ - run: bundle exec rake test
data/.gitignore CHANGED
@@ -1,18 +1,19 @@
1
+ /.bundle/
1
2
  /.yardoc
2
- /coverage
3
- /doc
4
- /log
5
- /pkg
6
- /test/rails
7
- /test/gemfiles/*.lock
8
- /.haml
9
- /site
10
- *.rbc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /.idea
6
+ /coverage/
7
+ /doc/
8
+ /pkg/
9
+ /spec/reports/
10
+ /tmp/
11
+ /haml/
11
12
  .sass-cache
12
- .rbenv-version
13
- .rbx
14
13
  .ruby-version
15
- .rvmrc
16
- Gemfile.lock
17
- tmp
18
- .bundle/
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,5 +1,193 @@
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
+
168
+ ## 5.2.2
169
+
170
+ Released on July 27, 2021
171
+ ([diff](https://github.com/haml/haml/compare/v5.2.1...v5.2.2)).
172
+
173
+ * Support `config.action_view.annotate_rendered_view_with_filenames = true` of Rails 6.1
174
+
175
+ ## 5.2.1
176
+
177
+ Released on November 30, 2020
178
+ ([diff](https://github.com/haml/haml/compare/v5.2.0...v5.2.1)).
179
+
180
+ * Add in improved "multiline" support for attributes [#1043](https://github.com/haml/haml/issues/1043)
181
+
182
+ ## 5.2
183
+
184
+ Released on September 28, 2020
185
+ ([diff](https://github.com/haml/haml/compare/v5.1.2...v5.2.0)).
186
+
187
+ * Fix crash in the attribute optimizer when `#inspect` is overridden in TrueClass / FalseClass [#972](https://github.com/haml/haml/issues/972)
188
+ * Do not HTML-escape templates that are declared to be plaintext [#1014](https://github.com/haml/haml/issues/1014) (Thanks [@cesarizu](https://github.com/cesarizu))
189
+ * Class names are no longer ordered alphabetically, and now follow a new specification as laid out in REFERENCE [#306](https://github.com/haml/haml/issues/306)
190
+
3
191
  ## 5.1.2
4
192
 
5
193
  Released on August 6, 2019
@@ -1287,7 +1475,7 @@ Haml 2.2 introduces a new syntax for attributes
1287
1475
  based on the HTML syntax.
1288
1476
  For example:
1289
1477
 
1290
- %a(href="http://haml.info" title="Haml's so cool!")
1478
+ %a(href="https://haml.info" title="Haml's so cool!")
1291
1479
  %img(src="/images/haml.png" alt="Haml")
1292
1480
 
1293
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](http://haml.info/docs/yardoc/file.REFERENCE.html) reference,
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,19 +1,27 @@
1
- source "https://rubygems.org"
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 "m"
5
- gem "pry"
11
+ gem 'benchmark-ips', '2.3.0'
12
+ gem 'maxitest'
13
+ gem 'pry'
6
14
 
7
- group :docs do
8
- gem "yard"
9
- gem "kramdown"
10
- gem "sass"
11
- end
15
+ if /java/ === RUBY_PLATFORM # JRuby
16
+ gem 'pandoc-ruby'
17
+ else
18
+ gem 'redcarpet'
12
19
 
13
- platform :mri do
14
- gem "ruby-prof"
20
+ if RUBY_PLATFORM !~ /mswin|mingw/ && RUBY_ENGINE != 'truffleruby'
21
+ gem 'stackprof'
22
+ end
15
23
  end
16
24
 
17
- platform :mri_21 do
18
- gem "simplecov"
25
+ if RUBY_VERSION < '2.6'
26
+ gem 'rake-compiler', '< 1.2.4'
19
27
  end
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2006-2019 Hampton Catlin and Natalie Weizenbaum
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,10 +1,9 @@
1
1
  # Haml
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/haml.svg)](http://rubygems.org/gems/haml)
4
- [![Build Status](https://travis-ci.org/haml/haml.svg?branch=master)](http://travis-ci.org/haml/haml)
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
- [![Coverage Status](http://img.shields.io/coveralls/haml/haml.svg)](https://coveralls.io/r/haml/haml)
7
- [![Inline docs](http://inch-ci.org/github/haml/haml.png)](http://inch-ci.org/github/haml/haml)
6
+ [![Inline docs](https://inch-ci.org/github/haml/haml.svg)](https://inch-ci.org/github/haml/haml)
8
7
 
9
8
  Haml is a templating engine for HTML. It's designed to make it both easier and
10
9
  more pleasant to write HTML documents, by eliminating redundancy, reflecting the
@@ -23,7 +22,7 @@ gem install haml
23
22
  After you write some Haml, you can run
24
23
 
25
24
  ~~~sh
26
- haml document.haml
25
+ haml render document.haml
27
26
  ~~~
28
27
 
29
28
  to compile it to HTML. For more information on these commands, check out
@@ -32,7 +31,7 @@ to compile it to HTML. For more information on these commands, check out
32
31
  haml --help
33
32
  ~~~
34
33
 
35
- To use Haml programatically, check out the [YARD documentation](http://haml.info/docs/yardoc/).
34
+ To use Haml programmatically, check out the [YARD documentation](https://haml.info/docs/yardoc/).
36
35
 
37
36
  ## Using Haml with Rails
38
37
 
@@ -42,8 +41,8 @@ To use Haml with Rails, simply add Haml to your Gemfile and run `bundle`.
42
41
  gem 'haml'
43
42
  ~~~
44
43
 
45
- If you'd like to replace Rails's Erb-based generators with Haml, add
46
- [haml-rails](https://github.com/indirect/haml-rails) to your Gemfile as well.
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.
47
46
 
48
47
  ## Formatting
49
48
 
@@ -121,7 +120,7 @@ output the result. You can even use control statements like `if` and `while`:
121
120
  ~~~
122
121
 
123
122
  Haml provides far more tools than those presented here. Check out the [reference
124
- documentation](http://haml.info/docs/yardoc/file.REFERENCE.html)
123
+ documentation](https://haml.info/docs/yardoc/file.REFERENCE.html)
125
124
  for full details.
126
125
 
127
126
  ### Indentation
@@ -133,7 +132,7 @@ can't be mixed, and the same number of tabs or spaces must be used throughout.
133
132
  ## Contributing
134
133
 
135
134
  Contributions are welcomed, but before you get started please read the
136
- [guidelines](http://haml.info/development.html#contributing).
135
+ [guidelines](https://haml.info/development.html#contributing).
137
136
 
138
137
  After forking and then cloning the repo locally, install Bundler and then use it
139
138
  to install the development gem dependencies:
@@ -147,12 +146,6 @@ Once this is complete, you should be able to run the test suite:
147
146
  rake
148
147
  ~~~
149
148
 
150
- You'll get a warning that you need to install haml-spec, so run this:
151
-
152
- ~~~sh
153
- git submodule update --init
154
- ~~~
155
-
156
149
  At this point `rake` should run without error or warning and you are ready to
157
150
  start working on your patch!
158
151
 
@@ -183,7 +176,7 @@ but still consults on language issues.
183
176
  [Natalie Weizenbaum](http://nex-3.com) was for many years the primary developer
184
177
  and architect of the "modern" Ruby implementation of Haml.
185
178
 
186
- [Norman Clarke](http://github.com/norman) was the primary maintainer of Haml from 2012 to 2016.
179
+ [Norman Clarke](https://github.com/norman) was the primary maintainer of Haml from 2012 to 2016.
187
180
 
188
181
  ## License
189
182