mdless 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a4bb4133ae1d8d4e3607f02a75c8ef92edb6ca92
4
- data.tar.gz: 3104daadc69c2dd78978247eb3bee0d607884a9f
3
+ metadata.gz: 618302eecf35ed202db845ca4ddd45fcb6f7df8c
4
+ data.tar.gz: 9413e7e0106c478d120d475efd4d62bde3075d29
5
5
  SHA512:
6
- metadata.gz: fd92f5704dedca5c71a0571bcf34080cc0c122c888a4b3e65f20ae13bc353428a85a688ec07915ce699609cb6e6fec79fcb93b8c1d893cef388e2e4482febc71
7
- data.tar.gz: 705a61c4a88dee79316c5cc61bb24a99ccfaed0c31d367092f4098768f96a1d2c6bdadbb4f022b8fdfbdf6450ede5833ff26458c1970f182afa128f431a293ef
6
+ metadata.gz: dba40280383d15349c27b69c91cb536ec2f63cdb787cba3da251738957a41e4e3b2a7a38bdf25d333d5cb452042e4d9b8516fe8983a8f17a0f31bd9151fa0ece
7
+ data.tar.gz: ecdd1dbdf0b44d29d4c34e74435ca38da3861c92df9d634ac2f90144f806c26313f46bf84cfe4fe51a6254479b26f062421c104825c806690a05fe07dbcc3928
data/README.md CHANGED
@@ -18,7 +18,7 @@ I often use iTerm2 in visor mode, so `qlmanage -p` is annoying. I still wanted a
18
18
  - Inline image display (local, optionally remote) if using iTerm2 2.9+
19
19
  - Syntax highlighting when `pygmentize` is available
20
20
  - List headlines in document
21
- - Display section of the document via headline search
21
+ - Display single section of the document based on headlines
22
22
 
23
23
  ## Installation
24
24
 
@@ -41,7 +41,7 @@ The pager used is determined by system configuration in this order of preference
41
41
  ### Options
42
42
 
43
43
  -s, --section=TITLE Output only a headline-based section of
44
- the input
44
+ the input (numeric based on --list output)
45
45
  -w, --width=COLUMNS Column width to format for (default terminal width)
46
46
  -p, --[no-]pager Formatted output to pager (default on)
47
47
  -P Disable pager (same as --no-pager)
@@ -17,8 +17,8 @@ module CLIMarkdown
17
17
  opts.banner = "#{version} by Brett Terpstra\n\n> Usage: #{CLIMarkdown::EXECUTABLE_NAME} [options] path\n\n"
18
18
 
19
19
  @options[:section] = nil
20
- opts.on( '-s', '--section=TITLE', 'Output only a headline-based section of the input' ) do |section|
21
- @options[:section] = section
20
+ opts.on( '-s', '--section=TITLE', 'Output only a headline-based section of the input (numeric from -l)' ) do |section|
21
+ @options[:section] = section.to_i
22
22
  end
23
23
 
24
24
  @options[:width] = %x{tput cols}.strip.to_i
@@ -95,6 +95,7 @@ module CLIMarkdown
95
95
 
96
96
  @cols = @options[:width]
97
97
  @output = ''
98
+ @header_arr = []
98
99
 
99
100
  input = ''
100
101
  @ref_links = {}
@@ -138,6 +139,14 @@ module CLIMarkdown
138
139
  end
139
140
  end
140
141
 
