mdless 2.0.14 → 2.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cdb39184ea897e4e43081add5c4c70791f4c04af12b4d54f8cb67e1ba262a551
4
- data.tar.gz: 0160b5cda00979788b772a7db721abbe46ec3e6c39d2c1a4459b8fc8f04141b1
3
+ metadata.gz: 863102e504ba07c2ab9b018687d50053ca3395206666d1abffcf79997023db9e
4
+ data.tar.gz: bbba927ea37503308dac7356cb2d72e84e4cf53c5cf28f3f2b210c68b745cbf1
5
5
  SHA512:
6
- metadata.gz: 7f1d7fdd5b1b26ca1a1baf8bf9492c5d1ff51ba5b07c16aaeb1dfe43a91ff0e2025196a08e71687da15b380dedcd5649d06e3107e1e449d3f064e5b178b7f11d
7
- data.tar.gz: ca412964bf3a3af4dd6d63453ed818d9715615682866e70602f116fe050174e14f21d60c13f11b1b2d236f14637eeeb5711d7c7eb591538cd45808906331600c
6
+ metadata.gz: 92d0edc1d4722074e897981138c585a02fb9c287c8e8fc270885cc19b6274a2490bcd69b92c198c9876d4c4c1bf9b0ec0226c0e97660791fbfdf6c8e85f5592b
7
+ data.tar.gz: d738066449abc9ee9a8d0331b6ef64db675686cc53c9d0bbf3fa320a63a70c9f33312e0a6fe6c7055caffca7ba13deefcce10ee57f7e3fd7e291a8447e9674fd
@@ -601,8 +601,27 @@ module Redcarpet
601
601
  def preprocess(input)
602
602
  in_yaml = false
603
603
 
604
+ if @options[:taskpaper] == :auto
605
+ @options[:taskpaper] = if @file =~ /\.taskpaper/
606
+ @log.info('TaskPaper extension detected')
607
+ true
608
+ elsif CLIMarkdown::TaskPaper.is_taskpaper?(input)
609
+ @log.info('TaskPaper document detected')
610
+ true
611
+ else
612
+ false
613
+ end
614
+ end
615
+
604
616
  input = color_meta(input)
605
617
 
618
+ if @options[:taskpaper]
619
+ input = CLIMarkdown::TaskPaper.highlight(input, @theme)
620
+ input = highlight_tags(input)
621
+ return input
622
+ end
623
+
624
+
606
625
  ## Replace setex headers with ATX
607
626
  input.gsub!(/^([^\n]+)\n={2,}\s*$/m, "# \\1\n")
608
627
  input.gsub!(/^([^\n]+?)\n-{2,}\s*$/m, "## \\1\n")
@@ -647,20 +666,6 @@ module Redcarpet
647
666
  "#{color('dd term')}#{m['term']}#{xc}#{color('dd color')}#{color_dd_def(m['def'])}"
648
667
  end
649
668
 
650
- if @options[:taskpaper] == :auto
651
- @options[:taskpaper] = if @file =~ /\.taskpaper/
652
- @log.info('TaskPaper extension detected')
653
- true
654
- elsif CLIMarkdown::TaskPaper.is_taskpaper?(input)
655
- @log.info('TaskPaper document detected')
656
- true
657
- else
658
- false
659
- end
660
- end
661
-
662
- input = CLIMarkdown::TaskPaper.highlight(input, @theme) if @options[:taskpaper]
663
-
664
669
  input
665
670
  end
666
671
 
@@ -833,7 +838,7 @@ module Redcarpet
833
838
  def highlight_tags(input)
834
839
  tag_color = color('at_tags tag')
835
840
  value_color = color('at_tags value')
