jekyll-notion 0.1.0 → 0.1.4
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 +4 -4
- data/README.md +9 -3
- data/lib/jekyll-notion/generator.rb +17 -3
- data/lib/jekyll-notion/notion_page.rb +6 -3
- data/lib/jekyll-notion/version.rb +1 -1
- data/lib/jekyll-notion.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b38cf8b23326c2c3194070cf8524128f90b479a7f98f7380eaa0f43d1beaa211
|
4
|
+
data.tar.gz: 359ffd254d24ad6fbc1d3fc5ca4ab389a098fae102577f2ed2ecb9f4b6ee1cb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c2b17935b8c5512650a1eb5bfa2dddfca7aad405ca3482ec2ae8a5cb2b4157b70df1be10956075c275d4ab839c1c3156366e85c533c64e34c206167204878de
|
7
|
+
data.tar.gz: 2047c8d35e0713edc09253fb44ecd20bc364a6daa4a21620f9431951b5a41ac7c55c2171441364c3b21e474d1340bef2129612b2069b571930f9797c35d10c06
|
data/README.md
CHANGED
@@ -36,6 +36,7 @@ Once your notion database has been shared, specify the `id` in your `_config.yml
|
|
36
36
|
|
37
37
|
```yml
|
38
38
|
notion:
|
39
|
+
fetch_on_watch: false
|
39
40
|
database:
|
40
41
|
id: b91d5...
|
41
42
|
collection: posts
|
@@ -45,13 +46,16 @@ notion:
|
|
45
46
|
layout: post
|
46
47
|
```
|
47
48
|
|
48
|
-
|
49
|
+
`fetch_on_watch` when set to `true` it allows fetching notion pages on each rebuild. By default is off, pages are only retrieved in the first build.
|
50
|
+
|
51
|
+
`database` properties are:
|
52
|
+
* `id`: the notion database unique identifier,
|
49
53
|
* `collection`: the collection each page belongs to (posts by default),
|
50
54
|
* `filter`: the database query filter,
|
51
55
|
* `sort`: the database query sort,
|
52
56
|
* `frontmatter`: additional frontmatter to append to each page in the collection.
|
53
57
|
|
54
|
-
Note: Only one database is available.
|
58
|
+
Note: Only one notion database is available.
|
55
59
|
|
56
60
|
And that's all. Each page in the notion database will be included in the selected collection.
|
57
61
|
|
@@ -59,6 +63,8 @@ And that's all. Each page in the notion database will be included in the selecte
|
|
59
63
|
|
60
64
|
Below, page notion default properties are set in each page frontmatter.
|
61
65
|
|
66
|
+
Default properties include `title`, created_time`, `last_edited_time`, `icon` and `cover.
|
67
|
+
|
62
68
|
```
|
63
69
|
---
|
64
70
|
id: b2998...
|
@@ -103,7 +109,7 @@ The supported properties are:
|
|
103
109
|
* `email`
|
104
110
|
* `phone_number`
|
105
111
|
|
106
|
-
`
|
112
|
+
`created_by`, `last_edited_by`, `rich_text` as advanced types like `formula`, `relation` and `rollup` are not supported.
|
107
113
|
|
108
114
|
Check notion documentation about [property values](https://developers.notion.com/reference/property-value-object#all-property-values).
|
109
115
|
|
@@ -9,7 +9,11 @@ module JekyllNotion
|
|
9
9
|
|
10
10
|
return unless notion_token? && config?
|
11
11
|
|
12
|
-
|
12
|
+
if fetch_on_watch? || docs.empty?
|
13
|
+
read_notion_database
|
14
|
+
else
|
15
|
+
collection.docs = docs
|
16
|
+
end
|
13
17
|
end
|
14
18
|
|
15
19
|
def read_notion_database
|
@@ -19,6 +23,11 @@ module JekyllNotion
|
|
19
23
|
collection.docs << make_page
|
20
24
|
Jekyll.logger.info("Jekyll Notion:", "New notion page at #{collection.docs.last.path}")
|
21
25
|
end
|
26
|
+
@docs = collection.docs
|
27
|
+
end
|
28
|
+
|
29
|
+
def docs
|
30
|
+
@docs ||= []
|
22
31
|
end
|
23
32
|
|
24
33
|
def make_page
|
@@ -55,7 +64,8 @@ module JekyllNotion
|
|
55
64
|
|
56
65
|
def make_filename
|
57
66
|
if collection_name == "posts"
|
58
|
-
"#{current_page.created_date}-#{current_page.title
|
67
|
+
"#{current_page.created_date}-#{Jekyll::Utils.slugify(current_page.title,
|
68
|
+
:mode => "latin")}.md"
|
59
69
|
else
|
60
70
|
"#{current_page.title.downcase.parameterize}.md"
|
61
71
|
end
|
@@ -66,13 +76,17 @@ module JekyllNotion
|
|
66
76
|
end
|
67
77
|
|
68
78
|
def collection
|
69
|
-
@
|
79
|
+
@site.collections[collection_name]
|
70
80
|
end
|
71
81
|
|
72
82
|
def config
|
73
83
|
@config ||= @site.config["notion"] || {}
|
74
84
|
end
|
75
85
|
|
86
|
+
def fetch_on_watch?
|
87
|
+
config["fetch_on_watch"].present?
|
88
|
+
end
|
89
|
+
|
76
90
|
def notion_token?
|
77
91
|
if ENV["NOTION_TOKEN"].nil? || ENV["NOTION_TOKEN"].empty?
|
78
92
|
Jekyll.logger.warn("Jekyll Notion:", "NOTION_TOKEN not provided. Cannot read from Notion.")
|
@@ -73,7 +73,8 @@ module JekyllNotion
|
|
73
73
|
class CustomProperty
|
74
74
|
class << self
|
75
75
|
def multi_select(prop)
|
76
|
-
prop.multi_select.map(&:name).join(", ")
|
76
|
+
multi_select = prop.multi_select.map(&:name).join(", ")
|
77
|
+
"[#{multi_select}]"
|
77
78
|
end
|
78
79
|
|
79
80
|
def select(prop)
|
@@ -81,11 +82,13 @@ module JekyllNotion
|
|
81
82
|
end
|
82
83
|
|
83
84
|
def people(prop)
|
84
|
-
prop.people.map(&:name).join(", ")
|
85
|
+
people = prop.people.map(&:name).join(", ")
|
86
|
+
"[#{people}]"
|
85
87
|
end
|
86
88
|
|
87
89
|
def files(prop)
|
88
|
-
prop.files.map { |f| f.file.url }.join(", ")
|
90
|
+
files = prop.files.map { |f| f.file.url }.join(", ")
|
91
|
+
"[#{files}]"
|
89
92
|
end
|
90
93
|
|
91
94
|
def phone_number(prop)
|
data/lib/jekyll-notion.rb
CHANGED
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: 0.1.
|
4
|
+
version: 0.1.4
|
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-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|