markly 0.2.1 → 0.5.1

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
  SHA256:
3
- metadata.gz: 27b98de3f04fbba3681df9356148129c3adb335740846ba638a4fb2790029e9e
4
- data.tar.gz: c6bdd14cff454a313050128e4b4f32e1b7db2306581d8fde7475ccd9021fac36
3
+ metadata.gz: 3e93dc6c0b00fb75d248a8631c7861b90feaa4e34b0fc22ca743e3869f591d82
4
+ data.tar.gz: 611f2ddb2a723f48575fdcde58ac778e44745d5162d580c7732bed05df529a1c
5
5
  SHA512:
6
- metadata.gz: 69a8a8366b7b3eb19d08c1cedd839c5a0a3ec15d3c0e3be1f80e9adcd4a7849704a733249aebb86771a822a3e4b0dbb4a5643b208597be9316c7282f5b6d471a
7
- data.tar.gz: 1540db6af546c59fff663ab5f056519fdf48523e56c35a28281e3d5c34f75b4c2d0e0176666af4453b87b16faefeb19880da511067468a34d648d97c15d1a2ff
6
+ metadata.gz: 2bcb920927a44239587688f322891836d73b0c968ae3156776e578b3c80b8e288afd37b1a9f7dc7173852e4779dd22804d8b77e10db78c376cf7338e0883842f
7
+ data.tar.gz: 4abdfbee670fbff858e1017b9329bcb429a698052d95a860d26dddea1f1ffac9377424aca614e4d39b12d3c4aae2dfceddfb082ebf7337d717f8a67ff38ef1a4
@@ -47,6 +47,8 @@ static void rb_Markly_Node_free(void *data) {
47
47
 
48
48
  if (cmark_node_parent(node) == NULL) {
49
49
  cmark_node_free(node);
50
+ } else {
51
+ cmark_node_set_user_data(node, NULL);
50
52
  }
51
53
  }
52
54
  }
@@ -329,10 +331,10 @@ static VALUE rb_node_set_string_content(VALUE self, VALUE s) {
329
331
  * Returns a {Symbol} representing the node's type.
330
332
  */
331
333
  static VALUE rb_node_get_type(VALUE self) {
332
- int node_type;
333
- cmark_node *node;
334
- VALUE symbol;
335
- const char *s;
334
+ int node_type = 0;
335
+ cmark_node *node = NULL;
336
+ VALUE symbol = NULL;
337
+ const char *s = NULL;
336
338
 
337
339
  TypedData_Get_Struct(self, cmark_node, &rb_Markly_Node_Type, node);
338
340
 
@@ -1,14 +1,36 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'cgi'
4
+
3
5
  module Markly
4
- class HtmlRenderer < Renderer
6
+ class HTMLRenderer < Renderer
7
+ def initialize(ids: false, **options)
8
+ super(**options)
9
+
10
+ @ids = ids
11
+ @section = nil
12
+ end
13
+
5
14
  def document(_)
15
+ @section = false
6
16
  super
7
17
  out("</ol>\n</section>\n") if @written_footnote_ix
18
+ out("</section>") if @section
19
+ end
20
+
21
+ def id_for(node)
22
+ if @ids
23
+ id = node.to_plaintext.chomp.downcase.gsub(/\s+/, '-')
24
+
25
+ return " id=\"#{CGI.escape_html id}\""
26
+ end
8
27
  end
9
28
 
10
29
  def header(node)
11
30
  block do
31
+ out('</section>') if @section
32
+ @section = true
33
+ out("<section #{id_for(node)}>")
12
34
  out('<h', node.header_level, "#{source_position(node)}>", :children,
13
35
  '</h', node.header_level, '>')
14
36
  end
@@ -249,4 +271,7 @@ module Markly
249
271
  node.tasklist_item_checked?
250
272
  end
251
273
  end
274
+
275
+ # Legacy.
276
+ HtmlRenderer = HTMLRenderer
252
277
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Markly
4
- VERSION = '0.2.1'
4
+ VERSION = '0.5.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen Torikian
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-06-14 00:00:00.000000000 Z
13
+ date: 2020-07-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bake
@@ -26,34 +26,6 @@ dependencies:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
28
  version: '0'
29
- - !ruby/object:Gem::Dependency
30
- name: bake-bundler
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: '0'
36
- type: :development
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: '0'
43
- - !ruby/object:Gem::Dependency
44
- name: bake-modernize
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: '0'
50
- type: :development
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: '0'
57
29
  - !ruby/object:Gem::Dependency
58
30
  name: minitest
59
31
  requirement: !ruby/object:Gem::Requirement
@@ -178,7 +150,6 @@ files:
178
150
  - ext/markly/xml.c
179
151
  - lib/markly.rb
180
152
  - lib/markly/flags.rb
181
- - lib/markly/markly.so
182
153
  - lib/markly/node.rb
183
154
  - lib/markly/node/inspect.rb
184
155
  - lib/markly/renderer.rb
Binary file