markdown_exec 3.5.1 → 3.5.2

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.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.ai-agent-instructions +54 -0
  3. data/.cursorrules +198 -0
  4. data/.rubocop.wide.yml +5 -0
  5. data/.rubocop.yml +7 -2
  6. data/CHANGELOG.md +12 -1
  7. data/Gemfile.lock +1 -1
  8. data/Rakefile +2 -0
  9. data/ai-principles.md +516 -0
  10. data/architecture-decisions.md +190 -0
  11. data/bats/block-hide.bats +1 -1
  12. data/bats/block-type-bash.bats +5 -5
  13. data/bats/block-type-link.bats +1 -1
  14. data/bats/block-type-opts.bats +3 -3
  15. data/bats/block-type-port.bats +2 -2
  16. data/bats/block-type-shell-require-ux.bats +2 -2
  17. data/bats/block-type-ux-allowed.bats +4 -4
  18. data/bats/block-type-ux-auto.bats +1 -1
  19. data/bats/block-type-ux-chained.bats +1 -1
  20. data/bats/block-type-ux-default.bats +1 -1
  21. data/bats/block-type-ux-echo-hash-transform.bats +1 -1
  22. data/bats/block-type-ux-echo-hash.bats +2 -2
  23. data/bats/block-type-ux-echo.bats +3 -3
  24. data/bats/block-type-ux-exec-hash-transform.bats +1 -1
  25. data/bats/block-type-ux-exec-hash.bats +2 -2
  26. data/bats/block-type-ux-exec.bats +1 -1
  27. data/bats/block-type-ux-force.bats +1 -1
  28. data/bats/block-type-ux-formats.bats +1 -1
  29. data/bats/block-type-ux-hidden.bats +1 -1
  30. data/bats/block-type-ux-invalid.bats +1 -1
  31. data/bats/block-type-ux-readonly.bats +1 -1
  32. data/bats/block-type-ux-require-chained.bats +2 -2
  33. data/bats/block-type-ux-require-context.bats +2 -2
  34. data/bats/block-type-ux-require.bats +2 -2
  35. data/bats/block-type-ux-required-variables.bats +1 -1
  36. data/bats/block-type-ux-row-format.bats +1 -1
  37. data/bats/block-type-ux-sources.bats +4 -4
  38. data/bats/block-type-ux-transform.bats +1 -1
  39. data/bats/block-type-vars.bats +3 -3
  40. data/bats/border.bats +1 -1
  41. data/bats/cli.bats +11 -11
  42. data/bats/command-substitution-options.bats +2 -2
  43. data/bats/command-substitution.bats +1 -1
  44. data/bats/document-shell.bats +1 -1
  45. data/bats/history.bats +5 -5
  46. data/bats/import-conflict.bats +1 -1
  47. data/bats/import-directive-line-continuation.bats +1 -1
  48. data/bats/import-directive-parameter-symbols.bats +1 -1
  49. data/bats/import-duplicates.bats +6 -6
  50. data/bats/import-parameter-symbols.bats +1 -1
  51. data/bats/import-with-text-substitution.bats +1 -1
  52. data/bats/import.bats +3 -3
  53. data/bats/indented-block-type-vars.bats +1 -1
  54. data/bats/indented-multi-line-output.bats +1 -1
  55. data/bats/line-decor-dynamic.bats +1 -1
  56. data/bats/line-wrapping.bats +1 -1
  57. data/bats/load-vars-state-demo.bats +4 -4
  58. data/bats/markup.bats +4 -4
  59. data/bats/mde.bats +4 -4
  60. data/bats/option-expansion.bats +1 -1
  61. data/bats/options-collapse.bats +4 -4
  62. data/bats/options.bats +47 -17
  63. data/bats/plain.bats +1 -1
  64. data/bats/publish.bats +2 -2
  65. data/bats/table-column-truncate.bats +1 -1
  66. data/bats/table.bats +2 -2
  67. data/bats/variable-expansion-multiline.bats +1 -1
  68. data/bats/variable-expansion.bats +6 -6
  69. data/conversation-template.md +611 -0
  70. data/docs/block-execution-modes.md +177 -0
  71. data/docs/block-filtering.md +252 -0
  72. data/docs/block-naming-patterns.md +210 -0
  73. data/docs/block-scanning-patterns.md +248 -0
  74. data/docs/cli-reference.md +370 -0
  75. data/docs/dev/block-hide.md +1 -1
  76. data/docs/dev/block-type-ux-transform.md +5 -4
  77. data/docs/dev/print_bytes.md +3 -0
  78. data/docs/dev/shebang.md +6 -0
  79. data/docs/docker-testing.md +5 -0
  80. data/docs/execution-control.md +384 -0
  81. data/docs/getting-started.md +209 -0
  82. data/docs/import-options.md +391 -0
  83. data/docs/tab-completion.md +7 -0
  84. data/docs/ux-blocks.md +376 -0
  85. data/examples/linked1.md +8 -1
  86. data/implementation-decisions.md +212 -0
  87. data/lib/cached_nested_file_reader.rb +138 -1
  88. data/lib/command_result.rb +27 -6
  89. data/lib/executed_shell_command.rb +512 -0
  90. data/lib/filter.rb +7 -7
  91. data/lib/hash_delegator.rb +403 -350
  92. data/lib/link_history.rb +22 -11
  93. data/lib/markdown_exec/version.rb +1 -1
  94. data/lib/mdoc.rb +103 -44
  95. data/lib/menu.src.yml +110 -83
  96. data/lib/menu.yml +149 -83
  97. data/lib/transformed_shell_command.rb +449 -0
  98. data/lib/wl.rb +15 -0
  99. data/lib/ww.rb +16 -5
  100. data/requirements.md +111 -0
  101. data/semantic-tokens.md +132 -0
  102. data/tasks.md +69 -0
  103. metadata +26 -4
  104. data/docs/ux-blocks-examples.md +0 -120
  105. data/docs/ux-blocks-init-act.md +0 -100
