markdown_helper 2.0.0 → 2.1.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 (55) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile.lock +1 -1
  3. data/README.md +74 -208
  4. data/Rakefile +0 -1
  5. data/lib/markdown_helper.rb +115 -248
  6. data/lib/markdown_helper/version.rb +1 -1
  7. data/markdown/readme/README.template.md +43 -101
  8. data/markdown/readme/include.md +4 -0
  9. data/markdown/readme/include_usage.rb +1 -2
  10. data/markdown/use_cases/Rakefile +28 -31
  11. data/markdown/use_cases/include_files/diagnose_circular_includes/diagnose_circular_includes.err +1 -1
  12. data/markdown/use_cases/include_files/diagnose_circular_includes/use_case.md +1 -1
  13. data/markdown/use_cases/include_files/diagnose_circular_includes/{diagnose_circular_includes.rb → use_case_builder.rb} +1 -2
  14. data/markdown/use_cases/include_files/diagnose_missing_includee/diagnose_missing_includee.err +1 -1
  15. data/markdown/use_cases/include_files/diagnose_missing_includee/use_case.md +1 -1
  16. data/markdown/use_cases/include_files/diagnose_missing_includee/{diagnose_missing_includee.rb → use_case_builder.rb} +1 -2
  17. data/markdown/use_cases/include_files/include_code_block/{include_code_block.rb → use_case_builder.rb} +1 -2
  18. data/markdown/use_cases/include_files/include_generated_text/{include_generated_text.rb → use_case_builder.rb} +1 -2
  19. data/markdown/use_cases/include_files/include_highlighted_code/{include_highlighted_code.rb → use_case_builder.rb} +1 -2
  20. data/markdown/use_cases/include_files/include_markdown/{include_markdown.rb → use_case_builder.rb} +1 -2
  21. data/markdown/use_cases/include_files/include_page_toc/included.md +48 -0
  22. data/markdown/use_cases/include_files/include_page_toc/includer.md +16 -0
  23. data/markdown/use_cases/include_files/include_page_toc/markdown_0.md +8 -0
  24. data/markdown/use_cases/include_files/include_page_toc/markdown_1.md +8 -0
  25. data/markdown/use_cases/include_files/include_page_toc/use_case.md +212 -0
  26. data/markdown/use_cases/include_files/include_page_toc/use_case_builder.rb +121 -0
  27. data/markdown/use_cases/include_files/include_page_toc/use_case_template.md +46 -0
  28. data/markdown/use_cases/include_files/include_text_as_comment/{include_text_as_comment.rb → use_case_builder.rb} +1 -2
  29. data/markdown/use_cases/include_files/include_text_as_pre/{include_text_as_pre.rb → use_case_builder.rb} +1 -2
  30. data/markdown/use_cases/include_files/include_use_case.rb +2 -8
  31. data/markdown/use_cases/include_files/include_with_added_comments/{include_with_added_comments.rb → use_case_builder.rb} +2 -3
  32. data/markdown/use_cases/include_files/nest_inclusions/{nest_inclusions.rb → use_case_builder.rb} +1 -2
  33. data/markdown/use_cases/include_files/reuse_text/{reuse_text.rb → use_case_builder.rb} +3 -2
  34. data/markdown/use_cases/structure.md +10 -0
  35. data/markdown/use_cases/tables_of_contents/create_and_include_page_toc/included.md +44 -0
  36. data/markdown/use_cases/tables_of_contents/create_and_include_page_toc/page.md +7 -7
  37. data/markdown/use_cases/tables_of_contents/create_and_include_page_toc/toc.md +7 -7
  38. data/markdown/use_cases/tables_of_contents/create_and_include_page_toc/{create_and_include_page_toc.rb → use_case_builder.rb} +1 -2
  39. data/markdown/use_cases/tables_of_contents/create_page_toc_use_case.rb +1 -1
  40. data/markdown/use_cases/use_case.rb +14 -15
  41. data/markdown/use_cases/use_cases.md +2 -4
  42. data/markdown_helper.gemspec +0 -2
  43. metadata +24 -29
  44. data/bin/_resolve +0 -46
  45. data/bin/resolve +0 -49
  46. data/bin/usage/resolve.txt +0 -14
  47. data/images/html.png +0 -0
  48. data/markdown/readme/resolve_usage.rb +0 -12
  49. data/markdown/use_cases/include_files/diagnose_missing_includee/included.md +0 -1
  50. data/markdown/use_cases/resolve/gemify_images/gemify_images.md +0 -11
  51. data/markdown/use_cases/resolve/gemify_images/gemify_images.rb +0 -68
  52. data/markdown/use_cases/resolve/gemify_images/relative_image.md +0 -1
  53. data/markdown/use_cases/resolve/gemify_images/resolved_image.md +0 -1
  54. data/markdown/use_cases/resolve/gemify_images/template.md +0 -15
  55. data/markdown/use_cases/resolve/resize_images/template.md +0 -8
