summaryrefslogtreecommitdiff
path: root/org-roam-ui.el
AgeCommit message (Expand)Author
2021-08-03Use `org-roam-bibtex` to find titles for node-less cite nodes....This change uses `org-roam-bibtex` (if it and it's dependencies are installed) to look up the cite links that do not have an associated node in the bibliography. This feature also needs to be enabled by setting `org-roam-ui-find-ref-title` variable to `'t`. This uses `fboundp` and `boundp` to check if `org-roam-bibtex` is installed, this are the same kinds of checks that projectile uses to decide between backends like helm or ivy, so it seems like a reason approach. I currently have only tested on my personal graph which only has around 10 node-less cite links, so I don't know how drastically this would slow things down. Given that bibliography entries are not updated often it think it would be safe to cache the titles based on the ref, then only the initial load of the graph would be slow. Later, adding a cite link to a new entry would get looked up, but that wouldn't be a huge cost. We could either roll our own with a hash table or bring in a [memoization library](https://github.com/skeeto/emacs-memoize) Brian Lester
2021-08-02Process org-roam-bibtex citations links differently depending on if they...have an associated node. It is easy to imagine how overlapping citations could clue one into connections about otherwise un-related work and generate insights. However, `org-roam-ui` currently only shows citation links when the `target` of the link has an associated node, that is, a node with a matching `:ROAM_REFS:` property. Often one doesn't have a note for every single thing they cite, and requiring them to create an empty note is a bad user experience and something that would often be forgotten. Without having citations links without associated nodes, connections in a users notes will most likely be missed. This change splits the handling of `org-roam-bibtex` citations links into two categories, a citation link (when the target of the link does not have an associated node, a node with a matching `:ROAM_REFS:`) and a reference link (when the target of the link does have a node). Reasoning for the naming is that a citation in a paper is generally just a link to it, there is no extra commentary from you when that link if followed, while a reference sound more like something you would refer to for information, i.e. the notes you took in the attached node. I am willing to flip the names if we want though. Citations and References are customizable separately, with new menu items for node/link color and dashed links added for Reference links. A new filter option has also been added, the new switch `Citations without note files` will remove all Citation nodes (and links to them) when activated. On the emacs side, this in implemented by using a new link type keyword, `"ref"`, for any cite link where the target has an underlying node (a node with a matching `:ROAM_REFS:` property). Links with this new type are styled according to the new Ref styles in the UI. Any cite link where the target does _not_ have an underlying node is left as a `"cite"` link. Additionally, this set of link targets without associated nodes is used to create fake nodes. These fake nodes have the `ref` key (the link target) as their `id`, `file`, `title`, and `.properties.ROAM_REFS`. Their `level` is set to `0`, and a new property, `FILELESS`, is set to `t`. Their id is used for actually connecting links in the UI, and the new `.properties.FILELESS` is used to styling a Citation vs a Reference node. Theoretically, if we wanted to depend on `org-roam-bibtex`, and pay the cost of look up citation information in the bibliography, we could use the citation key to look up an actual title in the bibtex bibliography during node creation, but that seems like it could get heavy for large numbers of citations. Brian Lester
2021-08-02feature: tag filtering lotic and uiThomas F. K. Jorna
2021-08-02build: citelinksThomas F. K. Jorna
2021-08-02feature: citation optionsThomas F. K. Jorna
2021-08-02feature: open org-roam-ui by defaultThomas F. K. Jorna
2021-08-01Convert cite links with an associated node into id links...Currently the `org-roam-ui--send-graphdata` function gets all `id` and `cite` links from the database. They are all sent over the websocket, but nothing is done to handle the cite links, they don't appear in the graph. These are not handled because instead of being an (`id` `id` `type`) tuple, they are (`id` `ref` `type`). This change uses a join in the DB to get the `id` of the node that `ref` is associated with. A map function applied to the list of links converts any cite link whose `ref` has an associated node into an (`id` `id` `type`) tuple (changing the `type` from `"cite"` to `"id"`). This new link is correctly handled and appears in the graph. Brian Lester
2021-08-01made .el MELPA compatibleThomas F. K. Jorna
2021-08-01better docstring and readme for custom themeThomas F. K. Jorna
2021-07-31removed weird function callThomas F. K. Jorna
2021-07-31added clicking without org-protocolThomas F. K. Jorna
2021-07-31maed on save configurableThomas F. K. Jorna
2021-07-31fixed root directiory being set incorrectlyThomas F. K. Jorna
2021-07-31dotted all the ts and crossed the isThomas F. K. Jorna
2021-07-31tried to add expanding follow, and failedThomas F. K. Jorna
2021-07-31added customization for follow behavior'Thomas F. K. Jorna
2021-07-30lots of label customization + fixesThomas F. K. Jorna
2021-07-30Update graph on file saveKirill Rogovoy
2021-07-30Fix node following breaking on minibufferKirill Rogovoy
2021-07-29emacsnode for mlordThomas F. K. Jorna
2021-07-29added proper toggle for followingThomas F. K. Jorna
2021-07-29new functions which do thingsThomas F. K. Jorna
2021-07-29made websocket automatically reconnectThomas F. K. Jorna
2021-07-29added websocket checks and 3d labelsThomas F. K. Jorna
2021-07-29buffer NAMEThomas F. K. Jorna
2021-07-29added minibuf checkThomas F. K. Jorna
2021-07-28added some more tweaksThomas F. K. Jorna
2021-07-28changed theme sync to websocketsThomas F. K. Jorna
2021-07-28added websocket implementationThomas F. K. Jorna
2021-07-27added build files to repoThomas F. K. Jorna
2021-07-27added autoload cookiesThomas F. K. Jorna
2021-07-26minor cleanupsThomas F. K. Jorna
2021-07-26added custom theme for allThomas F. K. Jorna
2021-07-26file viewer, prettier thingsThomas F. K. Jorna
2021-07-25readded theme servletThomas F. K. Jorna
2021-07-25Remove org-roam-ui-link-children-parentsKirill Rogovoy
2021-07-25added parent node viewing toggleThomas F. K. Jorna
2021-07-24added filter and orphan toggleThomas F. K. Jorna
2021-07-24smoother animation + select animation algoThomas F. K. Jorna
2021-07-23Add production buildKirill Rogovoy
2021-07-23Add README and upload production buildKirill Rogovoy
2021-07-23resolving merge conflictsThomas F. K. Jorna
2021-07-23added theme trackingThomas F. K. Jorna
2021-07-22Fix org-roam-id-at-point throwing errors time to timeKirill Rogovoy
2021-07-22Follow the current Emacs node in real timeKirill Rogovoy
2021-07-22added eventsource node trackingThomas F. K. Jorna
2021-07-22updated next-js elisp and switched to mainThomas F. K. Jorna
2021-07-22finished basis for physics tweaksThomas F. K. Jorna
2021-07-20actually have a good let statement instead of working through magicThomas F. K. Jorna
2021-07-20set cors header correctlyThomas F. K. Jorna