qiita_marker 0.23.2.3 → 0.23.5.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 +4 -4
 - data/Rakefile +57 -56
 - data/bin/qiita_marker +2 -7
 - data/ext/qiita_marker/cmark-gfm_version.h +2 -2
 - data/ext/qiita_marker/qiita_marker.c +30 -44
 - data/ext/qiita_marker/scanners.c +2438 -2450
 - data/ext/qiita_marker/table.c +28 -2
 - data/lib/qiita_marker/config.rb +3 -3
 - data/lib/qiita_marker/node/inspect.rb +8 -18
 - data/lib/qiita_marker/node.rb +6 -6
 - data/lib/qiita_marker/renderer/html_renderer.rb +38 -38
 - data/lib/qiita_marker/renderer.rb +5 -5
 - data/lib/qiita_marker/version.rb +1 -1
 - data/lib/qiita_marker.rb +9 -11
 - data/qiita_marker.gemspec +27 -29
 - metadata +3 -63
 - data/test/benchmark.rb +0 -32
 - data/test/fixtures/curly.md +0 -1
 - data/test/fixtures/dingus.md +0 -10
 - data/test/fixtures/strong.md +0 -1
 - data/test/fixtures/table.md +0 -10
 - data/test/test_attributes.rb +0 -24
 - data/test/test_basics.rb +0 -35
 - data/test/test_commands.rb +0 -72
 - data/test/test_commonmark.rb +0 -36
 - data/test/test_doc.rb +0 -130
 - data/test/test_encoding.rb +0 -23
 - data/test/test_extensions.rb +0 -116
 - data/test/test_footnotes.rb +0 -60
 - data/test/test_gc.rb +0 -47
 - data/test/test_helper.rb +0 -71
 - data/test/test_linebreaks.rb +0 -15
 - data/test/test_maliciousness.rb +0 -262
 - data/test/test_node.rb +0 -89
 - data/test/test_options.rb +0 -37
 - data/test/test_pathological_inputs.rb +0 -94
 - data/test/test_plaintext.rb +0 -46
 - data/test/test_qfm_autolink_class_name.rb +0 -62
 - data/test/test_qfm_code_data_metadata.rb +0 -41
 - data/test/test_qfm_custom_block.rb +0 -39
 - data/test/test_qfm_mention_no_emphasis.rb +0 -60
 - data/test/test_renderer.rb +0 -47
 - data/test/test_smartpunct.rb +0 -27
 - data/test/test_spec.rb +0 -30
 - data/test/test_tasklists.rb +0 -43
 - data/test/test_xml.rb +0 -107
 
    
        data/ext/qiita_marker/table.c
    CHANGED
    
    | 
         @@ -129,6 +129,7 @@ static table_row *row_from_string(cmark_syntax_extension *self, 
     | 
|
| 
       129 
129 
     | 
    
         
             
              bufsize_t cell_matched = 1, pipe_matched = 1, offset;
         
     | 
| 
       130 
130 
     | 
    
         
             
              int expect_more_cells = 1;
         
     | 
| 
       131 
131 
     | 
    
         
             
              int row_end_offset = 0;
         
     | 
| 
      
 132 
     | 
    
         
            +
              int int_overflow_abort = 0;
         
     | 
| 
       132 
133 
     | 
    
         | 
| 
       133 
134 
     | 
    
         
             
              row = (table_row *)parser->mem->calloc(1, sizeof(table_row));
         
     | 
| 
       134 
135 
     | 
    
         
             
              row->n_columns = 0;
         
     | 
| 
         @@ -161,6 +162,12 @@ static table_row *row_from_string(cmark_syntax_extension *self, 
     | 
|
| 
       161 
162 
     | 
    
         
             
                    ++cell->internal_offset;
         
     | 
| 
       162 
163 
     | 
    
         
             
                  }
         
     | 
| 
       163 
164 
     | 
    
         | 
| 
      
 165 
     | 
    
         
            +
                  // make sure we never wrap row->n_columns
         
     | 
| 
      
 166 
     | 
    
         
            +
                  // offset will != len and our exit will clean up as intended
         
     | 
| 
      
 167 
     | 
    
         
            +
                  if (row->n_columns == UINT16_MAX) {
         
     | 
| 
      
 168 
     | 
    
         
            +
                      int_overflow_abort = 1;
         
     | 
| 
      
 169 
     | 
    
         
            +
                      break;
         
     | 
| 
      
 170 
     | 
    
         
            +
                  }
         
     | 
| 
       164 
171 
     | 
    
         
             
                  row->n_columns += 1;
         
     | 
| 
       165 
172 
     | 
    
         
             
                  row->cells = cmark_llist_append(parser->mem, row->cells, cell);
         
     | 
| 
       166 
173 
     | 
    
         
             
                }
         
     | 
| 
         @@ -194,7 +201,7 @@ static table_row *row_from_string(cmark_syntax_extension *self, 
     | 
|
| 
       194 
201 
     | 
    
         
             
                }
         
     | 
| 
       195 
202 
     | 
    
         
             
              }
         
     | 
| 
       196 
203 
     | 
    
         | 
