{"id":13571902,"url":"https://github.com/akaalias/obsidian-footnotes","last_synced_at":"2025-04-04T09:30:41.054Z","repository":{"id":43296107,"uuid":"342922847","full_name":"akaalias/obsidian-footnotes","owner":"akaalias","description":"Makes creating footnotes in Obsidian more fun!","archived":false,"fork":false,"pushed_at":"2023-01-07T14:33:41.000Z","size":4825,"stargazers_count":139,"open_issues_count":15,"forks_count":22,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-05T04:34:21.707Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akaalias.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-27T18:00:20.000Z","updated_at":"2024-10-22T12:38:04.000Z","dependencies_parsed_at":"2023-02-07T10:31:36.259Z","dependency_job_id":null,"html_url":"https://github.com/akaalias/obsidian-footnotes","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akaalias%2Fobsidian-footnotes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akaalias%2Fobsidian-footnotes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akaalias%2Fobsidian-footnotes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akaalias%2Fobsidian-footnotes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akaalias","download_url":"https://codeload.github.com/akaalias/obsidian-footnotes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247152776,"owners_count":20892553,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T14:01:08.057Z","updated_at":"2025-04-04T09:30:36.040Z","avatar_url":"https://github.com/akaalias.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"## Obsidian Footnotes Plugin\r\n\r\nThis hotkey lets you:\r\n\r\n- Insert a new footnote marker (e.g. `[^1]`) with auto-incremented index in your text \r\n    - Adds the footnote detail (e.g. `[^1]: `) at the bottom of your text \r\n    - Places your cursor so you can fill in the details quickly\r\n- Jump from your footnote TO the footnote detail\r\n- Jump from your footnote detail BACK to the footnote \r\n\r\n![Overview](https://github.com/akaalias/obsidian-footnotes/blob/master/basic.gif?raw=true)\r\n\r\n## IMPORTANT: You must to set up your footnote hotkey\r\n\r\nAfter installing and activating this plugin, you still have to SET UP your hotkey. This is easy and quick:\r\n\r\n`Settings -\u003e Hotkeys -\u003e Search for \"Footnote\" -\u003e Customize Command -\u003e Your preferred hotkey`\r\n\r\nI personally use \u003ckbd\u003eCommand\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003e6\u003c/kbd\u003e because \"6\" on a US keyboard is where the uptick/footnote character \"^\" is.\r\n\r\n![Hotkey](https://github.com/akaalias/obsidian-footnotes/blob/master/hotkey.png?raw=true)\r\n\r\n## Default Feature Details\r\n### Scenario: No previous numeric (e.g. \"[^1]\") footnotes exist:\r\n- Given my cursor is where I want a footnote to exist (e.g. `Foo bar baz▊`)\r\n- When I hit `my footnote hotkey`\r\n- Then a new footnote marker (e.g. `[^1]`) is inserted where my cursor was (e.g. `Foo bar baz[^1]`)\r\n- And a new footnote details marker (e.g. `[^1]: `) is inserted on the last line of the document\r\n- And my cursor is now placed at the end of the detail marker (e.g. `[^1]: ▊`)\r\n\r\n### Scenario: Previous numeric (e.g. \"[^1]\") footnotes exist:\r\n- Given there is one or more numeric footnotes in my text \r\n- And my cursor is where I want a footnote to exist (e.g. `Foo bar[^1] baz▊`)\r\n- When I hit `my footnote hotkey`\r\n- 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]`)\r\n- And a new footnote details marker (e.g. `[^2]: `) is inserted on the last line of the document\r\n- And my cursor is now placed at the end of the detail marker (e.g. `[^2]: ▊`)\r\n\r\n### Scenario: Jumping TO a footnote detail\r\n- Given I'm on a footnote detail line (e.g. `[^1]: ▊`)\r\n- When I hit `my footnote hotkey`\r\n- Then my cursor is placed right after the *first* occurence of this footnote in my text (e.g. `[^1]▊`)\r\n\r\n### Scenario: Jumping BACK to a footnote\r\n- Given I'm on - or next to - a footnote (e.g. `[^1]▊`) in my text\r\n- When I hit `my footnote hotkey`\r\n- Then my cursor is placed to the right of the footnote (e.g. `[^1]: ▊`)\r\n\r\n### Known Limitations or Untested Scenarios\r\n#### Indices are not updated\r\nInserting new footnote in-between two existing footnotes will insert the next numeric index (e.g. `1, 3, 2`). \r\n\r\nIt will NOT update the indices according to their natural order (e.g. `1, 2, 3`). \r\n\r\n```markdown\r\nExample sentence[^1] with two▊ footnotes[^2] already.\r\n  \r\n[^1]: Foo\r\n[^2]: Bar\r\n```\r\n\r\nAfter insertion:\r\n\r\n```markdown\r\nExample sentence[^1] with two[^3] footnotes[^2] already.\r\n  \r\n[^1]: Foo\r\n[^2]: Bar\r\n[^3]: Baz\r\n```\r\n\r\nSee \"Automatically Re-Index Footnotes\" below for a proposed feature\r\n\r\n## Future Possible Feature Ideas\r\n### Automatically Re-Index Footnotes\r\nRe-index and re-sort all footnotes when you insert a new one in-between one or more existing numbered footnotes:\r\n\r\n```markdown\r\nExample sentence[^1] with two▊ footnotes[^2] already.\r\n  \r\n[^1]: Foo\r\n[^2]: Bar\r\n```\r\n#### Base Scenario\r\n- Given there are two footnotes already\r\n- When I enter a new footnote in-between those two\r\n- Then the NEW footnote gets the index \"2\" \r\n- And the previously second footnote gets the index \"3\"\r\n- And the NEW footnote detail is inserted as the second entry at the bottom\r\n- And the previously second footnote detail at the bottom is updated to be \"3\"\r\n- And the previously second footnote detail at the bottom is updated to be in third position\r\n\r\n```markdown\r\nExample sentence[^1] with two[^2] footnotes[^3] already.\r\n\r\n[^1]: Foo\r\n[^2]: Baz\r\n[^3]: Bar▊\r\n```\r\n\r\n#### Edge Cases to consider (\"What if...?\")\r\n##### What if... new footnote is inserted before the first footnote?\r\n  ```markdown\r\n  Some sentence▊ with existing note[^1]\r\n  \r\n  [^1]: Details\r\n  ```\r\n##### What if... text has the same footnote at several places?\r\n  ```markdown\r\n  Some sentence with existing note[^1] and the same▊ footnote re-appears later[^1].\r\n\r\n  \r\n  [^1]: Details\r\n  ```\r\n##### What if...Footnote details are spread across the text?\r\n  ```markdown\r\n  Some sentence with existing note[^1] some more text▊ \r\n  \r\n  [^1]: Inline footnote details\r\n  \r\n  Another text part▊\r\n  ```\r\n##### What if... the footnote details are multi-line on the bottom?\r\n  ```markdown\r\n  Some sentence with existing note[^1] some more text▊ \r\n  \r\n  [^1]: The details that\r\n  Span across\r\n  Multiple lines\r\n  ```\r\n##### What if... there are non-numeric footnotes in the text?\r\n  ```markdown\r\n  Some sentence with existing note[^✝] some more text▊ \r\n  \r\n  [^✝]: Details\r\n  ```\r\n\r\n## Background\r\nThis 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.\r\n\r\n\u003e **Use case or problem:**\r\n\u003e\r\n\u003e 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:\r\n\u003e - scroll to the bottom to check how many footnotes I already have\r\n\u003e - type [^n] in the body of the note, where n is the next number\r\n\u003e - move to the end of the note, type [^n] again, and then add my citation.\r\n\u003e\r\n\u003e **Proposed solution:**\r\n\u003e\r\n\u003e It would be convenient to have a shortcut to automate these steps. In particular, I envision that the shortcut would:\r\n\u003e Using the smallest natural number n that has not yet been used for a footnote\r\n\u003e - add `[^n]` at the insertion point\r\n\u003e - add `[^n]: ` to the end of the note, and move the insertion point there.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakaalias%2Fobsidian-footnotes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakaalias%2Fobsidian-footnotes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakaalias%2Fobsidian-footnotes/lists"}