hyde-fonts 0.3.0 → 0.3.2

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
  SHA256:
3
- metadata.gz: 242b3530eca6d688e79991bc825ce037cd155969a4319e17be919457427d0925
4
- data.tar.gz: 3061ebdee76f959ae6ed5dccc9f53f03f75c1ce5b1b72bf67dbd67e87a82bd23
3
+ metadata.gz: b4406372880f1fc6506906229c72d95cb6cca93bc3b686c503b080be896488b7
4
+ data.tar.gz: 9e54c8c62232ae687abdbb953ca08196f7e277d8787c2ea2b89ba15291044114
5
5
  SHA512:
6
- metadata.gz: 3f6b7972b943741ed61f6d95138a727658e7572ef672d431969838fe59af071059d95a09f9f73bd68fae071d92f1f94f87e9d0a8f46cfff8c26ea8b2dc751cd5
7
- data.tar.gz: 12b50a5ec6c82c5887cb23c6f3f0a949a96b9cde4206cda61705974d6c0697be94588d236951d7bf6dd738111e7d04348af88c7877cb25aac34eff09346eef99
6
+ metadata.gz: 7c390bf62ee512ead4b63948f73ac55d108ed75468abd56c548f4213576e7f8c776467834564d89977f96e01feb4035a5830f54261fa939981082340676943be
7
+ data.tar.gz: 213c46fdaba570fe6ba9d6188d99c67a2a7fd199103ed6b5a1d171b52a2de974761fb4981787496dbbe6d817943a2327f25daf824cb2f419014a09014f410d70
data/lib/hyde-fonts.rb ADDED
@@ -0,0 +1,7 @@
1
+ module Hyde
2
+ class Fonts
3
+ VERSION = "0.3.2"
4
+ end
5
+ end
6
+
7
+ require_relative "hyde_fonts/hyde_fonts"
@@ -13,12 +13,11 @@ module Hyde
13
13
  end
14
14
 
15
15
  def parse_faces
16
-
17
- for face in @data['faces'] do
16
+ for face in @data["faces"] do
18
17
  faces.push(Hyde::FontFace.new(face))
19
18
  end
20
19
 
21
- return faces
20
+ faces
22
21
  end
23
22
  end
24
23
  end
@@ -4,9 +4,9 @@ module Hyde
4
4
  attr_accessor :css
5
5
 
6
6
  def initialize(face)
7
- @name = face['name']
8
- @provider = face['provider']
9
- @weights = face['weights']
7
+ @name = face["name"]
8
+ @provider = face["provider"]
9
+ @weights = face["weights"]
10
10
  @variants = parse_variants
11
11
  @css = []
12
12
  end
@@ -20,19 +20,19 @@ module Hyde
20
20
  def to_s
21
21
  variants = sort_variants.map { |variant| variant.to_s }
22
22
 
23
- @name + ':ital,wght@' + variants.join(';')
23
+ @name + ":ital,wght@" + variants.join(";")
24
24
  end
25
25
 
26
- private
26
+ private
27
27
 
28
28
  def parse_variants
29
29
  variants = []
30
30
 
31
31
  for variant in @weights
32
- variants.push(Hyde::FontVariant.new(weight: variant['value'], italic: variant['italic']))
32
+ variants.push(Hyde::FontVariant.new(weight: variant["value"], italic: variant["italic"]))
33
33
  end
34
34
 
35
- return variants
35
+ variants
36
36
  end
37
37
  end
38
38
  end
@@ -18,11 +18,11 @@ module Hyde
18
18
  @uri = URI(uri)
19
19
  @format = format
20
20
 
21
- @filename = [@family, @style, @weight, @char_set + '.' + @format].join('_')
21
+ @filename = [@family, @style, @weight, @char_set + "." + @format].join("_")
22
22
  end
23
23
 
24
24
  def local_ruleset(path)
25
- @ruleset.gsub(/(?<=url\().*(?=\)\s)/, '/' + File.join(path, @filename))
25
+ @ruleset.gsub(/(?<=url\().*(?=\)\s)/, "/" + File.join(path, @filename))
26
26
  end
27
27
  end
28
28
  end
@@ -12,7 +12,7 @@ module Hyde
12
12
  end
13
13
 
14
14
  def to_s
15
- @italic.to_s + ',' + @weight.to_s
15
+ @italic.to_s + "," + @weight.to_s
16
16
  end
17
17
  end
18
18
  end
@@ -8,12 +8,12 @@ module Hyde
8
8
 
9
9
  def initialize(site, dir, name)
10
10
  @site = site
11
- @dir = dir
11
+ @dir = dir
12
12
  @name = name
13
13
  @relative_path = File.join(*[@dir, @name].compact)
14
14
  @extname = File.extname(@name)
