markdown_helper 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  class MarkdownHelper
2
- VERSION = '2.1.0'
2
+ VERSION = '2.2.0'
3
3
  end
@@ -4,12 +4,7 @@
4
4
 
5
5
  ## What's New?
6
6
 
7
- Page TOC (table of contents) is improved:
8
-
9
- - **Old**: You would first run the markdown helper to generate a page TOC, then run the helper a second time to include the page TOC where you want it.
10
- - **New**: You specify the site for the page TOC in the page itself, and the page TOC is automatically generated and inserted there. See the [use case](markdown/use_cases/include_files/include_page_toc/use_case.md#include-page-toc)
11
-
12
- The old way is now deprecated.
7
+ Command line creation of page TOC (table of contents), previously deprecated, is removed.
13
8
 
14
9
  @[:page_toc](## Contents)
15
10
 
@@ -111,7 +106,7 @@ where:
111
106
 
112
107
  ##### Example Include Descriptions
113
108
 
114
- @[code_block](include.md)
109
+ @[:code_block](include.md)
115
110
 
116
111
  #### Page TOC
117
112
 
@@ -1,4 +1,4 @@
1
- <!-- >>>>>> BEGIN GENERATED FILE (include): SOURCE highlight_ruby_template.md -->
1
+ <!-- >>>>>> BEGIN GENERATED FILE (include): SOURCE markdown/readme/highlight_ruby_template.md -->
2
2
  <!-- >>>>>> BEGIN INCLUDED FILE (ruby): SOURCE markdown/readme/include.rb -->
3
3
  ```include.rb```:
4
4
  ```ruby
@@ -9,4 +9,4 @@ class RubyCode
9
9
  end
10
10
  ```
11
11
  <!-- <<<<<< END INCLUDED FILE (ruby): SOURCE markdown/readme/include.rb -->
12
- <!-- <<<<<< END GENERATED FILE (include): SOURCE highlight_ruby_template.md -->
12
+ <!-- <<<<<< END GENERATED FILE (include): SOURCE markdown/readme/highlight_ruby_template.md -->
@@ -34,12 +34,6 @@ EOT
34
34
  diagnose_missing_includee
35
35
  diagnose_circular_includes
36
36
  /,
37
-
38
- # include_page_toc
39
-
40
- # :tables_of_contents => %w/
41
- # create_and_include_page_toc
42
- # /,
43
37
  }
44
38
  use_case_dirs.each_pair do |section, dir_names|
45
39
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markdown_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - burdettelamar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-03 00:00:00.000000000 Z
11
+ date: 2019-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -84,17 +84,14 @@ files:
84
84
  - Gemfile
85
85
  - Gemfile.lock
86
86
  - LICENSE
87
- - LICENSE.txt
88
87
  - README.md
89
88
  - Rakefile
90
89
  - _config.yml
91
- - bin/_create_page_toc
92
90
  - bin/_include
93
91
  - bin/console
94
92
  - bin/include
95
93
  - bin/markdown_helper
96
94
  - bin/setup
97
- - bin/usage/create_page_toc.txt
98
95
  - bin/usage/include.txt
99
96
  - images/image.png
100
97
  - images/include.png
@@ -194,17 +191,6 @@ files:
194
191
  - markdown/use_cases/include_files/reuse_text/use_case_template.md
195
192
  - markdown/use_cases/pristine.md
196
193
  - markdown/use_cases/structure.md
197
- - markdown/use_cases/tables_of_contents/create_and_include_page_toc/create_and_include.rb
198
- - markdown/use_cases/tables_of_contents/create_and_include_page_toc/create_and_include.sh
199
- - markdown/use_cases/tables_of_contents/create_and_include_page_toc/included.md
200
- - markdown/use_cases/tables_of_contents/create_and_include_page_toc/includer.md
201
- - markdown/use_cases/tables_of_contents/create_and_include_page_toc/page.md
202
- - markdown/use_cases/tables_of_contents/create_and_include_page_toc/text.md
203
- - markdown/use_cases/tables_of_contents/create_and_include_page_toc/toc.md
204
- - markdown/use_cases/tables_of_contents/create_and_include_page_toc/use_case.md
205
- - markdown/use_cases/tables_of_contents/create_and_include_page_toc/use_case_builder.rb
206
- - markdown/use_cases/tables_of_contents/create_and_include_page_toc/use_case_template.md
207
- - markdown/use_cases/tables_of_contents/create_page_toc_use_case.rb
208
194
  - markdown/use_cases/use_case.rb
209
195
  - markdown/use_cases/use_cases.md
210
196
  - markdown_helper.gemspec
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2018 burdettelamar
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
@@ -1,46 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'optparse'
4
-
5
- require 'markdown_helper'
6
-
7
- options = {:pristine => false}
8
-
9
- # Save opts for use below.
10
- opts = nil
11
- parser = OptionParser.new do |_opts|
12
- opts = _opts
13
- _opts.banner = "Usage: markdown_helper create_page_toc [options] markdown_file_path toc_file_path"
14
- _opts.on('--pristine', 'No comments added') do |_|
15
- options[:pristine] = true
16
- end
17
- _opts.on('--help', 'Display help') do
18
- usage(_opts)
19
- end
20
- end
21
-
22
- def usage(opts)
23
- puts ''
24
- puts opts
25
- puts <<-EOT
26
-
27
- where
28
-
29
- * markdown_file_path is the path to an existing markdown file.
30
- * toc_file_path is the path to the table-of-contents file to be created.
31
-
32
- Typically:
33
-
34
- * Both file types are .md.
35
- * The markdown file contains various headings.
36
- EOT
37
- exit
38
- end
39
-
40
- parser.parse!
41
-
42
- _, markdown_file_path, toc_file_path = ARGV
43
-
44
- usage(opts) unless ARGV.size == 3
45
-
46
- MarkdownHelper.new(options).create_page_toc(markdown_file_path, toc_file_path)
@@ -1,14 +0,0 @@
1
-
2
- Usage: markdown_helper create_page_toc [options] markdown_file_path toc_file_path
3
- --pristine No comments added
4
- --help Display help
5
-
6
- where
7
-
8
- * markdown_file_path is the path to an existing markdown file.
9
- * toc_file_path is the path to the table-of-contents file to be created.
10
-
11
- Typically:
12
-
13
- * Both file types are .md.
14
- * The markdown file contains various headings.
@@ -1,6 +0,0 @@
1
- require 'markdown_helper'
2
-
3
- # Option :printine suppresses the addition of comments.
4
- markdown_helper = MarkdownHelper.new(:pristine => true)
5
- markdown_helper.create_page_toc('text.md', 'toc.md')
6
- markdown_helper.include('includer.md', 'page.md')
@@ -1,3 +0,0 @@
1
- # Option --pristine suppresses comment insertion.
2
- markdown_helper create_page_toc --pristine text.md toc.md
3
- markdown_helper include --pristine includer.md page.md
@@ -1,44 +0,0 @@
1
- <!-- >>>>>> BEGIN GENERATED FILE (include): SOURCE includer.md -->
2
- ### Page Contents
3
-
4
- <!-- >>>>>> BEGIN INCLUDED FILE (markdown): SOURCE markdown/use_cases/tables_of_contents/create_and_include_page_toc/toc.md -->
5
- - [Lorem Ipsum](#lorem-ipsum)
6
- - [Curabitur Tortor](#curabitur-tortor)
7
- - [Quisque Volutpat](#quisque-volutpat)
8
- - [Sed Lectus](#sed-lectus)
9
- - [Curabitur Sit](#curabitur-sit)
10
- - [Vestibulum Nisi](#vestibulum-nisi)
11
- - [Sed Cursus](#sed-cursus)
12
- <!-- <<<<<< END INCLUDED FILE (markdown): SOURCE markdown/use_cases/tables_of_contents/create_and_include_page_toc/toc.md -->
13
-
14
- <!-- >>>>>> BEGIN INCLUDED FILE (markdown): SOURCE markdown/use_cases/tables_of_contents/create_and_include_page_toc/text.md -->
15
- # Lorem Ipsum
16
-
17
- Dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero. Sed dignissim lacinia nunc.
18
-
19
- ## Curabitur Tortor
20
-
21
- Pellentesque nibh. Aenean quam. In scelerisque sem at dolor. Maecenas mattis. Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus, iaculis vel, suscipit quis, luctus non, massa. Fusce ac turpis quis ligula lacinia aliquet. Mauris ipsum. Nulla metus metus, ullamcorper vel, tincidunt sed, euismod in, nibh.
22
-
23
- ### Quisque Volutpat
24
-
25
- Cndimentum velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam nec ante. Sed lacinia, urna non tincidunt mattis, tortor neque adipiscing diam, a cursus ipsum ante quis turpis. Nulla facilisi. Ut fringilla. Suspendisse potenti. Nunc feugiat mi a tellus consequat imperdiet. Vestibulum sapien. Proin quam. Etiam ultrices. Suspendisse in justo eu magna luctus suscipit.
26
-
27
- ### Sed Lectus
28
-
29
- Integer euismod lacus luctus magna. Quisque cursus, metus vitae pharetra auctor, sem massa mattis sem, at interdum magna augue eget diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi lacinia molestie dui. Praesent blandit dolor. Sed non quam. In vel mi sit amet augue congue elementum. Morbi in ipsum sit amet pede facilisis laoreet. Donec lacus nunc, viverra nec, blandit vel, egestas et, augue. Vestibulum tincidunt malesuada tellus. Ut ultrices ultrices enim.
30
-
31
- ## Curabitur Sit
32
-
33
- Amet mauris. Morbi in dui quis est pulvinar ullamcorper. Nulla facilisi. Integer lacinia sollicitudin massa. Cras metus. Sed aliquet risus a tortor. Integer id quam. Morbi mi. Quisque nisl felis, venenatis tristique, dignissim in, ultrices sit amet, augue. Proin sodales libero eget ante. Nulla quam. Aenean laoreet.
34
-
35
- ### Vestibulum Nisi
36
-
37
- Lectus, commodo ac, facilisis ac, ultricies eu, pede. Ut orci risus, accumsan porttitor, cursus quis, aliquet eget, justo. Sed pretium blandit orci. Ut eu diam at pede suscipit sodales. Aenean lectus elit, fermentum non, convallis id, sagittis at, neque. Nullam mauris orci, aliquet et, iaculis et, viverra vitae, ligula. Nulla ut felis in purus aliquam imperdiet. Maecenas aliquet mollis lectus. Vivamus consectetuer risus et tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero.
38
-
39
- ### Sed Cursus
40
-
41
- Ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero. Sed dignissim lacinia nunc.
42
-
43
- <!-- <<<<<< END INCLUDED FILE (markdown): SOURCE markdown/use_cases/tables_of_contents/create_and_include_page_toc/text.md -->
44
- <!-- <<<<<< END GENERATED FILE (include): SOURCE includer.md -->
@@ -1,5 +0,0 @@
1
- ### Page Contents
2
-
3
- @[:markdown](toc.md)
4
-
5
- @[:markdown](text.md)
@@ -1,38 +0,0 @@
1
- ### Page Contents
2
-
3
- - [Lorem Ipsum](#lorem-ipsum)
4
- - [Curabitur Tortor](#curabitur-tortor)
5
- - [Quisque Volutpat](#quisque-volutpat)
6
- - [Sed Lectus](#sed-lectus)
7
- - [Curabitur Sit](#curabitur-sit)
8
- - [Vestibulum Nisi](#vestibulum-nisi)
9
- - [Sed Cursus](#sed-cursus)
10
-
11
- # Lorem Ipsum
12
-
13
- Dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero. Sed dignissim lacinia nunc.
14
-
15
- ## Curabitur Tortor
16
-
17
- Pellentesque nibh. Aenean quam. In scelerisque sem at dolor. Maecenas mattis. Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus, iaculis vel, suscipit quis, luctus non, massa. Fusce ac turpis quis ligula lacinia aliquet. Mauris ipsum. Nulla metus metus, ullamcorper vel, tincidunt sed, euismod in, nibh.
18
-
19
- ### Quisque Volutpat
20
-
21
- Cndimentum velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam nec ante. Sed lacinia, urna non tincidunt mattis, tortor neque adipiscing diam, a cursus ipsum ante quis turpis. Nulla facilisi. Ut fringilla. Suspendisse potenti. Nunc feugiat mi a tellus consequat imperdiet. Vestibulum sapien. Proin quam. Etiam ultrices. Suspendisse in justo eu magna luctus suscipit.
22
-
23
- ### Sed Lectus
24
-
25
- Integer euismod lacus luctus magna. Quisque cursus, metus vitae pharetra auctor, sem massa mattis sem, at interdum magna augue eget diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi lacinia molestie dui. Praesent blandit dolor. Sed non quam. In vel mi sit amet augue congue elementum. Morbi in ipsum sit amet pede facilisis laoreet. Donec lacus nunc, viverra nec, blandit vel, egestas et, augue. Vestibulum tincidunt malesuada tellus. Ut ultrices ultrices enim.
26
-
27
- ## Curabitur Sit
28
-
29
- Amet mauris. Morbi in dui quis est pulvinar ullamcorper. Nulla facilisi. Integer lacinia sollicitudin massa. Cras metus. Sed aliquet risus a tortor. Integer id quam. Morbi mi. Quisque nisl felis, venenatis tristique, dignissim in, ultrices sit amet, augue. Proin sodales libero eget ante. Nulla quam. Aenean laoreet.
30
-
31
- ### Vestibulum Nisi
32
-
33
- Lectus, commodo ac, facilisis ac, ultricies eu, pede. Ut orci risus, accumsan porttitor, cursus quis, aliquet eget, justo. Sed pretium blandit orci. Ut eu diam at pede suscipit sodales. Aenean lectus elit, fermentum non, convallis id, sagittis at, neque. Nullam mauris orci, aliquet et, iaculis et, viverra vitae, ligula. Nulla ut felis in purus aliquam imperdiet. Maecenas aliquet mollis lectus. Vivamus consectetuer risus et tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero.
34
-
35
- ### Sed Cursus
36
-
37
- Ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero. Sed dignissim lacinia nunc.
38
-
@@ -1,28 +0,0 @@
1
- # Lorem Ipsum
2
-
3
- Dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero. Sed dignissim lacinia nunc.
4
-
5
- ## Curabitur Tortor
6
-
7
- Pellentesque nibh. Aenean quam. In scelerisque sem at dolor. Maecenas mattis. Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus, iaculis vel, suscipit quis, luctus non, massa. Fusce ac turpis quis ligula lacinia aliquet. Mauris ipsum. Nulla metus metus, ullamcorper vel, tincidunt sed, euismod in, nibh.
8
-
9
- ### Quisque Volutpat
10
-
11
- Cndimentum velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam nec ante. Sed lacinia, urna non tincidunt mattis, tortor neque adipiscing diam, a cursus ipsum ante quis turpis. Nulla facilisi. Ut fringilla. Suspendisse potenti. Nunc feugiat mi a tellus consequat imperdiet. Vestibulum sapien. Proin quam. Etiam ultrices. Suspendisse in justo eu magna luctus suscipit.
12
-
13
- ### Sed Lectus
14
-
15
- Integer euismod lacus luctus magna. Quisque cursus, metus vitae pharetra auctor, sem massa mattis sem, at interdum magna augue eget diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi lacinia molestie dui. Praesent blandit dolor. Sed non quam. In vel mi sit amet augue congue elementum. Morbi in ipsum sit amet pede facilisis laoreet. Donec lacus nunc, viverra nec, blandit vel, egestas et, augue. Vestibulum tincidunt malesuada tellus. Ut ultrices ultrices enim.
16
-
17
- ## Curabitur Sit
18
-
19
- Amet mauris. Morbi in dui quis est pulvinar ullamcorper. Nulla facilisi. Integer lacinia sollicitudin massa. Cras metus. Sed aliquet risus a tortor. Integer id quam. Morbi mi. Quisque nisl felis, venenatis tristique, dignissim in, ultrices sit amet, augue. Proin sodales libero eget ante. Nulla quam. Aenean laoreet.
20
-
21
- ### Vestibulum Nisi
22
-
23
- Lectus, commodo ac, facilisis ac, ultricies eu, pede. Ut orci risus, accumsan porttitor, cursus quis, aliquet eget, justo. Sed pretium blandit orci. Ut eu diam at pede suscipit sodales. Aenean lectus elit, fermentum non, convallis id, sagittis at, neque. Nullam mauris orci, aliquet et, iaculis et, viverra vitae, ligula. Nulla ut felis in purus aliquam imperdiet. Maecenas aliquet mollis lectus. Vivamus consectetuer risus et tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero.
24
-
25
- ### Sed Cursus
26
-
27
- Ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero. Sed dignissim lacinia nunc.
28
-
@@ -1,7 +0,0 @@
1
- - [Lorem Ipsum](#lorem-ipsum)
2
- - [Curabitur Tortor](#curabitur-tortor)
3
- - [Quisque Volutpat](#quisque-volutpat)
4
- - [Sed Lectus](#sed-lectus)
5
- - [Curabitur Sit](#curabitur-sit)
6
- - [Vestibulum Nisi](#vestibulum-nisi)
7
- - [Sed Cursus](#sed-cursus)
@@ -1,62 +0,0 @@
1
- ### Create and Include Page TOC
2
-
3
- 1. Maintain markdown text in a separate file.
4
- 2. Create a table of contents for the text.
5
- 3. Use an includer file to include the contents and the text.
6
-
7
- #### Text File
8
-
9
- It's big, so linking instead of including: [text file](text.md#lorem-ipsum).
10
-
11
- #### Includer File
12
-
13
- ```includer.md```:
14
- ```markdown
15
- ### Page Contents
16
-
17
- @[:markdown](toc.md)
18
-
19
- @[:markdown](text.md)
20
- ```
21
-
22
- #### CLI
23
-
24
- You can use the command-line interface to perform the creation and inclusion.
25
-
26
- ##### Command
27
-
28
- ```create_and_include.sh```:
29
- ```sh
30
- # Option --pristine suppresses comment insertion.
31
- markdown_helper create_page_toc --pristine text.md toc.md
32
- markdown_helper include --pristine includer.md page.md
33
- ```
34
-
35
- (Option ```--pristine``` suppresses comment insertion.)
36
-
37
- #### API
38
-
39
- You can use the API to perform the creation and inclusion.
40
-
41
- ##### Ruby Code
42
-
43
- ```create_and_include.rb```:
44
- ```ruby
45
- require 'markdown_helper'
46
-
47
- # Option :printine suppresses the addition of comments.
48
- markdown_helper = MarkdownHelper.new(:pristine => true)
49
- markdown_helper.create_page_toc('text.md', 'toc.md')
50
- markdown_helper.include('includer.md', 'page.md')
51
- ```
52
-
53
- ##### Command
54
-
55
- ```sh
56
- ruby create_and_include.rb
57
- ```
58
-
59
- ### Finished Page
60
-
61
- It's big, so linking instead of including: [page file](page.md#page-contents).
62
-
@@ -1,94 +0,0 @@
1
- require_relative '../create_page_toc_use_case'
2
-
3
- class CreateAndIncludePageToc < CreatePageTocUseCase
4
-
5
- RUBY_FILE_NAME = 'create_and_include.rb'
6
- API_COMMAND = "ruby #{RUBY_FILE_NAME}"
7
-
8
- CLI_COMMANDS_FILE_NAME = 'create_and_include.sh'
9
- CLI_COMMAND = "bash #{CLI_COMMANDS_FILE_NAME}"
10
-
11
- def self.build
12
-
13
- use_case = self.new
14
-
15
- use_case.write_text_file
16
- use_case.write_includer_file
17
-
18
- File.write(
19
- CLI_COMMANDS_FILE_NAME,
20
- <<EOT
21
- # Option --pristine suppresses comment insertion.
22
- markdown_helper create_page_toc --pristine #{TEXT_FILE_NAME} #{TOC_FILE_NAME}
23
- markdown_helper include --pristine #{INCLUDER_FILE_NAME} #{PAGE_FILE_NAME}
24
- EOT
25
- )
26
- use_case.commands_to_execute.push(API_COMMAND)
27
-
28
- File.write(
29
- RUBY_FILE_NAME,
30
- <<EOT
31
- require 'markdown_helper'
32
-
33
- # Option :printine suppresses the addition of comments.
34
- markdown_helper = MarkdownHelper.new(:pristine => true)
35
- markdown_helper.create_page_toc('#{TEXT_FILE_NAME}', '#{TOC_FILE_NAME}')
36
- markdown_helper.include('#{INCLUDER_FILE_NAME}', '#{PAGE_FILE_NAME}')
37
- EOT
38
- )
39
- use_case.commands_to_execute.push(CLI_COMMAND)
40
-
41
- File.write(
42
- TEMPLATE_FILE_NAME,
43
- <<EOT
44
- ### Create and Include Page TOC
45
-
46
- 1. Maintain markdown text in a separate file.
47
- 2. Create a table of contents for the text.
48
- 3. Use an includer file to include the contents and the text.
49
-
50
- #### Text File
51
-
52
- It's big, so linking instead of including: [text file](#{TEXT_FILE_NAME}#lorem-ipsum).
53
-
54
- #### Includer File
55
-
56
- @[markdown](#{INCLUDER_FILE_NAME})
57
-
58
- #### CLI
59
-
60
- You can use the command-line interface to perform the creation and inclusion.
61
-
62
- ##### Command
63
-
64
- @[sh](#{CLI_COMMANDS_FILE_NAME})
65
-
66
- @[:markdown](../../pristine.md)
67
-
68
- #### API
69
-
70
- You can use the API to perform the creation and inclusion.
71
-
72
- ##### Ruby Code
73
-
74
- @[ruby](#{RUBY_FILE_NAME})
75
-
76
- ##### Command
77
-
78
- ```sh
79
- #{API_COMMAND}
80
- ```
81
-
82
- ### Finished Page
83
-
84
- It's big, so linking instead of including: [page file](#{PAGE_FILE_NAME}#page-contents).
85
-
86
- EOT
87
-
88
- )
89
-
90
- use_case.build
91
-
92
- end
93
-
94
- end