koara 0.12.0 → 0.13.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fc7029d454ab5f3cd266894cc965ec575751d685
4
- data.tar.gz: 0af2a51f42a06a469092d3a854059c5d0f1fdb0b
3
+ metadata.gz: 4c58d57f95058907d29851f8e0cdbd2e736418c1
4
+ data.tar.gz: 315116868c81768d2d777a6c9ff01a3ef7450f5a
5
5
  SHA512:
6
- metadata.gz: 1dd105c745b2370d83042539a2504ae50840782f8ea5a587ad3d2192b64960e7bd461ba2889eecc9bf9b6028d96d5c9fdb9471bf4d19e4d333928a260335c124
7
- data.tar.gz: ec73b2f2047e1944cfb9a8c63dea64206f13657035e305e451c79560db98f65da9c42eef3cbc292b6b96884357e16e57b58d9a4c623c53ecf355e164392c5090
6
+ metadata.gz: 8a8dfd90f7e5224aaa85b2186c2b9e719f180b9ed9899eb85c1d21aaf0473b8ea145ee2ca0b37b5648180f2af60a4ed7d6ad039358e4d1cd8b3ba48973933192
7
+ data.tar.gz: 053703bd36809158b94ef4c08301186808cca512dffc6295e0a9b71098064bc062f6fdb12e4b4e9b4880a8563c4aa30f79ab9a6da34a7f0a6a330e7716f88bf7
@@ -4,6 +4,8 @@ require_relative 'linebreak'
4
4
  module Koara
5
5
  module Ast
6
6
  class LineBreak < Node
7
+ attr_accessor :explicit
8
+
7
9
  def accept(renderer)
8
10
  renderer.visit_linebreak(self)
9
11
  end
@@ -10,6 +10,7 @@ module Koara
10
10
  def visit_document(node)
11
11
  @left = Array.new
12
12
  @out = StringIO.new
13
+ @hard_wrap = false
13
14
  node.children_accept(self)
14
15
  end
15
16
 
@@ -176,6 +177,9 @@ module Koara
176
177
  end
177
178
 
178
179
  def visit_linebreak(node)
180
+ if @hard_wrap || node.explicit
181
+ @out << ' '
182
+ end
179
183
  @out << "\n"
180
184
  indent
181
185
  end
data/lib/koara/parser.rb CHANGED
@@ -612,7 +612,8 @@ module Koara
612
612
  while get_next_token_kind == TokenManager::SPACE || get_next_token_kind == TokenManager::TAB
613
613
  consume_token(get_next_token_kind)
614
614
  end
615
- consume_token(TokenManager::EOL)
615
+ token = consume_token(TokenManager::EOL)
616
+ linebreak.explicit = token.image.start_with?(" ");
616
617
  @tree.close_scope(linebreak)
617
618
  end
618
619
 
data/lib/koara/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Koara
2
2
  # Koara version number.
3
- VERSION = '0.12.0'
3
+ VERSION = '0.13.0'
4
4
  end
@@ -6,6 +6,7 @@ class Html5Renderer
6
6
  @level = 0
7
7
  @list_sequence = Array.new
8
8
  @out = StringIO.new
9
+ @hard_wrap = false
9
10
  node.children_accept(self)
10
11
  end
11
12
 
@@ -140,7 +141,6 @@ class Html5Renderer
140
141
  @out << escape(node.value.to_s)
141
142
  end
142
143
 
143
- #
144
144
  def escape(text)
145
145
  return text.gsub(/&/, '&amp;')
146
146
  .gsub(/</, '&lt;')
@@ -149,7 +149,10 @@ class Html5Renderer
149
149
  end
150
150
 
151
151
  def visit_linebreak(node)
152
- @out << "<br>\n" + indent
152
+ if @hard_wrap || node.explicit
153
+ @out << "<br>"
154
+ end
155
+ @out << "\n" + indent
153
156
  node.children_accept(self)
154
157
  end
155
158
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: koara
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Van Den Heuvel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-01 00:00:00.000000000 Z
11
+ date: 2016-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler