markdown_helper 1.8.0 → 1.9.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.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +5 -5
  3. data/CODE_OF_CONDUCT.md +74 -74
  4. data/Gemfile.lock +2 -1
  5. data/LICENSE.txt +21 -21
  6. data/README.md +60 -47
  7. data/Rakefile +16 -13
  8. data/bin/_include +0 -1
  9. data/bin/_resolve +0 -1
  10. data/bin/markdown_helper +3 -0
  11. data/bin/setup +8 -8
  12. data/lib/markdown_helper.rb +329 -97
  13. data/lib/markdown_helper/version.rb +1 -1
  14. data/markdown/{README.template.md → readme/README.template.md} +25 -12
  15. data/markdown/{code_block_ruby_template.md → readme/code_block_ruby_template.md} +0 -0
  16. data/markdown/{highlight_ruby_template.md → readme/highlight_ruby_template.md} +0 -0
  17. data/markdown/readme/highlighted_ruby.md +12 -0
  18. data/markdown/{include.md → readme/include.md} +0 -0
  19. data/markdown/{include.rb → readme/include.rb} +0 -0
  20. data/markdown/{include_usage.rb → readme/include_usage.rb} +0 -0
  21. data/markdown/{resolve.md → readme/resolve.md} +0 -0
  22. data/markdown/{resolve_usage.rb → readme/resolve_usage.rb} +0 -0
  23. data/markdown/{verbatim_ruby_template.md → readme/verbatim_ruby_template.md} +0 -0
  24. data/markdown/use_cases/Rakefile +53 -23
  25. data/markdown/use_cases/include/diagnose_circular_includes/diagnose_circular_includes.err +26 -0
  26. data/markdown/use_cases/include/diagnose_circular_includes/diagnose_circular_includes.rb +65 -0
  27. data/markdown/use_cases/include/diagnose_circular_includes/include.rb +5 -0
  28. data/markdown/use_cases/include/diagnose_circular_includes/includer.md +1 -0
  29. data/markdown/use_cases/include/diagnose_circular_includes/includer_0.md +1 -0
  30. data/markdown/use_cases/include/diagnose_circular_includes/includer_1.md +1 -0
  31. data/markdown/use_cases/include/diagnose_circular_includes/includer_2.md +1 -0
  32. data/markdown/use_cases/include/diagnose_circular_includes/use_case.md +98 -0
  33. data/markdown/use_cases/include/diagnose_circular_includes/use_case_template.md +27 -0
  34. data/markdown/use_cases/include/diagnose_missing_includee/diagnose_missing_includee.err +26 -0
  35. data/markdown/use_cases/include/diagnose_missing_includee/diagnose_missing_includee.rb +67 -0
  36. data/markdown/use_cases/include/diagnose_missing_includee/include.rb +5 -0
  37. data/markdown/use_cases/include/diagnose_missing_includee/included.md +1 -0
  38. data/markdown/use_cases/include/diagnose_missing_includee/includer.md +1 -0
  39. data/markdown/use_cases/include/diagnose_missing_includee/includer_0.md +1 -0
  40. data/markdown/use_cases/include/diagnose_missing_includee/includer_1.md +1 -0
  41. data/markdown/use_cases/include/diagnose_missing_includee/includer_2.md +1 -0
  42. data/markdown/use_cases/include/diagnose_missing_includee/use_case.md +100 -0
  43. data/markdown/use_cases/include/diagnose_missing_includee/use_case_template.md +29 -0
  44. data/markdown/use_cases/include/include.rb +5 -0
  45. data/markdown/use_cases/include/include_code_block/hello.rb +8 -0
  46. data/markdown/use_cases/include/include_code_block/include_code_block.rb +79 -0
  47. data/markdown/use_cases/include/include_code_block/included.md +14 -0
  48. data/markdown/use_cases/include/include_code_block/includer.md +4 -0
  49. data/markdown/use_cases/include/include_code_block/use_case.md +108 -0
  50. data/markdown/use_cases/include/include_code_block/use_case_template.md +33 -0
  51. data/markdown/use_cases/include/include_generated_text/include_generated_text.rb +38 -0
  52. data/markdown/use_cases/include/include_generated_text/use_case.md +18 -0
  53. data/markdown/use_cases/include/include_generated_text/use_case_template.md +18 -0
  54. data/markdown/use_cases/include/include_highlighted_code/hello.rb +8 -0
  55. data/markdown/use_cases/include/include_highlighted_code/include_highlighted_code.rb +83 -0
  56. data/markdown/use_cases/include/include_highlighted_code/included.md +14 -0
  57. data/markdown/use_cases/include/include_highlighted_code/includer.md +4 -0
  58. data/markdown/use_cases/include/include_highlighted_code/use_case.md +110 -0
  59. data/markdown/use_cases/include/include_highlighted_code/use_case_template.md +35 -0
  60. data/markdown/use_cases/include/include_markdown/include_markdown.rb +81 -0
  61. data/markdown/use_cases/include/include_markdown/included.md +13 -0
  62. data/markdown/use_cases/include/include_markdown/includer.md +4 -0
  63. data/markdown/use_cases/include/include_markdown/markdown.md +10 -0
  64. data/markdown/use_cases/include/include_markdown/use_case.md +106 -0
  65. data/markdown/use_cases/include/include_markdown/use_case_template.md +33 -0
  66. data/markdown/use_cases/include/include_use_case.rb +110 -0
  67. data/markdown/use_cases/include/include_with_added_comments/include_with_added_comments.rb +43 -60
  68. data/markdown/use_cases/include/include_with_added_comments/included.md +2 -2
  69. data/markdown/use_cases/include/include_with_added_comments/use_case.md +56 -0
  70. data/markdown/use_cases/include/include_with_added_comments/{template.md → use_case_template.md} +20 -1
  71. data/markdown/use_cases/include/interface.md +25 -0
  72. data/markdown/use_cases/include/nest_inclusions/included.md +5 -0
  73. data/markdown/use_cases/include/nest_inclusions/includee.md +3 -0
  74. data/markdown/use_cases/include/nest_inclusions/includer.md +3 -0
  75. data/markdown/use_cases/include/nest_inclusions/nest_inclusions.rb +61 -0
  76. data/markdown/use_cases/include/nest_inclusions/nested_includee.md +1 -0
  77. data/markdown/use_cases/include/nest_inclusions/use_case.md +74 -0
  78. data/markdown/use_cases/include/nest_inclusions/use_case_template.md +23 -0
  79. data/markdown/use_cases/include/reuse_text/include.rb +5 -0
  80. data/markdown/use_cases/include/reuse_text/included.md +2 -5
  81. data/markdown/use_cases/include/reuse_text/includee.md +1 -0
  82. data/markdown/use_cases/include/reuse_text/includer.md +2 -5
  83. data/markdown/use_cases/include/reuse_text/reuse_text.rb +24 -77
  84. data/markdown/use_cases/include/reuse_text/use_case.md +69 -0
  85. data/markdown/use_cases/include/reuse_text/use_case_template.md +23 -0
  86. data/markdown/use_cases/resolve/gemify_images/gemify_images.rb +58 -29
  87. data/markdown/use_cases/resolve/gemify_images/template.md +4 -0
  88. data/markdown/use_cases/use_case.rb +45 -0
  89. data/markdown/use_cases/use_cases.md +9 -2
  90. data/markdown_helper.gemspec +1 -1
  91. metadata +70 -19
  92. data/markdown/highlighted_ruby.md +0 -12
  93. data/markdown/use_cases/include/include_generated_text/build.rb +0 -46
  94. data/markdown/use_cases/include/include_with_added_comments/include_with_added_comments.md +0 -37
  95. data/markdown/use_cases/include/reuse_text/reusable_text.md +0 -1
  96. data/markdown/use_cases/include/reuse_text/reuse_text.md +0 -54
  97. data/markdown/use_cases/include/reuse_text/template.md +0 -33
@@ -0,0 +1,26 @@
1
+ include.rb: Could not read include file, (MarkdownHelper::MissingIncludeeError)
2
+ Backtrace (innermost include first):
3
+ Level 0:
4
+ Includer:
5
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_2.md:1
6
+ Include description: @[:markdown](includer_3.md)
7
+ Includee:
8
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_3.md
9
+ Level 1:
10
+ Includer:
11
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_1.md:1
12
+ Include description: @[:markdown](includer_2.md)
13
+ Includee:
14
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_2.md
15
+ Level 2:
16
+ Includer:
17
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_0.md:1
18
+ Include description: @[:markdown](includer_1.md)
19
+ Includee:
20
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_1.md
21
+ Level 3:
22
+ Includer:
23
+ Location: includer.md:1
24
+ Include description: @[:markdown](includer_0.md)
25
+ Includee:
26
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_0.md
@@ -0,0 +1,67 @@
1
+ require_relative '../include_use_case'
2
+
3
+ class DiagnoseMissingIncludee < IncludeUseCase
4
+
5
+ def self.build
6
+
7
+ use_case_name = File.basename(__FILE__, '.rb')
8
+ use_case = self.new(use_case_name)
9
+
10
+ use_case.write_ruby_file(pristine = true)
11
+
12
+ [
13
+ [0, 1],
14
+ [1, 2],
15
+ [2, 3],
16
+ ].each do |indexes|
17
+ includer_index, includee_index = *indexes
18
+ includer_file_name = "includer_#{includer_index}.md"
19
+ includee_file_name = "includer_#{includee_index}.md"
20
+ if includer_index == 0
21
+ include_description = "@[:markdown](#{includer_file_name})\n"
22
+ File.write(INCLUDER_FILE_NAME, include_description)
23
+ end
24
+ include_description = "@[:markdown](#{includee_file_name})\n"
25
+ File.write(includer_file_name, include_description)
26
+ end
27
+
28
+ File.write(
29
+ TEMPLATE_FILE_NAME,
30
+ <<EOT
31
+ ### Diagnose Missing Includee
32
+
33
+ Use the backtrace of inclusions to diagnose and correct a missing or otherwise unreadable includee file.
34
+
35
+ The backtrace is especially useful for errors in nested includes.
36
+
37
+ #### Files To Be Included
38
+
39
+ These files demonstrate nested inclusion, with a missing includee file.
40
+
41
+ @[markdown](includer_0.md)
42
+
43
+ @[markdown](includer_1.md)
44
+
45
+ @[markdown](includer_2.md)
46
+
47
+ #### Includer File
48
+
49
+ This file initiates the nested inclusions.
50
+
51
+ @[markdown](#{INCLUDER_FILE_NAME})
52
+
53
+ @[:markdown](../interface.md)
54
+
55
+ #### Error and Backtrace
56
+
57
+ Here's the resulting backtrace of inclusions.
58
+
59
+ @[:code_block](diagnose_missing_includee.err)
60
+ EOT
61
+ )
62
+
63
+ use_case.build
64
+
65
+ end
66
+
67
+ end
@@ -0,0 +1,5 @@
1
+ require 'markdown_helper'
2
+
3
+ # Option :pristine suppresses comment insertion.
4
+ markdown_helper = MarkdownHelper.new(:pristine => true)
5
+ markdown_helper.include('includer.md', 'included.md')
@@ -0,0 +1 @@
1
+ @[:markdown](includer_1.md}
@@ -0,0 +1 @@
1
+ @[:markdown](includer_0.md)
@@ -0,0 +1 @@
1
+ @[:markdown](includer_1.md)
@@ -0,0 +1 @@
1
+ @[:markdown](includer_2.md)
@@ -0,0 +1 @@
1
+ @[:markdown](includer_3.md)
@@ -0,0 +1,100 @@
1
+ ### Diagnose Missing Includee
2
+
3
+ Use the backtrace of inclusions to diagnose and correct a missing or otherwise unreadable includee file.
4
+
5
+ The backtrace is especially useful for errors in nested includes.
6
+
7
+ #### Files To Be Included
8
+
9
+ These files demonstrate nested inclusion, with a missing includee file.
10
+
11
+ ```includer_0.md```:
12
+ ```markdown
13
+ @[:markdown](includer_1.md)
14
+ ```
15
+
16
+ ```includer_1.md```:
17
+ ```markdown
18
+ @[:markdown](includer_2.md)
19
+ ```
20
+
21
+ ```includer_2.md```:
22
+ ```markdown
23
+ @[:markdown](includer_3.md)
24
+ ```
25
+
26
+ #### Includer File
27
+
28
+ This file initiates the nested inclusions.
29
+
30
+ ```includer.md```:
31
+ ```markdown
32
+ @[:markdown](includer_0.md)
33
+ ```
34
+
35
+ #### CLI
36
+
37
+ You can use the command-line interface to perform the inclusion.
38
+
39
+ ##### Command
40
+
41
+ ```sh
42
+ markdown_helper include --pristine includer.md included.md
43
+ ```
44
+
45
+ (Option ```--pristine``` suppresses comment insertion.)
46
+
47
+ #### API
48
+
49
+ You can use the API to perform the inclusion.
50
+
51
+ ##### Ruby Code
52
+
53
+ ```include.rb```:
54
+ ```ruby
55
+ require 'markdown_helper'
56
+
57
+ # Option :pristine suppresses comment insertion.
58
+ markdown_helper = MarkdownHelper.new(:pristine => true)
59
+ markdown_helper.include('includer.md', 'included.md')
60
+ ```
61
+
62
+ ##### Command
63
+
64
+ ```sh
65
+ ruby include.rb
66
+ ```
67
+
68
+ #### Error and Backtrace
69
+
70
+ Here's the resulting backtrace of inclusions.
71
+
72
+ ```diagnose_missing_includee.err```:
73
+ ```
74
+ include.rb: Could not read include file, (MarkdownHelper::MissingIncludeeError)
75
+ Backtrace (innermost include first):
76
+ Level 0:
77
+ Includer:
78
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_2.md:1
79
+ Include description: @[:markdown](includer_3.md)
80
+ Includee:
81
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_3.md
82
+ Level 1:
83
+ Includer:
84
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_1.md:1
85
+ Include description: @[:markdown](includer_2.md)
86
+ Includee:
87
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_2.md
88
+ Level 2:
89
+ Includer:
90
+ Location: markdown/use_cases/include/diagnose_missing_includee/includer_0.md:1
91
+ Include description: @[:markdown](includer_1.md)
92
+ Includee:
93
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_1.md
94
+ Level 3:
95
+ Includer:
96
+ Location: includer.md:1
97
+ Include description: @[:markdown](includer_0.md)
98
+ Includee:
99
+ File path: markdown/use_cases/include/diagnose_missing_includee/includer_0.md
100
+ ```
@@ -0,0 +1,29 @@
1
+ ### Diagnose Missing Includee
2
+
3
+ Use the backtrace of inclusions to diagnose and correct a missing or otherwise unreadable includee file.
4
+
5
+ The backtrace is especially useful for errors in nested includes.
6
+
7
+ #### Files To Be Included
8
+
9
+ These files demonstrate nested inclusion, with a missing includee file.
10
+
11
+ @[markdown](includer_0.md)
12
+
13
+ @[markdown](includer_1.md)
14
+
15
+ @[markdown](includer_2.md)
16
+
17
+ #### Includer File
18
+
19
+ This file initiates the nested inclusions.
20
+
21
+ @[markdown](includer.md)
22
+
23
+ @[:markdown](../interface.md)
24
+
25
+ #### Error and Backtrace
26
+
27
+ Here's the resulting backtrace of inclusions.
28
+
29
+ @[:code_block](diagnose_missing_includee.err)
@@ -0,0 +1,5 @@
1
+ require 'markdown_helper'
2
+
3
+ # Option :pristine suppresses comment insertion.
4
+ markdown_helper = MarkdownHelper.new(:pristine => true)
5
+ markdown_helper.include('includer.md', 'included.md')
@@ -0,0 +1,8 @@
1
+ class HelloWorld
2
+ def initialize(name)
3
+ @name = name.capitalize
4
+ end
5
+ def sayHi
6
+ puts "Hello !"
7
+ end
8
+ end
@@ -0,0 +1,79 @@
1
+ require_relative '../include_use_case'
2
+
3
+ class IncludeCodeBlock < IncludeUseCase
4
+
5
+ def self.build
6
+
7
+ use_case_name = File.basename(__FILE__, '.rb')
8
+ use_case = self.new(use_case_name)
9
+
10
+ includee_file_name = 'hello.rb'
11
+
12
+ use_case.files_to_write.store(
13
+ includee_file_name,
14
+ <<EOT
15
+ class HelloWorld
16
+ def initialize(name)
17
+ @name = name.capitalize
18
+ end
19
+ def sayHi
20
+ puts "Hello #{@name}!"
21
+ end
22
+ end
23
+ EOT
24
+ )
25
+
26
+ use_case.files_to_write.store(
27
+ INCLUDER_FILE_NAME,
28
+ <<EOT
29
+ This file includes the code as a code block.
30
+
31
+ @[:code_block](#{includee_file_name})
32
+
33
+ EOT
34
+ )
35
+
36
+ use_case.files_to_write.store(
37
+ TEMPLATE_FILE_NAME,
38
+ <<EOT
39
+ ### Include a Code Block
40
+
41
+ Use file inclusion to include text as a code block.
42
+
43
+ #### File to Be Included
44
+
45
+ Here's a file containing code to be included:
46
+
47
+ @[markdown](#{includee_file_name})
48
+
49
+ #### Includer File
50
+
51
+ Here's a template file that includes it:
52
+
53
+ @[markdown](#{INCLUDER_FILE_NAME})
54
+
55
+ The treatment token ```:code_block``` specifies that the included text is to be treated as a code block.
56
+
57
+ @[:markdown](../interface.md)
58
+
59
+ #### File with Inclusion
60
+
61
+ Here's the finished file with the included code block:
62
+
63
+ @[:pre](#{INCLUDED_FILE_NAME})
64
+
65
+ And here's the finished markdown, as rendered on this page:
66
+
67
+ ---
68
+
69
+ @[:markdown](#{INCLUDED_FILE_NAME})
70
+
71
+ ---
72
+ EOT
73
+ )
74
+
75
+ use_case.build
76
+
77
+ end
78
+
79
+ end
@@ -0,0 +1,14 @@
1
+ This file includes the code as a code block.
2
+
3
+ ```hello.rb```:
4
+ ```
5
+ class HelloWorld
6
+ def initialize(name)
7
+ @name = name.capitalize
8
+ end
9
+ def sayHi
10
+ puts "Hello !"
11
+ end
12
+ end
13
+ ```
14
+
@@ -0,0 +1,4 @@
1
+ This file includes the code as a code block.
2
+
3
+ @[:code_block](hello.rb)
4
+
@@ -0,0 +1,108 @@
1
+ ### Include a Code Block
2
+
3
+ Use file inclusion to include text as a code block.
4
+
5
+ #### File to Be Included
6
+
7
+ Here's a file containing code to be included:
8
+
9
+ ```hello.rb```:
10
+ ```markdown
11
+ class HelloWorld
12
+ def initialize(name)
13
+ @name = name.capitalize
14
+ end
15
+ def sayHi
16
+ puts "Hello !"
17
+ end
18
+ end
19
+ ```
20
+
21
+ #### Includer File
22
+
23
+ Here's a template file that includes it:
24
+
25
+ ```includer.md```:
26
+ ```markdown
27
+ This file includes the code as a code block.
28
+
29
+ @[:code_block](hello.rb)
30
+
31
+ ```
32
+
33
+ The treatment token ```:code_block``` specifies that the included text is to be treated as a code block.
34
+
35
+ #### CLI
36
+
37
+ You can use the command-line interface to perform the inclusion.
38
+
39
+ ##### Command
40
+
41
+ ```sh
42
+ markdown_helper include --pristine includer.md included.md
43
+ ```
44
+
45
+ (Option ```--pristine``` suppresses comment insertion.)
46
+
47
+ #### API
48
+
49
+ You can use the API to perform the inclusion.
50
+
51
+ ##### Ruby Code
52
+
53
+ ```include.rb```:
54
+ ```ruby
55
+ require 'markdown_helper'
56
+
57
+ # Option :pristine suppresses comment insertion.
58
+ markdown_helper = MarkdownHelper.new(:pristine => true)
59
+ markdown_helper.include('includer.md', 'included.md')
60
+ ```
61
+
62
+ ##### Command
63
+
64
+ ```sh
65
+ ruby include.rb
66
+ ```
67
+
68
+ #### File with Inclusion
69
+
70
+ Here's the finished file with the included code block:
71
+
72
+ <pre>
73
+ This file includes the code as a code block.
74
+
75
+ ```hello.rb```:
76
+ ```
77
+ class HelloWorld
78
+ def initialize(name)
79
+ @name = name.capitalize
80
+ end
81
+ def sayHi
82
+ puts "Hello !"
83
+ end
84
+ end
85
+ ```
86
+
87
+ </pre>
88
+
89
+ And here's the finished markdown, as rendered on this page:
90
+
91
+ ---
92
+
93
+ This file includes the code as a code block.
94
+
95
+ ```hello.rb```:
96
+ ```
97
+ class HelloWorld
98
+ def initialize(name)
99
+ @name = name.capitalize
100
+ end
101
+ def sayHi
102
+ puts "Hello !"
103
+ end
104
+ end
105
+ ```
106
+
107
+
108
+ ---