data/bats/publish.bats CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  load 'test_helper'
4
4
 
5
- @test 'Publish document file name - mode: write, name, format' {
5
+ @test 'writes document name to file with format' {
6
6
  export MDE_PUBLISH_DOCUMENT_NAME_FORMAT='- %{document}'
7
7
  run bin/bmde \
8
8
  --publish-document-file-mode write \
@@ -12,7 +12,7 @@ load 'test_helper'
12
12
  [[ "$(cat /tmp/mde_file)" == "- ./docs/dev/specs.md" ]]
13
13
  }
14
14
 
15
- @test 'Publish block name - mode: write, name, format' {
15
+ @test 'appends document and block names to file with format' {
16
16
  [ -f /tmp/mde_file ] && rm /tmp/mde_file
17
17
  export MDE_PUBLISH_BLOCK_NAME_FORMAT='++%{block}'
18
18
  export MDE_PUBLISH_DOCUMENT_NAME_FORMAT='--%{document}'
@@ -2,7 +2,7 @@
2
2
 
3
3
  load 'test_helper'
4
4
 
5
- @test 'Tables - truncate columns' {
5
+ @test 'truncates text in table columns' {
6
6
  spec_mde_xansi_dname_doc_blocks_expect docs/dev/table-column-truncate.md \
7
7
  'DEMONSTRATE TRUNCATION OF TEXT IN TABLE CELLS__| Common Name | Species | Genus | Family | Year Discover |_| ------------------- | ------------------ | -------- | ----------- | ------------- |_| Tapanuli Orangutan | Pongo tapanuliensi | Pongo | Hominidae | 2017 |_| Psychedelic Frogfis | Histiophryne psych | Histioph | Antennariid | 2009 |_| Ruby Seadragon | Phyllopteryx dewys | Phyllopt | Syngnathida | 2015 |_| Illacme tobini (Mil | Illacme tobini | Illacme | Siphonorhin | 2016 |_| Spiny Dandelion | Taraxacum japonicu | Taraxacu | Asteraceae | 2022 |_'
8
8
  }
data/bats/table.bats CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  load 'test_helper'
4
4
 
5
- @test 'Tables - indented' {
5
+ @test 'renders indented tables' {
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 Frogfi | Histiophryne psychedeli | Histiophryn | Antennariida | 2009 |_| Ruby Seadragon | Phyllopteryx dewysea | Phylloptery | 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
8
  }
9
9
 
10
- @test 'Tables - invalid' {
10
+ @test 'reports invalid table errors' {
11
11
  spec_mde_xansi_dname_doc_blocks_expect docs/dev/table-invalid.md \
12
12
  'Missing column names__| ------------------- | - |_| Pongo tapanuliensis | |__Missing dividers__| Species_| Pongo tapanuliensis__Missing table rows__| Species |_| ------- |'
13
13
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  load 'test_helper'
4
4
 
5
- @test '' {
5
+ @test 'expands multiline variables in blocks' {
6
6
  spec_mde_xansi_dname_doc_blocks_expect docs/dev/variable-expansion-multiline.md \
7
7
  'Genus2 = Pongo_Pongo_UX block:_Genus2=Pongo_Pongo_Command substitution:_Genus2 hex: 50 6f 6e 67 6f 0a 50 6f 6e 67 6f _Command substitution:_Genus2 text: Pongo_Pongo_Command substitution:_Gemfile_Gemfile.lock_Variable expansion:_Genus2 text: Pongo_Pongo'
8
8
  }
@@ -2,12 +2,12 @@
2
2
 
3
3
  load 'test_helper'
4
4
 
5
- @test 'Variable expansion - default' {
5
+ @test 'expands variables with default values' {
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
- @test 'Variable expansion - LINK_LOAD_SOURCE' {
10
+ @test 'expands variables from 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)' \
@@ -15,13 +15,13 @@ load 'test_helper'
15
15
  rm temp_variable_expansion.sh
16
16
  }
17
17
 
18
- @test 'Variable expansion - LINK_VARS_SOURCE' {
18
+ @test 'expands variables from 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
- @test 'Variable expansion - VARS_SOURCE' {
24
+ @test 'expands variables from 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'
@@ -29,7 +29,7 @@ load 'test_helper'
29
29
 
30
30
  ### Load source
31
31
 
32
- @test 'Variable expansion - in block body' {
32
+ @test 'expands variables in block body' {
33
33
  BATS_OUTPUT_FILTER=A
34
34
  spec_mde_args_expect docs/dev/variable-expansion.md \(VARS_SOURCE\) \
35
35
  --list-blocks --list-blocks-type 3 \
@@ -37,7 +37,7 @@ load 'test_helper'
37
37
  'load: file_Vars block.sh'
38
38
  }
39
39
 
40
- @test 'Variable expansion - in block dname' {
40
+ @test 'expands variables in block dname' {
41
41
  BATS_OUTPUT_FILTER=A
42
42
  spec_mde_args_expect docs/dev/variable-expansion.md \(VARS_SOURCE\) \
43
43
  --list-blocks --list-blocks-type 3 \