Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chrisgrieser/alfred-bibtex-citation-picker
Citation picker & lightweight reference manager for BibTeX files, via Alfred.
https://github.com/chrisgrieser/alfred-bibtex-citation-picker
academic-writing alfred-workflow bibtex-references citation-picker citations eta-template-engine latex multi-markdown org-mode pandoc pandoc-markdown reference-management reference-manager
Last synced: 7 days ago
JSON representation
Citation picker & lightweight reference manager for BibTeX files, via Alfred.
- Host: GitHub
- URL: https://github.com/chrisgrieser/alfred-bibtex-citation-picker
- Owner: chrisgrieser
- License: mit
- Created: 2022-03-04T11:19:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-29T20:56:47.000Z (7 months ago)
- Last Synced: 2024-03-29T21:26:48.441Z (7 months ago)
- Topics: academic-writing, alfred-workflow, bibtex-references, citation-picker, citations, eta-template-engine, latex, multi-markdown, org-mode, pandoc, pandoc-markdown, reference-management, reference-manager
- Language: JavaScript
- Homepage:
- Size: 8.6 MB
- Stars: 131
- Watchers: 6
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Citation: CITATION.bib
Awesome Lists containing this project
README
# Supercharged Citation Picker
![GitHub Downloads](https://img.shields.io/github/downloads/chrisgrieser/alfred-bibtex-citation-picker/total?label=GitHub%20Downloads&style=plastic&logo=github)
![Alfred Gallery Downloads](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fchrisgrieser%2F.config%2Frefs%2Fheads%2Fmain%2FAlfred.alfredpreferences%2Falfred-workflow-download-count.yaml&query=alfred-bibtex-citation-picker&style=plastic&logo=alfred&label=Gallery%20Downloads&color=%235C1F87)
![Latest Release](https://img.shields.io/github/v/release/chrisgrieser/alfred-bibtex-citation-picker?label=Latest%20Release&style=plastic)A citation picker and lightweight reference manager for
[Alfred](https://www.alfredapp.com/). Uses BibTeX Files and supports [Pandoc Markdown](https://pandoc.org/MANUAL.html#citation-syntax),
[Multi-Markdown](https://fletcher.github.io/MultiMarkdown-6/syntax/citation.html),
[LaTeX](https://www.overleaf.com/learn/latex/Biblatex_citation_styles), [Org
Mode](https://orgmode.org/manual/Citations.html), any various more formats.## Feature Overview
### Core Features
- Inserts __Pandoc Citation Syntax__ (`[@citekey]`), supporting page numbers &
multiple citations (`[@citekey, p. 23; @citekey, p. 42]`). Can also be
configured to use __LaTeX__, __Multi-Markdown__, __eta templates__, __Org
Mode__, `[[wikilinks]]`, `#tags`, or `bare citkeys` as citation format.
- __App-independent:__ Works system-wide, in every text field of every app.
- __Smart Search:__ Search for citekeys, authors, title, publication, keywords
(tags), include or exclude authors in *et al.*, tab-completion,
short queries, sorting recently used entries to the top, …
- __Simple Installation:__ Just enter the path to your `.bib` file, and you are
ready to go.
- __Blazingly Fast:__ Considerably quicker than any other citation picker (~200
ms to fully reload a library with ~4000 entries).### Advanced Features
- __Citation Actions:__ Paste single-entry bibliographies, open URLs,
open or create literature notes, attach PDFs, search for `.csl` files online,
and more.
- __Lightweight Reference Management:__ Automatically rename and file PDFs, add or
remove entries.
- __Quickly Add New Entries:__ Select a DOI or ISBN and add them directly to
your BibTeX library via hotkey.
- __Support for two libraries:__ You can pick citations from two BibTeX Library
files at the same time.
- __Obsidian Integration:__ When located in your [Obsidian
Vault](https://obsidian.md/), literature notes are automatically opened/created
in Obsidian instead of the default markdown app.## Table of Contents
- [Installation](#installation)
- [Basic Usage](#basic-usage)
* [Search](#search)
* [Citation Actions](#citation-actions)
* [URL Actions](#url-actions)
* [Icon Meanings](#icon-meanings)
- [Changing the Citation Format](#changing-the-citation-format)
* [Available Formats](#available-formats)
* [Other Format Customizations](#other-format-customizations)
- [Advanced Usage](#advanced-usage)
* [Bibliography Actions](#bibliography-actions)
* [Add New Entries](#add-new-entries)
* [Literature Note Actions](#literature-note-actions)
* [PDF Management Actions](#pdf-management-actions)
* [Link Preview](#link-preview)
* [Auxiliary Features](#auxiliary-features)
- [Cite this software project](#cite-this-software-project)
- [Credits](#credits)
- [About the Developer](#about-the-developer)## Installation
1. [Download the latest release](https://github.com/chrisgrieser/alfred-bibtex-citation-picker/releases/latest).
2. Enter the BibTeX Library path.
3. Use the citation picker via the Alfred keyword `ct`, or set a
[hotkey](https://www.alfredapp.com/help/workflows/triggers/hotkey/) for the
citation picker by double-clicking the respective field in the workflow
window.## Basic Usage
Press the [hotkey](https://www.alfredapp.com/help/workflows/triggers/hotkey/) in
any text field to start the citation picker. Alternatively, use the `ct`
keyword.### Search
- You can search for the title, author/editor (last name), year, collection, or
journal name.
- Prepend `@` to a word to search for a citekey, for example `@Grieser2020`.
- Prepend `#` to search for keywords (tags), for example `#sociology`.
- *Smart Queries*: You can search for any combination of the above. For example,
the query `2020 #cognition grieser` searches for entries published in 2020,
with the tag "cognition," and with "Grieser" as author/editor.
- *Short Queries*: You do not need to fully spell out every item. `grie #cogn
2020` gives you the same result as above, if no other author begins with
`grie` and no other tag starts with `cogn`.### Citation Actions
- ⏎: Paste the citekey of the selected citation.
- ⌥⏎: Add another citation.
- ⇧⌘⏎: Paste an inline-citation (citation
without surrounding formatting, for example `@Grieser2022` instead of `[@Grieser2022]`)
- ⌘⏎: Add page numbers before pasting the selected citekey.
* Confirm the page number with ⌥⏎ or
⌘⏎ to add another citation afterward.
* Confirm with ⇧⌘⏎ for an inline-citation
with page number (`@Grieser2022 [p. 42]`).### URL Actions
- ⌃⏎: Open the URL in the browser.
- ⌘C: Copy the URL to the clipboard.
- In both cases, if the entry has a DOI but not a URL, the citation picker uses
the DOI-URL (`https://doi.org/…`) instead.### Icon Meanings
| Icon | Entry has |
|:-----|:--------------------------------------|
| 🌐 | URL or DOI |
| 📄 | Abstract |
| n 🏷 | n Keywords |
| 📓 | Literature Note |
| 📕 | PDF |
| 2️⃣ | entry is from 2nd library |
| 📎 | entry has attachment |## Changing the Citation Format
### Available Formats
You can use the `scp` and select __Change Citation Format__ to change the format
of the citations:- Pandoc (default)
- Org Mode
- Multi-Markdown (MMD)
- LaTeX
- eta template
- iA Writer
- `[[wikilink]]`
- `#tag`
- bare citekey
- bracketed citekey> [!NOTE]
> Not all formats support all citation-related features. For example, adding
> Page numbers as well as inline-citations are not supported for Latex,
> Wikilinks, and Tags.### Other Format Customizations
If you want to use a format that is not available, you can customize the format
yourself by changing the workflow environment variables starting with `_format`.
(Tutorial: [How to set environment variables in
Alfred](https://www.alfredapp.com/help/workflows/advanced/variables/#environment))If there is a citation syntax that is commonly used, or if you want to improve
support for an existing format, feel free to open a [Feature
Request](https://github.com/chrisgrieser/alfred-bibtex-citation-picker/issues/new?assignees=&labels=enhancement&template=feature_request.yml&title=Feature+Request%3A+).You can also make a PR to [this file which defines the citation formats](https://github.com/chrisgrieser/alfred-bibtex-citation-picker/blob/main/scripts/toggle-citation-format.js).
## Advanced Usage
### Bibliography Actions
- ⇧⏎: Reveal the entry in Zotero, neovim, BibDesk, VS
Code, or Sublime Text, depending on the setting in the workflow configuration.
(Note that this does not work for the secondary library.)
- ⌘⌥⏎: Paste the full bibliographic entry.
* Requires [Pandoc](https://pandoc.org/installing.html).
* The used citation style can be customized in the settings. By default, the
APA 7th Style is used.
- ⌘L: Preview the unabridged title, abstract, and list
of all keywords (tags).
- ⌘fn⏎: Delete the entry from the BibTeX
library. (⚠️ This cannot be undone.)
- ⌘Y: Preview the URL of entry in a QuickLook window.### Add New Entries
- [Universal Action](https://www.alfredapp.com/help/features/universal-actions/)
or [Hotkey](https://www.alfredapp.com/help/workflows/triggers/hotkey/): Uses
the selected __DOI__, __ISBN__, or __URL containing a DOI__ to add a new entry
to the library.> [!NOTE]
> Adding or removing entries does __not__ work with the [BetterBibTeX Zotero
> Plugin](https://retorque.re/zotero-better-bibtex/) since the plugin only does
> a one-way-sync (Zotero ➞ BibTeX file), meaning any changes to the `.bib` file
> are not reflected in Zotero.### Literature Note Actions
- The citation picker looks in the folder specified in the workflow settings for
files that are *exactly* named like the citekey, optionally followed by an
underscore `_` and some text, for example: `{citekey}.md` or
`{citekey}_{title}.md`. The citekey itself must not contain underscores, and
the filename must not include the `@`.
- Entries that have such a literature note is indicated by a `📓`.
- ⌃⌥⏎: Open the literature note.
* If the file is in your [Obsidian Vault](https://obsidian.md/), it is opened
directly in Obsidian instead of the default text editor.
* If there is no literature note, a new one is created.
- Add `*` to any search query to filter only for entries with literature notes,
for example `* grieser` searches for entries matching "Grieser" which also
have a literature notes. Can be combined with other queries (see: [smart
queries](#search)).### PDF Management Actions
The following features require that all your PDFs are located in the folder
specified in your workflow settings.
- The `📕` indicates that the entry already has an associated PDF at that location.
- Hyper⏎[^1]: If the entry has an associated PDF file,
open it with the default PDF reader. The citekey must not contain an
underscore (`_`). If the PDF folder setting is left empty, tries to open a PDF
file listed under the `file` key in the BibTeX file.
- Add `pdf` to any search query to filter only for entries with PDFs that have
been added by the auto-file feature. `pdf grieser`, for example, displays only
entries from the author "Grieser" with PDFs. Can be combined with other
queries (see: [smart queries](#search)).
- A `📎` indicates that the BibTeX entry has a `file` or `attachment` field. You
can use ⌃⌥⌘⏎ to open the
attachment. If there are multiple attachments, the first one is opened.### Link Preview
- Install the
[AlfredExtraPane](https://github.com/mr-pennyworth/alfred-extra-pane) for
previews of entry URLs.### Auxiliary Features
Triggered via the Alfred Keyword `scp` (mnemonic: `S`upercharged `C`itation `P`icker).
- __Cheatsheet__: Open a cheat sheet of the available actions of the
Supercharged Citation Picker.
- __Citation Style Search__: Search for a citation style (`.csl` file), which is
downloaded to the location specified in your workflow settings (default:
`~/.pandoc/csl/`).
- __Force Buffer Reload__: Force a reload of the citation picker. Mostly for
debugging purposes.## Cite this software project
If you want to mention this software project in an academic publication, please
cite it as:```txt
Grieser, C. (2023). Supercharged Citation Picker [Computer software].
https://github.com/chrisgrieser/alfred-bibtex-citation-picker
```## Credits
Icons created by Freepik (Flaticon)## About the Developer
In my day job, I am a sociologist studying the social mechanisms underlying the
digital economy. For my PhD project, I investigate the governance of the app
economy and how software ecosystems manage the tension between innovation and
compatibility. If you are interested in this subject, feel free to get in touch.- [Academic Website](https://chris-grieser.de/)
- [ResearchGate](https://www.researchgate.net/profile/Christopher-Grieser)
- [Mastodon](https://pkm.social/@pseudometa)
- [LinkedIn](https://www.linkedin.com/in/christopher-grieser-ba693b17a/)*For bug reports and features requests, please use the [GitHub issue tracker](https://github.com/chrisgrieser/alfred-bibtex-citation-picker/issues/new/choose).*
[^1]: `Hyper` is an artificial "fifth" modifier key equal to `⌘⌥⌃⇧`, and can be
created using apps like [Karabiner
Elements](https://karabiner-elements.pqrs.org/),
[BetterTouchTool](https://www.macupdate.com/app/mac/32953/bettertouchtool),
or [Hyperkey](https://hyperkey.app/).