Giter Club home page Giter Club logo

paper-note-filler's Introduction

Academic paper URL to Obsidian Note

Logo

This plugin solves a single annoyance for me when it comes to taking notes about ML/NLP/IR papers - 90% of which happen to be available on arxiv.org: the constant copy and paste to fill in a note template (author, title, etc.).

Instead of manually creating one Obsidian note per paper for a zettelkasten, simply provide the URL and the plugin extracts the important information and creates a new note automatically.

This (mostly) works for paper URLs from three domains:

If it is an arxiv paper, the ArXiv API is queried. The ACL Anthology isn't as simple to query, and since Semantic Scholar has most of the data ingested, the Semantic Scholar API is queried with the respective aclanthology/semanticscholar identifier.

Why querying ArXiv separately? Although Semantic Scholar also ingests papers posted on ArXiv I have found the ingested data to be more noisy (especially when it comes to the abstract) than ArXiv's version.

Note This plugin was created in two evenings, it works but is brittle. Only tested on Desktop.

Installing the plugin manually

Note The plugin is not available via the Obsidian Hub as it takes quite a long time to get through the PR queue and the review process. This plugin is so niche and simple that it is not really worth it. So, manual installation it is.

  1. Head to the vault folder (the following command assumes it is in the home directory in the obsidian-vault directory) and traverse into the plugin directory: ~/obsidian-vault/.obsidian/plugins/.
  2. Create a new directory called paper-note-filler.
  3. Copy main.js, styles.css, manifest.json from the latest release to the just created directory. This is all, the remaining files are not necessary.
  4. Restart Obsidian.

Ideally, this is it and the plugin is now installed. A simple way to check this is to now open the settings tab of Obsidian. Everything worked if the Paper Note Filling plugin listed under Community Plugins. If not, check the community-plugins.json file in the /plugins folder and add the plugin name manually if necessary and then restart Obsidian one more time.

Using the plugin

Two settings

Open the settings tab of Obsidian. There should be the Paper Note Filling plugin listed under Community Plugins. There are two settings:

  1. The folder in which to create all notes (any folder from inside the vault or the root folder itself).
  2. The naming convention for each note (either using the respective identifier or the title of the paper).

Obsidian settings tab

Creating a note

To create a note, open the command palette, and find the Paper Note Filling:Create paper note from URL.

Obsidian command palette

Clicking the command brings up a dialogue in which to paste the URL:

Obsidian URL input

Press Enter and a note with the paper title, authors, url, abstract, etc. should be created. If the file already exists, it will not be overwritten. The end result (here with the Blue Topaz Obsidian theme) looks something like this:

Obsidian created paper note

Developing it further

Not hard as the plugin is straightforward and just a few hundred lines of code. Check out the instructions of the Obsidian Sample Plugin repo to get started.

paper-note-filler's People

Contributors

chauff avatar claudiahauff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

paper-note-filler's Issues

Setting: prefix/suffix string

Instead of hardcoding the entire note template, add two settings so a user can add a prefix / suffix (e.g. "# Notes") to each note.

Installing on M3 Mac Pro

To get this to install properly, I needed to

  1. install npm: brew install npm
  2. clone this whole repo in the .plugin directory

then

cd paper-note-filler
npm install
npm run dev

Then once I loaded Obsidian, I was able to open the plugin correctly.

Before doing this, and following the steps in the README resulted in an error toast saying that it "Failed to load plugin".

Obsidian debug info:

SYSTEM INFO:
Obsidian version: v1.5.12
Installer version: v1.5.11
Operating system: Darwin Kernel Version 23.4.0: Fri Mar 15 00:12:37 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_T6031 23.4.0
Login status: logged in
Catalyst license: none
Insider build toggle: off
Live preview: on
Base theme: adapt to system
Community theme: none
Snippets enabled: 0
Restricted mode: off
Plugins installed: 6
Plugins enabled: 5
1: Smart Connections v2.1.50
2: ReadItLater v0.4.0
3: Natural Language Dates v0.6.2
4: Copilot v2.5.2
5: Paper Note Filling v1.0.1

RECOMMENDATIONS:
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

Mobile support

I tested the feature in Android app, having removed the desktop-only from the manifest, but it errored out.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.