hugo-notion 0.1.0.pre.alpha.4 → 0.1.0.pre.alpha.5

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: a01cd4d000a8b5bbd92c8dace6bb7d74a251fd218e9bdc301989edabd746f85e
4
- data.tar.gz: 66bf11b69e4282460933c7932be0c91842f43b01882d8605821fd04a2d4d82a9
3
+ metadata.gz: fd3187060a3da73b91950b528a29eba70a35d397a9855dd0eeddd581ba67981c
4
+ data.tar.gz: 80a7ef596ed857945e49c82514e30b5455add7e9b970387a0ecc1dd81b294af2
5
5
  SHA512:
6
- metadata.gz: c591d6f8e60da2199d8a39dc8c0bb87e89009d394f2b1cbf066576ef8e99d8f0b8923769aec24ca4a6cab7ccc8e1382786c61c612f01983929c7562462bcd8ba
7
- data.tar.gz: bcfe59b27d295ba72b0c62e0d6b0dc67a53f66d20a23f09259c3d435c2c1c6fa25d4c17191a108c3117255ab23b0fdef0ff01c86aaa092674dc2af84715bf89f
6
+ metadata.gz: f935964859cefced056b4fa473f4a42824a73c8d79acc7456998f00cc3b3597a600390b8033ee87f84359df0801a310b186836315d630a99b4284e69f198112c
7
+ data.tar.gz: a16abdcaed50acb78625723ed45f4ea64f75a021b7ac5473ee51918c1e28c9f8a0a9e53e9562129898965b5ad4a3eb839ecaec7a0be515119306aaf4af04a4bb
data/README.md CHANGED
@@ -24,24 +24,19 @@ NOTION_TOKEN=your_notion_secret huno your_notion_page_url
24
24
 
25
25
  If you're yet to move your Hugo pages to Notion, you can use my "blog_content" Notion page as a template https://www.notion.so/blog_content-0f1b55769779411a95df1ee9b4b070c9
26
26
 
27
- ## Tips
28
-
29
- If you'd like `huno` to sync Notion pages to a different directory, you can do that too
30
-
31
- ```
32
- NOTION_TOKEN=your_notion_secret huno your_notion_page_url site_content/
33
- ```
34
-
35
- To avoid having to provide the `NOTION_TOKEN` env var again and again, you can create a `.env` file
27
+ To avoid having to provide the notion token and notion page url again and again, create an .env file
36
28
 
37
29
  ```
38
30
  echo 'NOTION_TOKEN=your_notion_secret' > .env
31
+ echo 'CONTENT_NOTION_URL=your_notion_page_url >> .env'
39
32
  ```
40
33
 
34
+ ## Tips
35
+
41
36
  To run `huno` say, every 15 seconds, use the `watch` command
42
37
 
43
38
  ```
44
- watch -n15 huno your_notion_page_url
39
+ watch -n15 huno
45
40
  ```
46
41
 
47
42
  If you're on MacOS and don't have the `watch` command installed, you can use Homebrew to install it
data/bin/huno CHANGED
@@ -1,32 +1,43 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require_relative '../lib/hugo_notion/synchronizer'
4
-
5
- def do_exit
6
- puts 'Exiting...'
7
- exit
3
+ env_file_path = File.join(Dir.pwd, '.env')
4
+ if File.exist?(env_file_path)
5
+ require 'dotenv'
6
+ Dotenv.load(env_file_path)
7
+ end
8
+ notion_token = ENV['NOTION_TOKEN']
9
+ unless notion_token
10
+ throw "Please create a Notion integration, generate a secret and provide it in the 'NOTION_TOKEN' environment variable"
8
11
  end
9
- Signal.trap("TERM") { do_exit }
10
- Signal.trap("INT") { do_exit }
11
12
 
12
- if !ARGV[0]
13
- puts "Please provide the URL of the Notion page you'd like to sync as the first argument"
13
+ content_notion_url = if ARGV[0]
14
+ ARGV[0]
15
+ else
16
+ ENV.fetch('CONTENT_NOTION_URL')
14
17
  end
