{"id":17175961,"url":"https://github.com/kyleam/bog","last_synced_at":"2026-02-01T15:32:03.536Z","repository":{"id":13776996,"uuid":"16472077","full_name":"kyleam/bog","owner":"kyleam","description":"Extensions for research notes in Org mode","archived":false,"fork":false,"pushed_at":"2025-10-16T10:57:48.000Z","size":444,"stargazers_count":66,"open_issues_count":0,"forks_count":4,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-10-17T13:17:32.057Z","etag":null,"topics":["emacs-lisp","org-mode"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","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/kyleam.png","metadata":{"files":{"readme":"README.org","changelog":"NEWS","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-02-03T07:05:00.000Z","updated_at":"2025-10-16T10:57:43.000Z","dependencies_parsed_at":"2024-02-15T01:30:24.120Z","dependency_job_id":"114b3738-5388-495c-ad32-abda5f3daf16","html_url":"https://github.com/kyleam/bog","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/kyleam/bog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyleam%2Fbog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyleam%2Fbog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyleam%2Fbog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyleam%2Fbog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kyleam","download_url":"https://codeload.github.com/kyleam/bog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyleam%2Fbog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28981078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T13:38:33.235Z","status":"ssl_error","status_checked_at":"2026-02-01T13:38:32.912Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["emacs-lisp","org-mode"],"created_at":"2024-10-14T23:58:31.669Z","updated_at":"2026-02-01T15:32:03.513Z","avatar_url":"https://github.com/kyleam.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+title: Bog\n#+options: toc:nil\n#+startup: showall\n\n[[https://github.com/kyleam/bog/actions/workflows/test.yml][https://github.com/kyleam/bog/actions/workflows/test.yml/badge.svg]]\n[[https://melpa.org/#/bog][https://melpa.org/packages/bog-badge.svg]]\n\nBog is a system for taking research notes in [[https://orgmode.org/][Org mode]].  It adds a few\nresearch-specific features, nearly all of which are focused on managing\nand taking notes with Org, not on writing research articles with Org.\n\n* Installation\n\nBog is available on [[https://melpa.org/][MELPA]].\n\nTo enable Bog in all Org buffers, add it to =org-mode-hook=.\n\n#+begin_src emacs-lisp\n  (add-hook 'org-mode-hook #'bog-mode)\n#+end_src\n\n* Workflow\n\nThe Bog workflow is focused around the citekey, which is the only study\ninformation that must be included in the notes.  This unique identifier\nis used as a link to the BibTeX file and other associated files.\n\nIn the example below, the citekey \"name2000word\" is a study heading.  A\nstudy heading is defined as a heading that has a citekey as a title or\nas the value of =bog-citekey-property=.  When a citekey occurs anywhere\nelse (like \"another1999study\" below), it is taken as a reference to\nanother study (which may or may not have a subtree in this or another\nOrg file).\n\n#+begin_example\n\n  ,* Topic heading\n\n  ,** TODO name2000word                               :atag:\n\n  \u003cURL for study\u003e\n\n  Article notes ... a reference to another1999study ...\n#+end_example\n\nThe default format for the citekey is the first author's last name, the\nyear, and then the first non-trivial word.  To have BibTeX mode\nautomatically generate a key of this format, the =bibtex-autokey-*=\nsettings can be modified.\n\n#+begin_src emacs-lisp\n  (setq bibtex-autokey-year-length 4\n        bibtex-autokey-titleword-length 'infty\n        bibtex-autokey-titlewords-stretch 0\n        bibtex-autokey-titlewords 1\n        bibtex-autokey-year-title-separator \"\")\n#+end_src\n\n* Main features\n\nMany Bog functions take the citekey from the notes.  If the point is on\na citekey (like \"another1999study\" above), then that citekey will be\nused.  If this fails, many functions will try to take the citekey from\nthe first parent heading that is a study heading.\n\n- =bog-find-citekey-file=\n\n  Open an associated file (usually a PDF) for a citekey.\n\n- =bog-find-citekey-bib=\n\n  Open a BibTeX file for a citekey.\n\n  BibTeX entries can be stored in one of two ways:\n  - As a single file with many entries\n  - As single-entry files named citekey.bib within a common directory\n\n- =bog-search-citekey-on-web=\n\n  Search Google Scholar for a citekey.  The default citekey format\n  (first author's last name, year, and first non-trivial word) usually\n  contains enough information to make this search successful.\n\n- =bog-rename-staged-file-to-citekey=\n\n  Rename a new file (usually a PDF) to be associated with a citekey.\n\n- =bog-clean-and-rename-staged-bibs=\n\n  Rename new BibTeX files.  If a separate BibTeX file is used for each\n  citekey, this function can be used to rename all new BibTeX files.\n  =bibtex-clean-entry= is used to clean the entry and autogenerate the\n  key.\n\n- =bog-create-combined-bib=\n\n  Generate a combined BibTeX file for all citekeys in buffer.  This is\n  useful if single-entry BibTeX files are used.\n\nOther useful functions include\n\n- =bog-citekey-tree-to-indirect-buffer=\n- =bog-goto-citekey-heading-in-notes=\n- =bog-insert-heading-citekey=\n- =bog-jump-to-topic-heading=\n- =bog-list-duplicate-heading-citekeys=\n- =bog-list-orphan-citekeys=\n- =bog-open-citekey-link=\n- =bog-open-first-citekey-link=\n- =bog-refile=\n- =bog-search-notes=\n- =bog-search-notes-for-citekey=\n- =bog-sort-topic-headings-in-buffer=\n- =bog-sort-topic-headings-in-notes=\n\nYou can try out many of the commands in\n[[file:example/notes/org-mode-pubs.org][example/notes/org-mode-pubs.org]].\n\n* Variables\n\nSeveral variables determine where Bog looks for things.\n\n- =bog-bib-directory= or =bog-bib-file=\n- =bog-file-directory=\n- =bog-note-directory=\n- =bog-stage-directory=\n\nThe variables below are important for specifying how Bog behaves.\n\n- =bog-citekey-format=\n\n  A regular expression that defines the format used for citekeys.\n\n- =bog-find-citekey-bib-func=\n\n  A function to find a citekey in a BibTeX file.  This determines\n  whether a directory of single-entry BibTeX files or a single BibTeX\n  file is used.\n\n* Keybindings\n\nA keymap is defined for Bog under the prefix =C-c \"​=.  If you prefer\nsomething else (like =C-c b=), set =bog-keymap-prefix=.\n\nMany of the Bog functions are useful outside of an Org buffer.  You\ncan turn Bog minor mode on (=bog-mode=) in non-Org buffers to get\naccess to the keymap and citekey highlighting.  To make Bog commands\navailable from any buffer, bind =bog-command-map= to a global key.\n\n* Other approaches\n\nIf Bog doesn't fit your workflow, there are a good number of other\napproaches to explore.  On the Org mode mailing list, there are some\n[[https://yhetil.org/orgmode/528AC19F.3000803@binghamton.edu/][nice]] [[https://yhetil.org/orgmode/2c75873c0906230106h3daf3d34y230845e15dad278e@mail.gmail.com/][descriptions]] of systems people have come up with for taking\nresearch notes in Org.  For a package that focuses on both taking\nresearch notes and writing research articles, look into [[https://github.com/jkitchin/org-ref][Org-ref]].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyleam%2Fbog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkyleam%2Fbog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyleam%2Fbog/lists"}