summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-08chore: buildThomas F. K. Jorna
2021-08-08feat: much smoother local modeThomas F. K. Jorna
2021-08-07chore: buildThomas F. K. Jorna
2021-08-07fix: correct label background text and .el cleanupThomas F. K. Jorna
2021-08-07feat: configurable label size and lengthThomas F. K. Jorna
2021-08-07chore: remove test filesThomas F. K. Jorna
2021-08-07fix: no bare boundp in ifletThomas F. K. Jorna
2021-08-06chore: mergeThomas F. K. Jorna
2021-08-06fix: set orb-keywords if not thereThomas F. K. Jorna
2021-08-06Allow for user customization of citation node titles. (#40)Brian Lester
* Allow user styling of citation nodes via templates. This change updates the way that the title field is created for a citation node without an underlying node. Instead of manually calling `orb-bib-entry-get-value-function` and building the title via concatenation, it uses `orb--pre-xpand-template` to create a title. The template used can be customized with the `org-roam-ui-ref-title-template` variable. * Add the ability to retitle reference notes with bibliography information. This change adds the ability to update the title of notes that have a `:ROAM_REFS:` property and an associated bibtex entry. The new title will be created by `orb--pre-expand-template` and the `org-roam-ui-ref-title-template`, just like citation nodes that don't have associated nodes. This also requires that `org-ref` be loaded, otherwise it falls back to the original title. I put this behind another customizable variable in case it gets slow or a user wants to title reference nodes with the title they actually have in the node. Currently the handing of citation links throughout `org-roam` and `org-roam-bibtex` is rather scatter and seems rather brittle. At version points, different code processes the `:ROAM_REF:` filed differently, and it seems mostly because the fact that the default citation format `cite:%s` is so simple is why it works. For example, when inserting a ref into the database, org-roam uses the `org-link-plain-re` regex to normalize the reference. This results in the `cite:` being removed. When processing a link, it depends on the fact that `org` itself has split the link to `:type` and `:path`. The `:path` (without the `cite:`) is then inserted. In `org-roam-bibtex` they use `org-ref-cite-re` to remove the `cite:`, turning it into a key that is in the bibliography. In the PR, I followed the `org-roam-bibtex` method, parsing the `:ROAM_REFS:` property directly. We could also update the db node query to do a left outer join on the refs table. We then would have a new `refs` field on the node (we wouldn't need to send this over the wire) that is already formatted the way the database (and `org-roam-bibtex`) expect it to be. Then we wouldn't need to worry about our parsing getting out of sync with the other libraries. We would end up having to deal with multiple rows for the same node if it has multiple `refs`. I can look into a solution like this is we want. Another small thing to note, is that `:ROAM_REFS` doesn't have to specifically be a citation key for a bibliography. The examples have things like linking to google.com and then that is a reference where links to google can send you to your google note. In the UI we just check if `:ROAM_REFS:` is a there or not to making something a citation. Eventually we may want to actually include the `type` field from the `refs` table and make our decision based on that instead.
2021-08-05Merge branch 'main' into mainBrian Lester
2021-08-06feature: custom browserThomas F. K. Jorna
2021-08-06feature: warning when people are not using proper org-roamThomas F. K. Jorna
2021-08-06features!: context menu, better ui, and smoother updatesThomas F. K. Jorna
2021-08-05feature: added slider for node scaleThomas F. K. Jorna
2021-08-05fix: update notes smoothlyThomas F. K. Jorna
2021-08-05fix: typecast nodeThomas F. K. Jorna
2021-08-05feature: context menu and slightly less jumpy graphThomas F. K. Jorna
2021-08-04Add the ability to retitle reference notes with bibliographyBrian Lester
information. This change adds the ability to update the title of notes that have a `:ROAM_REFS:` property and an associated bibtex entry. The new title will be created by `orb--pre-expand-template` and the `org-roam-ui-ref-title-template`, just like citation nodes that don't have associated nodes. This also requires that `org-ref` be loaded, otherwise it falls back to the original title. I put this behind another customizable variable in case it gets slow or a user wants to title reference nodes with the title they actually have in the node. Currently the handing of citation links throughout `org-roam` and `org-roam-bibtex` is rather scatter and seems rather brittle. At version points, different code processes the `:ROAM_REF:` filed differently, and it seems mostly because the fact that the default citation format `cite:%s` is so simple is why it works. For example, when inserting a ref into the database, org-roam uses the `org-link-plain-re` regex to normalize the reference. This results in the `cite:` being removed. When processing a link, it depends on the fact that `org` itself has split the link to `:type` and `:path`. The `:path` (without the `cite:`) is then inserted. In `org-roam-bibtex` they use `org-ref-cite-re` to remove the `cite:`, turning it into a key that is in the bibliography. In the PR, I followed the `org-roam-bibtex` method, parsing the `:ROAM_REFS:` property directly. We could also update the db node query to do a left outer join on the refs table. We then would have a new `refs` field on the node (we wouldn't need to send this over the wire) that is already formatted the way the database (and `org-roam-bibtex`) expect it to be. Then we wouldn't need to worry about our parsing getting out of sync with the other libraries. We would end up having to deal with multiple rows for the same node if it has multiple `refs`. I can look into a solution like this is we want. Another small thing to note, is that `:ROAM_REFS` doesn't have to specifically be a citation key for a bibliography. The examples have things like linking to google.com and then that is a reference where links to google can send you to your google note. In the UI we just check if `:ROAM_REFS:` is a there or not to making something a citation. Eventually we may want to actually include the `type` field from the `refs` table and make our decision based on that instead.
2021-08-04Allow user styling of citation nodes via templates.Brian Lester
This change updates the way that the title field is created for a citation node without an underlying node. Instead of manually calling `orb-bib-entry-get-value-function` and building the title via concatenation, it uses `orb--pre-xpand-template` to create a title. The template used can be customized with the `org-roam-ui-ref-title-template` variable.
2021-08-04FIX: fix prettier fucking up the ci yamlThomas F. K. Jorna
2021-08-04fix: fixed the ci yaml endThomas F. K. Jorna
2021-08-04chore: handle mergeThomas F. K. Jorna
2021-08-04fix: added ref/cite colors to highlight memoThomas F. K. Jorna
2021-08-04Add basic CI (#37)Hellseher
* Add basic CI * Fix CI credentials * fix * Use https:// instead of ssh://git * Fix * Add suggesting steps and badge
2021-08-04Merge pull request #38 from blester125/mainThomas F. K. Jorna
Use `org-roam-bibtex` to find titles for node-less cite nodes.
2021-08-04feature: changed title format & default settingThomas F. K. Jorna
2021-08-03Use `org-roam-bibtex` to find titles for node-less cite nodes.Brian Lester
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)
2021-08-03Merge pull request #31 from blester125/mainThomas F. K. Jorna
Process org-roam-bibtex citations links differently depending on if they have an associated node.
2021-08-03fix: fixed filtering with citation nodesThomas F. K. Jorna
2021-08-03Merge branch 'main' into mainThomas F. K. Jorna
2021-08-03chore: mergeThomas F. K. Jorna
2021-08-03feature: citelink highlight colorThomas F. K. Jorna
2021-08-03feature: tagwhitelist + better compatibility with existing filtersThomas F. K. Jorna
2021-08-03fix: emacs > 27 => emacs >= 27Thomas F. K. Jorna
2021-08-03fix: make tags update correctly and show them on refreshThomas F. K. Jorna
2021-08-03chore: mergeThomas F. K. Jorna
2021-08-03chore: build tag fixThomas F. K. Jorna
2021-08-03fix: set tags to [] if no tags are foundThomas F. K. Jorna
2021-08-03Update README.mdThomas F. K. Jorna
2021-08-02Process org-roam-bibtex citations links differently depending on if theyBrian Lester
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.
2021-08-02update feature backlogThomas F. K. Jorna
2021-08-02feature: tag coloring and filteringThomas F. K. Jorna
2021-08-02feature: rudimentary tag filtering in placeThomas F. K. Jorna
2021-08-02feature: tag filtering lotic and uiThomas F. K. Jorna
2021-08-02feature: make 3d persistantThomas F. K. Jorna
2021-08-02merge: the final oneThomas F. K. Jorna
2021-08-02build: citelinksThomas F. K. Jorna
2021-08-02feature: citation optionsThomas F. K. Jorna
2021-08-02Merge pull request #26 from blester125/mainThomas F. K. Jorna
Convert cite links with an associated node into id links