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 +4 -4
- data/README.md +69 -62
- data/lib/jekyll-notion/document_without_a_file.rb +1 -1
- data/lib/jekyll-notion/{generator_factory.rb → factories/database_factory.rb} +2 -2
- data/lib/jekyll-notion/factories/page_factory.rb +14 -0
- data/lib/jekyll-notion/generator.rb +25 -11
- data/lib/jekyll-notion/{abstract_generator.rb → generators/abstract_generator.rb} +0 -0
- data/lib/jekyll-notion/{collection_generator.rb → generators/collection_generator.rb} +1 -1
- data/lib/jekyll-notion/{data_generator.rb → generators/data_generator.rb} +9 -7
- data/lib/jekyll-notion/generators/page_generator.rb +30 -0
- data/lib/jekyll-notion/notion_database.rb +7 -4
- data/lib/jekyll-notion/notion_page.rb +2 -8
- data/lib/jekyll-notion/page_without_a_file.rb +32 -0
- data/lib/jekyll-notion/version.rb +1 -1
- data/lib/jekyll-notion.rb +8 -5
- metadata +28 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e351ae1ce9e4d8b720d052833dd6aafac27a32f39c31997f905daa32a07dcee3
|
4
|
+
data.tar.gz: 81346fb1c4978038e30fd53e3b9f63593e6619eac308ad77fcf261fd50cd33e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
-
##
|
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
|
-
|
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
|
-
|
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
|
-
|
40
|
-
id: 5cfed4de3bdc4f43ae8ba653a7a2219b
|
41
|
+
databases:
|
42
|
+
- id: 5cfed4de3bdc4f43ae8ba653a7a2219b
|
41
43
|
```
|
42
44
|
|
43
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
71
|
-
id: e42383cd49754897b967ce453760499f
|
72
|
-
|
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
|
-
|
83
|
+
### Pages
|
76
84
|
|
77
|
-
|
85
|
+
Individual Notion pages can also be loaded into Jekyll. Just define the `page` property as follows.
|
78
86
|
|
79
|
-
```
|
80
|
-
|
87
|
+
```yml
|
88
|
+
notion:
|
89
|
+
pages:
|
90
|
+
- id: 5cfed4de3bdc4f43ae8ba653a7a2219b
|
81
91
|
```
|
82
92
|
|
83
|
-
|
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
|
-
|
103
|
+
The filename of the generated page is the notion page title. Check [below](#page-filename) for more info.
|
102
104
|
|
103
|
-
|
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
|
-
|
107
|
+
### Data
|
106
108
|
|
107
|
-
|
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
|
-
|
115
|
-
id:
|
116
|
-
|
117
|
-
|
118
|
-
|
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
|
-
|
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
|
-
|
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
|
166
|
+
There are two kinds of documents in Jekyll: posts and others.
|
160
167
|
|
161
|
-
When the
|
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
|
-
|
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(
|
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
|
4
|
+
class DatabaseFactory
|
5
5
|
def self.for(notion_resource:, site:, plugin:)
|
6
|
-
if notion_resource.
|
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? ||
|
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
|
22
|
-
|
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
|
26
|
-
|
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
|
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
|
-
|
58
|
+
config_databases.each do |db_config|
|
45
59
|
db = NotionDatabase.new(:config => db_config)
|
46
|
-
|
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
|
-
|
65
|
+
config_pages.each do |page_config|
|
52
66
|
page = NotionPage.new(:config => page_config)
|
53
|
-
|
67
|
+
PageFactory.for(:notion_resource => page, :site => @site, :plugin => self).generate
|
54
68
|
end
|
55
69
|
end
|
56
70
|
|
File without changes
|
@@ -57,7 +57,7 @@ module JekyllNotion
|
|
57
57
|
"collections", @notion_resource.collection_name, "output"
|
58
58
|
)
|
59
59
|
Jekyll.logger.info("",
|
60
|
-
"
|
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
|
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
|
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
|
-
|
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(:
|
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
|
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
|
-
{ :
|
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(
|
10
|
-
:blocks => @notion.block_children(
|
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
|
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 :
|
17
|
-
autoload :
|
18
|
-
autoload :
|
19
|
-
autoload :
|
20
|
-
autoload :
|
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:
|
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-
|
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:
|
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:
|
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:
|
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:
|
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/
|
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
|
-
|
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
|