├── .eslintrc.yml
├── .github
├── FUNDING.yml
├── pull-request-template.md
└── workflows
│ ├── build.yaml
│ ├── lint.yaml
│ └── release.yaml
├── .gitignore
├── .prettierrc.yaml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── doc
├── arxiv2notion.gif
├── arxiv2notionplus_db.png
├── multiple_db.png
├── nerf_example1.png
└── nerf_example2.png
├── manifest.json
├── package-lock.json
├── package.json
├── packages
└── .gitkeep
├── src
├── html
│ ├── options.html
│ └── popup.html
├── images
│ └── icon128.png
├── js
│ ├── notion.js
│ ├── options.js
│ ├── parsers.js
│ └── popup.js
└── scss
│ └── theme.scss
└── webpack.config.js
/.eslintrc.yml:
--------------------------------------------------------------------------------
1 | env:
2 | es6: true
3 | browser: true
4 | webextensions: true
5 | extends: eslint:recommended
6 | globals:
7 | chrome: true
8 | parserOptions:
9 | ecmaVersion: latest
10 | sourceType: module
11 | rules: {}
12 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [denkiwakame] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12 | polar: # Replace with a single Polar username
13 | buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
15 |
--------------------------------------------------------------------------------
/.github/pull-request-template.md:
--------------------------------------------------------------------------------
1 | ## 🔄 Changes
2 |
3 |
4 |
5 | ## ⚠️ Breaking Changes
6 |
7 |
8 |
9 | - [ ] None
10 | - [ ] Yes
11 | - **Details:**
12 |
13 | ## 🎯 Motivation
14 |
15 |
16 |
17 | ## 🔍 Reproduction Steps
18 |
19 |
20 |
21 | ```bash
22 | # Example:
23 | # npm run build
24 | # npm run dev
25 | # npm run lint
26 | # npm run pack
27 | ```
28 |
29 | ## ✅ Results
30 |
31 |
32 |
33 | ## 📝 Additional Notes
34 |
35 |
36 |
--------------------------------------------------------------------------------
/.github/workflows/build.yaml:
--------------------------------------------------------------------------------
1 | name: build
2 | on:
3 | push:
4 | branches:
5 | - main
6 | pull_request:
7 | branches:
8 | - main
9 | jobs:
10 | build:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/checkout@v4
14 | - uses: actions/setup-node@v4
15 | with:
16 | node-version: '24.8.0'
17 | - name: install
18 | run: npm install
19 | - name: build
20 | run: npm run build
21 | - name: pack
22 | run: npm run pack
23 |
--------------------------------------------------------------------------------
/.github/workflows/lint.yaml:
--------------------------------------------------------------------------------
1 | name: eslint
2 |
3 | on:
4 | pull_request:
5 | branches:
6 | - main
7 | jobs:
8 | lint:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@v4
12 | - uses: actions/setup-node@v4
13 | with:
14 | node-version: '24.8.0'
15 | - uses: actions/cache@v3
16 | id: npm_cache_id
17 | with:
18 | path: "**/node_modules"
19 | key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
20 | - name: install
21 | if: steps.cache.outputs.cache-hit != 'true'
22 | run: npm install
23 | - name: eslint
24 | run: npm run lint
25 | - name: prettier
26 | run: npm run format:check
27 |
--------------------------------------------------------------------------------
/.github/workflows/release.yaml:
--------------------------------------------------------------------------------
1 | name: Releases
2 | on:
3 | push:
4 | tags:
5 | - "*"
6 |
7 | jobs:
8 | build:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@v4
12 | - uses: actions/setup-node@v4
13 | with:
14 | node-version: '24.8.0'
15 | - name: install
16 | run: npm install
17 | - name: build
18 | run: npm run build
19 | - name: pack
20 | run: npm run pack
21 | - uses: ncipollo/release-action@v1
22 | with:
23 | artifacts: "packages/*"
24 | token: ${{secrets.GITHUB_TOKEN}}
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 |
--------------------------------------------------------------------------------
/.prettierrc.yaml:
--------------------------------------------------------------------------------
1 | trailingComma: 'es5'
2 | tabWidth: 2
3 | semi: true
4 | singleQuote: true
5 |
6 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | All notable changes to this repository will be documented in this file.
4 |
5 | ## [1.4.1] - 2024-12-19
6 |
7 | ### Added
8 |
9 | - Support for www.arxiv.org URLs in addition to arxiv.org
10 | - Fixed arXiv API request with proper CORS headers
11 | - Additional host permissions for arxiv.org and www.arxiv.org domains
12 |
13 | ### Fixed
14 |
15 | - Updated arXiv API endpoint from HTTP to HTTPS for security
16 | - Improved error handling for arXiv API requests with status code logging
17 | - Enhanced URL detection to support both arxiv.org and www.arxiv.org formats
18 |
19 | ## [1.4.0] - 2024-07-18
20 |
21 | ### Fixed
22 |
23 | - updates for the latest Notion dashboard @denkiwakame [PR#19](https://github.com/denkiwakame/arxiv2notion/pull/19)
24 |
25 | ## [1.3.0] - 2024-05-28
26 |
27 | ### Added
28 |
29 | - 🚀 **New Feature:** ACL Anthology URL support (experimental) [PR#16](https://github.com/denkiwakame/arxiv2notion/pull/16)
30 | - 🚀 **New Feature:** support for old arXiv identifier [PR#15](https://github.com/denkiwakame/arxiv2notion/pull/15) @aralsea
31 |
32 | ## [1.2.0] - 2024-01-17
33 |
34 | ### Added
35 |
36 | - 🚀 **New Feature:** OpenReview URL support (experimental) [PR#11](https://github.com/denkiwakame/arxiv2notion/pull/11) [PR#12](https://github.com/denkiwakame/arxiv2notion/pull/12)
37 |
38 | ### Changed
39 |
40 | - restrict host_permission [PR#10](https://github.com/denkiwakame/arxiv2notion/pull/10)
41 |
42 | ## [1.1.0] - 2024-01-10
43 |
44 | ### Added
45 |
46 | - 🚀 **New Feature:** check duplicated entry [PR#9](https://github.com/wangjksjtu/arxiv2notionplus/issues/1)
47 |
48 | ### Changed
49 |
50 | - Migration to Notion API version (2022-06-28) [PR#8](https://github.com/denkiwakame/arxiv2notion/pull/8)
51 |
52 | ## [1.0.0] - 2024-01-08
53 |
54 | ### Added
55 |
56 | - integrates [arxiv2notionplus](https://github.com/wangjksjtu/arxiv2notionplus/issues/1) [PR#6](https://github.com/denkiwakame/arxiv2notion/pull/6)
57 | - add publication date for easier tracking @wangjksjtu
58 | - add comment parser for quick access to the potential project homepage or code link (if available) @wangjksjtu
59 | - Refactor the above codes & fix bugs by @denkiwakame
60 | - CONTRIBUTING.md @denkiwakame
61 | - CHANGELOG.md @denkiwakame
62 | - Linter / Formatter @denkiwakame
63 |
64 | ### Changed
65 |
66 | - Replace the author field from `text` to `multi-select` to fully leverage the search/filter in notion @wangjksjtu
67 | - Release a public notion database/table [here](https://denkiwakame.notion.site/597cdd58bded4375b1cbe073b2ed6f5d?v=63fcbfda57824b239b66e52dde841cdf) @denkiwakame
68 | - Update UI to improve the navigation to the button @denkiwakame
69 |
70 | ### Fixed
71 |
72 | - Migration to Manifest V3 @denkiwakame [PR#7](https://github.com/denkiwakame/arxiv2notion/pull/7)
73 |
74 | ## [0.0.1] - 2021-06-07
75 |
76 | ### Added
77 |
78 | - initial release from @denkiwakame
79 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 |
2 | # Contributing to arxiv2notion
3 |
4 | First off, thanks for taking the time to contribute! :rainbow:
5 |
6 | All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉
7 |
8 | > And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:
9 | > - Star the project
10 | > - TweetX about it
11 | > - Refer this project in your project's readme
12 |
13 |
14 | ## Table of Contents
15 |
16 | - [I Have a Question](#i-have-a-question)
17 | - [I Want To Contribute](#i-want-to-contribute)
18 | - [How to Develop arxiv2notion](#how-to-develop-arxiv2notion)
19 | - [Suggesting Enhancements](#suggesting-enhancements)
20 |
21 | ## I Have a Question
22 |
23 | Before you ask a question, it is best to search for existing [Issues](https://github.com/denkiwakame/arxiv2notion/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first.
24 |
25 | If you then still feel the need to ask a question and need clarification, we recommend the following:
26 |
27 | - Open an [Issue](https://github.com/denkiwakame/arxiv2notion/issues/new).
28 | - Provide as much context as you can about what you're running into.
29 | - Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant.
30 |
31 | We will then take care of the issue as soon as possible.
32 |
33 | ## I Want To Contribute
34 | ### How to Develop arxiv2notion
35 |
36 | #### How to build your extension locally
37 |
38 | ```bash
39 | $ git clone https://github.com/denkiwakame/arxiv2notion.md
40 | $ npm install
41 | $ npm run build
42 | $ npm run watch # debug locally
43 | $ npm run pack # pack to .zip extension
44 | ```
45 |
46 | #### How to debug your extension
47 | - `$ npm run build` build the extension locally
48 | - navigate to `chrome://extension`
49 | - turn on `developer mode`
50 | - select `load unpacked` and open `arxiv2notion/dist`
51 | - you can see the extension ID like `aedplelmaaaldilfkeobdapccljxxxxx` in the loaded extension description
52 | - open `chrome-extension://aedplelmaaaldilfkeobdapccljxxxxx/popup.html`
53 | - open chrome developer tools in your browser (`Ctrl + Shift + i` w/Linux)
54 | - you can see debugging outputs (\eg `console.log()`) in the devtools.
55 | - once you `load unpacked` , the extension is automatically synced whenever you run `npm run build` and reload `chrome-extension://${your-extension-id}/popup.html`
56 | - you will be able to know more about how everything is working.
57 |
58 | 
59 |
60 | #### Change Notion database scheme
61 | - If you attempt to add a new column like `published date` , you need to add it in your notion.so manually https://github.com/denkiwakame/arxiv2notion#getting-started or via Notion API https://developers.notion.com/reference/update-a-database
62 |
63 | #### Get arXiv published date
64 | - To retrieve arXiv paper information, this extension utilizes arXiv public API.
65 | - You can see properties available in the current API https://arxiv.org/help/api/basics
66 | - For example, if you need `published` , you can add some code to obtain the target property.
67 | - https://github.com/denkiwakame/arxiv2notion/blob/main/src/js/popup.js#L112-L124
68 | - `const published = entry.querySelector("published").textContent;`
69 | - The retrieved contents will be posted by this line https://github.com/denkiwakame/arxiv2notion/blob/main/src/js/popup.js#L49
70 | - Thus you need to add properties to https://github.com/denkiwakame/arxiv2notion/blob/main/src/js/popup.js#L127
71 |
72 | #### Post to notion.so
73 | - Add property to https://github.com/denkiwakame/arxiv2notion/blob/main/src/js/notion.js#L62-L118
74 | - You may need to follow the Notion API date format. https://developers.notion.com/reference/page#date-property-values
75 |
76 | ### Suggesting Enhancements
77 |
78 | This section guides you through submitting an enhancement suggestion for arxiv2notion, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions.
79 |
80 |
81 | #### Before Submitting an Enhancement
82 |
83 | - Make sure that you are using the latest version.
84 | - Read the [documentation]() carefully and find out if the functionality is already covered, maybe by an individual configuration.
85 | - Perform a [search](https://github.com/denkiwakame/arxiv2notion/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
86 | - Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library.
87 |
88 |
89 | #### How Do I Submit a Good Enhancement Suggestion?
90 |
91 | Enhancement suggestions are tracked as [GitHub issues](https://github.com/denkiwakame/arxiv2notion/issues).
92 |
93 | - Use a **clear and descriptive title** for the issue to identify the suggestion.
94 | - Provide a **step-by-step description of the suggested enhancement** in as many details as possible.
95 | - **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you.
96 | - You may want to **include screenshots and animated GIFs** which help you demonstrate the steps or point out the part which the suggestion is related to. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux.
97 | - **Explain why this enhancement would be useful** to most arxiv2notion users. You may also want to point out the other projects that solved it better and which could serve as inspiration.
98 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 denkiwakame
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # arxiv2notion
2 | [](https://github.com/denkiwakame/arxiv2notion/actions/workflows/build.yaml) [](https://github.com/denkiwakame/arxiv2notion/actions/workflows/lint.yaml)
3 | [](CHANGELOG.md)
4 | [](https://github.com/denkiwakame/arxiv2notion/releases)
5 |
6 | #### Supported Format
7 | [](https://info.arxiv.org/help/api/index.html)
8 | [](https://openreview.net/)
9 | [](https://aclanthology.org/)
10 |
11 | Easy-to-use arXiv clipper for [Notion](https://www.notion.so) based on [Notion API](https://developers.notion.com/)
12 |
13 | 
14 | 
15 |
16 | ## ⬇️ Installation
17 | ### a. Install via Chrome Store
18 | - arxiv2notion is now available at [Chrome Store](https://chromewebstore.google.com/detail/arxiv2notion/jfgdgmjlakndggcpknmanlpgjgjbcbli) 🚀.
19 |
20 | ### b. Install Manually
21 | - download extension package from
22 | https://github.com/denkiwakame/arxiv2notion/releases/latest
23 | - for Chrome, navigate to `chrome://extension`
24 | - drag and drop the extension from your file manager anywhere onto the extensions page
25 | - or unzip the extension and `load unpacked` in developer mode
26 |
27 | ## ⚙️ Setup
28 |
29 | ### 1. Add arxiv2notion integration
30 | - navigate to [My Integrations](https://www.notion.so/profile/integrations)
31 | - `+ New Integration`
32 | - **associated workspace:** select your workspace where you save arXiv articles
33 | - **Type:** select `Internal`
34 | - **name:** set any name of your choice
35 |
36 |
37 | > [!NOTE]
38 | > For more detailed information about Notion integration, please refer to the official documentation at https://developers.notion.com/docs/getting-started.
39 |
40 | ### 2. Configure the extension
41 | - right-click on the extension icon > `Options`
42 | - copy **integration id (not the secret token!)** (see figures below) from `https://www.notion.so/my-integrations/internal/${integration-id}`
43 | - paste the `integration id` and click on `+` button.
44 | - if your entered id is valid, you can see the following callback messages.
45 |
46 | > [!NOTE]
47 | > To enhance security, arxiv2notion retrieves the Notion API key (integration secrets) on-demand through integration ID instead of storing it directly in Chrome local storage. **Please ensure you are logged into notion.so while using this extension.**
48 |
49 |
50 |
51 |
52 | ### 3. Create databases in Notion
53 | #### from template (recommended)
54 | - clone the public template [here](https://denkiwakame.notion.site/597cdd58bded4375b1cbe073b2ed6f5d?v=63fcbfda57824b239b66e52dde841cdf) to your own notion workspace
55 | - add connection to target databases via `...` > (scroll down...) `Connect to` > `{your integration name}`
56 |
57 |
58 |
59 | - Integration will have access writes to all child DBs.
60 |
61 | 
62 |
63 |
64 | #### or manually
65 | - alternatively, you can follow the following steps to create database from scratch in notion
66 | - login to [notion.so](https://www.notion.so) by admin user
67 | - create databases where you save arXiv articles
68 | - **follow this instruction** https://www.notion.so/guides/creating-a-database and **add properties listed below.**
69 |
70 | > [!CAUTION]
71 | > Do **NOT** create a new database by `/database` !
72 | > Make sure to create properties with **exactly the same names and types as those listed.**
73 |
74 | |property|type|
75 | |-----|-----|
76 | |Title|Title|
77 | |URL|URL|
78 | |Authors|Multi-Select|
79 | |Abstract|Text|
80 | |Published|Date|
81 | |Comments|URL|
82 | |Publisher|Select|
83 |
84 | > [!NOTE]
85 | > **migration from v0.1.x → v1.0.0**
86 | - We changed `Authors` type and added `Published` `Comments` property from [v1.0.0](https://github.com/denkiwakame/arxiv2notion/releases/tag/v1.0.0).
87 | - Change your existing database properties as follows, you can easily integrate new features to your existing Notion database!
88 |
89 | |property|type(^v0.1.x)|type(v1.0.0+) |
90 | |-----|-----|-----|
91 | |Authors|Text| **Multi-Select**|
92 | |**Published**|--|**Date**|
93 | |**Comments**|--|**URL**|
94 |
95 | > [!TIP]
96 | > You can add extra columns of your choice alongside the default ones in your databases.
97 |
98 | #### :bulb: w/ Notion Formula (optional)
99 | - [Notion Formula](https://www.notion.so/help/formulas) allows you to add **custom autofill property** defined by formula.
100 | - For instance, `replace(URL, "arxiv", "ar5iv")` formula adds an [ar5iv link](https://ar5iv.labs.arxiv.org/) column by substituting "arxiv.org" with "ar5iv.org" 🚀
101 |
102 |
103 | #### :bulb: w/ Notion AI Property (optional)
104 | - [Notion AI Property](https://www.notion.so/ja-jp/help/guides/5-ai-prompts-to-surface-fresh-insights-from-your-databases) allows you to add **custom autofill property** to each DB record.
105 | - Add column to your Notion DB and select `AI custom autofill`
106 | - Set any prompt you like (e.g. summarization, extracting key ideas ...)
107 |
108 | - Save an article via `arxiv2notion` ,and then the preset `AI property` will be automatically generated.
109 | 
110 |
111 | ## :technologist: Build locally (for Developers)
112 | - See also [CONTRIBUTING.md](CONTRIBUTING.md)
113 |
114 | ```bash
115 | $ git clone https://github.com/denkiwakame/arxiv2notion.git
116 | $ npm install
117 | $ npm run build
118 | $ npm run watch # debug locally
119 | $ npm run pack # packaging to zip
120 | ```
121 |
122 | ## Contributors
123 | - Maintainers: [@denkiwakame](https://github.com/denkiwakame), [@wangjksjtu](https://github.com/wangjksjtu)
124 |
125 |
126 |
127 |
--------------------------------------------------------------------------------
/doc/arxiv2notion.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/denkiwakame/arxiv2notion/389d87bb79bf2937264a8d6ecb3bd4b93047180c/doc/arxiv2notion.gif
--------------------------------------------------------------------------------
/doc/arxiv2notionplus_db.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/denkiwakame/arxiv2notion/389d87bb79bf2937264a8d6ecb3bd4b93047180c/doc/arxiv2notionplus_db.png
--------------------------------------------------------------------------------
/doc/multiple_db.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/denkiwakame/arxiv2notion/389d87bb79bf2937264a8d6ecb3bd4b93047180c/doc/multiple_db.png
--------------------------------------------------------------------------------
/doc/nerf_example1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/denkiwakame/arxiv2notion/389d87bb79bf2937264a8d6ecb3bd4b93047180c/doc/nerf_example1.png
--------------------------------------------------------------------------------
/doc/nerf_example2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/denkiwakame/arxiv2notion/389d87bb79bf2937264a8d6ecb3bd4b93047180c/doc/nerf_example2.png
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "manifest_version": 3,
3 | "name": "arxiv2notion",
4 | "description": "easy-to-use arXiv clipper for notion.so",
5 | "version": "1.4.1",
6 | "icons": {
7 | "128": "icon128.png"
8 | },
9 | "action": {
10 | "default_popup": "popup.html",
11 | "default_icon": {
12 | "128": "icon128.png"
13 | }
14 | },
15 | "options_ui": {
16 | "page": "options.html",
17 | "open_in_tab": false
18 | },
19 | "permissions": ["tabs", "storage"],
20 | "host_permissions": [
21 | "*://api.notion.com/*",
22 | "*://export.arxiv.org/*",
23 | "*://www.notion.so/*",
24 | "*://openreview.net/*",
25 | "*://aclanthology.org/*",
26 | "*://arxiv.org/*",
27 | "*://www.arxiv.org/*"
28 | ],
29 | "content_security_policy": {
30 | "extension_pages": "script-src 'self'; object-src 'self'"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "arxiv2notion",
3 | "version": "1.4.1",
4 | "description": "easy-to-use arXiv clipper",
5 | "contributors": [
6 | "denkiwakame",
7 | "wangjksjtu "
8 | ],
9 | "license": "MIT License",
10 | "scripts": {
11 | "dev": "webpack --mode development",
12 | "build": "webpack --mode production",
13 | "watch": "webpack serve --mode development",
14 | "lint": "eslint src/js",
15 | "format": "prettier --write src/js --check",
16 | "format:check": "prettier src/js --check",
17 | "pack": "npm run pack:keygen && npm run pack:zip",
18 | "pack:zip": "crx pack -p key.pem -o packages/arxiv2notion.crx --zip-output packages/arxiv2notion.chrome.zip dist",
19 | "pack:keygen": "if [ ! -f key.pem ] ; then crx keygen ./ ; fi"
20 | },
21 | "devDependencies": {
22 | "copy-webpack-plugin": "^9.0.0",
23 | "crx": "^5.0.1",
24 | "css-loader": "^5.2.6",
25 | "eslint": "^8.14.0",
26 | "html-webpack-plugin": "^5.3.1",
27 | "prettier": "^3.1.1",
28 | "sass": "^1.34.1",
29 | "sass-loader": "^12.0.0",
30 | "style-loader": "^2.0.0",
31 | "webpack": "^5.37.0",
32 | "webpack-cli": "^4.7.0",
33 | "webpack-dev-server": "^4.8.1"
34 | },
35 | "dependencies": {
36 | "mustache": "^4.2.0",
37 | "then-chrome": "^1.0.7",
38 | "uikit": "^3.6.22"
39 | },
40 | "engines": {
41 | "node": ">=24.8.0",
42 | "npm": ">=11.6.0"
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/packages/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/denkiwakame/arxiv2notion/389d87bb79bf2937264a8d6ecb3bd4b93047180c/packages/.gitkeep
--------------------------------------------------------------------------------
/src/html/options.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |