mr-edward 0.5.0 → 0.7.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 (5) hide show
  1. checksums.yaml +4 -4
  2. data/src/builder.rb +0 -1
  3. data/src/page.rb +22 -14
  4. data/src/version.rb +2 -2
  5. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7be307969fab3a27723edc33011ed4c014d156f30d5c4fdae7ef3835afcb32c4
4
- data.tar.gz: 578b5c36886e86b9862a318397f9c7b33ab2db00769364c40e86cc12a7f5d061
3
+ metadata.gz: 9aac3eaf4cee5bd060f0b8a00cb3fa9eb8942d66c2909754582034f39fe3ec40
4
+ data.tar.gz: 2d1d534a9faa705b7c66914fc61cf0b5462917ba9019bc3f3e07f09586c58cb3
5
5
  SHA512:
6
- metadata.gz: 7cd05155e1c21850e379f6425f2995f0bc8932d54f89bd7dd48c34e9959ded031d1c154152a97a8e7020b4f34062ccad79b76bad4472039a7e8d8de95227db53
7
- data.tar.gz: 41310aedffa6129e459d55b898f2ecbdd21c3afb50e57e34c8e2355140cd371b92d4d5bf8c63c6f6ada87f1dc6b0b6ff23d3482074d2621b6bfba26fc7aa45a8
6
+ metadata.gz: 22af496c556dd5d924c1c9ba2b5b4e6d6e84b82c7714ae399a5d515e4d5bd952952b489d75f44233d23535e9c5defc9aceee7ffc95476e817fce99f645e0cf78
7
+ data.tar.gz: 490eed523a428719c786e6f2de5cab19102cc0aeeaa0e4bc1abf99bd3dac050c8fe3dee2178b75846bc022f4ed567e7573eb45ee65e2a6b028a42fc95134d3af
data/src/builder.rb CHANGED
@@ -12,7 +12,6 @@ module Edward
12
12
  @target = "_site"
13
13
  @gitignore = File.read(".gitignore").lines rescue []
14
14
  @edwardignore = File.read(".edwardignore").lines rescue []
15
- Tilt.register_pipeline("adoc_erb", :templates => ["erb", "adoc"])
16
15
  Tilt::AsciidoctorTemplate.include(AsciiDoctorUnsafeByDefault)
17
16
  load("./_setup.rb") if File.exist? "_setup.rb"
18
17
  end
data/src/page.rb CHANGED
@@ -17,12 +17,12 @@ module Edward
17
17
  @template = Tilt[path].new(self[:options]) { @content }
18
18
  add_layout(self[:layout]) if self[:layout]
19
19
  end
20
-
20
+
21
21
  # transform extensions from options to strings (for use in pipeline)
22
22
  def transform_option_keys options
23
23
  options&.transform_keys! { |k| Tilt.default_mapping.registered?(k.to_s) ? k.to_s : k }
24
24
  end
25
-
25
+
26
26
  # check if a file starts with yaml doc and can be mapped by tilt
27
27
  def self.page? path
28
28
  !Tilt.templates_for(path).empty? && YAML_FRONT_MATTER_REGEXP.match(File.read(path))
@@ -32,7 +32,7 @@ module Edward
32
32
  ctx = Edward::RenderContext.new(self, builder)
33
33
  @template.render(ctx, nil, &proc { @block.call(ctx) })
34
34
  end
35
-
35
+
36
36
  def self.extract_front_matter content
37
37
  if content =~ YAML_FRONT_MATTER_REGEXP
38
38
  yaml = YAML.safe_load(Regexp.last_match(1), symbolize_names: true, permitted_classes: [Symbol])
@@ -42,46 +42,48 @@ module Edward
42
42
  [nil, content]
43
43
  end
44
44
  end
45
-
45
+
46
46
  # wrap this page in a layout
47
47
  def add_layout name
48
48
  layout_path = "_layouts/#{name}"
49
49
  yaml, content = Page.extract_front_matter(File.read(layout_path))
50
+ next_layout = yaml[:layout]
50
51
  @yaml = yaml.deep_merge!(@yaml, knockout_prefix: "--") if yaml
51
52
  transform_option_keys(self[:options])
52
53
  inner_template = @template
53
54
  inner_block = @block
54
55
  @block = proc { |ctx| inner_template.render(ctx, nil, &inner_block) }
55
56
  @template = Tilt[layout_path].new(self[:options]) { content }
57
+ add_layout(next_layout) if next_layout
56
58
  end
57
-
59
+
58
60
  def name
59
61
  File.basename(@path)
60
62
  end
61
-
63
+
62
64
  # the name of the new file
63
65
  def new_name
64
- File.basename(@path, ".*")
66
+ File.basename(@path, '.' + Tilt.default_mapping.matched_extension(@path))
65
67
  end
66
-
68
+
67
69
  def dirname
68
70
  File.dirname(@path)
69
71
  end
70
-
72
+
71
73
  def new_path
72
74
  "#{dirname}/#{new_name}"
73
75
  end
74
-
76
+
75
77
  # The directory name if new_name is index.html.
76
78
  # Otherwise the full new path.
77
79
  def href
78
80
  if new_name == "index.html"
79
- dirname
81
+ "/" + dirname
80
82
  else
81
- "#{dirname}/#{new_name}"
83
+ "/#{dirname}/#{new_name}"
82
84
  end
83
85
  end
84
-
86
+
85
87
  def tag? tag
86
88
  @yaml&.dig(:tags)&.include? tag
87
89
  end
@@ -89,6 +91,12 @@ module Edward
89
91
  def [](*keys)
90
92
  @yaml&.dig(*keys)
91
93
  end
92
-
94
+
95
+ end
96
+ end
97
+
98
+ module Tilt
99
+ class BaseMapping
100
+ def matched_extension(file) = split(file).last
93
101
  end
94
102
  end
data/src/version.rb CHANGED
@@ -1,4 +1,4 @@
1
- # generated with rake release[0.5.0]
1
+ # generated with rake release[0.7.0]
2
2
  module Edward
3
- VERSION = "0.5.0"
3
+ VERSION = "0.7.0"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mr-edward
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rein Fernhout
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '2.7'
18
+ version: 2.7.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '2.7'
25
+ version: 2.7.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: webrick
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  requirements: []
98
- rubygems_version: 4.0.3
98
+ rubygems_version: 4.0.16
99
99
  specification_version: 4
100
100
  summary: Statis site generator
101
101
  test_files: []