commonmarker 0.23.10 → 2.1.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 +4 -4
 - data/Cargo.lock +1156 -0
 - data/Cargo.toml +7 -0
 - data/README.md +237 -172
 - data/ext/commonmarker/Cargo.toml +20 -0
 - data/ext/commonmarker/extconf.rb +3 -6
 - data/ext/commonmarker/src/lib.rs +103 -0
 - data/ext/commonmarker/src/node.rs +1221 -0
 - data/ext/commonmarker/src/options.rs +220 -0
 - data/ext/commonmarker/src/plugins/syntax_highlighting.rs +166 -0
 - data/ext/commonmarker/src/plugins.rs +6 -0
 - data/ext/commonmarker/src/utils.rs +8 -0
 - data/lib/commonmarker/config.rb +92 -40
 - data/lib/commonmarker/constants.rb +7 -0
 - data/lib/commonmarker/extension.rb +14 -0
 - data/lib/commonmarker/node/ast.rb +8 -0
 - data/lib/commonmarker/node/inspect.rb +14 -4
 - data/lib/commonmarker/node.rb +29 -47
 - data/lib/commonmarker/renderer.rb +1 -127
 - data/lib/commonmarker/utils.rb +22 -0
 - data/lib/commonmarker/version.rb +2 -2
 - data/lib/commonmarker.rb +27 -25
 - metadata +38 -191
 - data/Rakefile +0 -109
 - data/bin/commonmarker +0 -118
 - data/commonmarker.gemspec +0 -38
 - data/ext/commonmarker/arena.c +0 -104
 - data/ext/commonmarker/autolink.c +0 -508
 - data/ext/commonmarker/autolink.h +0 -8
 - data/ext/commonmarker/blocks.c +0 -1622
 - data/ext/commonmarker/buffer.c +0 -278
 - data/ext/commonmarker/buffer.h +0 -116
 - data/ext/commonmarker/case_fold_switch.inc +0 -4327
 - data/ext/commonmarker/chunk.h +0 -135
 - data/ext/commonmarker/cmark-gfm-core-extensions.h +0 -54
 - data/ext/commonmarker/cmark-gfm-extension_api.h +0 -737
 - data/ext/commonmarker/cmark-gfm-extensions_export.h +0 -42
 - data/ext/commonmarker/cmark-gfm.h +0 -833
 - data/ext/commonmarker/cmark-gfm_export.h +0 -42
 - data/ext/commonmarker/cmark-gfm_version.h +0 -7
 - data/ext/commonmarker/cmark.c +0 -55
 - data/ext/commonmarker/cmark_ctype.c +0 -44
 - data/ext/commonmarker/cmark_ctype.h +0 -33
 - data/ext/commonmarker/commonmark.c +0 -514
 - data/ext/commonmarker/commonmarker.c +0 -1308
 - data/ext/commonmarker/commonmarker.h +0 -16
 - data/ext/commonmarker/config.h +0 -76
 - data/ext/commonmarker/core-extensions.c +0 -27
 - data/ext/commonmarker/entities.inc +0 -2138
 - data/ext/commonmarker/ext_scanners.c +0 -879
 - data/ext/commonmarker/ext_scanners.h +0 -24
 - data/ext/commonmarker/footnotes.c +0 -63
 - data/ext/commonmarker/footnotes.h +0 -27
 - data/ext/commonmarker/houdini.h +0 -57
 - data/ext/commonmarker/houdini_href_e.c +0 -100
 - data/ext/commonmarker/houdini_html_e.c +0 -66
 - data/ext/commonmarker/houdini_html_u.c +0 -149
 - data/ext/commonmarker/html.c +0 -502
 - data/ext/commonmarker/html.h +0 -27
 - data/ext/commonmarker/inlines.c +0 -1788
 - data/ext/commonmarker/inlines.h +0 -29
 - data/ext/commonmarker/iterator.c +0 -159
 - data/ext/commonmarker/iterator.h +0 -26
 - data/ext/commonmarker/latex.c +0 -468
 - data/ext/commonmarker/linked_list.c +0 -37
 - data/ext/commonmarker/man.c +0 -274
 - data/ext/commonmarker/map.c +0 -129
 - data/ext/commonmarker/map.h +0 -44
 - data/ext/commonmarker/node.c +0 -1045
 - data/ext/commonmarker/node.h +0 -167
 - data/ext/commonmarker/parser.h +0 -59
 - data/ext/commonmarker/plaintext.c +0 -218
 - data/ext/commonmarker/plugin.c +0 -36
 - data/ext/commonmarker/plugin.h +0 -34
 - data/ext/commonmarker/references.c +0 -43
 - data/ext/commonmarker/references.h +0 -26
 - data/ext/commonmarker/registry.c +0 -63
 - data/ext/commonmarker/registry.h +0 -24
 - data/ext/commonmarker/render.c +0 -213
 - data/ext/commonmarker/render.h +0 -62
 - data/ext/commonmarker/scanners.c +0 -14056
 - data/ext/commonmarker/scanners.h +0 -70
 - data/ext/commonmarker/scanners.re +0 -341
 - data/ext/commonmarker/strikethrough.c +0 -167
 - data/ext/commonmarker/strikethrough.h +0 -9
 - data/ext/commonmarker/syntax_extension.c +0 -149
 - data/ext/commonmarker/syntax_extension.h +0 -34
 - data/ext/commonmarker/table.c +0 -917
 - data/ext/commonmarker/table.h +0 -12
 - data/ext/commonmarker/tagfilter.c +0 -60
 - data/ext/commonmarker/tagfilter.h +0 -8
 - data/ext/commonmarker/tasklist.c +0 -156
 - data/ext/commonmarker/tasklist.h +0 -8
 - data/ext/commonmarker/utf8.c +0 -317
 - data/ext/commonmarker/utf8.h +0 -35
 - data/ext/commonmarker/xml.c +0 -182
 - data/lib/commonmarker/renderer/html_renderer.rb +0 -256
 
    
        data/Rakefile
    DELETED
    
    | 
         @@ -1,109 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            require "date"
         
     | 
