markdown_helper 1.8.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -13,12 +13,31 @@ By default (that is, without option ```--pristine```) file inclusion adds commen
13
13
 
14
14
  @[markdown](includer.md)
15
15
 
16
- #### Inclusion Command
16
+ #### CLI
17
+
18
+ You can use the command-line interface to perform the inclusion.
19
+
20
+ ##### Command
17
21
 
18
22
  ```sh
19
23
  markdown_helper include includer.md included.md
20
24
  ```
21
25
 
26
+ #### API
27
+
28
+ You can use the API to perform the inclusion.
29
+
30
+ ##### Ruby Code
31
+
32
+ ```ruby
33
+ require 'markdown_helper'
34
+
35
+ markdown_helper = MarkdownHelper.new
36
+ markdown_helper.include(includer.md, included.md)
37
+ ```
38
+
22
39
  #### File with Inclusion and Added Comments
23
40
 
24
41
  @[markdown](included.md)
42
+
43
+ The file path for the included file is relative to the .git directory.
@@ -0,0 +1,25 @@
1
+ #### CLI
2
+
3
+ You can use the command-line interface to perform the inclusion.
4
+
5
+ ##### Command
6
+
7
+ ```sh
8
+ markdown_helper include --pristine includer.md included.md
9
+ ```
10
+
11
+ @[:markdown](../pristine.md)
12
+
13
+ #### API
14
+
15
+ You can use the API to perform the inclusion.
16
+
17
+ ##### Ruby Code
18
+
19
+ @[ruby](include.rb)
20
+
21
+ ##### Command
22
+
23
+ ```sh
24
+ ruby include.rb
25
+ ```
@@ -0,0 +1,5 @@
1
+ File to do nested inclusion.
2
+
3
+ Text for inclusion, and a nested inclusion.
4
+
5
+ Text for nested inclusion.
@@ -0,0 +1,3 @@
1
+ Text for inclusion, and a nested inclusion.
2
+
3
+ @[:markdown](nested_includee.md)
@@ -0,0 +1,3 @@
1
+ File to do nested inclusion.
2
+
3
+ @[:markdown](includee.md)
@@ -0,0 +1,61 @@
1
+ require_relative '../include_use_case'
2
+
3
+ class NestInclusions < 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
+ nested_includee_file_name = 'nested_includee.md'
11
+
12
+ use_case.files_to_write.store(
13
+ nested_includee_file_name,
14
+ <<EOT
15
+ Text for nested inclusion.
16
+ EOT
17
+ )
18
+
19
+ use_case.files_to_write.store(
20
+ INCLUDER_FILE_NAME,
21
+ <<EOT
22
+ File to do nested inclusion.
23
+
24
+ @[:markdown](#{INCLUDEE_FILE_NAME})
25
+ EOT
26
+ )
27
+
28
+ use_case.files_to_write.store(
29
+ TEMPLATE_FILE_NAME,
30
+ <<EOT
31
+ ### Nest Inclusions
32
+
33
+ An included markdown file can itself include more files.
34
+
35
+ #### File To Be Included
36
+
37
+ @[markdown](#{INCLUDEE_FILE_NAME})
38
+
39
+ #### File For Nested Inclusion
40
+
41
+ @[markdown](#{nested_includee_file_name})
42
+
43
+ #### Includer File
44
+
45
+ @[markdown](#{INCLUDER_FILE_NAME})
46
+
47
+ @[:markdown](../interface.md)
48
+
49
+ #### File with Inclusion
50
+
51
+ Here's the finished file with the inclusion and nested inclusion:
52
+
53
+ @[markdown](#{INCLUDED_FILE_NAME})
54
+ EOT
55
+ )
56
+
57
+ use_case.build
58
+
59
+ end
60
+
61
+ end
@@ -0,0 +1 @@
1
+ Text for nested inclusion.
@@ -0,0 +1,74 @@
1
+ ### Nest Inclusions
2
+
3
+ An included markdown file can itself include more files.
4
+
5
+ #### File To Be Included
6
+
7
+ ```includee.md```:
8
+ ```markdown
9
+ Text for inclusion, and a nested inclusion.
10
+
11
+ @[:markdown](nested_includee.md)
12
+ ```
13
+
14
+ #### File For Nested Inclusion
15
+
16
+ ```nested_includee.md```:
17
+ ```markdown
18
+ Text for nested inclusion.
19
+ ```
20
+
21
+ #### Includer File
22
+
23
+ ```includer.md```:
24
+ ```markdown
25
+ File to do nested inclusion.
26
+
27
+ @[:markdown](includee.md)
28
+ ```
29
+
30
+ #### CLI
31
+
32
+ You can use the command-line interface to perform the inclusion.
33
+
34
+ ##### Command
35
+
36
+ ```sh
37
+ markdown_helper include --pristine includer.md included.md
38
+ ```
39
+
40
+ (Option ```--pristine``` suppresses comment insertion.)
41
+
42
+ #### API
43
+
44
+ You can use the API to perform the inclusion.
45
+
46
+ ##### Ruby Code
47
+
48
+ ```include.rb```:
49
+ ```ruby
50
+ require 'markdown_helper'
51
+
52
+ # Option :pristine suppresses comment insertion.
53
+ markdown_helper = MarkdownHelper.new(:pristine => true)
54
+ markdown_helper.include('includer.md', 'included.md')
55
+ ```
56
+
57
+ ##### Command
58
+
59
+ ```sh
60
+ ruby include.rb
61
+ ```
62
+
63
+ #### File with Inclusion
64
+
65
+ Here's the finished file with the inclusion and nested inclusion:
66
+
67
+ ```included.md```:
68
+ ```markdown
69
+ File to do nested inclusion.
70
+
71
+ Text for inclusion, and a nested inclusion.
72
+
73
+ Text for nested inclusion.
74
+ ```
@@ -0,0 +1,23 @@
1
+ ### Nest Inclusions
2
+
3
+ An included markdown file can itself include more files.
4
+
5
+ #### File To Be Included
6
+
7
+ @[markdown](includee.md)
8
+
9
+ #### File For Nested Inclusion
10
+
11
+ @[markdown](nested_includee.md)
12
+
13
+ #### Includer File
14
+
15
+ @[markdown](includer.md)
16
+
17
+ @[:markdown](../interface.md)
18
+
19
+ #### File with Inclusion
20
+
21
+ Here's the finished file with the inclusion and nested inclusion:
22
+
23
+ @[markdown](included.md)
@@ -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')
@@ -1,7 +1,4 @@
1
- This file includes the useful text.
1
+ Text in includer file.
2
2
 
3
- This is some reusable text that can be included in more than one place (actually, in more than one file).
3
+ Text in includee file.
4
4
 
5
- Then includes it again.
6
-
7
- This is some reusable text that can be included in more than one place (actually, in more than one file).
@@ -0,0 +1 @@
1
+ Text in includee file.
@@ -1,7 +1,4 @@
1
- This file includes the useful text.
1
+ Text in includer file.
2
2
 
3
- @[:markdown](reusable_text.md)
3
+ @[:markdown](includee.md)
4
4
 
5
- Then includes it again.
6
-
7
- @[:markdown](reusable_text.md)
@@ -1,100 +1,47 @@
1
- #!/usr/bin/env ruby
2
-
3
- use_case_dir_path = File.absolute_path(File.dirname(__FILE__))
4
-
5
- reusable_text_file_name = 'reusable_text.md'
6
- reusable_text_file_path = File.join(
7
- use_case_dir_path,
8
- reusable_text_file_name,
9
- )
10
-
11
- includer_file_name = 'includer.md'
12
- includer_file_path = File.join(
13
- use_case_dir_path,
14
- includer_file_name,
15
- )
16
-
17
- included_file_name = 'included.md'
18
-
19
- use_case_file_name = 'reuse_text.md'
20
- use_case_file_path = File.join(
21
- use_case_dir_path,
22
- use_case_file_name,
23
- )
24
-
25
- template_file_name = 'template.md'
26
- template_file_path = File.join(
27
- use_case_dir_path,
28
- template_file_name,
29
- )
30
-
31
- include_command = "markdown_helper include --pristine #{includer_file_name} #{included_file_name}"
32
-
33
- File.write(
34
- reusable_text_file_path,
35
- <<EOT
36
- This is some reusable text that can be included in more than one place (actually, in more than one file).
37
- EOT
38
- )
39
-
40
-
41
- File.write(
42
- includer_file_path,
43
- <<EOT
44
- This file includes the useful text.
1
+ require_relative '../include_use_case'
45
2
 
46
- @[:markdown](#{reusable_text_file_name})
3
+ class ReuseText < IncludeUseCase
47
4
 
48
- Then includes it again.
5
+ def self.build
49
6
 
50
- @[:markdown](#{reusable_text_file_name})
51
- EOT
52
- )
7
+ use_case_name = File.basename(__FILE__, '.rb')
8
+ use_case = self.new(use_case_name)
53
9
 
54
- # Example inclusion.
55
- Dir.chdir(use_case_dir_path) do
56
- system(include_command)
57
- end
10
+ use_case.write_includee_file
11
+ use_case.write_includer_file
12
+ use_case.write_ruby_file(pristine = true)
58
13
 
59
- File.write(
60
- template_file_path,
61
- <<EOT
14
+ File.write(
15
+ TEMPLATE_FILE_NAME,
16
+ <<EOT
62
17
  ### Reuse Text
63
18
 
64
19
  Use file inclusion to stay DRY (Don't Repeat Yourself).
65
20
 
66
21
  Maintain reusable text in a separate file, then include it wherever it's needed.
67
22
 
68
- #### File to Be Included
69
-
70
- Here's a file containing some text that can be included:
23
+ #### File To Be Included
71
24
 
72
- @[markdown](#{reusable_text_file_name})
25
+ @[markdown](#{INCLUDEE_FILE_NAME})
73
26
 
74
27
  #### Includer File
75
28
 
76
- Here's a template file that includes it:
29
+ @[markdown](#{INCLUDER_FILE_NAME})
77
30
 
78
- @[markdown](#{includer_file_name})
31
+ The treatment token ```:markdown``` specifies that the included text is to be treated as more markdown.
79
32
 
80
- #### Command
81
-
82
- Here's the command to perform the inclusion:
83
-
84
- ```sh
85
- #{include_command}
86
- ```
87
-
88
- @[:markdown](../../pristine.md)
33
+ @[:markdown](../interface.md)
89
34
 
90
35
  #### File with Inclusion
91
36
 
92
- Here's the finished file with the inclusion:
37
+ Here's the output file, after inclusion.
93
38
 
94
- @[markdown](#{included_file_name})
39
+ @[markdown](#{INCLUDED_FILE_NAME})
95
40
  EOT
96
- )
41
+ )
97
42
 
98
- # Build use case.
99
- build_command = "markdown_helper include --pristine #{template_file_path} #{use_case_file_path}"
100
- system(build_command)
43
+ use_case.build
44
+
45
+ end
46
+
47
+ end
@@ -0,0 +1,69 @@
1
+ ### Reuse Text
2
+
3
+ Use file inclusion to stay DRY (Don't Repeat Yourself).
4
+
5
+ Maintain reusable text in a separate file, then include it wherever it's needed.
6
+
7
+ #### File To Be Included
8
+
9
+ ```includee.md```:
10
+ ```markdown
11
+ Text in includee file.
12
+ ```
13
+
14
+ #### Includer File
15
+
16
+ ```includer.md```:
17
+ ```markdown
18
+ Text in includer file.
19
+
20
+ @[:markdown](includee.md)
21
+
22
+ ```
23
+
24
+ The treatment token ```:markdown``` specifies that the included text is to be treated as more markdown.
25
+
26
+ #### CLI
27
+
28
+ You can use the command-line interface to perform the inclusion.
29
+
30
+ ##### Command
31
+
32
+ ```sh
33
+ markdown_helper include --pristine includer.md included.md
34
+ ```
35
+
36
+ (Option ```--pristine``` suppresses comment insertion.)
37
+
38
+ #### API
39
+
40
+ You can use the API to perform the inclusion.
41
+
42
+ ##### Ruby Code
43
+
44
+ ```include.rb```:
45
+ ```ruby
46
+ require 'markdown_helper'
47
+
48
+ # Option :pristine suppresses comment insertion.
49
+ markdown_helper = MarkdownHelper.new(:pristine => true)
50
+ markdown_helper.include('includer.md', 'included.md')
51
+ ```
52
+
53
+ ##### Command
54
+
55
+ ```sh
56
+ ruby include.rb
57
+ ```
58
+
59
+ #### File with Inclusion
60
+
61
+ Here's the output file, after inclusion.
62
+
63
+ ```included.md```:
64
+ ```markdown
65
+ Text in includer file.
66
+
67
+ Text in includee file.
68
+
69
+ ```