jekyll-notion 1.2.0 → 2.2.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.
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