836
- input.gsub(/(?<pre>\s|m)(?<tag>@[^ ("']+)(?:(?<lparen>\()(?<value>.*?)(?<rparen>\)))?/) do
841
+ input.gsub(/(?<pre>\s|m)(?<tag>@[^ \].?!,("']+)(?:(?<lparen>\()(?<value>.*?)(?<rparen>\)))?/) do
837
842
  m = Regexp.last_match
838
843
  last_color = m.pre_match.last_color_code
839
844
  [
@@ -851,9 +856,28 @@ module Redcarpet
851
856
  end
852
857
  end
853
858
 
859
+ def highlight_wiki_links(input)
860
+ input.gsub(/\[\[(.*?)\]\]/) do
861
+ content = Regexp.last_match(1)
862
+ [
863
+ pre_element,
864
+ color('link brackets'),
865
+ '[[',
866
+ color('link text'),
867
+ content,
868
+ color('link brackets'),
869
+ ']]',
870
+ xc,
871
+ post_element
872
+ ].join
873
+ end
874
+ end
875
+
854
876
  def postprocess(input)
855
877
  input.scrub!
856
878
 
879
+ input = highlight_wiki_links(input) if @options[:wiki_links]
880
+
857
881
  if @options[:inline_footnotes]
858
882
  input = insert_footnotes(input)
859
883
  else
@@ -146,6 +146,11 @@ module CLIMarkdown
146
146
  @options[:at_tags] = true
147
147
  end
148
148
 
149
+ @options[:wiki_links] ||= false
150
+ opts.on('--[no-]wiki-links', 'Highlight [[wiki links]]') do |opt|
151
+ @options[:wiki_links] = opt
152
+ end
153
+
149
154
  opts.on('-v', '--version', 'Display version number') do
150
155
  puts version
151
156
  exit
@@ -224,7 +229,10 @@ module CLIMarkdown
224
229
  rescue StandardError
225
230
  input = IO.read(file)
226
231
  end
227
- input.gsub!(/\r?\n/, "\n").scrub!
232
+ raise 'Nil input' if input.nil?
233
+
234
+ input.scrub!
235
+ input.gsub!(/\r?\n/, "\n")
228
236
  if @options[:list]
229
237
  puts list_headers(input)
230
238
  Process.exit 0
@@ -2,8 +2,8 @@
2
2
 
3
3
  module CLIMarkdown
4
4
  module TaskPaper
5
- TASK_RX = /^(?<indent>(?: |\t)+)(?<marker>-)(?<task>\s+\S.*?)$/
6
- PROJECT_RX = /^(?<indent>(?: |\t)*)(?<project>\S.*?:)(?<tags> @\S+)*$/
5
+ TASK_RX = /^(?<indent>(?: |\t)*?)(?<marker>-)(?<task>\s+\S.*?)$/
6
+ PROJECT_RX = /^(?<indent>(?: |\t)*?)(?<project>[^- \t].*?:)(?<tags> @\S+)*$/
7
7
  NOTE_RX = /^(?<indent>(?: |\t)+)(?<note>(?<!- ).*?(?!:))$/
8
8
 
9
9
  class << self
@@ -39,8 +39,10 @@ module CLIMarkdown
39
39
  def is_taskpaper?(input)
40
40
  projects = input.split(PROJECT_RX)
41
41
  tasks = 0
42
- projects.each do |proj|
43
- tasks += proj.scan(TASK_RX).count
42
+ if projects.count > 1
43
+ projects.each do |proj|
44
+ tasks += proj.scan(TASK_RX).count
45
+ end
44
46
  end
45
47
 
46
48
  tasks >= 6
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CLIMarkdown
4
- VERSION = '2.0.14'
4
+ VERSION = '2.0.15'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdless
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.14
4
+ version: 2.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  - !ruby/object:Gem::Version
115
115
  version: '0'
116
116
  requirements: []
117
- rubygems_version: 3.2.15
117
+ rubygems_version: 3.2.16
118
118
  signing_key:
119
119
  specification_version: 4
120
120
  summary: A pager like less, but for Markdown files