jekyll-notion 1.2.0 → 2.2.0

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: ac8561afc4f42d433ae33d4baafb38e9eaf7a34167513bf628eef849c3e773b7
4
- data.tar.gz: 7c55ac94b8490943d981f3c25d36d0b3993680614ba25cdb16be78f07b5e028a
3
+ metadata.gz: e351ae1ce9e4d8b720d052833dd6aafac27a32f39c31997f905daa32a07dcee3
4
+ data.tar.gz: 81346fb1c4978038e30fd53e3b9f63593e6619eac308ad77fcf261fd50cd33e8
5
5
  SHA512:
6
- metadata.gz: d402be5b38a3dc4cae78daf0e95140ecc0b593db1091ac325f262a68024236f50639c25f1bee42db6cee025122bfb82d2318f312909278509c66f2375062d4d1
7
- data.tar.gz: c22e49f752ba7a848c6329e55c57707c6bc9d59e510f5407a112448335a9a36b877c9abe4e94cf30fd383db29defd5fafbba14558742417375c4df4990f91a90
6
+ metadata.gz: ea596442ebf4c76a03192ddab3bf6a785de225aeb6fb35c2c642f8b5026e93a4b559d99f5789b5c9e7bae66bbf1ef959cb952480f4624968bc335065c507eabd
7
+ data.tar.gz: b073d9dd0b6032fd323f98002aa2a5202fda0713b027908e2dc7f76541264ae92a4f3fbccb69f93c8c1a4b6c48d87bbf7b1415254ed92772fe3d42be07ef38b0
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # jekyll-notion
2
2
 
3
- Import notion pages to a jekyll collection or data.
3
+ Import notion pages to jekyll.
4
4
 
5
5
  ## Installation
6
6
 
@@ -22,30 +22,29 @@ plugins:
22
22
  - jekyll-notion
23
23
  ```
24
24
 
25
- ## Setup
25
+ ## Usage
26
26
 
27
27
  Before using the gem create an integration and generate a secret token. Check [notion getting started guide](https://developers.notion.com/docs/getting-started) to learn more.
28
28
 
29
- Export the notion secret token in an environment variable named `NOTION_TOKEN`.
29
+ Once you have youe secret, export it in an environment variable named `NOTION_TOKEN`.
30
30
 
31
31
  ```bash
32
32
  $ export NOTION_TOKEN=<secret_...>
33
33
  ```
34
34
 
35
- Once your [notion database](https://www.notion.so/help/intro-to-databases) has been shared, specify the database `id` in your `_config.yml` as follows.
35
+ ### Databases
36
+
37
+ Once the [notion database](https://www.notion.so/help/intro-to-databases) has been shared, specify the database `id` in the `_config.yml` file as follows.
36
38
 
37
39
  ```yml
38
40
  notion:
39
- database:
40
- id: 5cfed4de3bdc4f43ae8ba653a7a2219b
41
+ databases:
42
+ - id: 5cfed4de3bdc4f43ae8ba653a7a2219b
41
43
  ```
42
44
 
43
- After running `jekyll build` (or `serve`) command, the `posts` collection is loaded with pages of the notion database specified in the configuration.
44
-
45
-
46
- ### Mutiple dabatases
45
+ By default, the notion pages contained in the database will be loaded into the `posts` collection.
47
46
 
48
- You can also define multiple databases as follows.
47
+ We can also define __multiple databases__ as follows.
49
48
 
50
49
  ```yml
51
50
  collections:
@@ -61,63 +60,86 @@ notion:
61
60
  collection: films
62
61
  ```
63
62
 
64
- ### Data
63
+ After running `jekyll build` (or `serve`) command, the `posts`, `recipes` and `films` collections will be loaded with pages from the notion databases.
64
+
65
+ #### Database options
65
66
 
66
- Instead of storing notion pages in a collection, you can also map to the data object. Use the `data` property instead of `collection`.
67
+ Each dabatase support the following options.
68
+
69
+ * `id`: the notion database unique identifier,
70
+ * `collection`: the collection each page belongs to (posts by default),
71
+ * `filter`: the database [filter property](https://developers.notion.com/reference/post-database-query-filter),
72
+ * `sorts`: the database [sorts criteria](https://developers.notion.com/reference/post-database-query-sort),
67
73
 
68
74
  ```yml
