markdown_helper 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8f73122af24017cc7c6cbd5bb2b7a920d28bc03f
4
- data.tar.gz: 73415a069fa49e73e08d95128a885a0adf6a9b65
3
+ metadata.gz: ace2948d3bb763d09030ba4d4a55fd3f098a6e42
4
+ data.tar.gz: 8472ec4219bec0e1f81c2c9ced8b1a511efd2858
5
5
  SHA512:
6
- metadata.gz: 7bb0b0d35c6bb7a0677848d016c53bfcfcba4b8cbb5bf94917de2a8ac2edf1f3e625508c547dac954b605725f8824432e9ad7da9506c03cfd785cda54d0b4929
7
- data.tar.gz: 64625aa4899d6db4cffeac7ba22a14b38f557ec3c7e5413ecda9a858c7988c922e44cc2008b8bffe499e3105e3fb67c35b82fc5a79ec58ec573f8e4926338e2a
6
+ metadata.gz: 1c8641b78321d8d2d8efb659591883efaa80b31510542c28a73778b43a46e78d777176ac66f586d8e001438cc5017635c5172888f529e08224389d091f62a124
7
+ data.tar.gz: 0b1540cff797e44a371a0c4667bfbcd2ecc75f93fabc068c4738bcd4d4a6a59d50604e3cbe6cb3ceab9039a651c34863299b621f64237969b5afb2ad5c036143
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- markdown_helper (0.1.0)
4
+ markdown_helper (0.1.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # MarkdownHelper
2
2
 
3
- ## File Inclusion <img src="/images/include.png" width="50">
3
+ ## File Inclusion <img src="https://github.com/BurdetteLamar/MarkdownHelper/blob/master/images/include.png" width="50">
4
4
 
5
5
  This markdown helper enables file inclusion in GitHub markdown.
6
6
 
@@ -32,9 +32,9 @@ end
32
32
 
33
33
  or verbatim (which GitHub renders however it likes).
34
34
 
35
- ## Usage
35
+ ### Usage
36
36
 
37
- ### Including Files in Markdown
37
+ #### Specify Include Files with Pragmas
38
38
 
39
39
  <code>include.md</code>
40
40
  ```verbatim
@@ -45,16 +45,19 @@ or verbatim (which GitHub renders however it likes).
45
45
  @[:verbatim](include.rb)
46
46
  ```
47
47
 
48
- Each inclusion line has:
48
+ An inclusion pragma has the form:
49
49
 
50
- * A leading ```@``` character.
51
- * A *treatment* in square brackets, one of:
50
+ ```@[```*treatment*```](```*relative_file_path*```)```
51
+
52
+ where:
53
+
54
+ * *treatment* (in square brackets) is one of the following:
52
55
  * Highlighting mode such as ```[ruby]```, to include a highlighted code block. This can be any Ace mode mentioned in [GitHub Languages](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml).
53
56
  * ```[:code_block]```, to include a plain code block.
54
57
  * ```[:verbatim]```, to include text verbatim (to be rendered as markdown).
55
- * A relative file path in parentheses, pointing to the file to be included.
58
+ * *relative_file_path* points to the file to be included.
56
59
 
57
- ### Including the Files
60
+ #### Include the Files with ```MarkdownHelper#include```
58
61
 
59
62
  <code>usage.rb</code>
60
63
  ```ruby
@@ -1,3 +1,3 @@
1
1
  class MarkdownHelper
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
@@ -1,43 +1,51 @@
1
1
  require 'markdown_helper/version'
2
2
 
3
+ # Helper class for working with GitHub markdown.
4
+ # Supports file inclusion.
5
+ #
6
+ # @author Burdette Lamar
3
7
  class MarkdownHelper
4
8
 
5
9
  INCLUDE_REGEXP = /^@\[(:code_block|:verbatim|\w+)\]/
6
10
 
7
- attr_accessor :tag_as_generated
11
+ # For later.
12
+ # attr_accessor :tag_as_generated
8
13
 
9
- DEFAULT_TREATMENT_FOR_FILE_EXT = {
10
- :md => :verbatim,
11
- :rb => 'ruby',
12
- :xml => 'xml',
13
- }
14
+ # For later.
15
+ # DEFAULT_TREATMENT_FOR_FILE_EXT = {
16
+ # :md => :verbatim,
17
+ # :rb => 'ruby',
18
+ # :xml => 'xml',
19
+ # }
14
20
 
15
21
  def initialize
16
- @treatment_for_file_ext = DEFAULT_TREATMENT_FOR_FILE_EXT
17
- @treatment_for_file_ext.default = :code_block
18
- self.tag_as_generated = false
19
- end
20
-
21
- def get_treatment(file_type)
22
- @treatment_for_file_ext[file_type]
23
- end
24
-
25
- def set_treatment(file_type, treatment)
26
- treatment_symbols = [:verbatim, :code_block]
27
- if treatment_symbols.include?(treatment) || treatment.kind_of?(String)
28
- @treatment_for_file_ext[file_type] = treatment
29
- else
30
- message = "treatment must be a single word or must be in #{treatment_symbols.inspect}, not #{treatment.inspect}"
31
- raise ArgumentError.new(message)
32
- end
22
+ # For later.
23
+ # @treatment_for_file_ext = DEFAULT_TREATMENT_FOR_FILE_EXT
24
+ # @treatment_for_file_ext.default = :code_block
25
+ # self.tag_as_generated = false
33
26
  end
34
27
 
28
+ # Merges external files into markdown text.
29
+ # @param template_file_path [String] the path to the input template markdown file, usually containing include pragmas.
30
+ # @param markdown_file_path [String] the path to the output merged markdown file.
31
+ # @raise [RuntimeError] if an include pragma parsing error occurs.
32
+ # @return [String] the resulting markdown text.
33
+ #
34
+ # @example Pragma to include text as a highlighted code block.
35
+ # @[ruby](foo.rb)
36
+ #
37
+ # @example Pragma to include text as a plain code block.
38
+ # @[:code_block](foo.xyz)
39
+ #
40
+ # @example Pragma to include text verbatim, to be rendered as markdown.
41
+ # @[:verbatim](foo.md)
35
42
  def include(template_file_path, markdown_file_path)
36
43
  output_lines = []
37
44
  File.open(template_file_path, 'r') do |template_file|
38
- if tag_as_generated
39
- output_lines.push("<!--- GENERATED FILE, DO NOT EDIT --->\n")
40
- end
45
+ # For later.
46
+ # if tag_as_generated
47
+ # output_lines.push("<!--- GENERATED FILE, DO NOT EDIT --->\n")
48
+ # end
41
49
  template_file.each_line do |input_line|
42
50
  match_data = input_line.match(INCLUDE_REGEXP)
43
51
  unless match_data
@@ -91,4 +99,19 @@ class MarkdownHelper
91
99
  output
92
100
  end
93
101
 
102
+ # For later.
103
+ # def get_treatment(file_type)
104
+ # @treatment_for_file_ext[file_type]
105
+ # end
106
+ #
107
+ # def set_treatment(file_type, treatment)
108
+ # treatment_symbols = [:verbatim, :code_block]
109
+ # if treatment_symbols.include?(treatment) || treatment.kind_of?(String)
110
+ # @treatment_for_file_ext[file_type] = treatment
111
+ # else
112
+ # message = "treatment must be a single word or must be in #{treatment_symbols.inspect}, not #{treatment.inspect}"
113
+ # raise ArgumentError.new(message)
114
+ # end
115
+ # end
116
+
94
117
  end
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ['burdettelamar']
10
10
  spec.email = ['BurdetteLamar@Yahoo.com']
11
11
 
12
- spec.summary = 'Module to help with GitHub markdown.'
13
- spec.description = 'Module to help with GitHub markdown. So far: file inclusion.'
12
+ spec.summary = 'Class to help with GitHub markdown.'
13
+ spec.description = 'Class to help with GitHub markdown. So far: file inclusion.'
14
14
  spec.homepage = 'https://rubygems.org/gems/markdown_helper'
15
15
  spec.license = 'MIT'
16
16
 
@@ -1,6 +1,6 @@
1
1
  # MarkdownHelper
2
2
 
3
- ## File Inclusion <img src="/images/include.png" width="50">
3
+ ## File Inclusion <img src="https://github.com/BurdetteLamar/MarkdownHelper/blob/master/images/include.png" width="50">
4
4
 
5
5
  This markdown helper enables file inclusion in GitHub markdown.
6
6
 
@@ -18,21 +18,24 @@ or plain in a code block:
18
18
 
19
19
  or verbatim (which GitHub renders however it likes).
20
20
 
21
- ## Usage
21
+ ### Usage
22
22
 
23
- ### Including Files in Markdown
23
+ #### Specify Include Files with Pragmas
24
24
 
25
25
  @[verbatim](include.md)
26
26
 
27
- Each inclusion line has:
27
+ An inclusion pragma has the form:
28
28
 
29
- * A leading ```@``` character.
30
- * A *treatment* in square brackets, one of:
29
+ ```@[```*treatment*```](```*relative_file_path*```)```
30
+
31
+ where:
32
+
33
+ * *treatment* (in square brackets) is one of the following:
31
34
  * Highlighting mode such as ```[ruby]```, to include a highlighted code block. This can be any Ace mode mentioned in [GitHub Languages](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml).
32
35
  * ```[:code_block]```, to include a plain code block.
33
36
  * ```[:verbatim]```, to include text verbatim (to be rendered as markdown).
34
- * A relative file path in parentheses, pointing to the file to be included.
37
+ * *relative_file_path* points to the file to be included.
35
38
 
36
- ### Including the Files
39
+ #### Include the Files with ```MarkdownHelper#include```
37
40
 
38
41
  @[ruby](usage.rb)
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: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - burdettelamar
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-15 00:00:00.000000000 Z
11
+ date: 2018-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,7 +66,7 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.3'
69
- description: 'Module to help with GitHub markdown. So far: file inclusion.'
69
+ description: 'Class to help with GitHub markdown. So far: file inclusion.'
70
70
  email:
71
71
  - BurdetteLamar@Yahoo.com
72
72
  executables: []
@@ -119,5 +119,5 @@ rubyforge_project:
119
119
  rubygems_version: 2.4.5.2
120
120
  signing_key:
121
121
  specification_version: 4
122
- summary: Module to help with GitHub markdown.
122
+ summary: Class to help with GitHub markdown.
123
123
  test_files: []