142
+ def get_headers(input)
143
+ unless @headers && @headers.length > 0
144
+ @headers = input.scan(/^(#+)\s*(.*?)( #+)?\s*$/)
145
+ end
146
+ @headers
147
+ end
148
+
149
+
141
150
  def list_headers(input)
142
151
  h_adjust = highest_header(input) - 1
143
152
  input.gsub!(/^(#+)/) do |m|
@@ -150,35 +159,36 @@ module CLIMarkdown
150
159
  end
151
160
  end
152
161
 
153
- headers = []
162
+ @headers = get_headers(input)
154
163
  last_level = 0
155
- input.split(/\n/).each do |line|
156
- if line =~ /^(#+)\s*(.*?)( #+)?\s*$/
157
- level = $1.size - 1
158
- title = $2
164
+ headers_out = []
165
+ @headers.each_with_index do |h,idx|
159
166
 
160
- if level - 1 > last_level
161
- level = last_level + 1
162
- end
163
- last_level = level
164
-
165
- subdoc = case level
166
- when 0
167
- ' '
168
- when 1
169
- '- '
170
- when 2
171
- '+ '
172
- when 3
173
- '* '
174
- else
175
- ' '
176
- end
177
- headers.push((" "*level) + (c([:x, :yellow]) + subdoc + title.strip + xc))
167
+ level = h[0].length - 1
168
+ title = h[1]
169
+
170
+ if level - 1 > last_level
171
+ level = last_level + 1
178
172
  end
173
+ last_level = level
174
+
175
+ subdoc = case level
176
+ when 0
177
+ ''
178
+ when 1
179
+ '- '
180
+ when 2
181
+ '+ '
182
+ when 3
183
+ '* '
184
+ else
185
+ ' '
186
+ end
187
+ line_no = '%2d: ' % (idx + 1)
188
+ headers_out.push(%Q{#{line_no}#{c([:x, :black])}#{".."*level}#{c([:x, :yellow])}#{subdoc}#{title.strip}#{xc}}.strip)
179
189
  end
180
190
 
181
- @output += headers.join("\n")
191
+ @output += headers_out.join("\n")
182
192
  end
183
193
 
184
194
  def highest_header(input)
@@ -298,7 +308,7 @@ module CLIMarkdown
298
308
  end
299
309
 
300
310
  def convert_markdown(input)
301
-
311
+ @headers = get_headers(input)
302
312
  # yaml/MMD headers
303
313
  in_yaml = false
304
314
  if input.split("\n")[0] =~ /(?i-m)^---[ \t]*?(\n|$)/
@@ -364,14 +374,15 @@ module CLIMarkdown
364
374
  title = $2
365
375
 
366
376
  if in_section
367
- if level > top_level
377
+ if level >= top_level
368
378
  new_content.push(graf)
369
379
  else
380
+ in_section = false
370
381
  break
371
382
  end
372
- elsif title.downcase =~ /#{@options[:section]}/i
383
+ elsif title.downcase == "#{@headers[@options[:section] - 1][1].downcase}"
373
384
  in_section = true
374
- top_level = level
385
+ top_level = level + 1
375
386
  new_content.push(graf)
376
387
  else
377
388
  next
@@ -669,7 +680,7 @@ module CLIMarkdown
669
680
  if File.exists?(File.expand_path(cli))
670
681
  File.executable?(File.expand_path(cli))
671
682
  else
672
- system "which #{cli} &> /dev/null"
683
+ system "which #{cli}", :out => File::NULL
673
684
  end
674
685
  end
675
686
 
@@ -735,7 +746,11 @@ module CLIMarkdown
735
746
  'less', 'more', 'cat', 'pager']
736
747
  pagers.select! do |f|
737
748
  if f
738
- system "which #{f} &> /dev/null"
749
+ if f.strip =~ /[ |]/
750
+ f
751
+ else
752
+ system "which #{f}", :out => File::NULL
753
+ end
739
754
  else
740
755
  false
741
756
  end
@@ -1,3 +1,3 @@
1
1
  module CLIMarkdown
2
- VERSION = '0.0.9'
2
+ VERSION = '0.0.10'
3
3
  end
metadata CHANGED
@@ -1,61 +1,61 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdless
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-13 00:00:00.000000000 Z
11
+ date: 2018-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rdoc
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '4.1'
34
- - - '>='
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
36
  version: 4.1.1
37
37
  type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ~>
41
+ - - "~>"
42
42
  - !ruby/object:Gem::Version
43
43
  version: '4.1'
44
- - - '>='
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 4.1.1
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: aruba
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ~>
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ~>
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  description: A CLI that provides a formatted and highlighted view of Markdown files
@@ -80,29 +80,29 @@ licenses:
80
80
  metadata: {}
81
81
  post_install_message:
82
82
  rdoc_options:
83
- - --title
83
+ - "--title"
84
84
  - mdless
85
- - --main
85
+ - "--main"
86
86
  - README.md
87
- - --markup
87
+ - "--markup"
88
88
  - markdown
89
- - -ri
89
+ - "-ri"
90
90
  require_paths:
91
91
  - lib
92
92
  - lib
93
93
  required_ruby_version: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - '>='
95
+ - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - '>='
100
+ - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  requirements: []
104
104
  rubyforge_project:
105
- rubygems_version: 2.4.6
105
+ rubygems_version: 2.6.13
106
106
  signing_key:
107
107
  specification_version: 4
108
108
  summary: A pager like less, but for Markdown files