69
75
  notion:
70
- database:
71
- id: e42383cd49754897b967ce453760499f
72
- data: films
76
+ databases:
77
+ - id: e42383cd49754897b967ce453760499f
78
+ collection: posts
79
+ filter: { "property": "Published", "checkbox": { "equals": true } }
80
+ sorts: [{ "timestamp": "created_time", "direction": "ascending" }]
73
81
  ```
74
82
 
75
- Page properties and body are stored as a hash data.
83
+ ### Pages
76
84
 
77
- As a particular characteristic, the page is stored in a key named `content`.
85
+ Individual Notion pages can also be loaded into Jekyll. Just define the `page` property as follows.
78
86
 
79
- ```html
80
- <p>{{ site.data.films.content }}</p>
87
+ ```yml
88
+ notion:
89
+ pages:
90
+ - id: 5cfed4de3bdc4f43ae8ba653a7a2219b
81
91
  ```
82
92
 
83
- The rest of properties as mapped as expected.
84
-
85
- ### Pages
86
-
87
- Individual Notion pages can also be mapped to data. Just define the `pages` or `page` property as follows.
93
+ As databases, we can set up multiple pages.
88
94
 
89
95
  ```yaml
90
96
  notion:
91
97
  pages:
92
98
  - id: e42383cd49754897b967ce453760499f
93
- data: about
94
99
  - id: b0e688e199af4295ae80b67eb52f2e2f
95
- data: contact
96
100
  - id: 2190450d4cb34739a5c8340c4110fe21
97
- data: footer
98
-
99
101
  ```
100
102
 
