{"id":13894520,"url":"https://github.com/rougier/org-bib-mode","last_synced_at":"2025-12-30T00:30:07.219Z","repository":{"id":37401119,"uuid":"443394214","full_name":"rougier/org-bib-mode","owner":"rougier","description":"An Emacs minor mode for literate \u0026 annotated bibliography","archived":false,"fork":false,"pushed_at":"2022-08-22T06:45:16.000Z","size":2720,"stargazers_count":133,"open_issues_count":7,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-08-07T18:30:37.942Z","etag":null,"topics":["bibliography","bibtex","emacs","lisp","literate-programming","orgmode"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rougier.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-31T17:19:58.000Z","updated_at":"2024-07-05T15:59:55.000Z","dependencies_parsed_at":"2022-07-12T12:49:58.518Z","dependency_job_id":null,"html_url":"https://github.com/rougier/org-bib-mode","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Forg-bib-mode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Forg-bib-mode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Forg-bib-mode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Forg-bib-mode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rougier","download_url":"https://codeload.github.com/rougier/org-bib-mode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226248375,"owners_count":17595159,"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":["bibliography","bibtex","emacs","lisp","literate-programming","orgmode"],"created_at":"2024-08-06T18:01:36.647Z","updated_at":"2025-12-30T00:30:07.179Z","avatar_url":"https://github.com/rougier.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"*Literate \u0026 annotated bibliography* — Nicolas P. Rougier\n\n[[./bibliography.png]]\n\n*NOTE* This literate and annotated bibliography is an adaptation of the idea \n[[http://cachestocaches.com/2020/3/org-mode-annotated-bibliography/][Managing my Annotated Bibliography with Emacs' Org Mode]] by [[http://gjstein.com/][Gregory J Stein]].\n\n\n* Introduction\n\nThe core idea behind literate bibliography is to have a single structured file where each entry corresponds to a reference. Information concerning an entry is stored as properties and two subsections allow to enter abstract and notes. To ease the manipulation, org-bib-mode provides a sidebar menu that displays the list of bibliograpic entries and provide tools to ease navigation. Under the hood, the org-bib-mode is the union of two  modes:\n\n- [[https://github.com/rougier/pdf-drop-mode][pdf-drop-mode]] that allow to drag and drop a file in order to add it to the bibliography using its doi that is searched automatically.\n- [[https://github.com/rougier/org-imenu/][org-imenu]] that allow to easily nagivate among entries and allowing various operations such as filtering entries, moving entries, etc.\n\norg-bib mode is meant to be simple and robust (it is simple but not yet robust). If you need somethign more elaborated, have a look at the\namazing [[https://github.com/jkitchin/org-ref][org-ref]] mode by John Kitchin.\n\n* Installation\n\norg-bib mode depends on [[https://github.com/rougier/pdf-drop-mode][pdf-drop-mode]] and [[https://github.com/rougier/org-imenu/][org-imenu]] that needs to be installed. For example using [[https://github.com/radian-software/straight.el][straight.el]]:\n\n#+begin_src emacs-lisp\n\n(straight-use-package\n '(org-imenu :type git :host github :repo \"rougier/org-imenu\"))\n\n(straight-use-package\n '(pdf-drop-mode :type git :host github :repo \"rougier/pdf-drop-mode\"))\n\n#+end_src\n\n* Configuration\n\nThe minimal document structure is a document with a single level headline that is used to store new entries. It is configurable via the [[help:org-bib-unsorted-header][org-bib-unsorted-header]] variable (default is \"Unsorted\").\n\n#+begin_example\n  #+LIBRARY-PATH: ~/Documents\n  #+LIBRARY-FILE: ~/Documents/my-bibliography.bib\n  \n  * Unsorted\n#+end_example\n\nYou need to ensure [[help:pdf-drop-exitftool-path][pdf-drop-exiftool-path]] and [[help:org-drop-pdttotext-path][pdf-drop-pdftotext-path]] points\nto relevant binaries (these are needed to extract information from PDF\nmetadata (exiftool) or PDF content (pdftotext)). Last step is to tell org-bib\nwhere to store PDFs. This is done via the =#+LIBRARY-PATH= keyword that you can\nset at the top of your org-file. If you don't, the current directory will be\nused. PDF will be copied and renamed automatically if you set the\ncorresponding options.\n\n* Key bindings\n\n| Key      | Description            | Key        | Description                |\n|----------+------------------------+------------+----------------------------|\n| =i=        | Show org entry         | =v i=        | Set view mode to org entry |\n| =a=        | Show abstract          | =v a=        | Set view mode to abstract  |\n| =n=        | Show notes             | =v n=        | Set view mode to notes     |\n| ~=~        | Show preview           | =v p=        | Set view mode to preview   |\n| =b=        | Show bibtex            | =v b=        | Set view mode to bibtex    |\n| =u=        | Show URL               | =v u=        | Set view mode to URL       |\n| =p=        | Show PDF               | =v p=        | Set view mode to PDF       |\n|          |                        | =v \u003creturn\u003e= | Exit view mode             |\n| =e=        | Export to bib file     | =f=          | Filter entries             |\n| =t=        | Tag entry              | =m=          | Move entry (refile)        |\n| =?=        | Mark entry unread      | =!=          | Mark entry read            |\n| =M-\u003cdown\u003e= | Move entry down        | =M-\u003cup\u003e=     | Move entry up              |\n| =\u003ctab\u003e=    | Toggle current section | =S-\u003ctab\u003e=    | Toggle all sections        |\n| =S-\u003cleft\u003e= | Next page (PDF view)   | =S-\u003cright\u003e=  | Prev page (PDF view)       |\n  \n\n* *Adding an entry*\n\nThe simplest way to add a new entry is to drag and drop a PDF file onto the org buffer. The PDF will be parsed to try to identify a DOI and the corresponding bibtex item will be collected from the crossref.org server. The new entry will then be created below the *Unsorted* header (whose name is configurable) and the file will be renamed and copied to the library folder.\n\nIf this procedure fails for some reason, you can also enter a new entry manually or using the [[help:org-bib-new-from-pdf][org-bib-from-pdf, ]][[help:org-bib-new-from-doi][org-bib-from-doi]] or [[help:org-bib-new-from-bibtex][org-bib-from-bibtex]] helper functions. In the latter case, no file will be automatically associated but you can later add a file into the library folder and rename it to \"year - title.pdf\" (replacing year and title with the actual year and title from the entry).\n\n* Edit an entry\n\nAn entry is made of a properties block with two sub headlines (Abstract and Notes). You can edit any properties and add or remove them. But be careful to not remove bibliographic properties or else, the conversion to bibtex may fail because of some missing fields that are required.\n\n* *Export the bibliography*\n\nTo export the library to a bib file, you can use the [[help:org-bib-export][org-bib-export]] command\n(that is bound to the =e= key on the sidebar). The export filename will be deduced from the org filename unless a =#+LIBRARY-FILE:= is defined at the top of the org file.\n\n* Filter view\n\nYou can filter the sidebar view (=f=) usin any kind of filtes. Here are some\nexample searches (note the absence of spaces):\n\n- Articles published in 1984:             YEAR=1984\n- Articles published between 2000 \u0026 2010: YEAR\u003e1999+YEAR\u003c2011\n- Journal articles:                       TYPE={article}\n- Papers by Knuth:                        AUTHOR={Knuth}\n- Article published in a journal:         JOURNAL={The Computer Journal}\n\nSee also [[https://orgmode.org/worg/org-tutorials/advanced-searching.html][Advanced searching]] from the org [[https://orgmode.org/][website]].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frougier%2Forg-bib-mode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frougier%2Forg-bib-mode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frougier%2Forg-bib-mode/lists"}