15
15
  @type = @collection&.label&.to_sym
16
- @generator = 'hyde_fonts'
16
+ @generator = "hyde_fonts"
17
17
  end
18
18
 
19
19
  def write(dest)
@@ -23,7 +23,7 @@ module Hyde
23
23
  FileUtils.mkdir_p(File.dirname(dest_path))
24
24
  FileUtils.rm(dest_path) if File.exist?(dest_path)
25
25
 
26
- File.open(dest_path, 'w') do |output_file|
26
+ File.open(dest_path, "w") do |output_file|
27
27
  output_file << file_contents
28
28
  end
29
29
 
@@ -8,13 +8,13 @@ module Hyde
8
8
 
9
9
  def initialize(site, dir, name)
10
10
  @site = site
11
- @dir = dir
11
+ @dir = dir
12
12
  @name = name
13
13
  @relative_path = File.join(*[@dir, @name].compact)
14
14
  @extname = File.extname(@name)
15
15
  @type = @collection&.label&.to_sym
16
- @generator = 'hyde_fonts'
17
- @dest_path = ''
16
+ @generator = "hyde_fonts"
17
+ @dest_path = ""
18
18
  end
19
19
 
20
20
  def write(dest)
@@ -24,7 +24,7 @@ module Hyde
24
24
  FileUtils.mkdir_p(File.dirname(dest_path))
25
25
  FileUtils.rm(dest_path) if File.exist?(dest_path)
26
26
 
27
- File.open(dest_path, 'w') do |output_file|
27
+ File.open(dest_path, "w") do |output_file|
28
28
  output_file << file_contents
29
29
  end
30
30
 
@@ -1,11 +1,11 @@
1
- require 'jekyll'
2
- require_relative 'font_data.rb'
3
- require_relative 'font_face.rb'
4
- require_relative 'font_ruleset.rb'
5
- require_relative 'font_variant.rb'
6
- require_relative 'generated_css_file.rb'
7
- require_relative 'generated_font_file.rb'
8
- require_relative 'provider_google.rb'
1
+ require "jekyll"
2
+ require_relative "font_data"
3
+ require_relative "font_face"
4
+ require_relative "font_ruleset"
5
+ require_relative "font_variant"
6
+ require_relative "generated_css_file"
7
+ require_relative "generated_font_file"
8
+ require_relative "provider_google"
9
9
 
10
10
  module Jekyll
11
11
  class HydeFontsTag < Liquid::Tag
@@ -13,66 +13,66 @@ module Jekyll
13
13
  super
14
14
 
15
15
  @tag_name = tag_name
16
- style, indent = text.strip.split(' ')
16
+ style, indent = text.strip.split(" ")
17
17
  @style = style.strip
18
18
  @indent = indent.to_i || 0
19
19
  @tokens = tokens
20
20
  end
21
21
 
22
22
  def render(context)
23
- return context.registers[:site].config['hyde_fonts']['enable'] == true
23
+ return unless context.registers[:site].config["hyde_fonts"]["enable"] == true
24
24
 
25
25
  file = context.registers[:site].static_files.find { |file|
26
26
  file.is_a?(Hyde::GeneratedCssFile)
27
27
  }
28
28
 
29
- if @style == 'inline'
29
+ if @style == "inline"
30
30
  file.file_contents
31
- elsif @style == 'link'
31
+ elsif @style == "link"
32
32
  "<link href='" + file.relative_path + "' rel='stylesheet'>"
33
- elsif @style == 'decap-config'
34
- [
35
- "- label: Hyde-Fonts",
36
- " name: fonts",
37
- " file: \"src/_data/fonts.yml\"",
38
- " fields:",
39
- " - label: Fonts",
40
- " name: fonts",
41
- " widget: object",
42
- " fields:",
43
- " - label: Faces",
44
- " name: faces",
45
- " widget: list",
46
- " collapsed: false",
47
- " create: true",
48
- " fields:",
49
- " - label: Name",
50
- " name: name",
51
- " widget: string",
52
- " - label: Weights",
53
- " name: weights",
54
- " widget: list",
55
- " collapsed: false",
56
- " fields:",
57
- " - label: Weight",
58
- " name: value",
59
- " widget: string",
60
- " - label: Italic",
61
- " name: italic",
62
- " widget: boolean",
63
- ]
64
- .map { |x| x.prepend(' ' * 6) }
65
- .join("\n")
66
- .prepend("# Hyde Fonts ---\n")
33
+ elsif @style == "decap-config"
34
+ [
35
+ "- label: Hyde-Fonts",
36
+ " name: fonts",
37
+ " file: \"src/_data/fonts.yml\"",
38
+ " fields:",
39
+ " - label: Fonts",
40
+ " name: fonts",
41
+ " widget: object",
42
+ " fields:",
43
+ " - label: Faces",
44
+ " name: faces",
45
+ " widget: list",
46
+ " collapsed: false",
47
+ " create: true",
48
+ " fields:",
49
+ " - label: Name",
50
+ " name: name",
51
+ " widget: string",
52
+ " - label: Weights",
53
+ " name: weights",
54
+ " widget: list",
55
+ " collapsed: false",
56
+ " fields:",
57
+ " - label: Weight",
58
+ " name: value",
59
+ " widget: string",
60
+ " - label: Italic",
61
+ " name: italic",
62
+ " widget: boolean"
63
+ ]
64
+ .map { |x| x.prepend(" " * 6) }
65
+ .join("\n")
66
+ .prepend("# Hyde Fonts ---\n")
67
67
  end
