hugo-notion 0.1.0.pre.alpha.7 → 0.1.0.pre.alpha.8
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 +7 -1
- data/bin/huno +40 -12
- data/lib/hugo_notion/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11cfde333809056eeb23f2dbbb7132c6f10ad218618a54261413888d3d726e65
|
4
|
+
data.tar.gz: 95e38034602fb742ea75ac4240fe47d310de9d1cb4c21cf837763b47205d7cdf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8facb0e0f8dd9abd697c23d39a3cabf3dca75adc4569e8299134a32b2c55094d2f17baf592acb9fa69e544127aa9c82fe0bb24afba9133b2dcf8a19fcdcfc25b
|
7
|
+
data.tar.gz: e1f850f15f4659593b7712e776387763f6b96f0dc6f446eb03a78f86d991197f2af18567403bca8a00c471b80dd7e0b5d539d4fd36c6ed256d2c9a5d461eb112
|
data/README.md
CHANGED
@@ -2,13 +2,19 @@
|
|
2
2
|
|
3
3
|
Write in Notion. Publish with Hugo.
|
4
4
|
|
5
|
+
Use Notion as a CMS (Content Management System) for your Hugo site/blog.
|
6
|
+
|
7
|
+
`hugo-notion` is a command line (CLI) tool that syncs your Notion page url to your Hugo site's/blog's `content` directory.
|
8
|
+
|
5
9
|
## Installation
|
6
10
|
|
11
|
+
`hugo-notion` is a Ruby gem. Use the `gem` command to install it
|
12
|
+
|
7
13
|
```
|
8
14
|
gem install hugo-notion --prerelease
|
9
15
|
```
|
10
16
|
|
11
|
-
Installing the `hugo-notion` ruby gem will install the `huno` command
|
17
|
+
Installing the `hugo-notion` ruby gem will install the `huno` command
|
12
18
|
|
13
19
|
## Usage
|
14
20
|
|
data/bin/huno
CHANGED
@@ -1,8 +1,16 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'slop'
|
3
4
|
require 'uri'
|
4
5
|
|
5
|
-
|
6
|
+
default_env_file_path = File.join(Dir.pwd, '.env')
|
7
|
+
opts = Slop.parse do |o|
|
8
|
+
o.integer '-r', '--repeat', default: 10
|
9
|
+
o.string '-e', '--env-file', default: default_env_file_path
|
10
|
+
end
|
11
|
+
|
12
|
+
env_file_path = opts[:env_file]
|
13
|
+
env_file_path = File.expand_path(env_file_path)
|
6
14
|
if File.exist?(env_file_path)
|
7
15
|
require 'dotenv'
|
8
16
|
Dotenv.load(env_file_path)
|
@@ -12,8 +20,8 @@ unless notion_token
|
|
12
20
|
throw "Please create a Notion integration, generate a secret and provide it in the 'NOTION_TOKEN' environment variable"
|
13
21
|
end
|
14
22
|
|
15
|
-
content_notion_url = if
|
16
|
-
|
23
|
+
content_notion_url = if opts.arguments[0]
|
24
|
+
opts.arguments[0]
|
17
25
|
else
|
18
26
|
ENV.fetch('CONTENT_NOTION_URL')
|
19
27
|
end
|
@@ -23,23 +31,43 @@ end
|
|
23
31
|
notion_page_id = URI(content_notion_url).path.match(/-(?<page_id>.*)\z/)['page_id']
|
24
32
|
|
25
33
|
content_dir = File.join(Dir.pwd, 'content')
|
26
|
-
if
|
27
|
-
content_dir =
|
34
|
+
if opts.arguments[1]
|
35
|
+
content_dir = opts.arguments[1]
|
28
36
|
elsif ENV['CONTENT_DIR']
|
29
37
|
content_dir = ENV['CONTENT_DIR']
|
30
38
|
end
|
31
39
|
content_dir = File.expand_path(content_dir, Dir.pwd)
|
32
40
|
|
33
|
-
require_relative '../lib/hugo_notion/synchronizer'
|
34
41
|
def do_exit
|
35
42
|
puts 'Exiting...'
|
36
43
|
exit
|
37
44
|
end
|
38
45
|
Signal.trap("TERM") { do_exit }
|
39
46
|
Signal.trap("INT") { do_exit }
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
47
|
+
|
48
|
+
require_relative '../lib/hugo_notion/synchronizer'
|
49
|
+
|
50
|
+
sync_content = Proc.new do
|
51
|
+
puts "Syncing content from Notion..."
|
52
|
+
Synchronizer.run(
|
53
|
+
notion_page_id: notion_page_id,
|
54
|
+
destination_dir: content_dir
|
55
|
+
)
|
56
|
+
puts "Done."
|
57
|
+
end
|
58
|
+
|
59
|
+
if opts.r?
|
60
|
+
loop do
|
61
|
+
begin
|
62
|
+
sync_content.call
|
63
|
+
sleep opts[:r]
|
64
|
+
rescue => e
|
65
|
+
puts "Sync failed."
|
66
|
+
puts e.message
|
67
|
+
puts e.backtrace
|
68
|
+
end
|
69
|
+
end
|
70
|
+
else
|
71
|
+
sync_content.call
|
72
|
+
exit
|
73
|
+
end
|
data/lib/hugo_notion/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hugo-notion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.pre.alpha.
|
4
|
+
version: 0.1.0.pre.alpha.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nisanth Chunduru
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-04-
|
11
|
+
date: 2024-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: slop
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: httparty
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|