15
- notion_page_url = ARGV[0]
16
- notion_page_id = URI(notion_page_url).path.match(/-(?<page_id>.*)\z/)['page_id']
18
+ unless content_notion_url
19
+ throw "Please provide the URL of the Notion page you'd like to sync in the `CONTENT_NOTION_URL` environment variable or as the first argument"
20
+ end
21
+ notion_page_id = URI(content_notion_url).path.match(/-(?<page_id>.*)\z/)['page_id']
17
22
 
18
- destination_dir = File.join(Dir.pwd, 'content')
23
+ content_dir = File.join(Dir.pwd, 'content')
19
24
  if ARGV[1]
20
- if Pathname.new(ARGV[1]).absolute?
21
- destination_dir = ARGV[1]
22
- else
23
- destination_dir = File.join(Dir.pwd, ARGV[1])
24
- end
25
+ content_dir = ARGV[1]
26
+ elsif ENV.fetch('CONTENT_DIR')
27
+ content_dir = ENV.fetch('CONTENT_DIR')
25
28
  end
29
+ content_dir = File.expand_path(content_dir, Dir.pwd)
26
30
 
27
- puts "Syncing posts from Notion..."
31
+ require_relative '../lib/hugo_notion/synchronizer'
32
+ def do_exit
33
+ puts 'Exiting...'
34
+ exit
35
+ end
36
+ Signal.trap("TERM") { do_exit }
37
+ Signal.trap("INT") { do_exit }
38
+ puts "Syncing content from Notion..."
28
39
  Synchronizer.run(
29
40
  notion_page_id: notion_page_id,
30
- destination_dir: destination_dir
41
+ destination_dir: content_dir
31
42
  )
32
43
  puts "Done."
@@ -1,20 +1,7 @@
1
- env_file_path = File.join(Dir.pwd, '.env')
2
- if File.exist?(env_file_path)
3
- require 'dotenv'
4
- Dotenv.load(env_file_path)
5
- end
6
- notion_token = ENV['NOTION_TOKEN']
7
- unless notion_token
8
- throw "Please create a Notion integration, generate a secret and provide it in the 'NOTION_TOKEN' environment variable"
9
- end
10
-
11
- NOTION_TOKEN = ENV['NOTION_TOKEN']
12
-
13
1
  require 'httparty'
14
2
  require 'notion-ruby-client'
15
3
  require 'notion_to_md'
16
4
  require 'yaml'
17
- require 'pry'
18
5
 
19
6
  class NotionApi
20
7
  BASE_URL = "https://api.notion.com/v1"
@@ -51,7 +38,7 @@ class Synchronizer
51
38
  destination_dir = options[:destination_dir]
52
39
  Dir.mkdir(destination_dir) unless Dir.exist?(destination_dir)
53
40
 
54
- notion = NotionApi.new(NOTION_TOKEN)
41
+ notion = NotionApi.new(ENV.fetch('NOTION_TOKEN'))
55
42
  response = if notion_database_id
56
43
  notion.post("/databases/#{notion_database_id}/query")
57
44
  elsif notion_page_id
@@ -107,7 +94,7 @@ class Synchronizer
107
94
  end
108
95
 
109
96
  page_front_matter_yaml = page_front_matter.to_yaml.chomp
110
- page_markdown = NotionToMd.convert(page_id: notion_block_id, token: NOTION_TOKEN)
97
+ page_markdown = NotionToMd.convert(page_id: notion_block_id, token: ENV.fetch('NOTION_TOKEN'))
111
98
  page_content = <<-page_CONTENT
112
99
  #{page_front_matter_yaml}
113
100
  ---
@@ -1,3 +1,3 @@
1
1
  class HugoNotion
2
- VERSION = '0.1.0-alpha.4'
2
+ VERSION = '0.1.0-alpha.5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
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
4
+ version: 0.1.0.pre.alpha.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nisanth Chunduru
@@ -10,6 +10,20 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2024-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dotenv
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: httparty
15
29
  requirement: !ruby/object:Gem::Requirement