@@ -0,0 +1,16 @@
1
+ # Page Title
2
+
3
+ @[:page_toc](## Page Contents)
4
+
5
+ ## Includer level-two title.
6
+
7
+ ### Includer level-three title.
8
+
9
+ ### Another includer level-three title.
10
+
11
+ ## Another includer level-two title.
12
+
13
+ @[:markdown](markdown_0.md)
14
+
15
+ @[:markdown](markdown_1.md)
16
+
@@ -0,0 +1,8 @@
1
+
2
+ ## Includee 0 level-two title.
3
+
4
+ ### Includee 0 level-three title.
5
+
6
+ ### Another includee 0 level-three title.
7
+
8
+ ## Another includee 0 level-two title.
@@ -0,0 +1,8 @@
1
+
2
+ ## Includee 1 level-two title.
3
+
4
+ ### Includee 1 level-three title.
5
+
6
+ ### Another includee 1 level-three title.
7
+
8
+ ## Another includee 1 level-two title.
@@ -0,0 +1,212 @@
1
+ ### Include Page TOC
2
+
3
+ Use file inclusion to include a page table of contents (page TOC).
4
+
5
+ The page TOC is a tree of links:
6
+
7
+ - Each link goes to a corresponding markdown title.
8
+ - The tree structure reflects the relative depths of the linked headers.
9
+
10
+ Below are files to be included and an includer file that will generate the page TOC.
11
+
12
+ Note that all file inclusion (even nested inclusions) will be performed before the page TOC is built, so the page TOC covers all the included material.
13
+
14
+ #### Files to Be Included
15
+
16
+ Here's a file containing markdown to be included:
17
+
18
+ ```markdown_0.md```:
19
+ ```markdown
20
+
21
+ ## Includee 0 level-two title.
22
+
23
+ ### Includee 0 level-three title.
24
+
25
+ ### Another includee 0 level-three title.
26
+
27
+ ## Another includee 0 level-two title.
28
+ ```
29
+
30
+ Here's another:
31
+
32
+ ```markdown_1.md```:
33
+ ```markdown
34
+
35
+ ## Includee 1 level-two title.
36
+
37
+ ### Includee 1 level-three title.
38
+
39
+ ### Another includee 1 level-three title.
40
+
41
+ ## Another includee 1 level-two title.
42
+ ```
43
+
44
+ #### Includer File
45
+
46
+ Here's a template file that includes them:
47
+
48
+ ```includer.md```:
49
+ ```markdown
50
+ # Page Title
51
+
52
+ @[:page_toc](## Page Contents)
53
+
54
+ ## Includer level-two title.
55
+
56
+ ### Includer level-three title.
57
+
58
+ ### Another includer level-three title.
59
+
60
+ ## Another includer level-two title.
61
+
62
+ @[:markdown](markdown_0.md)
63
+
64
+ @[:markdown](markdown_1.md)
65
+
66
+ ```
67
+
68
+ The treatment token ```:page_toc``` specifies where the page TOC is to be inserted.
69
+
70
+ #### CLI
71
+
72
+ You can use the command-line interface to perform the inclusion.
73
+
74
+ ##### Command
75
+
76
+ ```sh
77
+ markdown_helper include --pristine includer.md included.md
78
+ ```
79
+
80
+ (Option ```--pristine``` suppresses comment insertion.)
81
+
82
+ #### API
83
+
84
+ You can use the API to perform the inclusion.
85
+
86
+ ##### Ruby Code
87
+
88
+ ```include.rb```:
89
+ ```ruby
90
+ require 'markdown_helper'
91
+
92
+ # Option :pristine suppresses comment insertion.
93
+ markdown_helper = MarkdownHelper.new(:pristine => true)
94
+ markdown_helper.include('includer.md', 'included.md')
95
+ ```
96
+
97
+ ##### Command
98
+
99
+ ```sh
100
+ ruby include.rb
101
+ ```
102
+
103
+ #### File with Inclusion
104
+
105
+ Here's the finished file with the inclusion:
106
+
107
+ ```included.md```:
108
+ ```markdown
109
+ <!-- >>>>>> BEGIN GENERATED FILE (include): SOURCE includer.md -->
110
+ # Page Title
111
+
112
+ ## Page Contents
113
+ - [Includer level-two title.](#includer-level-two-title)
114
+ - [Includer level-three title.](#includer-level-three-title)
115
+ - [Another includer level-three title.](#another-includer-level-three-title)
116
+ - [Another includer level-two title.](#another-includer-level-two-title)
117
+ - [Includee 0 level-two title.](#includee-0-level-two-title)
118
+ - [Includee 0 level-three title.](#includee-0-level-three-title)
119
+ - [Another includee 0 level-three title.](#another-includee-0-level-three-title)
120
+ - [Another includee 0 level-two title.](#another-includee-0-level-two-title)
121
+ - [Includee 1 level-two title.](#includee-1-level-two-title)
122
+ - [Includee 1 level-three title.](#includee-1-level-three-title)
123
+ - [Another includee 1 level-three title.](#another-includee-1-level-three-title)
124
+ - [Another includee 1 level-two title.](#another-includee-1-level-two-title)
125
+
126
+ ## Includer level-two title.
127
+
128
+ ### Includer level-three title.
129
+
130
+ ### Another includer level-three title.
131
+
132
+ ## Another includer level-two title.
133
+
134
+ <!-- >>>>>> BEGIN INCLUDED FILE (markdown): SOURCE markdown/use_cases/include_files/include_page_toc/markdown_0.md -->
135
+
136
+ ## Includee 0 level-two title.
137
+
138
+ ### Includee 0 level-three title.
139
+
140
+ ### Another includee 0 level-three title.
141
+
142
+ ## Another includee 0 level-two title.
143
+ <!-- <<<<<< END INCLUDED FILE (markdown): SOURCE markdown/use_cases/include_files/include_page_toc/markdown_0.md -->
144
+
145
+ <!-- >>>>>> BEGIN INCLUDED FILE (markdown): SOURCE markdown/use_cases/include_files/include_page_toc/markdown_1.md -->
146
+
147
+ ## Includee 1 level-two title.
148
+
149
+ ### Includee 1 level-three title.
150
+
151
+ ### Another includee 1 level-three title.
152
+
153
+ ## Another includee 1 level-two title.
154
+ <!-- <<<<<< END INCLUDED FILE (markdown): SOURCE markdown/use_cases/include_files/include_page_toc/markdown_1.md -->
155
+
156
+ <!-- <<<<<< END GENERATED FILE (include): SOURCE includer.md -->
157
+ ```
158
+
159
+ And here's the finished markdown, as rendered on this page:
160
+
161
+ ---
162
+
163
+ <!-- >>>>>> BEGIN GENERATED FILE (include): SOURCE includer.md -->
164
+ # Page Title
165
+
166
+ ## Page Contents
167
+ - [Includer level-two title.](#includer-level-two-title)
168
+ - [Includer level-three title.](#includer-level-three-title)
169
+ - [Another includer level-three title.](#another-includer-level-three-title)
170
+ - [Another includer level-two title.](#another-includer-level-two-title)
171
+ - [Includee 0 level-two title.](#includee-0-level-two-title)
172
+ - [Includee 0 level-three title.](#includee-0-level-three-title)
173
+ - [Another includee 0 level-three title.](#another-includee-0-level-three-title)
174
+ - [Another includee 0 level-two title.](#another-includee-0-level-two-title)
175
+ - [Includee 1 level-two title.](#includee-1-level-two-title)
176
+ - [Includee 1 level-three title.](#includee-1-level-three-title)
177
+ - [Another includee 1 level-three title.](#another-includee-1-level-three-title)
178
+ - [Another includee 1 level-two title.](#another-includee-1-level-two-title)
179
+
180
+ ## Includer level-two title.
181
+
182
+ ### Includer level-three title.
183
+
184
+ ### Another includer level-three title.
185
+
186
+ ## Another includer level-two title.
187
+
188
+ <!-- >>>>>> BEGIN INCLUDED FILE (markdown): SOURCE markdown/use_cases/include_files/include_page_toc/markdown_0.md -->
189
+
190
+ ## Includee 0 level-two title.
191
+
192
+ ### Includee 0 level-three title.
193
+
194
+ ### Another includee 0 level-three title.
195
+
196
+ ## Another includee 0 level-two title.
197
+ <!-- <<<<<< END INCLUDED FILE (markdown): SOURCE markdown/use_cases/include_files/include_page_toc/markdown_0.md -->
198
+
199
+ <!-- >>>>>> BEGIN INCLUDED FILE (markdown): SOURCE markdown/use_cases/include_files/include_page_toc/markdown_1.md -->
200
+
201
+ ## Includee 1 level-two title.
202
+
203
+ ### Includee 1 level-three title.
204
+
205
+ ### Another includee 1 level-three title.
206
+
207
+ ## Another includee 1 level-two title.
208
+ <!-- <<<<<< END INCLUDED FILE (markdown): SOURCE markdown/use_cases/include_files/include_page_toc/markdown_1.md -->
209
+
210
+ <!-- <<<<<< END GENERATED FILE (include): SOURCE includer.md -->
211
+
212
+ ---
@@ -0,0 +1,121 @@
1
+ require_relative '../include_use_case'
2
+
3
+ class IncludePageToc < IncludeUseCase
4
+
5
+ def self.build
6
+
7
+ use_case = self.new
8
+
9
+ include_command = IncludeUseCase.construct_include_command(INCLUDER_FILE_NAME, INCLUDED_FILE_NAME, pristine = false)
10
+ use_case.commands_to_execute.unshift(include_command)
11
+
12
+ includee_0_file_name = 'markdown_0.md'
13
+ includee_1_file_name = 'markdown_1.md'
14
+
15
+ use_case.files_to_write.store(
16
+ includee_0_file_name,
17
+ <<EOT
18
+
19
+ ## Includee 0 level-two title.
20
+
21
+ ### Includee 0 level-three title.
22
+
23
+ ### Another includee 0 level-three title.
24
+
25
+ ## Another includee 0 level-two title.
26
+ EOT
27
+ )
28
+
29
+ use_case.files_to_write.store(
30
+ includee_1_file_name,
31
+ <<EOT
32
+
33
+ ## Includee 1 level-two title.
34
+
35
+ ### Includee 1 level-three title.
36
+
37
+ ### Another includee 1 level-three title.
38
+
39
+ ## Another includee 1 level-two title.
40
+ EOT
41
+ )
42
+
43
+ use_case.files_to_write.store(
44
+ INCLUDER_FILE_NAME,
45
+ <<EOT
46
+ # Page Title
47
+
48
+ @[:page_toc](## Page Contents)
49
+
50
+ ## Includer level-two title.
51
+
52
+ ### Includer level-three title.
53
+
54
+ ### Another includer level-three title.
55
+
56
+ ## Another includer level-two title.
57
+
58
+ @[:markdown](#{includee_0_file_name})
59
+
60
+ @[:markdown](#{includee_1_file_name})
61
+
62
+ EOT
63
+ )
64
+
65
+ use_case.files_to_write.store(
66
+ TEMPLATE_FILE_NAME,
67
+ <<EOT
68
+ ### Include Page TOC
69
+
70
+ Use file inclusion to include a page table of contents (page TOC).
71
+
72
+ The page TOC is a tree of links:
73
+
74
+ - Each link goes to a corresponding markdown title.
75
+ - The tree structure reflects the relative depths of the linked headers.
76
+
77
+ Below are files to be included and an includer file that will generate the page TOC.
78
+
79
+ Note that all file inclusion (even nested inclusions) will be performed before the page TOC is built, so the page TOC covers all the included material.
80
+
81
+ #### Files to Be Included
82
+
83
+ Here's a file containing markdown to be included:
84
+
85
+ @[markdown](#{includee_0_file_name})
86
+
87
+ Here's another:
88
+
89
+ @[markdown](#{includee_1_file_name})
90
+
91
+ #### Includer File
92
+
93
+ Here's a template file that includes them:
94
+
95
+ @[markdown](#{INCLUDER_FILE_NAME})
96
+
97
+ The treatment token ```:page_toc``` specifies where the page TOC is to be inserted.
98
+
99
+ @[:markdown](../interface.md)
100
+
101
+ #### File with Inclusion
102
+
103
+ Here's the finished file with the inclusion:
104
+
105
+ @[markdown](#{INCLUDED_FILE_NAME})
106
+
107
+ And here's the finished markdown, as rendered on this page:
108
+
109
+ ---
110
+
111
+ @[:markdown](#{INCLUDED_FILE_NAME})
112
+
113
+ ---
114
+ EOT
115
+ )
116
+
117
+ use_case.build
118
+
119
+ end
120
+
121
+ end
@@ -0,0 +1,46 @@
1
+ ### Include Page TOC
2
+
3
+ Use file inclusion to include a page table of contents (page TOC).
4
+
5
+ The page TOC is a tree of links:
6
+
7
+ - Each link goes to a corresponding markdown title.
8
+ - The tree structure reflects the relative depths of the linked headers.
9
+
10
+ Below are files to be included and an includer file that will generate the page TOC.
11
+
12
+ Note that all file inclusion (even nested inclusions) will be performed before the page TOC is built, so the page TOC covers all the included material.
13
+
14
+ #### Files to Be Included
15
+
16
+ Here's a file containing markdown to be included:
17
+
18
+ @[markdown](markdown_0.md)
19
+
20
+ Here's another:
21
+
22
+ @[markdown](markdown_1.md)
23
+
24
+ #### Includer File
25
+
26
+ Here's a template file that includes them:
27
+
28
+ @[markdown](includer.md)
29
+
30
+ The treatment token ```:page_toc``` specifies where the page TOC is to be inserted.
31
+
32
+ @[:markdown](../interface.md)
33
+
34
+ #### File with Inclusion
35
+
36
+ Here's the finished file with the inclusion:
37
+
38
+ @[markdown](included.md)
39
+
40
+ And here's the finished markdown, as rendered on this page:
41
+
42
+ ---
43
+
44
+ @[:markdown](included.md)
45
+
46
+ ---
@@ -4,8 +4,7 @@ class IncludeTextAsComment < IncludeUseCase
4
4
 
5
5
  def self.build
6
6
 
7
- use_case_name = File.basename(__FILE__, '.rb')
8
- use_case = self.new(use_case_name)
7
+ use_case = self.new
9
8
 
10
9
  includee_file_name = 'hello.rb'
11
10
 
@@ -4,8 +4,7 @@ class IncludeTextAsPre < IncludeUseCase
4
4
 
5
5
  def self.build
6
6
 
7
- use_case_name = File.basename(__FILE__, '.rb')
8
- use_case = self.new(use_case_name)
7
+ use_case = self.new
9
8
 
10
9
  includee_file_name = 'triple_backtick.md'
11
10
 
@@ -17,16 +17,10 @@ class IncludeUseCase < UseCase
17
17
 
18
18
  BUILD_COMMAND = UseCase.construct_include_command(TEMPLATE_FILE_NAME, USE_CASE_FILE_NAME, pristine = true)
19
19
 
20
- def initialize(use_case_dir_name)
21
-
20
+ def initialize
22
21
  super
23
-
24
- commands_to_execute.push(RUBY_COMMAND) if File.exist?(RUBY_FILE_NAME)
25
- commands_to_execute.push(BUILD_COMMAND) if File.exist?(TEMPLATE_FILE_NAME)
26
-
22
+ commands_to_execute.push(BUILD_COMMAND)
27
23
  self.use_case_dir_name = use_case_dir_name
28
-
29
-
30
24
  end
31
25
 
32
26
  def use_case_dir_path