| 
       197 
     | 
    
         
            -
              if (offset != len || row->n_columns == 0) {
         
     | 
| 
      
 204 
     | 
    
         
            +
              if (offset != len || row->n_columns == 0 || int_overflow_abort) {
         
     | 
| 
       198 
205 
     | 
    
         
             
                free_table_row(parser->mem, row);
         
     | 
| 
       199 
206 
     | 
    
         
             
                row = NULL;
         
     | 
| 
       200 
207 
     | 
    
         
             
              }
         
     | 
| 
         @@ -241,6 +248,11 @@ static cmark_node *try_opening_table_header(cmark_syntax_extension *self, 
     | 
|
| 
       241 
248 
     | 
    
         
             
              marker_row = row_from_string(self, parser,
         
     | 
| 
       242 
249 
     | 
    
         
             
                                           input + cmark_parser_get_first_nonspace(parser),
         
     | 
| 
       243 
250 
     | 
    
         
             
                                           len - cmark_parser_get_first_nonspace(parser));
         
     | 
| 
      
 251 
     | 
    
         
            +
              // assert may be optimized out, don't rely on it for security boundaries
         
     | 
| 
      
 252 
     | 
    
         
            +
              if (!marker_row) {
         
     | 
| 
      
 253 
     | 
    
         
            +
                  return parent_container;
         
     | 
| 
      
 254 
     | 
    
         
            +
              }
         
     | 
| 
      
 255 
     | 
    
         
            +
              
         
     | 
| 
       244 
256 
     | 
    
         
             
              assert(marker_row);
         
     | 
| 
       245 
257 
     | 
    
         | 
| 
       246 
258 
     | 
    
         
             
              cmark_arena_push();
         
     | 
| 
         @@ -264,6 +276,12 @@ static cmark_node *try_opening_table_header(cmark_syntax_extension *self, 
     | 
|
| 
       264 
276 
     | 
    
         
             
                    len - cmark_parser_get_first_nonspace(parser));
         
     | 
| 
       265 
277 
     | 
    
         
             
                header_row = row_from_string(self, parser, (unsigned char *)parent_string,
         
     | 
| 
       266 
278 
     | 
    
         
             
                                             (int)strlen(parent_string));
         
     | 
| 
      
 279 
     | 
    
         
            +
                // row_from_string can return NULL, add additional check to ensure n_columns match
         
     | 
| 
      
 280 
     | 
    
         
            +
                if (!marker_row || !header_row || header_row->n_columns != marker_row->n_columns) {
         
     | 
| 
      
 281 
     | 
    
         
            +
                    free_table_row(parser->mem, marker_row);
         
     | 
| 
      
 282 
     | 
    
         
            +
                    free_table_row(parser->mem, header_row);
         
     | 
| 
      
 283 
     | 
    
         
            +
                    return parent_container;
         
     | 
| 
      
 284 
     | 
    
         
            +
                }
         
     | 
| 
       267 
285 
     | 
    
         
             
              }
         
     | 
| 
       268 
286 
     | 
    
         | 
| 
       269 
287 
     | 
    
         
             
              if (!cmark_node_set_type(parent_container, CMARK_NODE_TABLE)) {
         
     | 
| 
         @@ -281,8 +299,10 @@ static cmark_node *try_opening_table_header(cmark_syntax_extension *self, 
     | 
|
| 
       281 
299 
     | 
    
         
             
              parent_container->as.opaque = parser->mem->calloc(1, sizeof(node_table));
         
     | 
| 
       282 
300 
     | 
    
         
             
              set_n_table_columns(parent_container, header_row->n_columns);
         
     | 
| 
       283 
301 
     | 
    
         | 
| 
      
 302 
     | 
    
         
            +
              // allocate alignments based on marker_row->n_columns
         
     | 
| 
      
 303 
     | 
    
         
            +
              // since we populate the alignments array based on marker_row->cells
         
     | 
| 
       284 
304 
     | 
    
         
             
              uint8_t *alignments =
         
     | 
| 
       285 
     | 
    
         
            -
                  (uint8_t *)parser->mem->calloc( 
     | 
| 
      
 305 
     | 
    
         
            +
                  (uint8_t *)parser->mem->calloc(marker_row->n_columns, sizeof(uint8_t));
         
     | 
| 
       286 
306 
     | 
    
         
             
              cmark_llist *it = marker_row->cells;
         
     | 
| 
       287 
307 
     | 
    
         
             
              for (i = 0; it; it = it->next, ++i) {
         
     | 
| 
       288 
308 
     | 
    
         
             
                node_cell *node = (node_cell *)it->data;
         
     | 
| 
         @@ -351,6 +371,12 @@ static cmark_node *try_opening_table_row(cmark_syntax_extension *self, 
     | 
|
| 
       351 
371 
     | 
    
         
             
              row = row_from_string(self, parser, input + cmark_parser_get_first_nonspace(parser),
         
     | 
| 
       352 
372 
     | 
    
         
             
                  len - cmark_parser_get_first_nonspace(parser));
         
     | 
| 
       353 
373 
     | 
    
         | 
| 
      
 374 
     | 
    
         
            +
              if (!row) {
         
     | 
| 
      
 375 
     | 
    
         
            +
                  // clean up the dangling node
         
     | 
| 
      
 376 
     | 
    
         
            +
                  cmark_node_free(table_row_block);
         
     | 
| 
      
 377 
     | 
    
         
            +
                  return NULL;
         
     | 
| 
      
 378 
     | 
    
         
            +
              }
         
     | 
| 
      
 379 
     | 
    
         
            +
             
     | 
| 
       354 
380 
     | 
    
         
             
              {
         
     | 
| 
       355 
381 
     | 
    
         
             
                cmark_llist *tmp;
         
     | 
| 
       356 
382 
     | 
    
         
             
                int i, table_columns = get_n_table_columns(parent_container);
         
     | 
    
        data/lib/qiita_marker/config.rb
    CHANGED
    
    | 
         @@ -15,7 +15,7 @@ module QiitaMarker 
     | 
|
| 
       15 
15 
     | 
    
         
             
                    FOOTNOTES: (1 << 13),
         
     | 
| 
       16 
16 
     | 
    
         
             
                    STRIKETHROUGH_DOUBLE_TILDE: (1 << 14),
         
     | 
| 
       17 
17 
     | 
    
         
             
                    MENTION_NO_EMPHASIS: (1 << 26),
         
     | 
| 
       18 
     | 
    
         
            -
                    AUTOLINK_CLASS_NAME: (1 << 27)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    AUTOLINK_CLASS_NAME: (1 << 27),
         
     | 
| 
       19 
19 
     | 
    
         
             
                  }.freeze,
         
     | 
| 
       20 
20 
     | 
    
         
             
                  render: {
         
     | 
| 
       21 
21 
     | 
    
         
             
                    DEFAULT: 0,
         
     | 
| 
         @@ -33,9 +33,9 @@ module QiitaMarker 
     | 
|
| 
       33 
33 
     | 
    
         
             
                    FULL_INFO_STRING: (1 << 16),
         
     | 
| 
       34 
34 
     | 
    
         
             
                    CODE_DATA_METADATA: (1 << 25),
         
     | 
| 
       35 
35 
     | 
    
         
             
                    MENTION_NO_EMPHASIS: (1 << 26),
         
     | 
| 
       36 
     | 
    
         
            -
                    AUTOLINK_CLASS_NAME: (1 << 27)
         
     | 
| 
      
 36 
     | 
    
         
            +
                    AUTOLINK_CLASS_NAME: (1 << 27),
         
     | 
| 
       37 
37 
     | 
    
         
             
                  }.freeze,
         
     | 
| 
       38 
     | 
    
         
            -
                  format:  
     | 
| 
      
 38 
     | 
    
         
            +
                  format: [:html, :xml, :commonmark, :plaintext].freeze,
         
     | 
| 
       39 
39 
     | 
    
         
             
                }.freeze
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
       41 
41 
     | 
    
         
             
                def self.process_options(option, type)
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            require  
     | 
| 
      
 3 
     | 
    
         
            +
            require "pp"
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            module QiitaMarker
         
     | 
| 
       6 
6 
     | 
    
         
             
              class Node
         
     | 
| 
         @@ -8,33 +8,23 @@ module QiitaMarker 
     | 
|
| 
       8 
8 
     | 
    
         
             
                  PP_INDENT_SIZE = 2
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                  def inspect
         
     | 
| 
       11 
     | 
    
         
            -
                    PP.pp(self, + 
     | 
| 
      
 11 
     | 
    
         
            +
                    PP.pp(self, +"", Float::INFINITY)
         
     | 
| 
       12 
12 
     | 
    
         
             
                  end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                  # @param printer [PrettyPrint] pp
         
     | 
| 
       15 
15 
     | 
    
         
             
                  def pretty_print(printer)
         
     | 
| 
       16 
     | 
    
         
            -
                    printer.group(PP_INDENT_SIZE, "#<#{self.class}(#{type}):",  
     | 
| 
      
 16 
     | 
    
         
            +
                    printer.group(PP_INDENT_SIZE, "#<#{self.class}(#{type}):", ">") do
         
     | 
| 
       17 
17 
     | 
    
         
             
                      printer.breakable
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
                      attrs =  
     | 
| 
       20 
     | 
    
         
            -
                        sourcepos
         
     | 
| 
       21 
     | 
    
         
            -
                        string_content
         
     | 
| 
       22 
     | 
    
         
            -
                        url
         
     | 
| 
       23 
     | 
    
         
            -
                        title
         
     | 
| 
       24 
     | 
    
         
            -
                        header_level
         
     | 
| 
       25 
     | 
    
         
            -
                        list_type
         
     | 
| 
       26 
     | 
    
         
            -
                        list_start
         
     | 
| 
       27 
     | 
    
         
            -
                        list_tight
         
     | 
| 
       28 
     | 
    
         
            -
                        fence_info
         
     | 
| 
       29 
     | 
    
         
            -
                      ].map do |name|
         
     | 
| 
      
 19 
     | 
    
         
            +
                      attrs = [:sourcepos, :string_content, :url, :title, :header_level, :list_type, :list_start, :list_tight, :fence_info].map do |name|
         
     | 
| 
       30 
20 
     | 
    
         
             
                        [name, __send__(name)]
         
     | 
| 
       31 
21 
     | 
    
         
             
                      rescue NodeError
         
     | 
| 
       32 
22 
     | 
    
         
             
                        nil
         
     | 
| 
       33 
23 
     | 
    
         
             
                      end.compact
         
     | 
| 
       34 
24 
     | 
    
         | 
| 
       35 
25 
     | 
    
         
             
                      printer.seplist(attrs) do |name, value|
         
     | 
| 
       36 
     | 
    
         
            -
                        printer.text 
     | 
| 
       37 
     | 
    
         
            -
                        printer.pp 
     | 
| 
      
 26 
     | 
    
         
            +
                        printer.text("#{name}=")
         
     | 
| 
      
 27 
     | 
    
         
            +
                        printer.pp(value)
         
     | 
| 
       38 
28 
     | 
    
         
             
                      end
         
     | 
| 
       39 
29 
     | 
    
         | 
| 
       40 
30 
     | 
    
         
             
                      if first_child
         
     | 
| 
         @@ -46,8 +36,8 @@ module QiitaMarker 
     | 
|
| 
       46 
36 
     | 
    
         
             
                            children << node
         
     | 
| 
       47 
37 
     | 
    
         
             
                            node = node.next
         
     | 
| 
       48 
38 
     | 
    
         
             
                          end
         
     | 
| 
       49 
     | 
    
         
            -
                          printer.text 
     | 
| 
       50 
     | 
    
         
            -
                          printer.pp 
     | 
| 
      
 39 
     | 
    
         
            +
                          printer.text("children=")
         
     | 
| 
      
 40 
     | 
    
         
            +
                          printer.pp(children)
         
     | 
| 
       51 
41 
     | 
    
         
             
                        end
         
     | 
| 
       52 
42 
     | 
    
         
             
                      end
         
     | 
| 
       53 
43 
     | 
    
         
             
                    end
         
     | 
    
        data/lib/qiita_marker/node.rb
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            require  
     | 
| 
      
 3 
     | 
    
         
            +
            require "qiita_marker/node/inspect"
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            module QiitaMarker
         
     | 
| 
       6 
6 
     | 
    
         
             
              class Node
         
     | 
| 
         @@ -27,7 +27,7 @@ module QiitaMarker 
     | 
|
| 
       27 
27 
     | 
    
         
             
                # Returns a {String}.
         
     | 
| 
       28 
28 
     | 
    
         
             
                def to_html(options = :DEFAULT, extensions = [])
         
     | 
| 
       29 
29 
     | 
    
         
             
                  opts = Config.process_options(options, :render)
         
     | 
| 
       30 
     | 
    
         
            -
                  _render_html(opts, extensions).force_encoding( 
     | 
| 
      
 30 
     | 
    
         
            +
                  _render_html(opts, extensions).force_encoding("utf-8")
         
     | 
| 
       31 
31 
     | 
    
         
             
                end
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                # Public: Convert the node to an XML string.
         
     | 
| 
         @@ -37,7 +37,7 @@ module QiitaMarker 
     | 
|
| 
       37 
37 
     | 
    
         
             
                # Returns a {String}.
         
     | 
| 
       38 
38 
     | 
    
         
             
                def to_xml(options = :DEFAULT)
         
     | 
| 
       39 
39 
     | 
    
         
             
                  opts = Config.process_options(options, :render)
         
     | 
| 
       40 
     | 
    
         
            -
                  _render_xml(opts).force_encoding( 
     | 
| 
      
 40 
     | 
    
         
            +
                  _render_xml(opts).force_encoding("utf-8")
         
     | 
| 
       41 
41 
     | 
    
         
             
                end
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
43 
     | 
    
         
             
                # Public: Convert the node to a CommonMark string.
         
     | 
| 
         @@ -48,7 +48,7 @@ module QiitaMarker 
     | 
|
| 
       48 
48 
     | 
    
         
             
                # Returns a {String}.
         
     | 
| 
       49 
49 
     | 
    
         
             
                def to_commonmark(options = :DEFAULT, width = 120)
         
     | 
| 
       50 
50 
     | 
    
         
             
                  opts = Config.process_options(options, :render)
         
     | 
| 
       51 
     | 
    
         
            -
                  _render_commonmark(opts, width).force_encoding( 
     | 
| 
      
 51 
     | 
    
         
            +
                  _render_commonmark(opts, width).force_encoding("utf-8")
         
     | 
| 
       52 
52 
     | 
    
         
             
                end
         
     | 
| 
       53 
53 
     | 
    
         | 
| 
       54 
54 
     | 
    
         
             
                # Public: Convert the node to a plain text string.
         
     | 
| 
         @@ -59,7 +59,7 @@ module QiitaMarker 
     | 
|
| 
       59 
59 
     | 
    
         
             
                # Returns a {String}.
         
     | 
| 
       60 
60 
     | 
    
         
             
                def to_plaintext(options = :DEFAULT, width = 120)
         
     | 
| 
       61 
61 
     | 
    
         
             
                  opts = Config.process_options(options, :render)
         
     | 
| 
       62 
     | 
    
         
            -
                  _render_plaintext(opts, width).force_encoding( 
     | 
| 
      
 62 
     | 
    
         
            +
                  _render_plaintext(opts, width).force_encoding("utf-8")
         
     | 
| 
       63 
63 
     | 
    
         
             
                end
         
     | 
| 
       64 
64 
     | 
    
         | 
| 
       65 
65 
     | 
    
         
             
                # Public: Iterate over the children (if any) of the current pointer.
         
     | 
| 
         @@ -76,7 +76,7 @@ module QiitaMarker 
     | 
|
| 
       76 
76 
     | 
    
         | 
| 
       77 
77 
     | 
    
         
             
                # Deprecated: Please use `each` instead
         
     | 
| 
       78 
78 
     | 
    
         
             
                def each_child(&block)
         
     | 
| 
       79 
     | 
    
         
            -
                  warn 
     | 
| 
      
 79 
     | 
    
         
            +
                  warn("[DEPRECATION] `each_child` is deprecated.  Please use `each` instead.")
         
     | 
| 
       80 
80 
     | 
    
         
             
                  each(&block)
         
     | 
| 
       81 
81 
     | 
    
         
             
                end
         
     | 
| 
       82 
82 
     | 
    
         
             
              end
         
     | 
| 
         @@ -9,8 +9,8 @@ module QiitaMarker 
     | 
|
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                def header(node)
         
     | 
| 
       11 
11 
     | 
    
         
             
                  block do
         
     | 
| 
       12 
     | 
    
         
            -
                    out( 
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
      
 12 
     | 
    
         
            +
                    out("<h", node.header_level, "#{sourcepos(node)}>", :children,
         
     | 
| 
      
 13 
     | 
    
         
            +
                      "</h", node.header_level, ">")
         
     | 
| 
       14 
14 
     | 
    
         
             
                  end
         
     | 
| 
       15 
15 
     | 
    
         
             
                end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
         @@ -19,10 +19,10 @@ module QiitaMarker 
     | 
|
| 
       19 
19 
     | 
    
         
             
                    out(:children)
         
     | 
| 
       20 
20 
     | 
    
         
             
                  else
         
     | 
| 
       21 
21 
     | 
    
         
             
                    block do
         
     | 
| 
       22 
     | 
    
         
            -
                      container("<p#{sourcepos(node)}>",  
     | 
| 
      
 22 
     | 
    
         
            +
                      container("<p#{sourcepos(node)}>", "</p>") do
         
     | 
| 
       23 
23 
     | 
    
         
             
                        out(:children)
         
     | 
| 
       24 
24 
     | 
    
         
             
                        if node.parent.type == :footnote_definition && node.next.nil?
         
     | 
| 
       25 
     | 
    
         
            -
                          out( 
     | 
| 
      
 25 
     | 
    
         
            +
                          out(" ")
         
     | 
| 
       26 
26 
     | 
    
         
             
                          out_footnote_backref
         
     | 
| 
       27 
27 
     | 
    
         
             
                        end
         
     | 
| 
       28 
28 
     | 
    
         
             
                      end
         
     | 
| 
         @@ -36,16 +36,16 @@ module QiitaMarker 
     | 
|
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
                  block do
         
     | 
| 
       38 
38 
     | 
    
         
             
                    if node.list_type == :bullet_list
         
     | 
| 
       39 
     | 
    
         
            -
                      container("<ul#{sourcepos(node)}>\n",  
     | 
| 
      
 39 
     | 
    
         
            +
                      container("<ul#{sourcepos(node)}>\n", "</ul>") do
         
     | 
| 
       40 
40 
     | 
    
         
             
                        out(:children)
         
     | 
| 
       41 
41 
     | 
    
         
             
                      end
         
     | 
| 
       42 
42 
     | 
    
         
             
                    else
         
     | 
| 
       43 
43 
     | 
    
         
             
                      start = if node.list_start == 1
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                      container(start,  
     | 
| 
      
 44 
     | 
    
         
            +
                        "<ol#{sourcepos(node)}>\n"
         
     | 
| 
      
 45 
     | 
    
         
            +
                      else
         
     | 
| 
      
 46 
     | 
    
         
            +
                        "<ol start=\"#{node.list_start}\"#{sourcepos(node)}>\n"
         
     | 
| 
      
 47 
     | 
    
         
            +
                      end
         
     | 
| 
      
 48 
     | 
    
         
            +
                      container(start, "</ol>") do
         
     | 
| 
       49 
49 
     | 
    
         
             
                        out(:children)
         
     | 
| 
       50 
50 
     | 
    
         
             
                      end
         
     | 
| 
       51 
51 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -57,26 +57,26 @@ module QiitaMarker 
     | 
|
| 
       57 
57 
     | 
    
         
             
                def list_item(node)
         
     | 
| 
       58 
58 
     | 
    
         
             
                  block do
         
     | 
| 
       59 
59 
     | 
    
         
             
                    tasklist_data = tasklist(node)
         
     | 
| 
       60 
     | 
    
         
            -
                    container("<li#{sourcepos(node)}#{tasklist_data}>#{ 
     | 
| 
      
 60 
     | 
    
         
            +
                    container("<li#{sourcepos(node)}#{tasklist_data}>#{" " if tasklist?(node)}", "</li>") do
         
     | 
| 
       61 
61 
     | 
    
         
             
                      out(:children)
         
     | 
| 
       62 
62 
     | 
    
         
             
                    end
         
     | 
| 
       63 
63 
     | 
    
         
             
                  end
         
     | 
| 
       64 
64 
     | 
    
         
             
                end
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
66 
     | 
    
         
             
                def tasklist(node)
         
     | 
| 
       67 
     | 
    
         
            -
                  return  
     | 
| 
      
 67 
     | 
    
         
            +
                  return "" unless tasklist?(node)
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
       69 
69 
     | 
    
         
             
                  state = if checked?(node)
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
      
 70 
     | 
    
         
            +
                    'checked="" disabled=""'
         
     | 
| 
      
 71 
     | 
    
         
            +
                  else
         
     | 
| 
      
 72 
     | 
    
         
            +
                    'disabled=""'
         
     | 
| 
      
 73 
     | 
    
         
            +
                  end
         
     | 
| 
       74 
74 
     | 
    
         
             
                  "><input type=\"checkbox\" #{state} /"
         
     | 
| 
       75 
75 
     | 
    
         
             
                end
         
     | 
| 
       76 
76 
     | 
    
         | 
| 
       77 
77 
     | 
    
         
             
                def blockquote(node)
         
     | 
| 
       78 
78 
     | 
    
         
             
                  block do
         
     | 
| 
       79 
     | 
    
         
            -
                    container("<blockquote#{sourcepos(node)}>\n",  
     | 
| 
      
 79 
     | 
    
         
            +
                    container("<blockquote#{sourcepos(node)}>\n", "</blockquote>") do
         
     | 
| 
       80 
80 
     | 
    
         
             
                      out(:children)
         
     | 
| 
       81 
81 
     | 
    
         
             
                    end
         
     | 
| 
       82 
82 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -93,21 +93,21 @@ module QiitaMarker 
     | 
|
| 
       93 
93 
     | 
    
         
             
                    if option_enabled?(:GITHUB_PRE_LANG)
         
     | 
| 
       94 
94 
     | 
    
         
             
                      out("<pre#{sourcepos(node)}")
         
     | 
| 
       95 
95 
     | 
    
         
             
                      out(' lang="', node.fence_info.split(/\s+/)[0], '"') if node.fence_info && !node.fence_info.empty?
         
     | 
| 
       96 
     | 
    
         
            -
                      out( 
     | 
| 
      
 96 
     | 
    
         
            +
                      out("><code>")
         
     | 
| 
       97 
97 
     | 
    
         
             
                    elsif option_enabled?(:CODE_DATA_METADATA)
         
     | 
| 
       98 
98 
     | 
    
         
             
                      out("<pre#{sourcepos(node)}><code")
         
     | 
| 
       99 
99 
     | 
    
         
             
                      out(' data-metadata="', node.fence_info, '"') if node.fence_info && !node.fence_info.empty?
         
     | 
| 
       100 
     | 
    
         
            -
                      out( 
     | 
| 
      
 100 
     | 
    
         
            +
                      out(">")
         
     | 
| 
       101 
101 
     | 
    
         
             
                    else
         
     | 
| 
       102 
102 
     | 
    
         
             
                      out("<pre#{sourcepos(node)}><code")
         
     | 
| 
       103 
103 
     | 
    
         
             
                      if node.fence_info && !node.fence_info.empty?
         
     | 
| 
       104 
104 
     | 
    
         
             
                        out(' class="language-', node.fence_info.split(/\s+/)[0], '">')
         
     | 
| 
       105 
105 
     | 
    
         
             
                      else
         
     | 
| 
       106 
     | 
    
         
            -
                        out( 
     | 
| 
      
 106 
     | 
    
         
            +
                        out(">")
         
     | 
| 
       107 
107 
     | 
    
         
             
                      end
         
     | 
| 
       108 
108 
     | 
    
         
             
                    end
         
     | 
| 
       109 
109 
     | 
    
         
             
                    out(escape_html(node.string_content))
         
     | 
| 
       110 
     | 
    
         
            -
                    out( 
     | 
| 
      
 110 
     | 
    
         
            +
                    out("</code></pre>")
         
     | 
| 
       111 
111 
     | 
    
         
             
                  end
         
     | 
| 
       112 
112 
     | 
    
         
             
                end
         
     | 
| 
       113 
113 
     | 
    
         | 
| 
         @@ -116,7 +116,7 @@ module QiitaMarker 
     | 
|
| 
       116 
116 
     | 
    
         
             
                    if option_enabled?(:UNSAFE)
         
     | 
| 
       117 
117 
     | 
    
         
             
                      out(tagfilter(node.string_content))
         
     | 
| 
       118 
118 
     | 
    
         
             
                    else
         
     | 
| 
       119 
     | 
    
         
            -
                      out( 
     | 
| 
      
 119 
     | 
    
         
            +
                      out("<!-- raw HTML omitted -->")
         
     | 
| 
       120 
120 
     | 
    
         
             
                    end
         
     | 
| 
       121 
121 
     | 
    
         
             
                  end
         
     | 
| 
       122 
122 
     | 
    
         
             
                end
         
     | 
| 
         @@ -125,22 +125,22 @@ module QiitaMarker 
     | 
|
| 
       125 
125 
     | 
    
         
             
                  if option_enabled?(:UNSAFE)
         
     | 
| 
       126 
126 
     | 
    
         
             
                    out(tagfilter(node.string_content))
         
     | 
| 
       127 
127 
     | 
    
         
             
                  else
         
     | 
| 
       128 
     | 
    
         
            -
                    out( 
     | 
| 
      
 128 
     | 
    
         
            +
                    out("<!-- raw HTML omitted -->")
         
     | 
| 
       129 
129 
     | 
    
         
             
                  end
         
     | 
| 
       130 
130 
     | 
    
         
             
                end
         
     | 
| 
       131 
131 
     | 
    
         | 
| 
       132 
132 
     | 
    
         
             
                def emph(_)
         
     | 
| 
       133 
     | 
    
         
            -
                  out( 
     | 
| 
      
 133 
     | 
    
         
            +
                  out("<em>", :children, "</em>")
         
     | 
| 
       134 
134 
     | 
    
         
             
                end
         
     | 
| 
       135 
135 
     | 
    
         | 
| 
       136 
136 
     | 
    
         
             
                def strong(_)
         
     | 
| 
       137 
     | 
    
         
            -
                  out( 
     | 
| 
      
 137 
     | 
    
         
            +
                  out("<strong>", :children, "</strong>")
         
     | 
| 
       138 
138 
     | 
    
         
             
                end
         
     | 
| 
       139 
139 
     | 
    
         | 
| 
       140 
140 
     | 
    
         
             
                def link(node)
         
     | 
| 
       141 
     | 
    
         
            -
                  out('<a href="', node.url.nil? ?  
     | 
| 
      
 141 
     | 
    
         
            +
                  out('<a href="', node.url.nil? ? "" : escape_href(node.url), '"')
         
     | 
| 
       142 
142 
     | 
    
         
             
                  out(' title="', escape_html(node.title), '"') if node.title && !node.title.empty?
         
     | 
| 
       143 
     | 
    
         
            -
                  out( 
     | 
| 
      
 143 
     | 
    
         
            +
                  out(">", :children, "</a>")
         
     | 
| 
       144 
144 
     | 
    
         
             
                end
         
     | 
| 
       145 
145 
     | 
    
         | 
| 
       146 
146 
     | 
    
         
             
                def image(node)
         
     | 
| 
         @@ -149,7 +149,7 @@ module QiitaMarker 
     | 
|
| 
       149 
149 
     | 
    
         
             
                    out(' alt="', :children, '"')
         
     | 
| 
       150 
150 
     | 
    
         
             
                  end
         
     | 
| 
       151 
151 
     | 
    
         
             
                  out(' title="', escape_html(node.title), '"') if node.title && !node.title.empty?
         
     | 
| 
       152 
     | 
    
         
            -
                  out( 
     | 
| 
      
 152 
     | 
    
         
            +
                  out(" />")
         
     | 
| 
       153 
153 
     | 
    
         
             
                end
         
     | 
| 
       154 
154 
     | 
    
         | 
| 
       155 
155 
     | 
    
         
             
                def text(node)
         
     | 
| 
         @@ -157,9 +157,9 @@ module QiitaMarker 
     | 
|
| 
       157 
157 
     | 
    
         
             
                end
         
     | 
| 
       158 
158 
     | 
    
         | 
| 
       159 
159 
     | 
    
         
             
                def code(node)
         
     | 
| 
       160 
     | 
    
         
            -
                  out( 
     | 
| 
      
 160 
     | 
    
         
            +
                  out("<code>")
         
     | 
| 
       161 
161 
     | 
    
         
             
                  out(escape_html(node.string_content))
         
     | 
| 
       162 
     | 
    
         
            -
                  out( 
     | 
| 
      
 162 
     | 
    
         
            +
                  out("</code>")
         
     | 
| 
       163 
163 
     | 
    
         
             
                end
         
     | 
| 
       164 
164 
     | 
    
         | 
| 
       165 
165 
     | 
    
         
             
                def linebreak(_node)
         
     | 
| 
         @@ -170,7 +170,7 @@ module QiitaMarker 
     | 
|
| 
       170 
170 
     | 
    
         
             
                  if option_enabled?(:HARDBREAKS)
         
     | 
| 
       171 
171 
     | 
    
         
             
                    out("<br />\n")
         
     | 
| 
       172 
172 
     | 
    
         
             
                  elsif option_enabled?(:NOBREAKS)
         
     | 
| 
       173 
     | 
    
         
            -
                    out( 
     | 
| 
      
 173 
     | 
    
         
            +
                    out(" ")
         
     | 
| 
       174 
174 
     | 
    
         
             
                  else
         
     | 
| 
       175 
175 
     | 
    
         
             
                    out("\n")
         
     | 
| 
       176 
176 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -203,17 +203,17 @@ module QiitaMarker 
     | 
|
| 
       203 
203 
     | 
    
         | 
| 
       204 
204 
     | 
    
         
             
                def table_cell(node)
         
     | 
| 
       205 
205 
     | 
    
         
             
                  align = case @alignments[@column_index]
         
     | 
| 
       206 
     | 
    
         
            -
             
     | 
| 
       207 
     | 
    
         
            -
             
     | 
| 
       208 
     | 
    
         
            -
             
     | 
| 
       209 
     | 
    
         
            -
             
     | 
| 
       210 
     | 
    
         
            -
             
     | 
| 
      
 206 
     | 
    
         
            +
                  when :left then ' align="left"'
         
     | 
| 
      
 207 
     | 
    
         
            +
                  when :right then ' align="right"'
         
     | 
| 
      
 208 
     | 
    
         
            +
                  when :center then ' align="center"'
         
     | 
| 
      
 209 
     | 
    
         
            +
                  else; ""
         
     | 
| 
      
 210 
     | 
    
         
            +
                  end
         
     | 
| 
       211 
211 
     | 
    
         
             
                  out(@in_header ? "<th#{align}#{sourcepos(node)}>" : "<td#{align}#{sourcepos(node)}>", :children, @in_header ? "</th>\n" : "</td>\n")
         
     | 
| 
       212 
212 
     | 
    
         
             
                  @column_index += 1
         
     | 
| 
       213 
213 
     | 
    
         
             
                end
         
     | 
| 
       214 
214 
     | 
    
         | 
| 
       215 
215 
     | 
    
         
             
                def strikethrough(_)
         
     | 
| 
       216 
     | 
    
         
            -
                  out( 
     | 
| 
      
 216 
     | 
    
         
            +
                  out("<del>", :children, "</del>")
         
     | 
| 
       217 
217 
     | 
    
         
             
                end
         
     | 
| 
       218 
218 
     | 
    
         | 
| 
       219 
219 
     | 
    
         
             
                def footnote_reference(node)
         
     | 
| 
         @@ -246,7 +246,7 @@ module QiitaMarker 
     | 
|
| 
       246 
246 
     | 
    
         
             
                end
         
     | 
| 
       247 
247 
     | 
    
         | 
| 
       248 
248 
     | 
    
         
             
                def tasklist?(node)
         
     | 
| 
       249 
     | 
    
         
            -
                  node.type_string ==  
     | 
| 
      
 249 
     | 
    
         
            +
                  node.type_string == "tasklist"
         
     | 
| 
       250 
250 
     | 
    
         
             
                end
         
     | 
| 
       251 
251 
     | 
    
         | 
| 
       252 
252 
     | 
    
         
             
                def checked?(node)
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            require  
     | 
| 
       4 
     | 
    
         
            -
            require  
     | 
| 
      
 3 
     | 
    
         
            +
            require "set"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "stringio"
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            module QiitaMarker
         
     | 
| 
       7 
7 
     | 
    
         
             
              class Renderer
         
     | 
| 
         @@ -9,9 +9,9 @@ module QiitaMarker 
     | 
|
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                def initialize(options: :DEFAULT, extensions: [])
         
     | 
| 
       11 
11 
     | 
    
         
             
                  @opts = Config.process_options(options, :render)
         
     | 
| 
       12 
     | 
    
         
            -
                  @stream = StringIO.new(+ 
     | 
| 
      
 12 
     | 
    
         
            +
                  @stream = StringIO.new(+"")
         
     | 
| 
       13 
13 
     | 
    
         
             
                  @need_blocksep = false
         
     | 
| 
       14 
     | 
    
         
            -
                  @warnings = Set.new 
     | 
| 
      
 14 
     | 
    
         
            +
                  @warnings = Set.new([])
         
     | 
| 
       15 
15 
     | 
    
         
             
                  @in_tight = false
         
     | 
| 
       16 
16 
     | 
    
         
             
                  @in_plain = false
         
     | 
| 
       17 
17 
     | 
    
         
             
                  @tagfilter = extensions.include?(:tagfilter)
         
     | 
| 
         @@ -121,7 +121,7 @@ module QiitaMarker 
     | 
|
| 
       121 
121 
     | 
    
         
             
                end
         
     | 
| 
       122 
122 
     | 
    
         | 
| 
       123 
123 
     | 
    
         
             
                def sourcepos(node)
         
     | 
| 
       124 
     | 
    
         
            -
                  return  
     | 
| 
      
 124 
     | 
    
         
            +
                  return "" unless option_enabled?(:SOURCEPOS)
         
     | 
| 
       125 
125 
     | 
    
         | 
| 
       126 
126 
     | 
    
         
             
                  s = node.sourcepos
         
     | 
| 
       127 
127 
     | 
    
         
             
                  " data-sourcepos=\"#{s[:start_line]}:#{s[:start_column]}-" \
         
     | 
    
        data/lib/qiita_marker/version.rb
    CHANGED
    
    
    
        data/lib/qiita_marker.rb
    CHANGED
    
    | 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #!/usr/bin/env ruby
         
     | 
| 
       2 
2 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            require  
     | 
| 
       5 
     | 
    
         
            -
            require  
     | 
| 
       6 
     | 
    
         
            -
            require  
     | 
| 
       7 
     | 
    
         
            -
            require  
     | 
| 
       8 
     | 
    
         
            -
            require  
     | 
| 
       9 
     | 
    
         
            -
            require  
     | 
| 
      
 4 
     | 
    
         
            +
            require "qiita_marker/qiita_marker"
         
     | 
| 
      
 5 
     | 
    
         
            +
            require "qiita_marker/config"
         
     | 
| 
      
 6 
     | 
    
         
            +
            require "qiita_marker/node"
         
     | 
| 
      
 7 
     | 
    
         
            +
            require "qiita_marker/renderer"
         
     | 
| 
      
 8 
     | 
    
         
            +
            require "qiita_marker/renderer/html_renderer"
         
     | 
| 
      
 9 
     | 
    
         
            +
            require "qiita_marker/version"
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            begin
         
     | 
| 
       12 
     | 
    
         
            -
              require  
     | 
| 
      
 12 
     | 
    
         
            +
              require "awesome_print"
         
     | 
| 
       13 
13 
     | 
    
         
             
            rescue LoadError; end # rubocop:disable Lint/SuppressedException
         
     | 
| 
       14 
14 
     | 
    
         
             
            module QiitaMarker
         
     | 
| 
       15 
15 
     | 
    
         
             
              # Public:  Parses a Markdown string into an HTML string.
         
     | 
| 
         @@ -23,9 +23,7 @@ module QiitaMarker 
     | 
|
| 
       23 
23 
     | 
    
         
             
                raise TypeError, "text must be a String; got a #{text.class}!" unless text.is_a?(String)
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
25 
     | 
    
         
             
                opts = Config.process_options(options, :render)
         
     | 
| 
       26 
     | 
    
         
            -
                text 
     | 
| 
       27 
     | 
    
         
            -
                html = Node.markdown_to_html(text, opts, extensions)
         
     | 
| 
       28 
     | 
    
         
            -
                html.force_encoding('UTF-8')
         
     | 
| 
      
 26 
     | 
    
         
            +
                Node.markdown_to_html(text.encode("UTF-8"), opts, extensions)
         
     | 
| 
       29 
27 
     | 
    
         
             
              end
         
     | 
| 
       30 
28 
     | 
    
         | 
| 
       31 
29 
     | 
    
         
             
              # Public: Parses a Markdown string into a `document` node.
         
     | 
| 
         @@ -39,7 +37,7 @@ module QiitaMarker 
     | 
|
| 
       39 
37 
     | 
    
         
             
                raise TypeError, "text must be a String; got a #{text.class}!" unless text.is_a?(String)
         
     | 
| 
       40 
38 
     | 
    
         | 
| 
       41 
39 
     | 
    
         
             
                opts = Config.process_options(options, :parse)
         
     | 
| 
       42 
     | 
    
         
            -
                text = text.encode( 
     | 
| 
      
 40 
     | 
    
         
            +
                text = text.encode("UTF-8")
         
     | 
| 
       43 
41 
     | 
    
         
             
                Node.parse_document(text, text.bytesize, opts, extensions)
         
     | 
| 
       44 
42 
     | 
    
         
             
              end
         
     | 
| 
       45 
43 
     | 
    
         
             
            end
         
     | 
    
        data/qiita_marker.gemspec
    CHANGED
    
    | 
         @@ -1,40 +1,38 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            lib = File.expand_path( 
     | 
| 
      
 3 
     | 
    
         
            +
            lib = File.expand_path("lib", __dir__)
         
     | 
| 
       4 
4 
     | 
    
         
             
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         
     | 
| 
       5 
     | 
    
         
            -
            require  
     | 
| 
      
 5 
     | 
    
         
            +
            require "qiita_marker/version"
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       8 
     | 
    
         
            -
              s.name =  
     | 
| 
      
 8 
     | 
    
         
            +
              s.name = "qiita_marker"
         
     | 
| 
       9 
9 
     | 
    
         
             
              s.version = QiitaMarker::VERSION
         
     | 
| 
       10 
     | 
    
         
            -
              s.summary =  
     | 
| 
       11 
     | 
    
         
            -
              s.description =  
     | 
| 
       12 
     | 
    
         
            -
              s.authors = [ 
     | 
| 
       13 
     | 
    
         
            -
              s.homepage =  
     | 
| 
       14 
     | 
    
         
            -
              s.license =  
     | 
| 
      
 10 
     | 
    
         
            +
              s.summary = "Qiita Marker is a Ruby library for Markdown processing, based on CommonMarker."
         
     | 
| 
      
 11 
     | 
    
         
            +
              s.description = "A Ruby library that is the core module of the Qiita-specified markdown processor."
         
     | 
| 
      
 12 
     | 
    
         
            +
              s.authors = ["Qiita Inc."]
         
     | 
| 
      
 13 
     | 
    
         
            +
              s.homepage = "https://github.com/increments/qiita_marker"
         
     | 
| 
      
 14 
     | 
    
         
            +
              s.license = "MIT"
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
              s.files         =  
     | 
| 
       17 
     | 
    
         
            -
              s.files        += Dir.glob( 
     | 
| 
       18 
     | 
    
         
            -
              s.files        += Dir.glob( 
     | 
| 
       19 
     | 
    
         
            -
              s. 
     | 
| 
       20 
     | 
    
         
            -
              s.extensions    = ['ext/qiita_marker/extconf.rb']
         
     | 
| 
      
 16 
     | 
    
         
            +
              s.files         = ["LICENSE.txt", "README.md", "Rakefile", "qiita_marker.gemspec", "bin/qiita_marker"]
         
     | 
| 
      
 17 
     | 
    
         
            +
              s.files        += Dir.glob("lib/**/*.rb")
         
     | 
| 
      
 18 
     | 
    
         
            +
              s.files        += Dir.glob("ext/qiita_marker/*.*")
         
     | 
| 
      
 19 
     | 
    
         
            +
              s.extensions    = ["ext/qiita_marker/extconf.rb"]
         
     | 
| 
       21 
20 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
              s.executables = [ 
     | 
| 
       23 
     | 
    
         
            -
              s.require_paths =  
     | 
| 
       24 
     | 
    
         
            -
              s.required_ruby_version = [ 
     | 
| 
      
 21 
     | 
    
         
            +
              s.executables = ["qiita_marker"]
         
     | 
| 
      
 22 
     | 
    
         
            +
              s.require_paths = ["lib", "ext"]
         
     | 
| 
      
 23 
     | 
    
         
            +
              s.required_ruby_version = [">= 2.6", "< 4.0"]
         
     | 
| 
       25 
24 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
              s. 
     | 
| 
      
 25 
     | 
    
         
            +
              s.metadata["rubygems_mfa_required"] = "true"
         
     | 
| 
       27 
26 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
              s. 
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
              s.add_development_dependency 
     | 
| 
       31 
     | 
    
         
            -
              s.add_development_dependency 
     | 
| 
       32 
     | 
    
         
            -
              s.add_development_dependency  
     | 
| 
       33 
     | 
    
         
            -
              s.add_development_dependency 
     | 
| 
       34 
     | 
    
         
            -
              s.add_development_dependency 
     | 
| 
       35 
     | 
    
         
            -
              s.add_development_dependency  
     | 
| 
       36 
     | 
    
         
            -
              s.add_development_dependency  
     | 
| 
       37 
     | 
    
         
            -
              s. 
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
              }
         
     | 
| 
      
 27 
     | 
    
         
            +
              s.rdoc_options += ["-x", "ext/qiita_marker/cmark/.*"]
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              s.add_development_dependency("awesome_print")
         
     | 
| 
      
 30 
     | 
    
         
            +
              s.add_development_dependency("json", "~> 2.3")
         
     | 
| 
      
 31 
     | 
    
         
            +
              s.add_development_dependency("minitest", "~> 5.6")
         
     | 
| 
      
 32 
     | 
    
         
            +
              s.add_development_dependency("minitest-focus", "~> 1.1")
         
     | 
| 
      
 33 
     | 
    
         
            +
              s.add_development_dependency("rake")
         
     | 
| 
      
 34 
     | 
    
         
            +
              s.add_development_dependency("rake-compiler", "~> 0.9")
         
     | 
| 
      
 35 
     | 
    
         
            +
              s.add_development_dependency("rdoc", "~> 6.2")
         
     | 
| 
      
 36 
     | 
    
         
            +
              s.add_development_dependency("rubocop")
         
     | 
| 
      
 37 
     | 
    
         
            +
              s.add_development_dependency("rubocop-standard")
         
     | 
| 
       40 
38 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: qiita_marker
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.23. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.23.5.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Qiita Inc.
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2022- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-06-01 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: awesome_print
         
     | 
| 
         @@ -236,36 +236,6 @@ files: 
     | 
|
| 
       236 
236 
     | 
    
         
             
            - lib/qiita_marker/renderer/html_renderer.rb
         
     | 
| 
       237 
237 
     | 
    
         
             
            - lib/qiita_marker/version.rb
         
     | 
| 
       238 
238 
     | 
    
         
             
            - qiita_marker.gemspec
         
     | 
| 
       239 
     | 
    
         
            -
            - test/benchmark.rb
         
     | 
| 
       240 
     | 
    
         
            -
            - test/fixtures/curly.md
         
     | 
| 
       241 
     | 
    
         
            -
            - test/fixtures/dingus.md
         
     | 
| 
       242 
     | 
    
         
            -
            - test/fixtures/strong.md
         
     | 
| 
       243 
     | 
    
         
            -
            - test/fixtures/table.md
         
     | 
| 
       244 
     | 
    
         
            -
            - test/test_attributes.rb
         
     | 
| 
       245 
     | 
    
         
            -
            - test/test_basics.rb
         
     | 
| 
       246 
     | 
    
         
            -
            - test/test_commands.rb
         
     | 
| 
       247 
     | 
    
         
            -
            - test/test_commonmark.rb
         
     | 
| 
       248 
     | 
    
         
            -
            - test/test_doc.rb
         
     | 
| 
       249 
     | 
    
         
            -
            - test/test_encoding.rb
         
     | 
| 
       250 
     | 
    
         
            -
            - test/test_extensions.rb
         
     | 
| 
       251 
     | 
    
         
            -
            - test/test_footnotes.rb
         
     | 
| 
       252 
     | 
    
         
            -
            - test/test_gc.rb
         
     | 
| 
       253 
     | 
    
         
            -
            - test/test_helper.rb
         
     | 
| 
       254 
     | 
    
         
            -
            - test/test_linebreaks.rb
         
     | 
| 
       255 
     | 
    
         
            -
            - test/test_maliciousness.rb
         
     | 
| 
       256 
     | 
    
         
            -
            - test/test_node.rb
         
     | 
| 
       257 
     | 
    
         
            -
            - test/test_options.rb
         
     | 
| 
       258 
     | 
    
         
            -
            - test/test_pathological_inputs.rb
         
     | 
| 
       259 
     | 
    
         
            -
            - test/test_plaintext.rb
         
     | 
| 
       260 
     | 
    
         
            -
            - test/test_qfm_autolink_class_name.rb
         
     | 
| 
       261 
     | 
    
         
            -
            - test/test_qfm_code_data_metadata.rb
         
     | 
| 
       262 
     | 
    
         
            -
            - test/test_qfm_custom_block.rb
         
     | 
| 
       263 
     | 
    
         
            -
            - test/test_qfm_mention_no_emphasis.rb
         
     | 
| 
       264 
     | 
    
         
            -
            - test/test_renderer.rb
         
     | 
| 
       265 
     | 
    
         
            -
            - test/test_smartpunct.rb
         
     | 
| 
       266 
     | 
    
         
            -
            - test/test_spec.rb
         
     | 
| 
       267 
     | 
    
         
            -
            - test/test_tasklists.rb
         
     | 
| 
       268 
     | 
    
         
            -
            - test/test_xml.rb
         
     | 
| 
       269 
239 
     | 
    
         
             
            homepage: https://github.com/increments/qiita_marker
         
     | 
| 
       270 
240 
     | 
    
         
             
            licenses:
         
     | 
| 
       271 
241 
     | 
    
         
             
            - MIT
         
     | 
| 
         @@ -296,34 +266,4 @@ rubygems_version: 3.1.4 
     | 
|
| 
       296 
266 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       297 
267 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       298 
268 
     | 
    
         
             
            summary: Qiita Marker is a Ruby library for Markdown processing, based on CommonMarker.
         
     | 
| 
       299 
     | 
    
         
            -
            test_files:
         
     | 
| 
       300 
     | 
    
         
            -
            - test/benchmark.rb
         
     | 
| 
       301 
     | 
    
         
            -
            - test/fixtures/curly.md
         
     | 
| 
       302 
     | 
    
         
            -
            - test/fixtures/dingus.md
         
     | 
| 
       303 
     | 
    
         
            -
            - test/fixtures/strong.md
         
     | 
| 
       304 
     | 
    
         
            -
            - test/fixtures/table.md
         
     | 
| 
       305 
     | 
    
         
            -
            - test/test_attributes.rb
         
     | 
| 
       306 
     | 
    
         
            -
            - test/test_basics.rb
         
     | 
| 
       307 
     | 
    
         
            -
            - test/test_commands.rb
         
     | 
| 
       308 
     | 
    
         
            -
            - test/test_commonmark.rb
         
     | 
| 
       309 
     | 
    
         
            -
            - test/test_doc.rb
         
     | 
| 
       310 
     | 
    
         
            -
            - test/test_encoding.rb
         
     | 
| 
       311 
     | 
    
         
            -
            - test/test_extensions.rb
         
     | 
| 
       312 
     | 
    
         
            -
            - test/test_footnotes.rb
         
     | 
| 
       313 
     | 
    
         
            -
            - test/test_gc.rb
         
     | 
| 
       314 
     | 
    
         
            -
            - test/test_helper.rb
         
     | 
| 
       315 
     | 
    
         
            -
            - test/test_linebreaks.rb
         
     | 
| 
       316 
     | 
    
         
            -
            - test/test_maliciousness.rb
         
     | 
| 
       317 
     | 
    
         
            -
            - test/test_node.rb
         
     | 
| 
       318 
     | 
    
         
            -
            - test/test_options.rb
         
     | 
| 
       319 
     | 
    
         
            -
            - test/test_pathological_inputs.rb
         
     | 
| 
       320 
     | 
    
         
            -
            - test/test_plaintext.rb
         
     | 
| 
       321 
     | 
    
         
            -
            - test/test_qfm_autolink_class_name.rb
         
     | 
| 
       322 
     | 
    
         
            -
            - test/test_qfm_code_data_metadata.rb
         
     | 
| 
       323 
     | 
    
         
            -
            - test/test_qfm_custom_block.rb
         
     | 
| 
       324 
     | 
    
         
            -
            - test/test_qfm_mention_no_emphasis.rb
         
     | 
| 
       325 
     | 
    
         
            -
            - test/test_renderer.rb
         
     | 
| 
       326 
     | 
    
         
            -
            - test/test_smartpunct.rb
         
     | 
| 
       327 
     | 
    
         
            -
            - test/test_spec.rb
         
     | 
| 
       328 
     | 
    
         
            -
            - test/test_tasklists.rb
         
     | 
| 
       329 
     | 
    
         
            -
            - test/test_xml.rb
         
     | 
| 
      
 269 
     | 
    
         
            +
            test_files: []
         
     |