Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/akaalias/obsidian-footnotes
Makes creating footnotes in Obsidian more fun!
https://github.com/akaalias/obsidian-footnotes
Last synced: about 2 months ago
JSON representation
Makes creating footnotes in Obsidian more fun!
- Host: GitHub
- URL: https://github.com/akaalias/obsidian-footnotes
- Owner: akaalias
- Created: 2021-02-27T18:00:20.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T14:33:41.000Z (over 1 year ago)
- Last Synced: 2024-06-08T21:32:46.086Z (4 months ago)
- Language: TypeScript
- Homepage:
- Size: 4.6 MB
- Stars: 135
- Watchers: 8
- Forks: 17
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Obsidian Footnotes Plugin
This hotkey lets you:
- Insert a new footnote marker (e.g. `[^1]`) with auto-incremented index in your text
- Adds the footnote detail (e.g. `[^1]: `) at the bottom of your text
- Places your cursor so you can fill in the details quickly
- Jump from your footnote TO the footnote detail
- Jump from your footnote detail BACK to the footnote![Overview](https://github.com/akaalias/obsidian-footnotes/blob/master/basic.gif?raw=true)
## IMPORTANT: You must to set up your footnote hotkey
After installing and activating this plugin, you still have to SET UP your hotkey. This is easy and quick:
`Settings -> Hotkeys -> Search for "Footnote" -> Customize Command -> Your preferred hotkey`
I personally use Command+Shift+6 because "6" on a US keyboard is where the uptick/footnote character "^" is.
![Hotkey](https://github.com/akaalias/obsidian-footnotes/blob/master/hotkey.png?raw=true)
## Default Feature Details
### Scenario: No previous numeric (e.g. "[^1]") footnotes exist:
- Given my cursor is where I want a footnote to exist (e.g. `Foo bar baz▊`)
- When I hit `my footnote hotkey`
- Then a new footnote marker (e.g. `[^1]`) is inserted where my cursor was (e.g. `Foo bar baz[^1]`)
- And a new footnote details marker (e.g. `[^1]: `) is inserted on the last line of the document
- And my cursor is now placed at the end of the detail marker (e.g. `[^1]: ▊`)### Scenario: Previous numeric (e.g. "[^1]") footnotes exist:
- Given there is one or more numeric footnotes in my text
- And my cursor is where I want a footnote to exist (e.g. `Foo bar[^1] baz▊`)
- When I hit `my footnote hotkey`
- Then a new footnote marker with the next numeric index (e.g. `[^2]`) is inserted where my cursor was (e.g. `Foo bar[^1] baz[^2]`)
- And a new footnote details marker (e.g. `[^2]: `) is inserted on the last line of the document
- And my cursor is now placed at the end of the detail marker (e.g. `[^2]: ▊`)### Scenario: Jumping TO a footnote detail
- Given I'm on a footnote detail line (e.g. `[^1]: ▊`)
- When I hit `my footnote hotkey`
- Then my cursor is placed right after the *first* occurence of this footnote in my text (e.g. `[^1]▊`)### Scenario: Jumping BACK to a footnote
- Given I'm on - or next to - a footnote (e.g. `[^1]▊`) in my text
- When I hit `my footnote hotkey`
- Then my cursor is placed to the right of the footnote (e.g. `[^1]: ▊`)### Known Limitations or Untested Scenarios
#### Indices are not updated
Inserting new footnote in-between two existing footnotes will insert the next numeric index (e.g. `1, 3, 2`).It will NOT update the indices according to their natural order (e.g. `1, 2, 3`).
```markdown
Example sentence[^1] with two▊ footnotes[^2] already.
[^1]: Foo
[^2]: Bar
```After insertion:
```markdown
Example sentence[^1] with two[^3] footnotes[^2] already.
[^1]: Foo
[^2]: Bar
[^3]: Baz
```See "Automatically Re-Index Footnotes" below for a proposed feature
## Future Possible Feature Ideas
### Automatically Re-Index Footnotes
Re-index and re-sort all footnotes when you insert a new one in-between one or more existing numbered footnotes:```markdown
Example sentence[^1] with two▊ footnotes[^2] already.
[^1]: Foo
[^2]: Bar
```
#### Base Scenario
- Given there are two footnotes already
- When I enter a new footnote in-between those two
- Then the NEW footnote gets the index "2"
- And the previously second footnote gets the index "3"
- And the NEW footnote detail is inserted as the second entry at the bottom
- And the previously second footnote detail at the bottom is updated to be "3"
- And the previously second footnote detail at the bottom is updated to be in third position```markdown
Example sentence[^1] with two[^2] footnotes[^3] already.[^1]: Foo
[^2]: Baz
[^3]: Bar▊
```#### Edge Cases to consider ("What if...?")
##### What if... new footnote is inserted before the first footnote?
```markdown
Some sentence▊ with existing note[^1]
[^1]: Details
```
##### What if... text has the same footnote at several places?
```markdown
Some sentence with existing note[^1] and the same▊ footnote re-appears later[^1].
[^1]: Details
```
##### What if...Footnote details are spread across the text?
```markdown
Some sentence with existing note[^1] some more text▊
[^1]: Inline footnote details
Another text part▊
```
##### What if... the footnote details are multi-line on the bottom?
```markdown
Some sentence with existing note[^1] some more text▊
[^1]: The details that
Span across
Multiple lines
```
##### What if... there are non-numeric footnotes in the text?
```markdown
Some sentence with existing note[^✝] some more text▊
[^✝]: Details
```## Background
This plugin is based on the great idea by [jacob.4ristotle](https://forum.obsidian.md/u/jacob.4ristotle/summary) posted in the ["Footnote Shortcut"](https://forum.obsidian.md/t/footnote-shortcut/8872) thread.> **Use case or problem:**
>
> I use Obsidian to take school notes, write essays and so on, and I find myself needing to add frequent footnotes. Currently, to add a new footnote, I need to:
> - scroll to the bottom to check how many footnotes I already have
> - type [^n] in the body of the note, where n is the next number
> - move to the end of the note, type [^n] again, and then add my citation.
>
> **Proposed solution:**
>
> It would be convenient to have a shortcut to automate these steps. In particular, I envision that the shortcut would:
> Using the smallest natural number n that has not yet been used for a footnote
> - add `[^n]` at the insertion point
> - add `[^n]: ` to the end of the note, and move the insertion point there.