| 
       4 
     | 
    
         
            -
            require "rake/clean"
         
     | 
| 
       5 
     | 
    
         
            -
            require "rake/extensiontask"
         
     | 
| 
       6 
     | 
    
         
            -
            require "digest/md5"
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            host_os = RbConfig::CONFIG["host_os"]
         
     | 
| 
       9 
     | 
    
         
            -
            require "devkit" if host_os == "mingw32"
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            task default: [:test]
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            # Gem Spec
         
     | 
| 
       14 
     | 
    
         
            -
            gem_spec = Gem::Specification.load("commonmarker.gemspec")
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            # Ruby Extension
         
     | 
| 
       17 
     | 
    
         
            -
            Rake::ExtensionTask.new("commonmarker", gem_spec) do |ext|
         
     | 
| 
       18 
     | 
    
         
            -
              ext.lib_dir = File.join("lib", "commonmarker")
         
     | 
| 
       19 
     | 
    
         
            -
            end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
            # Packaging
         
     | 
| 
       22 
     | 
    
         
            -
            require "bundler/gem_tasks"
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
            # Testing
         
     | 
| 
       25 
     | 
    
         
            -
            require "rake/testtask"
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
            Rake::TestTask.new("test:unit") do |t|
         
     | 
| 
       28 
     | 
    
         
            -
              t.libs << "lib"
         
     | 
| 
       29 
     | 
    
         
            -
              t.libs << "test"
         
     | 
| 
       30 
     | 
    
         
            -
              t.pattern = "test/test_*.rb"
         
     | 
| 
       31 
     | 
    
         
            -
              t.verbose = true
         
     | 
| 
       32 
     | 
    
         
            -
              t.warning = false
         
     | 
| 
       33 
     | 
    
         
            -
            end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
            desc "Run unit tests"
         
     | 
| 
       36 
     | 
    
         
            -
            task "test:unit" => :compile
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
            desc "Run unit and conformance tests"
         
     | 
