brandish 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +41 -0
  5. data/.travis.yml +5 -0
  6. data/.yardopts +1 -0
  7. data/CODE_OF_CONDUCT.md +74 -0
  8. data/Gemfile +10 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +41 -0
  11. data/Rakefile +9 -0
  12. data/bin/brandish +16 -0
  13. data/brandish.gemspec +39 -0
  14. data/defaults/templates/html.liquid +39 -0
  15. data/lib/brandish.rb +51 -0
  16. data/lib/brandish/application.rb +163 -0
  17. data/lib/brandish/application/bench_command.rb +96 -0
  18. data/lib/brandish/application/build_command.rb +73 -0
  19. data/lib/brandish/application/initialize_command.rb +83 -0
  20. data/lib/brandish/application/serve_command.rb +150 -0
  21. data/lib/brandish/configure.rb +196 -0
  22. data/lib/brandish/configure/dsl.rb +135 -0
  23. data/lib/brandish/configure/dsl/form.rb +136 -0
  24. data/lib/brandish/configure/form.rb +32 -0
  25. data/lib/brandish/errors.rb +65 -0
  26. data/lib/brandish/execute.rb +26 -0
  27. data/lib/brandish/markup.rb +10 -0
  28. data/lib/brandish/markup/redcarpet.rb +14 -0
  29. data/lib/brandish/markup/redcarpet/format.rb +127 -0
  30. data/lib/brandish/markup/redcarpet/html.rb +95 -0
  31. data/lib/brandish/parser.rb +26 -0
  32. data/lib/brandish/parser/main.rb +237 -0
  33. data/lib/brandish/parser/node.rb +89 -0
  34. data/lib/brandish/parser/node/block.rb +98 -0
  35. data/lib/brandish/parser/node/command.rb +102 -0
  36. data/lib/brandish/parser/node/pair.rb +42 -0
  37. data/lib/brandish/parser/node/root.rb +83 -0
  38. data/lib/brandish/parser/node/string.rb +18 -0
  39. data/lib/brandish/parser/node/text.rb +114 -0
  40. data/lib/brandish/path_set.rb +163 -0
  41. data/lib/brandish/processor.rb +47 -0
  42. data/lib/brandish/processor/base.rb +144 -0
  43. data/lib/brandish/processor/block.rb +47 -0
  44. data/lib/brandish/processor/command.rb +47 -0
  45. data/lib/brandish/processor/context.rb +169 -0
  46. data/lib/brandish/processor/descend.rb +32 -0
  47. data/lib/brandish/processor/inline.rb +49 -0
  48. data/lib/brandish/processor/name_filter.rb +67 -0
  49. data/lib/brandish/processor/pair_filter.rb +96 -0
  50. data/lib/brandish/processors.rb +26 -0
  51. data/lib/brandish/processors/all.rb +19 -0
  52. data/lib/brandish/processors/all/comment.rb +29 -0
  53. data/lib/brandish/processors/all/embed.rb +56 -0
  54. data/lib/brandish/processors/all/if.rb +109 -0
  55. data/lib/brandish/processors/all/import.rb +95 -0
  56. data/lib/brandish/processors/all/literal.rb +42 -0
  57. data/lib/brandish/processors/all/verify.rb +47 -0
  58. data/lib/brandish/processors/common.rb +20 -0
  59. data/lib/brandish/processors/common/asset.rb +118 -0
  60. data/lib/brandish/processors/common/asset/paths.rb +93 -0
  61. data/lib/brandish/processors/common/group.rb +67 -0
  62. data/lib/brandish/processors/common/header.rb +86 -0
  63. data/lib/brandish/processors/common/markup.rb +127 -0
  64. data/lib/brandish/processors/common/output.rb +73 -0
  65. data/lib/brandish/processors/html.rb +18 -0
  66. data/lib/brandish/processors/html/group.rb +33 -0
  67. data/lib/brandish/processors/html/header.rb +46 -0
  68. data/lib/brandish/processors/html/markup.rb +131 -0
  69. data/lib/brandish/processors/html/output.rb +62 -0
  70. data/lib/brandish/processors/html/output/document.rb +127 -0
  71. data/lib/brandish/processors/html/script.rb +64 -0
  72. data/lib/brandish/processors/html/script/babel.rb +48 -0
  73. data/lib/brandish/processors/html/script/coffee.rb +47 -0
  74. data/lib/brandish/processors/html/script/vanilla.rb +45 -0
  75. data/lib/brandish/processors/html/style.rb +82 -0
  76. data/lib/brandish/processors/html/style/highlight.rb +89 -0
  77. data/lib/brandish/processors/html/style/sass.rb +64 -0
  78. data/lib/brandish/processors/html/style/vanilla.rb +71 -0
  79. data/lib/brandish/processors/latex.rb +15 -0
  80. data/lib/brandish/processors/latex/markup.rb +47 -0
  81. data/lib/brandish/scanner.rb +64 -0
  82. data/lib/brandish/version.rb +9 -0
  83. data/templates/initialize/Gemfile.tt +14 -0
  84. data/templates/initialize/brandish.config.rb.tt +49 -0
  85. metadata +296 -0
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require "brandish/processors/latex/markup"
5
+
6
+ module Brandish
7
+ module Processors
8
+ # Processors for generating LaTeX output. This implements the {Common}
9
+ # processors.
10
+ #
11
+ # @note This does not currently implement the Common processors.
12
+ module Latex
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,47 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ module Brandish
5
+ module Processors
6
+ module Latex
7
+ # Markup support for the Latex format. For more information, and
8
+ # available options, see the {Processors::Common::Markup} processor.
9
+ #
10
+ # This markup processor provides the following engines:
11
+ #
12
+ # - `:kramdown` - A Markdown formatter. More information on this
13
+ # markup format can be found at <https://github.com/gettalong/kramdown>.
14
+ # Available options are: `:template`, `:auto_ids` (not recommended),
15
+ # `:auto_id_stripping` (not recommended), `:auto_id_prefix` (not
16
+ # recommended), `:parse_block_html`, `:parse_span_html`,
17
+ # `:html_to_native`, `:link_defs`, `:footnote_nr`, `:enable_coderay`,
18
+ # `:coderay_wrap`, `:coderay_line_numbers`,
19
+ # `:coderay_line_number_start`, `:coderay_tab_width`,
20
+ # `:coderay_bold_every`, `:coderay_css`, `:coderay_default_lang`,
21
+ # `:entity_output`, `:toc_levels` (not recommended), `:line_width`,
22
+ # `:latex_headers` (does nothing), `:smart_quotes`,
23
+ # `:remove_block_html_tags`, `:remove_span_html_tags`,
24
+ # `:header_offset`, `:hard_wrap`, `:syntax_highlighter`,
25
+ # `:syntax_highlighter_opts`, `:math_engine`, `:math_engine_opts`,
26
+ # `:footnote_backlink`, and `:gfm_quirks`. Requires the kramdown
27
+ # gem.
28
+ # - `:redcloth` - A Textile formatter. More information on this
29
+ # markup format can be found at <https://github.com/jgarber/redcloth>.
30
+ # Available options are: `:filter_html`, `:sanitize_html`,
31
+ # `:filter_styles`, `:filter_classes`, `:filter_ids`,
32
+ # `:hard_breaks` (deprecated, default), `:lite_mode`,
33
+ # and `:no_span_caps`.
34
+ # - `:escape` - Escapes the content to prevent conflict with the
35
+ # resulting format.
36
+ # @note
37
+ # This class provides the `latex:markup` processor.
38
+ class Markup < Processors::Common::Markup
39
+ register %i(latex markup) => self
40
+
41
+ engine(:kramdown, {}, :initialize_kramdown, :markup_kramdown)
42
+ engine(:redcloth, [], :initialize_redcloth, :markup_redcloth)
43
+ engine(:escape, nil, nil, :markup_escape)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,64 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require "strscan"
5
+ require "yoga"
6
+
7
+ module Brandish
8
+ # Scans the file for tokens. This is by default done incrementally, as it's
9
+ # requested by the parser or whatever consumer wants to use it. This is done
10
+ # to make sure that work that doesn't need to be done isn't.
11
+ class Scanner
12
+ include Yoga::Scanner
13
+
14
+ # The default options for the scanner.
15
+ #
16
+ # @return [{::Symbol => ::Object}]
17
+ DEFAULT_OPTIONS = { tags: %i(< >).freeze }.freeze
18
+
19
+ # Initialize the scanner with the given source and file. If no file
20
+ # is given, it defaults to `<anon>`.
21
+ def initialize(*args, **options)
22
+ super(*args)
23
+ @options = DEFAULT_OPTIONS.merge(options)
24
+ end
25
+
26
+ private
27
+
28
+ def scan
29
+ scan_escape ||
30
+ scan_operators ||
31
+ scan_numerics ||
32
+ scan_whitespace ||
33
+ scan_normal ||
34
+ fail(ScanError) # unreachable
35
+ end
36
+
37
+ def scan_escape
38
+ match(/\\./, :ESCAPE)
39
+ end
40
+
41
+ def scan_operators
42
+ operators.find { |(o, n)| (t = match(o, n)) && (return t) }
43
+ end
44
+
45
+ def scan_numerics
46
+ match(/0[xX][0-9a-fA-F]/, :NUMERIC) || match(/[-+]?\d+(\.\d+)?/, :NUMERIC)
47
+ end
48
+
49
+ def scan_whitespace
50
+ match_line(:LINE) || match(/[ \v\t\f]+/, :SPACE)
51
+ end
52
+
53
+ def scan_normal
54
+ match(/[^\d\s\\#{Regexp.escape(operators.keys.join)}]+/, :TEXT)
55
+ end
56
+
57
+ OPERATORS = { "=" => :"=", '"' => :'"', "/" => :"/" }.freeze
58
+
59
+ def operators
60
+ @_operators ||=
61
+ OPERATORS.merge(@options.fetch(:tags).map(&:to_s).zip([:<, :>]).to_h)
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ module Brandish
5
+ # The running version of Brandish.
6
+ #
7
+ # @return [::String]
8
+ VERSION = "0.1.1"
9
+ end
@@ -0,0 +1,14 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ source "https://rubygems.org"
5
+
6
+ # For edge:
7
+ # gem "brandish", github: "medcat/brandish", branch: "master"
8
+ # For the latest version:
9
+ # gem "brandish"
10
+ # For the running version:
11
+ gem "brandish", "<%= approx %>"
12
+
13
+ # Markdown support.
14
+ gem "redcarpet"
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ Brandish.configure do |config|
5
+ # Sets the root of the brandish documents and output. This is a path to
6
+ # where the documents are located. This is its default value.
7
+ config.root = "."
8
+
9
+ # Sets the brackets to be used for Brandish documents. By default, they are
10
+ # the less than and greater than signs, but could be anything, as long as
11
+ # they are two distinct symbols.
12
+ # config[:tags] = %i([ ])
13
+
14
+ # A "form". This is a form of output. Multiple forms are allowed, with
15
+ # the same formats for each also allowed.
16
+ config.form :html, <%= :"#{options[:name]}_html".inspect %> do |form|
17
+ # `.use` adds a processor to the compilation chain for the document.
18
+ # Each processor updates the AST, changing something about it. The
19
+ # `all:literal` processor provides the `<literal>` block tag for Brandish.
20
+ # All processors are scoped by a format; if no format is provided, the
21
+ # format for the form is assumed by default.
22
+ form.use :literal
23
+ # The `all:if` processor provides the `<if>` and `<unless>` block tags for
24
+ # Brandish. It can conditionally include a portion of the text if a
25
+ # set of conditions are met.
26
+ # form.use :if, embed: true # if it should use embeded conditions.
27
+ # You should only use this if you trust the
28
+ # source.
29
+ form.use :if
30
+ # `markup` allows the raw text in a document to be parsed as a given
31
+ # markup.
32
+ form.use :markup, engine: :redcarpet
33
+ # This performs error checking of the document, to make sure that no tags
34
+ # in the documents are left over.
35
+ form.use "all:verify"
36
+ # `output` outputs the document in the given format. This should always
37
+ # be last.
38
+ form.use :output
39
+ end
40
+
41
+ # The latex output of the brandish document.
42
+ # config.form :latex, <%= :"#{options[:name]}_latex".inspect %> do |form|
43
+ # form.use "all:literal"
44
+ # form.use :markup, engine: :kramdown
45
+ # form.use :header
46
+ # form.use "all:verify"
47
+ # form.use :output
48
+ # end
49
+ end
metadata ADDED
@@ -0,0 +1,296 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: brandish
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Rodi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-03-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: hanami-helpers
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.19'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.19'
41
+ - !ruby/object:Gem::Dependency
42
+ name: commander
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.4'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '4.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: listen
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sass
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.4'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: yoga
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.4'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.4'
97
+ - !ruby/object:Gem::Dependency
98
+ name: liquid
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '4.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '4.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: bundler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.13'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.13'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rake
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '10.0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '10.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '3.0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '3.0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '0.13'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '0.13'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '0.47'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.47'
181
+ description: A markup language for compiling to different formats.
182
+ email:
183
+ - me@medcat.me
184
+ executables:
185
+ - brandish
186
+ extensions: []
187
+ extra_rdoc_files: []
188
+ files:
189
+ - ".gitignore"
190
+ - ".rspec"
191
+ - ".rubocop.yml"
192
+ - ".travis.yml"
193
+ - ".yardopts"
194
+ - CODE_OF_CONDUCT.md
195
+ - Gemfile
196
+ - LICENSE.txt
197
+ - README.md
198
+ - Rakefile
199
+ - bin/brandish
200
+ - brandish.gemspec
201
+ - defaults/templates/html.liquid
202
+ - lib/brandish.rb
203
+ - lib/brandish/application.rb
204
+ - lib/brandish/application/bench_command.rb
205
+ - lib/brandish/application/build_command.rb
206
+ - lib/brandish/application/initialize_command.rb
207
+ - lib/brandish/application/serve_command.rb
208
+ - lib/brandish/configure.rb
209
+ - lib/brandish/configure/dsl.rb
210
+ - lib/brandish/configure/dsl/form.rb
211
+ - lib/brandish/configure/form.rb
212
+ - lib/brandish/errors.rb
213
+ - lib/brandish/execute.rb
214
+ - lib/brandish/markup.rb
215
+ - lib/brandish/markup/redcarpet.rb
216
+ - lib/brandish/markup/redcarpet/format.rb
217
+ - lib/brandish/markup/redcarpet/html.rb
218
+ - lib/brandish/parser.rb
219
+ - lib/brandish/parser/main.rb
220
+ - lib/brandish/parser/node.rb
221
+ - lib/brandish/parser/node/block.rb
222
+ - lib/brandish/parser/node/command.rb
223
+ - lib/brandish/parser/node/pair.rb
224
+ - lib/brandish/parser/node/root.rb
225
+ - lib/brandish/parser/node/string.rb
226
+ - lib/brandish/parser/node/text.rb
227
+ - lib/brandish/path_set.rb
228
+ - lib/brandish/processor.rb
229
+ - lib/brandish/processor/base.rb
230
+ - lib/brandish/processor/block.rb
231
+ - lib/brandish/processor/command.rb
232
+ - lib/brandish/processor/context.rb
233
+ - lib/brandish/processor/descend.rb
234
+ - lib/brandish/processor/inline.rb
235
+ - lib/brandish/processor/name_filter.rb
236
+ - lib/brandish/processor/pair_filter.rb
237
+ - lib/brandish/processors.rb
238
+ - lib/brandish/processors/all.rb
239
+ - lib/brandish/processors/all/comment.rb
240
+ - lib/brandish/processors/all/embed.rb
241
+ - lib/brandish/processors/all/if.rb
242
+ - lib/brandish/processors/all/import.rb
243
+ - lib/brandish/processors/all/literal.rb
244
+ - lib/brandish/processors/all/verify.rb
245
+ - lib/brandish/processors/common.rb
246
+ - lib/brandish/processors/common/asset.rb
247
+ - lib/brandish/processors/common/asset/paths.rb
248
+ - lib/brandish/processors/common/group.rb
249
+ - lib/brandish/processors/common/header.rb
250
+ - lib/brandish/processors/common/markup.rb
251
+ - lib/brandish/processors/common/output.rb
252
+ - lib/brandish/processors/html.rb
253
+ - lib/brandish/processors/html/group.rb
254
+ - lib/brandish/processors/html/header.rb
255
+ - lib/brandish/processors/html/markup.rb
256
+ - lib/brandish/processors/html/output.rb
257
+ - lib/brandish/processors/html/output/document.rb
258
+ - lib/brandish/processors/html/script.rb
259
+ - lib/brandish/processors/html/script/babel.rb
260
+ - lib/brandish/processors/html/script/coffee.rb
261
+ - lib/brandish/processors/html/script/vanilla.rb
262
+ - lib/brandish/processors/html/style.rb
263
+ - lib/brandish/processors/html/style/highlight.rb
264
+ - lib/brandish/processors/html/style/sass.rb
265
+ - lib/brandish/processors/html/style/vanilla.rb
266
+ - lib/brandish/processors/latex.rb
267
+ - lib/brandish/processors/latex/markup.rb
268
+ - lib/brandish/scanner.rb
269
+ - lib/brandish/version.rb
270
+ - templates/initialize/Gemfile.tt
271
+ - templates/initialize/brandish.config.rb.tt
272
+ homepage: https://github.com/medcat/brandish
273
+ licenses:
274
+ - MIT
275
+ metadata: {}
276
+ post_install_message:
277
+ rdoc_options: []
278
+ require_paths:
279
+ - lib
280
+ required_ruby_version: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - ">="
283
+ - !ruby/object:Gem::Version
284
+ version: '0'
285
+ required_rubygems_version: !ruby/object:Gem::Requirement
286
+ requirements:
287
+ - - ">="
288
+ - !ruby/object:Gem::Version
289
+ version: '0'
290
+ requirements: []
291
+ rubyforge_project:
292
+ rubygems_version: 2.6.8
293
+ signing_key:
294
+ specification_version: 4
295
+ summary: A markup language for compiling to different formats.
296
+ test_files: []