koara 0.12.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
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