markdown_exec 1.4.1 → 1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -1
- data/CHANGELOG.md +22 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +6 -1
- data/bin/bmde +103 -1
- data/bin/tab_completion.sh +2 -2
- data/examples/opts.md +10 -1
- data/lib/block_types.rb +9 -5
- data/lib/filter.rb +15 -4
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +618 -361
- data/lib/mdoc.rb +106 -32
- data/lib/menu.src.yml +179 -8
- data/lib/menu.yml +65 -9
- data/lib/pty1.rb +26 -0
- metadata +5 -4
data/lib/menu.yml
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# MDE - Markdown Executor (1.
|
1
|
+
# MDE - Markdown Executor (1.6)
|
2
2
|
---
|
3
3
|
- :description: Show current configuration values
|
4
4
|
:procname: show_config
|
@@ -72,6 +72,11 @@
|
|
72
72
|
:env_var: MDE_DISPLAY_LEVEL_XBASE_PREFIX
|
73
73
|
:opt_name: display_level_xbase_prefix
|
74
74
|
:procname: val_as_str
|
75
|
+
- :default: "(document_options)"
|
76
|
+
:description: Name of Opts block to load with the document
|
77
|
+
:env_var: MDE_DOCUMENT_LOAD_OPTS_BLOCK_NAME
|
78
|
+
:opt_name: document_load_opts_block_name
|
79
|
+
:procname: val_as_str
|
75
80
|
- :arg_name: REGEX
|
76
81
|
:default:
|
77
82
|
:description: Exclude blocks with name matching
|
@@ -94,11 +99,12 @@
|
|
94
99
|
:long_name: exit
|
95
100
|
:procname: exit
|
96
101
|
:short_name: x
|
97
|
-
- :default: "
|
102
|
+
- :default: "^(?<indent> *)`{3,}"
|
98
103
|
:env_var: MDE_FENCED_START_AND_END_REGEX
|
99
104
|
:opt_name: fenced_start_and_end_regex
|
100
105
|
:procname: val_as_str
|
101
|
-
- :default: "
|
106
|
+
- :default: "^(?<indent> *)`{3,}(?<shell>[^`\\s]*) *:?(?<name>[^\\s]*) *(?<rest>.*)
|
107
|
+
*$"
|
102
108
|
:env_var: MDE_FENCED_START_EXTENDED_REGEX
|
103
109
|
:opt_name: fenced_start_extended_regex
|
104
110
|
:procname: val_as_str
|
@@ -212,17 +218,27 @@
|
|
212
218
|
:env_var: MDE_MENU_BLOCKS_WITH_HEADINGS
|
213
219
|
:opt_name: menu_blocks_with_headings
|
214
220
|
:procname: val_as_bool
|
221
|
+
- :default: fg_rgbh_aa_bb_aa
|
222
|
+
:description: Color of menu chrome
|
223
|
+
:env_var: MDE_MENU_CHROME_COLOR
|
224
|
+
:opt_name: menu_chrome_color
|
225
|
+
:procname: val_as_str
|
226
|
+
- :default: "%{line}"
|
227
|
+
:description: format for menu chromes
|
228
|
+
:env_var: MDE_MENU_CHROME_FORMAT
|
229
|
+
:opt_name: menu_chrome_format
|
230
|
+
:procname: val_as_str
|
215
231
|
- :default: magenta
|
216
232
|
:description: Color of menu divider
|
217
233
|
:env_var: MDE_MENU_DIVIDER_COLOR
|
218
234
|
:opt_name: menu_divider_color
|
219
235
|
:procname: val_as_str
|
220
|
-
- :default: "-:= %
|
236
|
+
- :default: "-:= %{line} =:-"
|
221
237
|
:description: format for menu dividers and demarcations
|
222
238
|
:env_var: MDE_MENU_DIVIDER_FORMAT
|
223
239
|
:opt_name: menu_divider_format
|
224
240
|
:procname: val_as_str
|
225
|
-
- :default: "^::: +(?<
|
241
|
+
- :default: "^::: +(?<line>.+?)$"
|
226
242
|
:description: Pattern for topics/dividers in block selection menu
|
227
243
|
:env_var: MDE_MENU_DIVIDER_MATCH
|
228
244
|
:opt_name: menu_divider_match
|
@@ -238,12 +254,14 @@
|
|
238
254
|
:env_var: MDE_MENU_EXIT_AT_TOP
|
239
255
|
:opt_name: menu_exit_at_top
|
240
256
|
:procname: val_as_bool
|
241
|
-
- :default:
|
257
|
+
- :default:
|
258
|
+
:line: "~~~"
|
242
259
|
:description: closing demarcations for menu
|
243
260
|
:env_var: MDE_MENU_FINAL_DIVIDER
|
244
261
|
:opt_name: menu_final_divider
|
245
262
|
:procname: val_as_str
|
246
|
-
- :default:
|
263
|
+
- :default:
|
264
|
+
:line: ''
|
247
265
|
:description: opening demarcation for menu
|
248
266
|
:env_var: MDE_MENU_INITIAL_DIVIDER
|
249
267
|
:opt_name: menu_initial_divider
|
@@ -253,12 +271,34 @@
|
|
253
271
|
:env_var: MDE_MENU_LINK_COLOR
|
254
272
|
:opt_name: menu_link_color
|
255
273
|
:procname: val_as_str
|
256
|
-
- :default: "
|
274
|
+
- :default: "%{line}"
|
275
|
+
:description: format for menu link
|
276
|
+
:env_var: MDE_MENU_LINK_FORMAT
|
277
|
+
:opt_name: menu_link_format
|
278
|
+
:procname: val_as_str
|
279
|
+
- :default: fg_rgbh_88_88_88
|
280
|
+
:description: Color of menu note
|
281
|
+
:env_var: MDE_MENU_NOTE_COLOR
|
282
|
+
:opt_name: menu_note_color
|
283
|
+
:procname: val_as_str
|
284
|
+
- :default: "%{line}"
|
285
|
+
:description: format for menu notes
|
286
|
+
:env_var: MDE_MENU_NOTE_FORMAT
|
287
|
+
:opt_name: menu_note_format
|
288
|
+
:procname: val_as_str
|
289
|
+
- :default: "^(?<line>.*?) *$"
|
290
|
+
:description: Pattern for notes in block selection menu
|
291
|
+
:env_var: MDE_MENU_NOTE_MATCH
|
292
|
+
:opt_name: menu_note_match
|
293
|
+
:procname: val_as_str
|
294
|
+
- :default:
|
295
|
+
:line: "* Back"
|
257
296
|
:description: Text for Back option
|
258
297
|
:env_var: MDE_MENU_OPTION_BACK_NAME
|
259
298
|
:opt_name: menu_option_back_name
|
260
299
|
:procname: val_as_str
|
261
|
-
- :default:
|
300
|
+
- :default:
|
301
|
+
:line: "* Exit"
|
262
302
|
:description: Text for Exit option
|
263
303
|
:env_var: MDE_MENU_OPTION_EXIT_NAME
|
264
304
|
:opt_name: menu_option_exit_name
|
@@ -380,11 +420,27 @@
|
|
380
420
|
:opt_name: path
|
381
421
|
:procname: val_as_str
|
382
422
|
:short_name: p
|
423
|
+
- :arg_name: BOOL
|
424
|
+
:default: true
|
425
|
+
:description: Pause afte executing a BASH block
|
426
|
+
:env_var: MDE_PAUSE_AFTER_BASH_EXEC
|
427
|
+
:opt_name: pause_after_bash_exec
|
428
|
+
:procname: val_as_bool
|
429
|
+
- :default: Continue?
|
430
|
+
:description: Prompt to continue
|
431
|
+
:env_var: MDE_PROMPT_AFTER_BASH_EXEC
|
432
|
+
:opt_name: prompt_after_bash_exec
|
433
|
+
:procname: val_as_str
|
383
434
|
- :default: Process?
|
384
435
|
:description: Prompt to approve a block
|
385
436
|
:env_var: MDE_PROMPT_APPROVE_BLOCK
|
386
437
|
:opt_name: prompt_approve_block
|
387
438
|
:procname: val_as_str
|
439
|
+
- :default: Exit
|
440
|
+
:description: Prompt to exit app
|
441
|
+
:env_var: MDE_PROMPT_EXIT
|
442
|
+
:opt_name: prompt_exit
|
443
|
+
:procname: val_as_str
|
388
444
|
- :default: 'No'
|
389
445
|
:description: Prompt for no
|
390
446
|
:env_var: MDE_PROMPT_NO
|
data/lib/pty1.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'pty'
|
2
|
+
|
3
|
+
def launch_and_interact_with_terminal
|
4
|
+
begin
|
5
|
+
PTY.spawn("bash") do |stdout, stdin, pid|
|
6
|
+
# Send a command to the terminal
|
7
|
+
stdin.puts "echo 'Hello from Ruby!'"
|
8
|
+
|
9
|
+
# Read the output of the command
|
10
|
+
stdout.each do |line|
|
11
|
+
puts line
|
12
|
+
break if line.include?("Hello from Ruby!")
|
13
|
+
end
|
14
|
+
|
15
|
+
# You can continue to interact with the terminal here
|
16
|
+
# ...
|
17
|
+
|
18
|
+
# Ensure to exit the spawned shell
|
19
|
+
stdin.puts "exit"
|
20
|
+
end
|
21
|
+
rescue PTY::ChildExited => e
|
22
|
+
puts "The child process exited!"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
launch_and_interact_with_terminal
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markdown_exec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: '1.6'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fareed Stevenson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-11-
|
11
|
+
date: 2023-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clipboard
|
@@ -81,8 +81,8 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.2.0
|
83
83
|
description: Interactively select and execute fenced code blocks in markdown files.
|
84
|
-
Build complex scripts by naming and requiring blocks. Log
|
85
|
-
output. Re-run scripts.
|
84
|
+
Build complex scripts by linking documents and naming and requiring blocks. Log
|
85
|
+
resulting scripts and output. Re-run scripts.
|
86
86
|
email:
|
87
87
|
- fareed@phomento.com
|
88
88
|
executables:
|
@@ -144,6 +144,7 @@ files:
|
|
144
144
|
- lib/method_sorter.rb
|
145
145
|
- lib/object_present.rb
|
146
146
|
- lib/option_value.rb
|
147
|
+
- lib/pty1.rb
|
147
148
|
- lib/regexp.rb
|
148
149
|
- lib/rspec_helpers.rb
|
149
150
|
- lib/saved_assets.rb
|