101
- _This feature is only available for data._
103
+ The filename of the generated page is the notion page title. Check [below](#page-filename) for more info.
102
104
 
103
- ### Database options
105
+ All properties assigned to a notion page will be interpreted by jekyll as front matter. For example, if the [permalink](https://jekyllrb.com/docs/permalinks/#front-matter) property is set to `/about/` in the notion page, jekyll will use it to create the corresponding path at the output directory at `/about/index.html`.
104
106
 
105
- Each dabatase support the following options.
107
+ ### Data
106
108
 
107
- * `id`: the notion database unique identifier,
108
- * `collection`: the collection each page belongs to (posts by default),
109
- * `filter`: the database query filter,
110
- * `sort`: the database query sort,
109
+ Instead of storing the notion pages in a collection or in the pages list, you can assign them to the data object.Just declare the `data` property next to the page or database id.
111
110
 
112
111
  ```yml
113
112
  notion:
114
- database:
115
- id: e42383cd49754897b967ce453760499f
116
- collection: posts
117
- filter: { "property": "Published", "checkbox": { "equals": true } }
118
- sort: { "property": "Last ordered", "direction": "ascending" }
113
+ databases:
114
+ - id: b0e688e199af4295ae80b67eb52f2e2f
115
+ - id: e42383cd49754897b967ce453760499f
116
+ data: films
117
+ pages:
118
+ - id: e42383cd49754897b967ce453760499f
119
+ - id: b0e688e199af4295ae80b67eb52f2e2f
120
+ data: about
121
+ ```
122
+
123
+ Page properties and body of the notion page are stored as a hash object.
124
+
125
+ Data objects can be accessed as follows.
126
+
127
+ ```html
128
+ <ul>
129
+ {% for film in site.data.films %}
130
+ <li>{{ film.title }}</li>
131
+ {% endfor %}
132
+ </ul>
119
133
  ```
120
134
 
135
+ Notice, the page body is stored in the key `content`.
136
+
137
+ ```html
138
+ {{ site.data.about.content }}
139
+ ```
140
+
141
+ The rest of properties are mapped as expected. For more info go to [notion properties](#notion-properties).
142
+
121
143
  ### Watch
122
144
 
123
145
  By default, databases are only requested during the first build. Subsequent builds use the results from the cache.
@@ -127,41 +149,26 @@ Set `fetch_on_watch` to true to allow request on each rebuild.
127
149
  ```yml
128
150
  notion:
129
151
  fetch_on_watch: true
130
- database:
131
- id: e42383cd49754897b967ce453760499f
152
+ databases:
153
+ - id: e42383cd49754897b967ce453760499f
132
154
  ```
133
155
 
134
156
  And that's all. Each page in the notion database will be included in the selected collection.
135
157
 
136
158
  ## Notion properties
137
159
 
138
- Below, default properties per notion page are set for each document front matter.
139
-
140
- Notion page properties are `id`, `title`, `created_time`, `last_edited_time`, `icon`, `cover` and `archived`.
141
-
142
- ```
143
- ---
144
- id: e42383cd-4975-4897-b967-ce453760499f
145
- title: An amazing post
146
- cover: https://img.bank.sh/an_image.jpg
147
- date: 2022-01-23T12:31:00.000Z
148
- icon: 💥
149
- archived: false
150
- ---
151
- ```
152
-
153
- In addition to default properties, custom properties are also appended to front matter.
160
+ Notion page properties are set for each document in the front matter.
154
161
 
155
162
  Please, refer to the [notion_to_md](https://github.com/emoriarty/notion_to_md/) gem to learn more.
156
163
 
157
164
  ## Page filename
158
165
 
159
- There are two kinds of collections: posts and others.
166
+ There are two kinds of documents in Jekyll: posts and others.
160
167
 
161
- When the collection is posts, the filename format contains the `created_time` property plus the page title as specified in [jekyll docs](https://jekyllrb.com/docs/posts/#creating-posts).
168
+ When the document is a post, the filename format contains the `created_time` property plus the page title as specified in [jekyll docs](https://jekyllrb.com/docs/posts/#creating-posts).
162
169
 
163
170
  ```
164
171
  YEAR-MONTH-DAY-title.MARKUP
165
172
  ```
166
173
 
167
- Any other collection, the filename is the page title.
174
+ The filename for any other document is the page title.
@@ -2,7 +2,7 @@
2
2
 
3
3
  module JekyllNotion
4
4
  class DocumentWithoutAFile < Jekyll::Document
5
- def read_content(_new_content, **_opts)
5
+ def read_content(**_opts)
6
6
  if content =~ YAML_FRONT_MATTER_REGEXP
7
7
  self.content = Regexp.last_match.post_match
8
8
  data_file = SafeYAML.load(Regexp.last_match(1))
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JekyllNotion
4
- class GeneratorFactory
4
+ class DatabaseFactory
5
5
  def self.for(notion_resource:, site:, plugin:)
6
- if notion_resource.is_a?(NotionDatabase) && notion_resource.data_name.nil?
6
+ if notion_resource.data_name.nil?
7
7
  CollectionGenerator.new(:notion_resource => notion_resource, :site => site,
8
8
  :plugin => plugin)
9
9
  else
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JekyllNotion
4
+ class PageFactory
5
+ def self.for(notion_resource:, site:, plugin:)
6
+ if notion_resource.data_name.nil?
7
+ PageGenerator.new(:notion_resource => notion_resource, :site => site,
8
+ :plugin => plugin)
9
+ else
10
+ DataGenerator.new(:notion_resource => notion_resource, :site => site, :plugin => plugin)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -9,21 +9,31 @@ module JekyllNotion
9
9
 
10
10
  return unless notion_token? && config?
11
11
 
12
- if fetch_on_watch? || collections_and_data_empty?
12
+ if fetch_on_watch? || cache_empty?
13
13
  read_notion_databases
14
14
  read_notion_pages
15
15
  else
16
16
  collections.each_pair { |key, val| @site.collections[key] = val }
17
17
  data.each_pair { |key, val| @site.data[key] = val }
18
+ pages.each { |page| @site.pages << page }
18
19
  end
19
20
  end
20
21
 
21
- def databases
22
- config["databases"] || [config["database"]]
22
+ def config_databases
23
+ if config["database"]
24
+ Jekyll.logger.warn("Jekyll Notion:",
25
+ "database property is deprecated, use databases instead.")
26
+ end
27
+
28
+ config["databases"] || []
23
29
  end
24
30
 
25
- def pages
26
- config["pages"] || [config["page"]]
31
+ def config_pages
32
+ if config["page"]
33
+ Jekyll.logger.warn("Jekyll Notion:",
34
+ "page property is deprecated, use pages instead.")
35
+ end
36
+ config["pages"] || []
27
37
  end
28
38
 
29
39
  def collections
@@ -34,23 +44,27 @@ module JekyllNotion
34
44
  @data ||= {}
35
45
  end
36
46
 
47
+ def pages
48
+ @pages ||= []
49
+ end
50
+
37
51
  protected
38
52
 
39
- def collections_and_data_empty?
40
- collections.empty? && data.empty?
53
+ def cache_empty?
54
+ collections.empty? && pages.empty? && data.empty?
41
55
  end
42
56
 
43
57
  def read_notion_databases
44
- databases.each do |db_config|
58
+ config_databases.each do |db_config|
45
59
  db = NotionDatabase.new(:config => db_config)
46
- GeneratorFactory.for(:notion_resource => db, :site => @site, :plugin => self).generate
60
+ DatabaseFactory.for(:notion_resource => db, :site => @site, :plugin => self).generate
47
61
  end
48
62
  end
49
63
 
50
64
  def read_notion_pages
51
- pages.each do |page_config|
65
+ config_pages.each do |page_config|
52
66
  page = NotionPage.new(:config => page_config)
53
- GeneratorFactory.for(:notion_resource => page, :site => @site, :plugin => self).generate
67
+ PageFactory.for(:notion_resource => page, :site => @site, :plugin => self).generate
54
68
  end
55
69
  end
56
70
 
@@ -57,7 +57,7 @@ module JekyllNotion
57
57
  "collections", @notion_resource.collection_name, "output"
58
58
  )
59
59
  Jekyll.logger.info("",
60
- "Path => #{collection.docs.last.path}")
60
+ "URL => #{collection.docs.last.url}")
61
61
  end
62
62
  Jekyll.logger.debug("", "Props => #{collection.docs.last.data.keys.inspect}")
63
63
  end
@@ -28,7 +28,7 @@ module JekyllNotion
28
28
  # Returns String the converted content.
29
29
  def convert(page)
30
30
  converters.reduce(page.body) do |output, converter|
31
- converter.convert output
31
+ converter.convert(output)
32
32
  rescue StandardError => e
33
33
  Jekyll.logger.error "Conversion error:",
34
34
  "#{converter.class} encountered an error while "\
@@ -44,14 +44,16 @@ module JekyllNotion
44
44
 
45
45
  def log_pages
46
46
  if data.is_a?(Array)
47
- data.each do |page|
48
- Jekyll.logger.info("Jekyll Notion:", "Page => #{page["title"]}")
49
- Jekyll.logger.debug("", "Props => #{page.keys.inspect}")
50
- end
47
+ data.each { |page| log_page(page, Array.to_s) }
51
48
  else
52
- Jekyll.logger.info("Jekyll Notion:", "Page => #{data["title"]}")
53
- Jekyll.logger.debug("", "Props => #{data.keys.inspect}")
49
+ log_page(data, Hash.to_s)
54
50
  end
55
51
  end
52
+
53
+ def log_page(page, type)
54
+ Jekyll.logger.info("Jekyll Notion:", "Page => #{page["title"]}")
55
+ Jekyll.logger.info("", "#{type} => site.data.#{@notion_resource.data_name}")
56
+ Jekyll.logger.debug("", "Props => #{page.keys.inspect}")
57
+ end
56
58
  end
57
59
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JekyllNotion
4
+ class PageGenerator < AbstractGenerator
5
+ def generate
6
+ notion_page = @notion_resource.fetch
7
+ unless notion_page.nil?
8
+ page = make_page(notion_page)
9
+ @site.pages << page
10
+ log_page(notion_page)
11
+ @plugin.pages << page
12
+ end
13
+ end
14
+
15
+ def make_page(notion_page)
16
+ JekyllNotion::PageWithoutAFile.new(@site, @site.source, "", "#{notion_page.title}.md",
17
+ make_md)
18
+ end
19
+
20
+ def log_page(notion_page)
21
+ Jekyll.logger.info("Jekyll Notion:", "Page => #{notion_page.title}")
22
+ Jekyll.logger.info("", "URL => #{@site.pages.last.url}")
23
+ Jekyll.logger.debug("", "Props => #{notion_page.props.keys.inspect}")
24
+ end
25
+
26
+ def make_md
27
+ NotionToMd::Converter.new(:page_id => @notion_resource.id).convert(:frontmatter => true)
28
+ end
29
+ end
30
+ end
@@ -7,7 +7,7 @@ module JekyllNotion
7
7
  return [] unless id?
8
8
 
9
9
  @fetch ||= @notion.database_query(query)[:results].map do |page|
10
- NotionToMd::Page.new(:page => page, :blocks => @notion.block_children(:id => page.id))
10
+ NotionToMd::Page.new(:page => page, :blocks => @notion.block_children(:block_id => page.id))
11
11
  end
12
12
  end
13
13
 
@@ -15,8 +15,11 @@ module JekyllNotion
15
15
  config["filter"]
16
16
  end
17
17
 
18
- def sort
19
- config["sort"]
18
+ def sorts
19
+ if config["sort"]
20
+ Jekyll.logger.warn("Jekyll Notion:", "sort property is deprecated, use sorts instead")
21
+ end
22
+ config["sorts"]
20
23
  end
21
24
 
22
25
  def collection_name
@@ -30,7 +33,7 @@ module JekyllNotion
30
33
  private
31
34
 
32
35
  def query
33
- { :id => id, :filter => filter, :sort => sort }.compact
36
+ { :database_id => id, :filter => filter, :sorts => sorts }.compact
34
37
  end
35
38
  end
36
39
  end
@@ -6,8 +6,8 @@ module JekyllNotion
6
6
  def fetch
7
7
  return nil unless id?
8
8
 
9
- @fetch ||= NotionToMd::Page.new(:page => @notion.page(query),
10
- :blocks => @notion.block_children(query))
9
+ @fetch ||= NotionToMd::Page.new(:page => @notion.page({ :page_id => id }),
10
+ :blocks => @notion.block_children({ :block_id => id }))
11
11
  end
12
12
 
13
13
  def data_name
@@ -17,11 +17,5 @@ module JekyllNotion
17
17
  def collection_name
18
18
  nil
19
19
  end
20
-
21
- private
22
-
23
- def query
24
- { :id => id }
25
- end
26
20
  end
27
21
  end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JekyllNotion
4
+ class PageWithoutAFile < Jekyll::Page
5
+ def initialize(site, base, dir, name, new_content)
6
+ self.content = new_content
7
+ super(site, base, dir, name)
8
+ end
9
+
10
+ def read_yaml(base, name, _opts = {})
11
+ filename = @path || site.in_source_dir(base, name)
12
+ Jekyll.logger.debug "Reading:", relative_path
13
+
14
+ begin
15
+ if content =~ Jekyll::Document::YAML_FRONT_MATTER_REGEXP
16
+ self.content = Regexp.last_match.post_match
17
+ self.data = SafeYAML.load(Regexp.last_match(1))
18
+ end
19
+ rescue Psych::SyntaxError => e
20
+ Jekyll.logger.warn "YAML Exception reading page #{name}: #{e.message}"
21
+ raise e if site.config["strict_front_matter"]
22
+ end
23
+
24
+ self.data ||= {}
25
+
26
+ validate_data! filename
27
+ validate_permalink! filename
28
+
29
+ self.data
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JekyllNotion
4
- VERSION = "1.2.0"
4
+ VERSION = "2.2.0"
5
5
  end
data/lib/jekyll-notion.rb CHANGED
@@ -13,12 +13,15 @@ Notion.configure do |config|
13
13
  end
14
14
 
15
15
  module JekyllNotion
16
- autoload :GeneratorFactory, "jekyll-notion/generator_factory"
17
- autoload :AbstractGenerator, "jekyll-notion/abstract_generator"
18
- autoload :AbstractNotionResource, "jekyll-notion/abstract_notion_resource"
19
- autoload :CollectionGenerator, "jekyll-notion/collection_generator"
20
- autoload :DataGenerator, "jekyll-notion/data_generator"
16
+ autoload :DatabaseFactory, "jekyll-notion/factories/database_factory"
17
+ autoload :PageFactory, "jekyll-notion/factories/page_factory"
18
+ autoload :AbstractGenerator, "jekyll-notion/generators/abstract_generator"
19
+ autoload :DataGenerator, "jekyll-notion/generators/data_generator"
20
+ autoload :PageGenerator, "jekyll-notion/generators/page_generator"
21
+ autoload :CollectionGenerator, "jekyll-notion/generators/collection_generator"
21
22
  autoload :DocumentWithoutAFile, "jekyll-notion/document_without_a_file"
23
+ autoload :PageWithoutAFile, "jekyll-notion/page_without_a_file"
24
+ autoload :AbstractNotionResource, "jekyll-notion/abstract_notion_resource"
22
25
  autoload :NotionDatabase, "jekyll-notion/notion_database"
23
26
  autoload :NotionPage, "jekyll-notion/notion_page"
24
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-notion
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Enrique Arias
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-09 00:00:00.000000000 Z
11
+ date: 2022-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -36,28 +36,28 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: 1.0.0
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0'
46
+ version: 1.0.0
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: notion_to_md
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.0'
53
+ version: 1.2.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '1.0'
60
+ version: 1.2.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: bundler
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -100,6 +100,20 @@ dependencies:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: 0.12.0
103
+ - !ruby/object:Gem::Dependency
104
+ name: simplecov
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 0.21.0
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 0.21.0
103
117
  description:
104
118
  email:
105
119
  - emoriarty81@gmail.com
@@ -110,15 +124,18 @@ extra_rdoc_files:
110
124
  files:
111
125
  - README.md
112
126
  - lib/jekyll-notion.rb
113
- - lib/jekyll-notion/abstract_generator.rb
114
127
  - lib/jekyll-notion/abstract_notion_resource.rb
115
- - lib/jekyll-notion/collection_generator.rb
116
- - lib/jekyll-notion/data_generator.rb
117
128
  - lib/jekyll-notion/document_without_a_file.rb
129
+ - lib/jekyll-notion/factories/database_factory.rb
130
+ - lib/jekyll-notion/factories/page_factory.rb
118
131
  - lib/jekyll-notion/generator.rb
119
- - lib/jekyll-notion/generator_factory.rb
132
+ - lib/jekyll-notion/generators/abstract_generator.rb
133
+ - lib/jekyll-notion/generators/collection_generator.rb
134
+ - lib/jekyll-notion/generators/data_generator.rb
135
+ - lib/jekyll-notion/generators/page_generator.rb
120
136
  - lib/jekyll-notion/notion_database.rb
121
137
  - lib/jekyll-notion/notion_page.rb
138
+ - lib/jekyll-notion/page_without_a_file.rb
122
139
  - lib/jekyll-notion/version.rb
123
140
  homepage: https://github.com/emoriarty/jekyll-notion
124
141
  licenses:
@@ -139,8 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
156
  - !ruby/object:Gem::Version
140
157
  version: '0'
141
158
  requirements: []
142
- rubyforge_project:
143
- rubygems_version: 2.7.3
159
+ rubygems_version: 3.1.6
144
160
  signing_key:
145
161
  specification_version: 4
146
162
  summary: A Jekyll plugin to generate pages from Notion