summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/bin
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/bin')
-rwxr-xr-xvendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/bin/kramdown135
1 files changed, 135 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/bin/kramdown b/vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/bin/kramdown
new file mode 100755
index 0000000..6aeb9a4
--- /dev/null
+++ b/vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/bin/kramdown
@@ -0,0 +1,135 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8; frozen_string_literal: true -*-
+#
+#--
+# Copyright (C) 2009-2019 Thomas Leitner <t_leitner@gmx.at>
+#
+# This file is part of kramdown which is licensed under the MIT.
+#++
+#
+
+require 'optparse'
+require 'rbconfig'
+require 'yaml'
+require 'kramdown'
+
+def add_kramdown_options(opts, parsed_options, banner: [], ignore: [])
+ banner_shown = false
+ defined_options = []
+ Kramdown::Options.definitions.sort.each do |n, definition|
+ next if ignore.include?(n)
+
+ unless banner_shown
+ opts.separator("")
+ banner.each {|part| opts.separator(part) }
+ opts.separator("")
+ banner_shown = true
+ end
+
+ defined_options << n
+ no = n.to_s.tr('_', '-')
+ if definition.type == Kramdown::Options::Boolean
+ opts.on("--[no-]#{no}") {|v| parsed_options[n] = Kramdown::Options.parse(n, v) }
+ else
+ type = definition.type
+ type = String if type == Symbol || type == Object
+ opts.on("--#{no} ARG", type) {|v| parsed_options[n] = Kramdown::Options.parse(n, v) }
+ end
+
+ definition.desc.split("\n").each do |line|
+ opts.separator opts.summary_indent + ' ' * 6 + line
+ end
+ opts.separator ''
+ end
+ defined_options
+end
+
+config_file = nil
+begin
+ config_dir = case RbConfig::CONFIG['host_os']
+ when /bccwin|cygwin|djgpp|mingw|mswin|wince/i
+ File.expand_path((ENV['HOME'] || ENV['USERPROFILE'] || "~") + "/AppData/Local")
+ when /darwin|mac os/
+ File.expand_path("~/Library/Preferences/")
+ else
+ File.expand_path(ENV['XDG_CONFIG_HOME'] || '~/.config')
+ end
+ config_file = File.join(config_dir, "kramdownrc")
+rescue StandardError
+end
+
+options = {}
+format = ['html']
+
+defined_options = []
+OptionParser.new do |opts|
+ opts.banner = "Usage: kramdown [options] [FILE FILE ...]"
+ opts.summary_indent = ' ' * 4
+
+ opts.separator ""
+ opts.separator "Command line options:"
+ opts.separator ""
+
+ opts.on("-i", "--input ARG", "Specify the input format: kramdown (default), " \
+ "html, or markdown") {|v| options[:input] = v }
+ opts.on("-o", "--output ARG", Array, "Specify one or more output formats separated by commas: " \
+ "html (default),", "kramdown, latex, man or remove_html_tags") {|v| format = v }
+ opts.on("-x", "--extension EXT", Array, "Load one or more extensions (without the 'kramdown-' " \
+ "prefix) separated", "by commas (e.g. parser-gfm,syntax-coderay)",
+ "Note: Use this option before other options!") do |exts|
+ exts.each do |ext|
+ require "kramdown-#{ext}"
+ new_options = add_kramdown_options(opts, options, banner: ["#{ext} options:"],
+ ignore: defined_options)
+ defined_options.concat(new_options)
+ rescue LoadError
+ $stderr.puts "Couldn't load extension #{ext}, ignoring"
+ end
+ end
+ opts.separator ""
+ opts.on("--no-config-file", "Do not read any configuration file. Default behavior is to check " \
+ "for a", "configuration file and read it if it exists.") { config_file = nil }
+ opts.on("--config-file FILE", "Specify the name of a configuration file with kramdown options " \
+ "in YAML", "format, e.g. \"auto_id_prefix: ARG\" instead of \"--auto-id-prefix ARG\"",
+ "and \"auto_ids: false\" instead of \"--no-auto-ids\".",
+ "Default: #{config_file}") {|v| config_file = v }
+ opts.separator ""
+ opts.on("-v", "--version", "Show the version of kramdown") do
+ puts Kramdown::VERSION
+ exit
+ end
+ opts.on("-h", "--help", "Show the help") do
+ puts opts.summarize(+'', 5, 72)
+ exit
+ end
+
+ new_options = add_kramdown_options(opts, options, banner: ["kramdown options:"])
+ defined_options.concat(new_options)
+end.parse!
+
+begin
+ if config_file && File.exist?(config_file)
+ config_file_options =
+ if YAML.method(:safe_load).parameters.include?(%i[key permitted_classes])
+ YAML.safe_load(File.read(config_file), permitted_classes: [Symbol])
+ else # compatibility with Psych < 3.1.0
+ YAML.safe_load(File.read(config_file), [Symbol])
+ end
+ case config_file_options
+ when nil # empty configuration file except perhaps YAML header and comments
+ # Nothing to do
+ when Hash
+ options = config_file_options.merge(options)
+ else
+ raise Kramdown::Error, "No YAML map in configuration file \"#{config_file}\""
+ end
+ end
+ doc = Kramdown::Document.new(ARGF.read, options)
+ result = ''
+ format.each {|f| result = doc.send("to_#{f}") }
+ puts result
+ doc.warnings.each {|warn| $stderr.puts "Warning: #{warn}" }
+rescue Kramdown::Error => e
+ $stderr.puts "Error: #{e.message}"
+ exit(1)
+end