markdown_exec 2.6.0 → 2.7.0
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 +18 -2
- data/Gemfile.lock +2 -2
- data/Rakefile +36 -0
- data/bats/command-substitution.bats +8 -0
- data/bats/options.bats +4 -4
- data/bats/plain.bats +8 -0
- data/bats/table.bats +6 -1
- data/bats/variable-expansion.bats +4 -4
- data/bin/bmde +46 -2
- data/bin/tab_completion.sh +1 -1
- data/docs/dev/command-substitution.md +24 -0
- data/docs/dev/load_code.md +14 -0
- data/docs/dev/no-active-elements.md +6 -0
- data/docs/dev/screen-width.md +21 -0
- data/docs/dev/table-invalid.md +20 -0
- data/examples/bash-blocks.md +2 -1
- data/examples/block-names.md +2 -1
- data/examples/block-types.md +2 -1
- data/examples/data-files.md +1 -0
- data/examples/document_options.md +1 -0
- data/examples/example-document-opts.md +6 -0
- data/examples/index.md +1 -1
- data/examples/interrupt.md +1 -0
- data/examples/link-blocks-load-save.md +8 -10
- data/examples/link-blocks-vars.md +12 -9
- data/examples/linked.md +9 -12
- data/examples/linked1.md +7 -6
- data/examples/linked2.md +6 -7
- data/examples/linked3.md +6 -5
- data/examples/linked_show.md +5 -4
- data/examples/nickname.md +1 -0
- data/examples/opts-blocks-require.md +1 -0
- data/examples/opts-blocks.md +1 -0
- data/examples/opts_output_execution.md +1 -0
- data/examples/pass-through-arguments.md +1 -0
- data/examples/pause-after-execution.md +1 -0
- data/examples/port-blocks.md +14 -10
- data/examples/save.md +1 -0
- data/examples/text-markup.md +2 -1
- data/examples/variable-expansion-save-block.md +48 -0
- data/examples/variable-expansion.md +3 -1
- data/examples/vars-blocks.md +14 -24
- data/examples/wrap.md +2 -1
- data/lib/collapser.rb +83 -47
- data/lib/evaluate_shell_expressions.rb +3 -2
- data/lib/fcb.rb +8 -2
- data/lib/hash_delegator.rb +214 -118
- data/lib/input_sequencer.rb +0 -7
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +6 -1
- data/lib/menu.src.yml +22 -9
- data/lib/menu.yml +22 -7
- data/lib/ww.rb +1 -1
- metadata +16 -9
- data/docs/dev/table-crash.md +0 -39
- data/examples/load_code.md +0 -10
- /data/{examples → docs/dev}/load1.sh +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53f6dd1ce976f4aef9589dc10fca935fb93b2b5fd3f2daecfc945cc7f1046470
|
4
|
+
data.tar.gz: 0c28c66554bc7539598ea898ac51b632a74d3c533b63fd753bd1c51182fc59ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8dbe5d5ca88ace3fff9adfad1a0f4544383aa90e0c637e86fa6b1a4bd61b816693bd4ea6a48f3ff0296bb55bd6cea52177dc0cc495120562b6467ee979a3fb0
|
7
|
+
data.tar.gz: 0207d28993be81217a5877ba813d6af35c91b1b50f85beb27c11558a78a3e1bae46d9e6372d8c4e77bff7f7808f0b42dd99f4d7a0624d67fb77eb6b699715ccf
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [2.7.0] - 2024-12-09
|
4
|
+
|
5
|
+
### Added
|
6
|
+
|
7
|
+
- Collapse or expand sections defined by heading and dividers per options, section definitions, and user interaction.
|
8
|
+
- Command substitution to displayed menu items.
|
9
|
+
- Margin on menu to highlight selections.
|
10
|
+
- Cycling to file selection menu.
|
11
|
+
- Print entire document if there are no active elements.
|
12
|
+
- Option to set a screen width. The document and interface are formatted to fit this dimension. The default is 0, which causes to read and use the console width.
|
13
|
+
|
14
|
+
### Changed
|
15
|
+
|
16
|
+
- Highlight prior selection in menu.
|
17
|
+
- Display live environment variable values in examples.
|
18
|
+
|
3
19
|
## [2.6.0] - 2024-11-27
|
4
20
|
|
5
21
|
### Added
|
@@ -7,7 +23,7 @@
|
|
7
23
|
- Ability to collapse and expand sections.
|
8
24
|
- Collapsible state configurable per document and per section.
|
9
25
|
- User can collapse and expand sections in the UI.
|
10
|
-
- Live shell variable expansion in
|
26
|
+
- Live shell variable expansion in text and various non-shell blocks.
|
11
27
|
- Option for name of function to manage executed scripts.
|
12
28
|
|
13
29
|
### Changed
|
@@ -156,7 +172,7 @@
|
|
156
172
|
### Changed
|
157
173
|
|
158
174
|
- Fix block name processing for blocks with no name.
|
159
|
-
Demo in examples/block_names.md loads content of
|
175
|
+
Demo in examples/block_names.md loads content of docs/dev/load1.sh.
|
160
176
|
|
161
177
|
## [2.0.5] - 2024-04-24
|
162
178
|
|
data/Gemfile.lock
CHANGED
data/Rakefile
CHANGED
@@ -85,11 +85,17 @@ task :bats do
|
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
+
desc 'list Ruby files with tests'
|
89
|
+
task :listtests do
|
90
|
+
puts `find lib -name '*.rb' -type f | xargs grep '< Minitest::Test' -l | sort`
|
91
|
+
end
|
92
|
+
|
88
93
|
desc 'minitest'
|
89
94
|
task :minitest do
|
90
95
|
commands = [
|
91
96
|
'./lib/argument_processor.rb',
|
92
97
|
'./lib/cached_nested_file_reader.rb',
|
98
|
+
'./lib/collapser.rb',
|
93
99
|
'./lib/directory_searcher.rb',
|
94
100
|
'./lib/evaluate_shell_expressions.rb',
|
95
101
|
'./lib/fcb.rb',
|
@@ -203,3 +209,33 @@ def words_list(words)
|
|
203
209
|
%("#{word}")
|
204
210
|
end.join ' '
|
205
211
|
end
|
212
|
+
|
213
|
+
desc 'Build the Docker image for MarkdownExec'
|
214
|
+
task :docker_build do
|
215
|
+
dockerfile = 'Dockerfile.ruby-3.3'
|
216
|
+
image_tag = "mde-#{MarkdownExec::VERSION}.gem"
|
217
|
+
|
218
|
+
command = [
|
219
|
+
"docker build",
|
220
|
+
"--build-arg VERSION=#{MarkdownExec::VERSION}",
|
221
|
+
"-f #{dockerfile}",
|
222
|
+
"-t #{image_tag}",
|
223
|
+
"."
|
224
|
+
].join(' ')
|
225
|
+
|
226
|
+
puts "Building Docker image: #{image_tag} using #{dockerfile}..."
|
227
|
+
puts system(command) || abort("Docker build failed. Please check the output for details.")
|
228
|
+
end
|
229
|
+
|
230
|
+
desc 'Launch an interactive Docker Bash shell'
|
231
|
+
task :docker_exec do
|
232
|
+
exec "docker exec -it mde-#{MarkdownExec::VERSION}.gem bash"
|
233
|
+
end
|
234
|
+
|
235
|
+
desc 'Run the mde binary inside a Docker container. eg `docker_run -- args`'
|
236
|
+
task :docker_run, [:args] do
|
237
|
+
args = ARGV.dup
|
238
|
+
args.shift
|
239
|
+
args.shift if args[0] == '--'
|
240
|
+
exec "docker run -it mde-#{MarkdownExec::VERSION}.gem mde #{args.join(' ')}"
|
241
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
#!/usr/bin/env bats
|
2
|
+
|
3
|
+
load 'test_helper'
|
4
|
+
|
5
|
+
@test 'Command substitution' {
|
6
|
+
spec_mde_xansi_dname_doc_blocks_expect docs/dev/command-substitution.md \
|
7
|
+
'CURRENT BASE NAME IS: MARKDOWN_EXEC_current base name is: markdown_exec_current base name is: markdown_exec_| current base name |_| ----------------- |_| markdown_exec |_: notice the string is not expanded in Shell block types (names or body)._ echo "current base name is now $(basename `pwd`)"__load: file_markdown_exec.sh'
|
8
|
+
}
|
data/bats/options.bats
CHANGED
@@ -72,10 +72,10 @@ load 'test_helper'
|
|
72
72
|
# }
|
73
73
|
|
74
74
|
@test 'Options - load-code' {
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
'var1
|
75
|
+
spec_mde_xansi_dname_doc_blocks_expect docs/dev/load_code.md \
|
76
|
+
--load-code docs/dev/load1.sh \
|
77
|
+
--list-blocks-message dname --list-blocks-type 3 --list-blocks \
|
78
|
+
'Demonstrate loading inherited code via the command line.__Run this command to display the inherited code._mde --load-code docs/dev/load1.sh docs/dev/load_code.md__| Variable | Value |_| -------- | ----- |_| var1 | line2 |_| var2 | line4 |'
|
79
79
|
}
|
80
80
|
|
81
81
|
@test 'Options - pwd' {
|
data/bats/plain.bats
ADDED
data/bats/table.bats
CHANGED
@@ -4,5 +4,10 @@ load 'test_helper'
|
|
4
4
|
|
5
5
|
@test 'Tables - indented' {
|
6
6
|
spec_mde_xansi_dname_doc_blocks_expect docs/dev/table-indent.md \
|
7
|
-
'
|
7
|
+
'DEMONSTRATE TABLE INDENTATION__Table flush at left._Centered columns._| Common Name | Species | Genus | Family | Year Discovered |_| -------------------- | ------------------------- | ------------ | ------------- | --------------- |_| Tapanuli Orangutan | Pongo tapanuliensis | Pongo | Hominidae | 2017 |_| Psychedelic Frogfish | Histiophryne psychedelica | Histiophryne | Antennariidae | 2009 |_| Ruby Seadragon | Phyllopteryx dewysea | Phyllopteryx | Syngnathidae | 2015 |__ Table indented with two spaces._ Left-justified columns._ | Common Name | Species | Genus | Family | Year Discovered |_ | -------------------------- | -------------- | ------- | --------------- | --------------- |_ | Illacme tobini (Millipede) | Illacme tobini | Illacme | Siphonorhinidae | 2016 |__ Table indented with one tab._ Right-justified columns._ | Common Name | Species | Genus | Family | Year Discovered |_ | --------------- | ------------------- | --------- | ---------- | --------------- |_ | Spiny Dandelion | Taraxacum japonicum | Taraxacum | Asteraceae | 2022 |'
|
8
|
+
}
|
9
|
+
|
10
|
+
@test 'Tables - invalid' {
|
11
|
+
spec_mde_xansi_dname_doc_blocks_expect docs/dev/table-invalid.md \
|
12
|
+
'Missing column names__| ------------------- | - |_| Pongo tapanuliensis | |__Missing dividers__| Species_| Pongo tapanuliensis__Missing table rows__| Species |_| ------- |'
|
8
13
|
}
|
@@ -4,27 +4,27 @@ load 'test_helper'
|
|
4
4
|
|
5
5
|
@test 'Variable expansion - default' {
|
6
6
|
spec_mde_xansi_dname_doc_blocks_expect docs/dev/variable-expansion.md \
|
7
|
-
'
|
7
|
+
'EVIDENCE_SOURCE is:_SOURCE is:_SOURCE is:_| SOURCE |_| ------ |__name_with_${SOURCE}_in_name_load: file_.sh_SOURCES'
|
8
8
|
}
|
9
9
|
|
10
10
|
@test 'Variable expansion - LINK_LOAD_SOURCE' {
|
11
11
|
echo "SOURCE='Loaded file'" > temp_variable_expansion.sh
|
12
12
|
spec_mde_xansi_dname_doc_blocks_expect docs/dev/variable-expansion.md \
|
13
13
|
'(LINK_LOAD_SOURCE)' \
|
14
|
-
'
|
14
|
+
'EVIDENCE_SOURCE is: Loaded file_SOURCE is: Loaded file_SOURCE is: Loaded file_| SOURCE |_| ----------- |_| Loaded file |_name_with_${SOURCE}_in_name_load: file_Loaded file.sh_SOURCES'
|
15
15
|
rm temp_variable_expansion.sh
|
16
16
|
}
|
17
17
|
|
18
18
|
@test 'Variable expansion - LINK_VARS_SOURCE' {
|
19
19
|
spec_mde_xansi_dname_doc_blocks_expect docs/dev/variable-expansion.md \
|
20
20
|
'(LINK_VARS_SOURCE)' \
|
21
|
-
'
|
21
|
+
'EVIDENCE_SOURCE is: Link block_SOURCE is: Link block_SOURCE is: Link block_| SOURCE |_| ---------- |_| Link block |_name_with_${SOURCE}_in_name_load: file_Link block.sh_SOURCES'
|
22
22
|
}
|
23
23
|
|
24
24
|
@test 'Variable expansion - VARS_SOURCE' {
|
25
25
|
spec_mde_xansi_dname_doc_blocks_expect docs/dev/variable-expansion.md \
|
26
26
|
'(VARS_SOURCE)' \
|
27
|
-
'
|
27
|
+
'EVIDENCE_SOURCE is: Vars block_SOURCE is: Vars block_SOURCE is: Vars block_| SOURCE |_| ---------- |_| Vars block |_name_with_${SOURCE}_in_name_load: file_Vars block.sh_SOURCES'
|
28
28
|
}
|
29
29
|
|
30
30
|
### Load source
|
data/bin/bmde
CHANGED
@@ -2,10 +2,54 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
# encoding=utf-8
|
5
|
-
|
6
5
|
require 'bundler/setup'
|
7
6
|
Bundler.require(:default)
|
8
7
|
|
9
8
|
require_relative '../lib/markdown_exec'
|
10
9
|
|
11
|
-
|
10
|
+
trace_enabled = false
|
11
|
+
|
12
|
+
if ENV['MDE_TRACE_POINT']
|
13
|
+
trace_output = if ENV['MDE_TRACE_POINT_FILE']
|
14
|
+
File.open(ENV['MDE_TRACE_POINT_FILE'], 'a')
|
15
|
+
else
|
16
|
+
$stderr
|
17
|
+
end
|
18
|
+
|
19
|
+
trace = TracePoint.new(:line) do |tp|
|
20
|
+
next unless trace_enabled
|
21
|
+
|
22
|
+
method_name = tp.method_id || 'unknown_method'
|
23
|
+
next if method_name == :method_missing
|
24
|
+
|
25
|
+
next if tp.path.match?(%r{(/\.bundle/|/\.rbenv/|internal:|lib/colorize|lib/object_present|lib/resize_terminal)})
|
26
|
+
|
27
|
+
message = "#{'.' * Thread.current.backtrace_locations.size} #{tp.path.sub(Dir.pwd, '')} [#{method_name}] #{tp.lineno + 1}"
|
28
|
+
|
29
|
+
if trace_output.is_a?(File)
|
30
|
+
trace_output.puts(message)
|
31
|
+
else
|
32
|
+
warn message
|
33
|
+
$stderr.flush
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def tpbreak
|
38
|
+
trace_enabled = false
|
39
|
+
binding.irb
|
40
|
+
end
|
41
|
+
|
42
|
+
def tpgo
|
43
|
+
trace_enabled = true
|
44
|
+
end
|
45
|
+
|
46
|
+
trace.enable
|
47
|
+
trace_enabled = true
|
48
|
+
end
|
49
|
+
|
50
|
+
begin
|
51
|
+
MarkdownExec::MarkParse.new.run
|
52
|
+
ensure
|
53
|
+
trace&.disable
|
54
|
+
trace_output&.close if trace_output.is_a?(File)
|
55
|
+
end
|
data/bin/tab_completion.sh
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
# current base name is: $(basename `pwd`)
|
2
|
+
:::: current base name is: $(basename `pwd`)
|
3
|
+
current base name is: $(basename `pwd`)
|
4
|
+
| current base name
|
5
|
+
| -
|
6
|
+
| $(basename `pwd`)
|
7
|
+
```bash
|
8
|
+
: notice the string is not expanded in Shell block types (names or body).
|
9
|
+
echo "current base name is now $(basename `pwd`)"
|
10
|
+
```
|
11
|
+
```link
|
12
|
+
load: file_$(basename `pwd`).sh
|
13
|
+
```
|
14
|
+
@import bats-document-configuration.md
|
15
|
+
```opts :(document_opts)
|
16
|
+
heading1_center: false
|
17
|
+
heading2_center: false
|
18
|
+
heading3_center: false
|
19
|
+
menu_final_divider:
|
20
|
+
menu_for_saved_lines: false
|
21
|
+
menu_initial_divider:
|
22
|
+
menu_vars_set_format:
|
23
|
+
table_center: false
|
24
|
+
```
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Demonstrate loading inherited code via the command line.
|
2
|
+
|
3
|
+
Run this command to display the inherited code.
|
4
|
+
`mde --load-code docs/dev/load1.sh docs/dev/load_code.md`
|
5
|
+
|
6
|
+
| Variable| Value
|
7
|
+
| -| -
|
8
|
+
| var1| ${var1}
|
9
|
+
| var2| ${var2}
|
10
|
+
@import bats-document-configuration.md
|
11
|
+
```opts :(document_opts)
|
12
|
+
menu_for_saved_lines: false
|
13
|
+
table_center: false
|
14
|
+
```
|
@@ -0,0 +1,21 @@
|
|
1
|
+
The text from "1" to "16" is 38 digits, spaces.
|
2
|
+
::: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
3
|
+
The text from "17" to "23" is 20 digits, spaces.
|
4
|
+
::: 17 18 19 20 21 22 23
|
5
|
+
```opts
|
6
|
+
screen_width: 80
|
7
|
+
```
|
8
|
+
```opts
|
9
|
+
screen_width: 60
|
10
|
+
```
|
11
|
+
```opts
|
12
|
+
screen_width: 40
|
13
|
+
```
|
14
|
+
```opts
|
15
|
+
screen_width: 20
|
16
|
+
```
|
17
|
+
@import bats-document-configuration.md
|
18
|
+
```opts :(document_opts)
|
19
|
+
divider4_center: true
|
20
|
+
divider4_collapsible: false
|
21
|
+
```
|
@@ -0,0 +1,20 @@
|
|
1
|
+
::: Missing column names
|
2
|
+
|
3
|
+
| -| -
|
4
|
+
| Pongo tapanuliensis
|
5
|
+
|
6
|
+
|
7
|
+
::: Missing dividers
|
8
|
+
|
9
|
+
| Species
|
10
|
+
| Pongo tapanuliensis
|
11
|
+
|
12
|
+
::: Missing table rows
|
13
|
+
|
14
|
+
| Species
|
15
|
+
| -
|
16
|
+
|
17
|
+
@import bats-document-configuration.md
|
18
|
+
```opts :(document_opts)
|
19
|
+
table_center: false
|
20
|
+
```
|
data/examples/bash-blocks.md
CHANGED
@@ -50,9 +50,10 @@ The hidden block "(taxonomy)" prints "taxonomy".
|
|
50
50
|
echo "taxonomy"
|
51
51
|
```
|
52
52
|
|
53
|
+
@import example-document-opts.md
|
53
54
|
```opts :(document_opts)
|
54
55
|
execute_in_own_window: false
|
55
56
|
output_execution_report: false
|
56
57
|
output_execution_summary: false
|
57
58
|
pause_after_script_execution: true
|
58
|
-
```
|
59
|
+
```
|
data/examples/block-names.md
CHANGED
@@ -54,9 +54,10 @@ The hidden block "(success)" is required above. It prints "Success".
|
|
54
54
|
echo "Success"
|
55
55
|
```
|
56
56
|
|
57
|
+
@import example-document-opts.md
|
57
58
|
```opts :(document_opts)
|
58
59
|
execute_in_own_window: false
|
59
60
|
output_execution_report: false
|
60
61
|
output_execution_summary: false
|
61
62
|
pause_after_script_execution: true
|
62
|
-
```
|
63
|
+
```
|
data/examples/block-types.md
CHANGED
@@ -16,10 +16,11 @@ Specified block types.
|
|
16
16
|
a: 1
|
17
17
|
```
|
18
18
|
|
19
|
+
@import example-document-opts.md
|
19
20
|
```opts :(document_opts)
|
20
21
|
bash_only: false
|
21
22
|
execute_in_own_window: false
|
22
23
|
output_execution_report: false
|
23
24
|
output_execution_summary: false
|
24
25
|
pause_after_script_execution: true
|
25
|
-
```
|
26
|
+
```
|
data/examples/data-files.md
CHANGED
data/examples/index.md
CHANGED
data/examples/interrupt.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
::: Load file into inherited lines
|
2
2
|
Load (do not evaluate) and append to inherited lines.
|
3
3
|
```link :load1
|
4
|
-
load:
|
4
|
+
load: docs/dev/load1.sh
|
5
5
|
```
|
6
6
|
Load, evaluate, and append output to inherited lines.
|
7
7
|
```link :load2_eval
|
@@ -12,9 +12,8 @@ eval: true
|
|
12
12
|
::: Load file into inherited lines and switch document
|
13
13
|
Load (do not evaluate) and append to inherited lines and switch document.
|
14
14
|
```link :load_from_file_link_and_show
|
15
|
-
block: show_vars
|
16
15
|
file: examples/linked_show.md
|
17
|
-
load:
|
16
|
+
load: docs/dev/load1.sh
|
18
17
|
```
|
19
18
|
|
20
19
|
::: Save and Load
|
@@ -23,17 +22,16 @@ Save inherited lines to a file.
|
|
23
22
|
save: tmp/save1.sh
|
24
23
|
```
|
25
24
|
Load inherited lines from a file.
|
26
|
-
Subsequently, run the `display_variables` block.
|
27
25
|
```link :load_saved
|
28
26
|
load: tmp/save1.sh
|
29
|
-
block: display_variables
|
30
|
-
```
|
31
|
-
Display variables ALPHA, var1, var2
|
32
|
-
```bash :display_variables
|
33
|
-
source bin/colorize_env_vars.sh
|
34
|
-
colorize_env_vars '' ALPHA var1 var2
|
35
27
|
```
|
36
28
|
|
29
|
+
| Variable| Value
|
30
|
+
| -| -
|
31
|
+
| ALPHA| ${ALPHA}
|
32
|
+
| var1| ${var1}
|
33
|
+
| var2| ${var2}
|
34
|
+
|
37
35
|
::: Load file matching glob pattern into inherited lines
|
38
36
|
Load (do not evaluate) and append to inherited lines.
|
39
37
|
```link :load_glob_load1*
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# Demonstrate link blocks set variables
|
2
|
+
@import example-document-opts.md
|
2
3
|
```opts :(document_opts)
|
3
4
|
execute_in_own_window: false
|
4
5
|
menu_with_inherited_lines: true
|
@@ -9,15 +10,14 @@ pause_after_script_execution: true
|
|
9
10
|
|
10
11
|
## Demonstrate a link block that sets a variable
|
11
12
|
::: Select below to trigger. If it prints "VARIABLE1: 1", the Link block was processed.
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
The block sets VARIABLE1
|
13
|
+
|
14
|
+
| Variable| Value
|
15
|
+
| -| -
|
16
|
+
| VARIABLE1| ${VARIABLE1}
|
17
|
+
|
18
|
+
The block sets VARIABLE1.
|
18
19
|
For each environment variable in `vars`, append an inherited line that assigns the variable the specified value.
|
19
20
|
```link
|
20
|
-
block: (print-VARIABLE1)
|
21
21
|
vars:
|
22
22
|
VARIABLE1: 1
|
23
23
|
```
|
@@ -50,7 +50,10 @@ These blocks require the *output* of the execution of the code in the named shel
|
|
50
50
|
eval: true
|
51
51
|
next_block: "(display_variable_ALPHA)"
|
52
52
|
```
|
53
|
+
|
54
|
+
| Variable| Value
|
55
|
+
| -| -
|
56
|
+
| ALPHA| ${ALPHA}
|
57
|
+
|
53
58
|
```bash :(display_variable_ALPHA)
|
54
|
-
source bin/colorize_env_vars.sh
|
55
|
-
colorize_env_vars '' ALPHA
|
56
59
|
```
|
data/examples/linked.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
Demonstrate setting variable values interactively for use in generated scripts.
|
2
2
|
|
3
|
+
@import example-document-opts.md
|
3
4
|
```opts :(document_opts)
|
4
5
|
menu_with_inherited_lines: true
|
5
6
|
pause_after_script_execution: false
|
@@ -14,7 +15,6 @@ ALPHA: 1
|
|
14
15
|
```
|
15
16
|
|
16
17
|
Make the code in the required block `(bash_set_to_3)` into inherited lines.
|
17
|
-
Subsequently, run the `display_variable_ALPHA` block.
|
18
18
|
```bash :(bash_set_to_3)
|
19
19
|
ALPHA=3
|
20
20
|
```
|
@@ -24,7 +24,6 @@ block: display_variable_ALPHA
|
|
24
24
|
|
25
25
|
Evaluate the code in the required block `(bash_eval_set_to_4)` and
|
26
26
|
save (transformed) output into inherited lines.
|
27
|
-
Subsequently, run the `display_variable_ALPHA` block.
|
28
27
|
```link :[set_ALPHA_to_4_via_evaluated_required_block_and_display] +(bash_eval_set_to_4)
|
29
28
|
eval: true
|
30
29
|
next_block: display_variable_ALPHA
|
@@ -33,16 +32,15 @@ next_block: display_variable_ALPHA
|
|
33
32
|
echo 'ALPHA="4"'
|
34
33
|
```
|
35
34
|
|
36
|
-
|
35
|
+
/::: Display value of ALPHA
|
37
36
|
```bash :display_variable_ALPHA
|
38
|
-
source bin/colorize_env_vars.sh
|
39
|
-
echo The current value of environment variable ALPHA is now:
|
40
|
-
colorize_env_vars '' ALPHA
|
41
37
|
```
|
38
|
+
| Variable| Value
|
39
|
+
| -| -
|
40
|
+
| ALPHA| ${ALPHA}
|
42
41
|
|
43
42
|
Execute a script requiring input from the user.
|
44
43
|
Save the output setting TIMESTAMP into inherited lines.
|
45
|
-
Subsequently, run the `display_TIMESTAMP` block.
|
46
44
|
```bash :(input_timestamp)
|
47
45
|
if [[ -z $TIMESTAMP ]]; then
|
48
46
|
default="$(date -u +%y%m%d)"
|
@@ -56,13 +54,12 @@ echo "TIMESTAMP=\"$TIMESTAMP\""
|
|
56
54
|
```
|
57
55
|
```link :set_timestamp +(input_timestamp) +(inherit_timestamp)
|
58
56
|
exec: true
|
59
|
-
block: display_TIMESTAMP
|
60
|
-
```
|
61
|
-
```bash :display_TIMESTAMP
|
62
|
-
source bin/colorize_env_vars.sh
|
63
|
-
colorize_env_vars '' TIMESTAMP
|
64
57
|
```
|
65
58
|
|
59
|
+
| Variable| Value
|
60
|
+
| -| -
|
61
|
+
| TIMESTAMP| ${TIMESTAMP}
|
62
|
+
|
66
63
|
## Values
|
67
64
|
Spaces in variable value are unchanged.
|
68
65
|
```link :link_with_vars_with_spaces
|
data/examples/linked1.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# Demo document linking
|
2
2
|
|
3
|
+
@import example-document-opts.md
|
3
4
|
```opts :(document_opts)
|
4
5
|
dump_inherited_lines: true
|
5
6
|
pause_after_script_execution: false
|
@@ -11,11 +12,12 @@ user_must_approve: false
|
|
11
12
|
|
12
13
|
::: This Bash block displays the value of variables "page1_var_via_environment" and "page2_var_via_environment"
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
| Variable| Value
|
16
|
+
| -| -
|
17
|
+
| PAGE2_VAR_VIA_INHERIT| ${PAGE2_VAR_VIA_INHERIT}
|
18
|
+
| page2_var_via_environment| ${page2_var_via_environment}
|
19
|
+
| PAGE3_VAR_VIA_INHERIT| ${PAGE3_VAR_VIA_INHERIT}
|
20
|
+
| page3_var_via_environment| ${page3_var_via_environment}
|
19
21
|
|
20
22
|
```bash :(vars2)
|
21
23
|
PAGE2_VAR_VIA_INHERIT=for_page2_from_page1_via_inherited_code_blocks
|
@@ -37,7 +39,6 @@ file: examples/linked2.md
|
|
37
39
|
|
38
40
|
```link :linked2_import_vars +(vars2)
|
39
41
|
file: examples/linked2.md
|
40
|
-
block: show_vars
|
41
42
|
vars:
|
42
43
|
page2_var_via_environment: for_page2_from_page1_via_current_environment
|
43
44
|
```
|
data/examples/linked2.md
CHANGED
@@ -5,16 +5,16 @@
|
|
5
5
|
|
6
6
|
::: This Bash block displays the value of variables "page1_var_via_environment" and "page2_var_via_environment"
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
| Variable| Value
|
9
|
+
| -| -
|
10
|
+
| PAGE2_VAR_VIA_INHERIT| ${PAGE2_VAR_VIA_INHERIT}
|
11
|
+
| page2_var_via_environment| ${page2_var_via_environment}
|
12
|
+
| PAGE3_VAR_VIA_INHERIT| ${PAGE3_VAR_VIA_INHERIT}
|
13
|
+
| page3_var_via_environment| ${page3_var_via_environment}
|
13
14
|
|
14
15
|
::: This Link block requires a block that
|
15
16
|
::: 1. sets environment variable PAGE3_VAR_VIA_INHERIT,
|
16
17
|
::: 2. navigates to document 3, and
|
17
|
-
::: 3. executes block "show_vars" to display the imported PAGE3_VAR_VIA_INHERIT.
|
18
18
|
|
19
19
|
```bash :(vars3)
|
20
20
|
PAGE3_VAR_VIA_INHERIT=for_page3_from_page2_via_inherited_code_blocks
|
@@ -30,7 +30,6 @@ file: examples/linked3.md
|
|
30
30
|
|
31
31
|
```link :linked3_import_vars +(vars3)
|
32
32
|
file: examples/linked3.md
|
33
|
-
block: show_vars
|
34
33
|
vars:
|
35
34
|
page3_var_via_environment: for_page3_from_page2_via_current_environment
|
36
35
|
```
|