| 
       39 
     | 
    
         
            -
            task test: ["test:unit"]
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
            require "rubocop/rake_task"
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
            RuboCop::RakeTask.new(:rubocop)
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
            desc "Run benchmarks"
         
     | 
| 
       46 
     | 
    
         
            -
            task :benchmark do
         
     | 
| 
       47 
     | 
    
         
            -
              if ENV["FETCH_PROGIT"]
         
     | 
| 
       48 
     | 
    
         
            -
                %x(rm -rf test/progit)
         
     | 
| 
       49 
     | 
    
         
            -
                %x(git clone https://github.com/progit/progit.git test/progit)
         
     | 
| 
       50 
     | 
    
         
            -
                langs = ["ar", "az", "be", "ca", "cs", "de", "en", "eo", "es", "es-ni", "fa", "fi", "fr", "hi", "hu", "id", "it", "ja", "ko", "mk", "nl", "no-nb", "pl", "pt-br", "ro", "ru", "sr", "th", "tr", "uk", "vi", "zh", "zh-tw"]
         
     | 
| 
       51 
     | 
    
         
            -
                langs.each do |lang|
         
     | 
| 
       52 
     | 
    
         
            -
                  %x(cat test/progit/#{lang}/*/*.markdown >> test/benchinput.md)
         
     | 
| 
       53 
     | 
    
         
            -
                end
         
     | 
| 
       54 
     | 
    
         
            -
              end
         
     | 
| 
       55 
     | 
    
         
            -
              $LOAD_PATH.unshift("lib")
         
     | 
| 
       56 
     | 
    
         
            -
              load "test/benchmark.rb"
         
     | 
| 
       57 
     | 
    
         
            -
            end
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
            desc "Match C style of cmark"
         
     | 
| 
       60 
     | 
    
         
            -
            task :format do
         
     | 
| 
       61 
     | 
    
         
            -
              sh "clang-format -style llvm -i ext/commonmarker/*.c ext/commonmarker/*.h"
         
     | 
| 
       62 
     | 
    
         
            -
            end
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
            # Documentation
         
     | 
| 
       65 
     | 
    
         
            -
            require "rdoc/task"
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
            desc "Generate API documentation"
         
     | 
| 
       68 
     | 
    
         
            -
            RDoc::Task.new do |rd|
         
     | 
| 
       69 
     | 
    
         
            -
              rd.rdoc_dir = "docs"
         
     | 
| 
       70 
     | 
    
         
            -
              rd.main     = "README.md"
         
     | 
| 
       71 
     | 
    
         
            -
              rd.rdoc_files.include("README.md", "lib/**/*.rb", "ext/commonmarker/commonmarker.c")
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
              rd.options << "--markup tomdoc"
         
     | 
| 
       74 
     | 
    
         
            -
              rd.options << "--inline-source"
         
     | 
| 
       75 
     | 
    
         
            -
              rd.options << "--line-numbers"
         
     | 
| 
       76 
     | 
    
         
            -
              rd.options << "--all"
         
     | 
| 
       77 
     | 
    
         
            -
              rd.options << "--fileboxes"
         
     | 
| 
       78 
     | 
    
         
            -
            end
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
            desc "Generate the documentation and run a web server"
         
     | 
| 
       81 
     | 
    
         
            -
            task serve: [:rdoc] do
         
     | 
| 
       82 
     | 
    
         
            -
              require "webrick"
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
              puts "Navigate to http://localhost:3000 to see the docs"
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
              server = WEBrick::HTTPServer.new(Port: 3000)
         
     | 
| 
       87 
     | 
    
         
            -
              server.mount("/", WEBrick::HTTPServlet::FileHandler, "docs")
         
     | 
| 
       88 
     | 
    
         
            -
              trap("INT") { server.stop }
         
     | 
| 
       89 
     | 
    
         
            -
              server.start
         
     | 
| 
       90 
     | 
    
         
            -
            end
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
            desc "Generate and publish docs to gh-pages"
         
     | 
| 
       93 
     | 
    
         
            -
            task publish: [:rdoc] do
         
     | 
| 
       94 
     | 
    
         
            -
              require "tmpdir"
         
     | 
| 
       95 
     | 
    
         
            -
              require "shellwords"
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
              Dir.mktmpdir do |tmp|
         
     | 
| 
       98 
     | 
    
         
            -
                system "mv docs/* #{tmp}"
         
     | 
| 
       99 
     | 
    
         
            -
                system "git checkout origin/gh-pages"
         
     | 
| 
       100 
     | 
    
         
            -
                system "rm -rf *"
         
     | 
| 
       101 
     | 
    
         
            -
                system "mv #{tmp}/* ."
         
     | 
| 
       102 
     | 
    
         
            -
                message = Shellwords.escape("Site updated at #{Time.now.utc}")
         
     | 
| 
       103 
     | 
    
         
            -
                system "git add ."
         
     | 
| 
       104 
     | 
    
         
            -
                system "git commit -am #{message}"
         
     | 
| 
       105 
     | 
    
         
            -
                system "git push origin gh-pages --force"
         
     | 
| 
       106 
     | 
    
         
            -
                system "git checkout master"
         
     | 
| 
       107 
     | 
    
         
            -
                system "echo yolo"
         
     | 
| 
       108 
     | 
    
         
            -
              end
         
     | 
| 
       109 
     | 
    
         
            -
            end
         
     | 
    
        data/bin/commonmarker
    DELETED
    
    | 
         @@ -1,118 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #!/usr/bin/env ruby
         
     | 
| 
       2 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            require 'optparse'
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
         
     | 
| 
       7 
     | 
    
         
            -
            require 'commonmarker'
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            root = File.expand_path('..', __dir__)
         
     | 
| 
       10 
     | 
    
         
            -
            $LOAD_PATH.unshift File.expand_path('lib', root)
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            def parse_options
         
     | 
| 
       13 
     | 
    
         
            -
              options = Struct.new(:active_extensions, :active_parse_options, :active_render_options, :output_format, :renderer)
         
     | 
| 
       14 
     | 
    
         
            -
                              .new([], [:DEFAULT], [:DEFAULT], :html)
         
     | 
| 
       15 
     | 
    
         
            -
              extensions = CommonMarker.extensions
         
     | 
| 
       16 
     | 
    
         
            -
              parse_options = CommonMarker::Config::OPTS.fetch(:parse)
         
     | 
| 
       17 
     | 
    
         
            -
              render_options = CommonMarker::Config::OPTS.fetch(:render)
         
     | 
| 
       18 
     | 
    
         
            -
              format_options = CommonMarker::Config::OPTS.fetch(:format)
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
              option_parser = OptionParser.new do |opts|
         
     | 
| 
       21 
     | 
    
         
            -
                opts.banner = 'Usage: commonmarker [--html-renderer] [--extension=EXTENSION]'
         
     | 
| 
       22 
     | 
    
         
            -
                opts.separator '                    [--to=FORMAT]'
         
     | 
| 
       23 
     | 
    
         
            -
                opts.separator '                    [--parse-option=OPTION]'
         
     | 
| 
       24 
     | 
    
         
            -
                opts.separator '                    [--render-option=OPTION]'
         
     | 
| 
       25 
     | 
    
         
            -
                opts.separator '                    [FILE..]'
         
     | 
| 
       26 
     | 
    
         
            -
                opts.separator ''
         
     | 
| 
       27 
     | 
    
         
            -
                opts.separator 'Convert one or more CommonMark files to HTML and write to standard output.'
         
     | 
| 
       28 
     | 
    
         
            -
                opts.separator 'If no FILE argument is provided, text will be read from STDIN.'
         
     | 
| 
       29 
     | 
    
         
            -
                opts.separator ''
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                opts.on('--extension=EXTENSION', Array, 'Use EXTENSION for parsing and HTML output (unless --html-renderer is specified)') do |values|
         
     | 
| 
       32 
     | 
    
         
            -
                  values.each do |value|
         
     | 
| 
       33 
     | 
    
         
            -
                    if extensions.include?(value)
         
     | 
| 
       34 
     | 
    
         
            -
                      options.active_extensions << value.to_sym
         
     | 
| 
       35 
     | 
    
         
            -
                    else
         
     | 
| 
       36 
     | 
    
         
            -
                      abort("extension '#{value}' not found")
         
     | 
| 
       37 
     | 
    
         
            -
                    end
         
     | 
| 
       38 
     | 
    
         
            -
                  end
         
     | 
| 
       39 
     | 
    
         
            -
                end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
                opts.on('-h', '--help', 'Prints this help') do
         
     | 
| 
       42 
     | 
    
         
            -
                  puts opts
         
     | 
| 
       43 
     | 
    
         
            -
                  puts
         
     | 
| 
       44 
     | 
    
         
            -
                  puts "Available formats: #{format_options.join(', ')}"
         
     | 
| 
       45 
     | 
    
         
            -
                  puts "Available extentions: #{extensions.join(', ')}"
         
     | 
| 
       46 
     | 
    
         
            -
                  puts "Available parse options: #{parse_options.keys.join(', ')}"
         
     | 
| 
       47 
     | 
    
         
            -
                  puts "Available render options: #{render_options.keys.join(', ')}"
         
     | 
| 
       48 
     | 
    
         
            -
                  puts
         
     | 
| 
       49 
     | 
    
         
            -
                  puts 'See the README for more information on these.'
         
     | 
| 
       50 
     | 
    
         
            -
                  exit
         
     | 
| 
       51 
     | 
    
         
            -
                end
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                opts.on('-tFORMAT', '--to=FORMAT', String, 'Specify output FORMAT') do |value|
         
     | 
| 
       54 
     | 
    
         
            -
                  value = value.to_sym
         
     | 
| 
       55 
     | 
    
         
            -
                  if format_options.include?(value)
         
     | 
| 
       56 
     | 
    
         
            -
                    options.output_format = value
         
     | 
| 
       57 
     | 
    
         
            -
                  else
         
     | 
| 
       58 
     | 
    
         
            -
                    abort("format '#{value}' not found")
         
     | 
| 
       59 
     | 
    
         
            -
                  end
         
     | 
| 
       60 
     | 
    
         
            -
                end
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
                opts.on('--html-renderer', 'Use the HtmlRenderer renderer rather than the native C renderer (only valid when format is html)') do
         
     | 
| 
       63 
     | 
    
         
            -
                  options.renderer = true
         
     | 
| 
       64 
     | 
    
         
            -
                end
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                opts.on('--parse-option=OPTION', Array, 'OPTION passed during parsing') do |values|
         
     | 
| 
       67 
     | 
    
         
            -
                  values.each do |value|
         
     | 
| 
       68 
     | 
    
         
            -
                    if parse_options.key?(value.to_sym)
         
     | 
| 
       69 
     | 
    
         
            -
                      options.active_parse_options << value.to_sym
         
     | 
| 
       70 
     | 
    
         
            -
                    else
         
     | 
| 
       71 
     | 
    
         
            -
                      abort("parse-option '#{value}' not found")
         
     | 
| 
       72 
     | 
    
         
            -
                    end
         
     | 
| 
       73 
     | 
    
         
            -
                  end
         
     | 
| 
       74 
     | 
    
         
            -
                end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                opts.on('--render-option=OPTION', Array, 'OPTION passed during rendering') do |values|
         
     | 
| 
       77 
     | 
    
         
            -
                  values.each do |value|
         
     | 
| 
       78 
     | 
    
         
            -
                    if render_options.key?(value.to_sym)
         
     | 
| 
       79 
     | 
    
         
            -
                      options.active_render_options << value.to_sym
         
     | 
| 
       80 
     | 
    
         
            -
                    else
         
     | 
| 
       81 
     | 
    
         
            -
                      abort("render-option '#{value}' not found")
         
     | 
| 
       82 
     | 
    
         
            -
                    end
         
     | 
| 
       83 
     | 
    
         
            -
                  end
         
     | 
| 
       84 
     | 
    
         
            -
                end
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
                opts.on('-v', '--version', 'Version information') do
         
     | 
| 
       87 
     | 
    
         
            -
                  puts "commonmarker #{CommonMarker::VERSION}"
         
     | 
| 
       88 
     | 
    
         
            -
                  exit
         
     | 
| 
       89 
     | 
    
         
            -
                end
         
     | 
| 
       90 
     | 
    
         
            -
              end
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
              option_parser.parse!
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
              options
         
     | 
| 
       95 
     | 
    
         
            -
            end
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
            options = parse_options
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
            abort("format '#{options.output_format}' does not support using the HtmlRenderer renderer") if
         
     | 
| 
       100 
     | 
    
         
            -
              options.renderer && options.output_format != :html
         
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
            doc = CommonMarker.render_doc(ARGF.read, options.active_parse_options, options.active_extensions)
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
            case options.output_format
         
     | 
| 
       105 
     | 
    
         
            -
            when :html
         
     | 
| 
       106 
     | 
    
         
            -
              if options.renderer
         
     | 
| 
       107 
     | 
    
         
            -
                renderer = CommonMarker::HtmlRenderer.new(options: options.active_render_options, extensions: options.active_extensions)
         
     | 
| 
       108 
     | 
    
         
            -
                $stdout.write(renderer.render(doc))
         
     | 
| 
       109 
     | 
    
         
            -
              else
         
     | 
| 
       110 
     | 
    
         
            -
                $stdout.write(doc.to_html(options.active_render_options, options.active_extensions))
         
     | 
| 
       111 
     | 
    
         
            -
              end
         
     | 
| 
       112 
     | 
    
         
            -
            when :xml
         
     | 
| 
       113 
     | 
    
         
            -
              $stdout.write(doc.to_xml(options.active_render_options))
         
     | 
| 
       114 
     | 
    
         
            -
            when :commonmark
         
     | 
| 
       115 
     | 
    
         
            -
              $stdout.write(doc.to_commonmark(options.active_render_options))
         
     | 
| 
       116 
     | 
    
         
            -
            when :plaintext
         
     | 
| 
       117 
     | 
    
         
            -
              $stdout.write(doc.to_plaintext(options.active_render_options))
         
     | 
| 
       118 
     | 
    
         
            -
            end
         
     | 
    
        data/commonmarker.gemspec
    DELETED
    
    | 
         @@ -1,38 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            lib = File.expand_path("lib", __dir__)
         
     | 
| 
       4 
     | 
    
         
            -
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         
     | 
| 
       5 
     | 
    
         
            -
            require "commonmarker/version"
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            Gem::Specification.new do |s|
         
     | 
| 
       8 
     | 
    
         
            -
              s.name = "commonmarker"
         
     | 
| 
       9 
     | 
    
         
            -
              s.version = CommonMarker::VERSION
         
     | 
| 
       10 
     | 
    
         
            -
              s.summary = "CommonMark parser and renderer. Written in C, wrapped in Ruby."
         
     | 
| 
       11 
     | 
    
         
            -
              s.description = "A fast, safe, extensible parser for CommonMark. This wraps the official libcmark library."
         
     | 
| 
       12 
     | 
    
         
            -
              s.authors = ["Garen Torikian", "Ashe Connor"]
         
     | 
| 
       13 
     | 
    
         
            -
              s.homepage = "https://github.com/gjtorikian/commonmarker"
         
     | 
| 
       14 
     | 
    
         
            -
              s.license = "MIT"
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              s.files         = ["LICENSE.txt", "README.md", "Rakefile", "commonmarker.gemspec", "bin/commonmarker"]
         
     | 
| 
       17 
     | 
    
         
            -
              s.files        += Dir.glob("lib/**/*.rb")
         
     | 
| 
       18 
     | 
    
         
            -
              s.files        += Dir.glob("ext/commonmarker/*.*")
         
     | 
| 
       19 
     | 
    
         
            -
              s.extensions    = ["ext/commonmarker/extconf.rb"]
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
              s.executables = ["commonmarker"]
         
     | 
| 
       22 
     | 
    
         
            -
              s.require_paths = ["lib", "ext"]
         
     | 
| 
       23 
     | 
    
         
            -
              s.required_ruby_version = [">= 2.6", "< 4.0"]
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
              s.metadata["rubygems_mfa_required"] = "true"
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
              s.rdoc_options += ["-x", "ext/commonmarker/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")
         
     | 
| 
       38 
     | 
    
         
            -
            end
         
     | 
    
        data/ext/commonmarker/arena.c
    DELETED
    
    | 
         @@ -1,104 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #include <stdlib.h>
         
     | 
| 
       2 
     | 
    
         
            -
            #include <string.h>
         
     | 
| 
       3 
     | 
    
         
            -
            #include <stdint.h>
         
     | 
| 
       4 
     | 
    
         
            -
            #include "cmark-gfm.h"
         
     | 
| 
       5 
     | 
    
         
            -
            #include "cmark-gfm-extension_api.h"
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            static struct arena_chunk {
         
     | 
| 
       8 
     | 
    
         
            -
              size_t sz, used;
         
     | 
| 
       9 
     | 
    
         
            -
              uint8_t push_point;
         
     | 
| 
       10 
     | 
    
         
            -
              void *ptr;
         
     | 
| 
       11 
     | 
    
         
            -
              struct arena_chunk *prev;
         
     | 
| 
       12 
     | 
    
         
            -
            } *A = NULL;
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
            static struct arena_chunk *alloc_arena_chunk(size_t sz, struct arena_chunk *prev) {
         
     | 
| 
       15 
     | 
    
         
            -
              struct arena_chunk *c = (struct arena_chunk *)calloc(1, sizeof(*c));
         
     | 
| 
       16 
     | 
    
         
            -
              if (!c)
         
     | 
| 
       17 
     | 
    
         
            -
                abort();
         
     | 
| 
       18 
     | 
    
         
            -
              c->sz = sz;
         
     | 
| 
       19 
     | 
    
         
            -
              c->ptr = calloc(1, sz);
         
     | 
| 
       20 
     | 
    
         
            -
              if (!c->ptr)
         
     | 
| 
       21 
     | 
    
         
            -
                abort();
         
     | 
| 
       22 
     | 
    
         
            -
              c->prev = prev;
         
     | 
| 
       23 
     | 
    
         
            -
              return c;
         
     | 
| 
       24 
     | 
    
         
            -
            }
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
            void cmark_arena_push(void) {
         
     | 
| 
       27 
     | 
    
         
            -
              if (!A)
         
     | 
| 
       28 
     | 
    
         
            -
                return;
         
     | 
| 
       29 
     | 
    
         
            -
              A->push_point = 1;
         
     | 
| 
       30 
     | 
    
         
            -
              A = alloc_arena_chunk(10240, A);
         
     | 
| 
       31 
     | 
    
         
            -
            }
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
            int cmark_arena_pop(void) {
         
     | 
| 
       34 
     | 
    
         
            -
              if (!A)
         
     | 
| 
       35 
     | 
    
         
            -
                return 0;
         
     | 
| 
       36 
     | 
    
         
            -
              while (A && !A->push_point) {
         
     | 
| 
       37 
     | 
    
         
            -
                free(A->ptr);
         
     | 
| 
       38 
     | 
    
         
            -
                struct arena_chunk *n = A->prev;
         
     | 
| 
       39 
     | 
    
         
            -
                free(A);
         
     | 
| 
       40 
     | 
    
         
            -
                A = n;
         
     | 
| 
       41 
     | 
    
         
            -
              }
         
     | 
| 
       42 
     | 
    
         
            -
              if (A)
         
     | 
| 
       43 
     | 
    
         
            -
                A->push_point = 0;
         
     | 
| 
       44 
     | 
    
         
            -
              return 1;
         
     | 
| 
       45 
     | 
    
         
            -
            }
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
            static void init_arena(void) {
         
     | 
| 
       48 
     | 
    
         
            -
              A = alloc_arena_chunk(4 * 1048576, NULL);
         
     | 
| 
       49 
     | 
    
         
            -
            }
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
            void cmark_arena_reset(void) {
         
     | 
| 
       52 
     | 
    
         
            -
              while (A) {
         
     | 
| 
       53 
     | 
    
         
            -
                free(A->ptr);
         
     | 
| 
       54 
     | 
    
         
            -
                struct arena_chunk *n = A->prev;
         
     | 
| 
       55 
     | 
    
         
            -
                free(A);
         
     | 
| 
       56 
     | 
    
         
            -
                A = n;
         
     | 
| 
       57 
     | 
    
         
            -
              }
         
     | 
| 
       58 
     | 
    
         
            -
            }
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
            static void *arena_calloc(size_t nmem, size_t size) {
         
     | 
| 
       61 
     | 
    
         
            -
              if (!A)
         
     | 
| 
       62 
     | 
    
         
            -
                init_arena();
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
              size_t sz = nmem * size + sizeof(size_t);
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
              // Round allocation sizes to largest integer size to
         
     | 
| 
       67 
     | 
    
         
            -
              // ensure returned memory is correctly aligned
         
     | 
| 
       68 
     | 
    
         
            -
              const size_t align = sizeof(size_t) - 1;
         
     | 
| 
       69 
     | 
    
         
            -
              sz = (sz + align) & ~align;
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
              struct arena_chunk *chunk;
         
     | 
| 
       72 
     | 
    
         
            -
              if (sz > A->sz) {
         
     | 
| 
       73 
     | 
    
         
            -
                A->prev = chunk = alloc_arena_chunk(sz, A->prev);
         
     | 
| 
       74 
     | 
    
         
            -
              } else if (sz > A->sz - A->used) {
         
     | 
| 
       75 
     | 
    
         
            -
                A = chunk = alloc_arena_chunk(A->sz + A->sz / 2, A);
         
     | 
| 
       76 
     | 
    
         
            -
              } else {
         
     | 
| 
       77 
     | 
    
         
            -
                chunk = A;
         
     | 
| 
       78 
     | 
    
         
            -
              }
         
     | 
| 
       79 
     | 
    
         
            -
              void *ptr = (uint8_t *) chunk->ptr + chunk->used;
         
     | 
| 
       80 
     | 
    
         
            -
              chunk->used += sz;
         
     | 
| 
       81 
     | 
    
         
            -
              *((size_t *) ptr) = sz - sizeof(size_t);
         
     | 
| 
       82 
     | 
    
         
            -
              return (uint8_t *) ptr + sizeof(size_t);
         
     | 
| 
       83 
     | 
    
         
            -
            }
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
            static void *arena_realloc(void *ptr, size_t size) {
         
     | 
| 
       86 
     | 
    
         
            -
              if (!A)
         
     | 
| 
       87 
     | 
    
         
            -
                init_arena();
         
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
              void *new_ptr = arena_calloc(1, size);
         
     | 
| 
       90 
     | 
    
         
            -
              if (ptr)
         
     | 
| 
       91 
     | 
    
         
            -
                memcpy(new_ptr, ptr, ((size_t *) ptr)[-1]);
         
     | 
| 
       92 
     | 
    
         
            -
              return new_ptr;
         
     | 
| 
       93 
     | 
    
         
            -
            }
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
            static void arena_free(void *ptr) {
         
     | 
| 
       96 
     | 
    
         
            -
              (void) ptr;
         
     | 
| 
       97 
     | 
    
         
            -
              /* no-op */
         
     | 
| 
       98 
     | 
    
         
            -
            }
         
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
            cmark_mem CMARK_ARENA_MEM_ALLOCATOR = {arena_calloc, arena_realloc, arena_free};
         
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
            cmark_mem *cmark_get_arena_mem_allocator(void) {
         
     | 
| 
       103 
     | 
    
         
            -
              return &CMARK_ARENA_MEM_ALLOCATOR;
         
     | 
| 
       104 
     | 
    
         
            -
            }
         
     |