markdown_exec 1.4.1 → 1.6
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/.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
|