68
68
  end
69
69
  end
70
70
 
71
- Liquid::Template.register_tag('hyde_fonts', Jekyll::HydeFontsTag)
71
+ Liquid::Template.register_tag("hyde_fonts", Jekyll::HydeFontsTag)
72
72
 
73
73
  class HydeFontsGenerator < Generator
74
74
  def generate(site)
75
- Hyde::Fonts.new(site).generate()
75
+ Hyde::Fonts.new(site).generate
76
76
  end
77
77
  end
78
78
  end
@@ -80,9 +80,9 @@ end
80
80
  module Hyde
81
81
  class Fonts
82
82
  @@config = {
83
- "data_source_name" => 'fonts',
84
- "file_output_path" => 'assets/fonts',
85
- "css_output_name" => 'fonts.css',
83
+ "data_source_name" => "fonts",
84
+ "file_output_path" => "assets/fonts",
85
+ "css_output_name" => "fonts.css",
86
86
  "css_minify" => true,
87
87
  "enable" => true,
88
88
  "fetch_fonts" => true,
@@ -91,35 +91,35 @@ module Hyde
91
91
 
92
92
  def initialize(site)
93
93
  @site = site
94
- @config = site.config.dig('hyde_fonts')
94
+ @config = site.config.dig("hyde_fonts")
95
95
 
96
- if (@config.nil?)
96
+ if @config.nil?
97
97
  @config = @@config
98
- site.config['hyde_fonts'] = @config
98
+ site.config["hyde_fonts"] = @config
99
99
  end
100
100
 
101
- if config('keep_files') == true
102
- @site.config['keep_files'].push(config('file_output_path'))
101
+ if config("keep_files") == true
102
+ @site.config["keep_files"].push(config("file_output_path"))
103
103
  end
104
104
 
105
- if site.config.dig('hyde_fonts').nil?
106
- @site.config['hyde_fonts'] = @config
105
+ if site.config.dig("hyde_fonts").nil?
106
+ @site.config["hyde_fonts"] = @config
107
107
  end
108
108
  end
109
109
 
110
110
  def generate
111
- return unless config('enable') == true
111
+ return unless config("enable") == true
112
112
  # get faces from jekyll data file
113
113
  font_data = Hyde::FontData.new(data)
114
114
 
115
115
  # handle font providers
116
116
  for face in font_data.faces
117
- Jekyll.logger.info('Fonts:', "Preparing #{face.name}")
117
+ Jekyll.logger.info("Fonts:", "Preparing #{face.name}")
118
118
 
119
119
  case face.provider
120
- when 'google'
120
+ when "google"
121
121
  Hyde::FontProviderGoogle.new(@site, @config).fetch(face)
122
- when 'local'
122
+ when "local"
123
123
  # TODO handle local fonts
124
124
  # Hyde::FontProviderLocal.new(@site, @config).fetch(face)
125
125
  end
@@ -127,26 +127,26 @@ module Hyde
127
127
 
128
128
  css = font_data.faces.map { |face| face.css }
129
129
  # generate static file containing face css rulesets
130
- css_file = Hyde::GeneratedCssFile.new(@site, config('file_output_path'), config('css_output_name'))
130
+ css_file = Hyde::GeneratedCssFile.new(@site, config("file_output_path"), config("css_output_name"))
131
131
  css_file.file_contents = minify(css.join("\n"))
132
132
 
133
133
  @site.static_files << css_file
134
134
  end
135
135
 
136
- private
136
+ private
137
137
 
138
- def config(*keys)
139
- @config.dig(*keys)
138
+ def config(*)
139
+ @config.dig(*)
140
140
  end
141
141
 
142
142
  def data
143
- @site.data.dig(config('data_source_name'), 'fonts')
143
+ @site.data.dig(config("data_source_name"), "fonts")
144
144
  end
145
145
 
146
146
  def minify(css)
147
- return css if config('css_minify') == false
147
+ return css if config("css_minify") == false
148
148
 
149
- converter_config = { 'sass' => { 'style' => 'compressed' } }
149
+ converter_config = {"sass" => {"style" => "compressed"}}
150
150
 
151
151
  Jekyll::Converters::Scss.new(converter_config).convert(css)
152
152
  end
@@ -1,5 +1,5 @@
1
- require 'uri'
2
- require 'net/http'
1
+ require "uri"
2
+ require "net/http"
3
3
 
4
4
  module Hyde
5
5
  class FontProviderGoogle
@@ -13,10 +13,10 @@ module Hyde
13
13
 
14
14
  begin
15
15
  uri_payload = Net::HTTP.get(face_uri, {
16
- "User-Agent": 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/117.0'
16
+ "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/117.0"
17
17
  })
18
18
  rescue
19
- Jekyll.logger.warn('Fonts Warning:', 'Unable to reach Google Fonts service.')
19
+ Jekyll.logger.warn("Fonts Warning:", "Unable to reach Google Fonts service.")
20
20
  return
21
21
  end
22
22
 
@@ -30,14 +30,14 @@ module Hyde
30
30
  end
31
31
  end
32
32
 
33
- private
33
+ private
34
34
 
35
35
  def face_uri
36
- google_uri_base = 'https://fonts.googleapis.com/css2'
37
- params = [['display', 'swap']]
38
- params.push(['family', @face.to_s])
36
+ google_uri_base = "https://fonts.googleapis.com/css2"
37
+ params = [["display", "swap"]]
38
+ params.push(["family", @face.to_s])
39
39
 
40
- uri = google_uri_base + '?' + params.map { |param| param.join('=') }.join('&')
40
+ uri = google_uri_base + "?" + params.map { |param| param.join("=") }.join("&")
41
41
 
42
42
  URI(uri)
43
43
  end
@@ -50,21 +50,21 @@ module Hyde
50
50
 
51
51
  def fetch_font_from_ruleset(ruleset)
52
52
  filename = ruleset.filename
53
- file = Hyde::GeneratedFontFile.new(@site, @config['file_output_path'], filename)
53
+ file = Hyde::GeneratedFontFile.new(@site, @config["file_output_path"], filename)
54
54
 
55
- destination_fname = file.destination('./')
55
+ destination_fname = file.destination("./")
56
56
 
57
- if @config['keep_files'] == true
58
- Jekyll.logger.debug('Fonts:', "file #{filename} already exists.")
57
+ if @config["keep_files"] == true
58
+ Jekyll.logger.debug("Fonts:", "file #{filename} already exists.")
59
59
  return if File.exist?(destination_fname)
60
60
  end
61
61
 
62
- if @config['fetch_fonts'] == false
63
- Jekyll.logger.warn('Fonts:', "fetch disabled, no local version of #{filename} found.")
62
+ if @config["fetch_fonts"] == false
63
+ Jekyll.logger.warn("Fonts:", "fetch disabled, no local version of #{filename} found.")
64
64
  return
65
65
  end
66
66
 
67
- Jekyll.logger.debug('Fonts:', "downloading #{@face.name} from #{@face.provider}")
67
+ Jekyll.logger.debug("Fonts:", "downloading #{@face.name} from #{@face.provider}")
68
68
  font_uri_payload = Net::HTTP.get(ruleset.uri)
69
69
  file.file_contents = font_uri_payload
70
70
 
@@ -72,7 +72,7 @@ module Hyde
72
72
  end
73
73
 
74
74
  def rewrite_ruleset_to_local(ruleset)
75
- ruleset.local_ruleset(@config['file_output_path'])
75
+ ruleset.local_ruleset(@config["file_output_path"])
76
76
  end
77
77
  end
78
78
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyde-fonts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory Daynes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-05 00:00:00.000000000 Z
11
+ date: 2023-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -37,7 +37,7 @@ executables: []
37
37
  extensions: []
38
38
  extra_rdoc_files: []
39
39
  files:
40
- - lib/hyde_fonts.rb
40
+ - lib/hyde-fonts.rb
41
41
  - lib/hyde_fonts/font_data.rb
42
42
  - lib/hyde_fonts/font_face.rb
43
43
  - lib/hyde_fonts/font_ruleset.rb
@@ -65,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
65
  - !ruby/object:Gem::Version
66
66
  version: '0'
67
67
  requirements: []
68
- rubygems_version: 3.4.6
68
+ rubygems_version: 3.4.10
69
69
  signing_key:
70
70
  specification_version: 4
71
71
  summary: Plugin for jekyll to manage google fonts
data/lib/hyde_fonts.rb DELETED
@@ -1,8 +0,0 @@
1
- module Hyde
2
- class Fonts
3
- VERSION = "0.3.0"
4
- end
5
- end
6
-
7
- require_relative './hyde_fonts/hyde_fonts.rb'
8
-