mdless 2.1.35 → 2.1.36
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/CHANGELOG.md +1 -4
- data/lib/mdless/console.rb +5 -0
- data/lib/mdless/converter.rb +62 -65
- data/lib/mdless/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99d20a886a23bd77ae38be29d68c25ed6673fe32815ac8c06f621cf7fd101b27
|
4
|
+
data.tar.gz: a87049e15d202db34aff6960212561cb9026a3a6627d73a532d700495de070fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 047faebf6bc49ed8c56916b36a9b0428c0af508ae956ea76f0547792a744b7e3be80726d1c4435542b5b9fbc7a2b8339b22614bffe2ebb2042e861cd28b636e2
|
7
|
+
data.tar.gz: 41c7e129de92b8cc7852aaa71ab61bca9964066a5aee1b1b196d77c6a0b23429960ca1203180a7a540a3253e387b59023e140186da36f874eed0f8eaa1020aad
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
2.1.26
|
2
|
-
|
3
|
-
2.1.32
|
4
|
-
|
5
1
|
2.1.35
|
6
2
|
: Ruby 2.7 error (again)
|
7
3
|
|
@@ -38,6 +34,7 @@
|
|
38
34
|
: TaskPaper file with metadata causing negative argument error
|
39
35
|
: Remove `<br>` from metadata
|
40
36
|
: YAML metadata and negative line lengths
|
37
|
+
>>>>>>> release/2.1.30
|
41
38
|
|
42
39
|
2.1.14
|
43
40
|
: Spaces on a line separating metadata won't break display
|
data/lib/mdless/console.rb
CHANGED
@@ -828,10 +828,15 @@ module Redcarpet
|
|
828
828
|
end
|
829
829
|
end
|
830
830
|
|
831
|
+
def fix_image_attributes(input)
|
832
|
+
input.gsub(/^( {0,3}\[.*?\]: *\S+) +([^"].*?)$/, '\1')
|
833
|
+
end
|
834
|
+
|
831
835
|
def preprocess(input)
|
832
836
|
input = color_meta(input)
|
833
837
|
input = mmd_transclude(input) if MDLess.options[:transclude]
|
834
838
|
input = mmd_metadata_replace(input) if MDLess.options[:mmd_metadata]
|
839
|
+
input = fix_image_attributes(input)
|
835
840
|
|
836
841
|
replaced_input = input.clone
|
837
842
|
## Replace setex headers with ATX
|
data/lib/mdless/converter.rb
CHANGED
@@ -280,7 +280,6 @@ module CLIMarkdown
|
|
280
280
|
end
|
281
281
|
|
282
282
|
@output = ''
|
283
|
-
@headers = []
|
284
283
|
@setheaders = []
|
285
284
|
|
286
285
|
input = ''
|
@@ -304,13 +303,14 @@ module CLIMarkdown
|
|
304
303
|
tables: true,
|
305
304
|
underline: false)
|
306
305
|
|
307
|
-
spinner = TTY::Spinner.new("[:spinner] Processing ...", format: :dots_3, clear: true)
|
308
|
-
|
309
306
|
if !args.empty?
|
310
307
|
files = args.delete_if { |f| !File.exist?(f) }
|
308
|
+
@multifile = files.count > 1
|
311
309
|
files.each do |file|
|
310
|
+
spinner = TTY::Spinner.new("[:spinner] Processing #{File.basename(file)}...", format: :dots_3, clear: true)
|
312
311
|
spinner.run do |spinner|
|
313
312
|
MDLess.log.info(%(Processing "#{file}"))
|
313
|
+
@output << "#{c(%i[b green])}[#{c(%i[b white])}#{file}#{c(%i[b green])}]#{xc}\n\n" if @multifile
|
314
314
|
MDLess.file = file
|
315
315
|
|
316
316
|
begin
|
@@ -322,7 +322,7 @@ module CLIMarkdown
|
|
322
322
|
|
323
323
|
input.scrub!
|
324
324
|
input.gsub!(/\r?\n/, "\n")
|
325
|
-
|
325
|
+
@headers = headers(input)
|
326
326
|
if MDLess.options[:taskpaper] == :auto
|
327
327
|
MDLess.options[:taskpaper] = if CLIMarkdown::TaskPaper.is_taskpaper?(input)
|
328
328
|
MDLess.log.info('TaskPaper detected')
|
@@ -333,26 +333,26 @@ module CLIMarkdown
|
|
333
333
|
end
|
334
334
|
|
335
335
|
if MDLess.options[:list]
|
336
|
-
if MDLess.options[:taskpaper]
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
336
|
+
@output << if MDLess.options[:taskpaper]
|
337
|
+
CLIMarkdown::TaskPaper.list_projects(input)
|
338
|
+
else
|
339
|
+
list_headers(input)
|
340
|
+
end
|
341
|
+
elsif MDLess.options[:taskpaper]
|
342
|
+
input = input.color_meta(MDLess.cols)
|
343
|
+
input = CLIMarkdown::TaskPaper.highlight(input)
|
344
|
+
@output << input.highlight_tags
|
342
345
|
else
|
343
|
-
|
344
|
-
input = input.color_meta(MDLess.cols)
|
345
|
-
input = CLIMarkdown::TaskPaper.highlight(input)
|
346
|
-
@output = input.highlight_tags
|
347
|
-
else
|
348
|
-
@output = markdown.render(input)
|
349
|
-
end
|
346
|
+
@output << markdown.render(input)
|
350
347
|
end
|
348
|
+
@output << "\n\n"
|
351
349
|
end
|
352
350
|
end
|
351
|
+
|
353
352
|
printout
|
354
353
|
elsif !$stdin.isatty
|
355
354
|
MDLess.log.info(%(Processing STDIN))
|
355
|
+
spinner = TTY::Spinner.new("[:spinner] Processing ...", format: :dots_3, clear: true)
|
356
356
|
spinner.run do |spinner|
|
357
357
|
MDLess.file = nil
|
358
358
|
input = $stdin.read.scrub
|
@@ -366,6 +366,7 @@ module CLIMarkdown
|
|
366
366
|
false
|
367
367
|
end
|
368
368
|
end
|
369
|
+
@headers = headers(input)
|
369
370
|
|
370
371
|
if MDLess.options[:list]
|
371
372
|
if MDLess.options[:taskpaper]
|
@@ -417,34 +418,32 @@ module CLIMarkdown
|
|
417
418
|
end
|
418
419
|
end
|
419
420
|
|
420
|
-
def
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
]
|
444
|
-
end
|
421
|
+
def headers(string)
|
422
|
+
hs = []
|
423
|
+
input = string.remove_meta
|
424
|
+
doc_headers = input.scan(/^((?!#!)(\#{1,6})\s*([^#]+?)(?: #+)?\s*|(\S.+)\n([=-]+))$/i)
|
425
|
+
|
426
|
+
doc_headers.each do |h|
|
427
|
+
hlevel = 6
|
428
|
+
title = nil
|
429
|
+
if h[4] =~ /=+/
|
430
|
+
hlevel = 1
|
431
|
+
title = h[3]
|
432
|
+
elsif h[4] =~ /-+/
|
433
|
+
hlevel = 2
|
434
|
+
title = h[3]
|
435
|
+
else
|
436
|
+
hlevel = h[1].length
|
437
|
+
title = h[2]
|
438
|
+
end
|
439
|
+
hs << [
|
440
|
+
'#' * hlevel,
|
441
|
+
title,
|
442
|
+
h[0]
|
443
|
+
]
|
445
444
|
end
|
446
445
|
|
447
|
-
|
446
|
+
hs
|
448
447
|
end
|
449
448
|
|
450
449
|
def list_headers(input)
|
@@ -455,7 +454,6 @@ module CLIMarkdown
|
|
455
454
|
new_level.positive? ? '#' * new_level : ''
|
456
455
|
end
|
457
456
|
|
458
|
-
@headers = get_headers(input)
|
459
457
|
last_level = 0
|
460
458
|
headers_out = []
|
461
459
|
len = (@headers.count + 1).to_s.length
|
@@ -479,16 +477,16 @@ module CLIMarkdown
|
|
479
477
|
else
|
480
478
|
' '
|
481
479
|
end
|
482
|
-
headers_out.push format("%<d>#{len}d: %<s>s",
|
480
|
+
headers_out.push format("%<c>s%<d>#{len}d: %<s>s",
|
481
|
+
c: c(%i[magenta]),
|
483
482
|
d: idx + 1,
|
484
483
|
s: "#{c(%i[x black])}#{'.' * level}#{c(%i[x yellow])}#{subdoc}#{title.strip}#{xc}")
|
485
484
|
end
|
486
485
|
|
487
|
-
headers_out.join("\n")
|
486
|
+
headers_out.join("\n#{xc}")
|
488
487
|
end
|
489
488
|
|
490
489
|
def highest_header(input)
|
491
|
-
@headers = get_headers(input)
|
492
490
|
top = 6
|
493
491
|
@headers.each { |h| top = h[0].length if h[0].length < top }
|
494
492
|
top
|
@@ -564,7 +562,7 @@ module CLIMarkdown
|
|
564
562
|
IO.select [input]
|
565
563
|
|
566
564
|
pager = which_pager
|
567
|
-
MDLess.log.info("Using
|
565
|
+
MDLess.log.info("Using `#{pager.join(' ')}` as pager")
|
568
566
|
begin
|
569
567
|
exec(pager.join(' '))
|
570
568
|
rescue SystemCallError => e
|
@@ -614,7 +612,7 @@ module CLIMarkdown
|
|
614
612
|
|
615
613
|
def which_pager
|
616
614
|
# pagers = [ENV['PAGER'], ENV['GIT_PAGER']]
|
617
|
-
pagers = [ENV['PAGER']]
|
615
|
+
pagers = ENV['PAGER'] ? [ENV['PAGER']] : []
|
618
616
|
|
619
617
|
# if exec_available('git')
|
620
618
|
# git_pager = `git config --get-all core.pager || true`.split.first
|
@@ -623,29 +621,28 @@ module CLIMarkdown
|
|
623
621
|
|
624
622
|
pagers.concat(['less', 'more', 'cat', 'pager'])
|
625
623
|
|
624
|
+
pagers.delete_if { |pg| !TTY::Which.exist?(pg) }
|
625
|
+
|
626
626
|
pagers.select! do |f|
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
false
|
633
|
-
else
|
634
|
-
system "which #{f}", out: File::NULL, err: File::NULL
|
635
|
-
end
|
636
|
-
else
|
627
|
+
pg = f.split(/[ ]/)[0]
|
628
|
+
return false unless pg
|
629
|
+
|
630
|
+
if pg == 'most'
|
631
|
+
MDLess.log.warn('most not allowed as pager')
|
637
632
|
false
|
633
|
+
else
|
634
|
+
TTY::Which.which(pg)
|
638
635
|
end
|
639
636
|
end
|
640
637
|
|
641
638
|
pg = pagers.first
|
642
639
|
args = case pg
|
643
640
|
# when 'delta'
|
644
|
-
# ' --pager="less -
|
641
|
+
# ' --pager="less -FXr"'
|
645
642
|
when 'less'
|
646
|
-
'
|
643
|
+
'-FXr'
|
647
644
|
# when 'bat'
|
648
|
-
# ' -p --pager="less -
|
645
|
+
# ' -p --pager="less -FXr"'
|
649
646
|
else
|
650
647
|
''
|
651
648
|
end
|
@@ -654,10 +651,10 @@ module CLIMarkdown
|
|
654
651
|
end
|
655
652
|
|
656
653
|
def exec_available(cli)
|
657
|
-
if
|
658
|
-
|
654
|
+
if TTY::Which.exist?(cli)
|
655
|
+
TTY::Which.which(cli)
|
659
656
|
else
|
660
|
-
|
657
|
+
false
|
661
658
|
end
|
662
659
|
end
|
663
660
|
end
|
data/lib/mdless/version.rb
CHANGED