* org-cite: enable inserting citation (org-cite-insert) after list bullet [9.5 (9.5-7c78aca @ /home/yuu/.config/emacs/straight/build/org/)]
@ 2021-08-26 12:18 Yuu Yin
2021-08-31 10:24 ` Timothy
0 siblings, 1 reply; 5+ messages in thread
From: Yuu Yin @ 2021-08-26 12:18 UTC (permalink / raw)
To: emacs-orgmode@gnu.org
[-- Attachment #1: Type: text/plain, Size: 5614 bytes --]
** Expected behavior
Invoking ~org-cite-insert~ after list bullets (e.g. ~-~ and ~1.~ ) works.
*** Why
Being able to insert citations in lists is useful when the user wants to list works without text surround it, for instance a list akin to the ~Further reading~ section on Wikipedia (e.g. https://en.wikipedia.org/wiki/Wikipedia#Further_reading). Thus, current behavior is too strict.
** Actual behavior
Invoking ~org-cite-insert~ after list bullets (e.g. ~-~ and ~1.~ ) doesn't work.
#+begin_src emacs-lisp
org-cite-insert: Cannot insert a citation here
#+end_src
** Reproduce
1. Install Emacs master, and add to =~/.config/emacs/init.el=
#+begin_src emacs-lisp
(require 'package)
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(straight-use-package 'use-package)
(setq straight-use-package-by-default t)
(defun my-call-process (command &rest args)
"Execute COMMAND with ARGS synchronously.
Returns (STATUS . OUTPUT) when it is done, where STATUS is the returned error
code of the process and OUTPUT is its stdout output."
(with-temp-buffer
(cons (or (apply #'call-process command nil t nil (remq nil args))
-1)
(string-trim (buffer-string)))))
(use-package org
:straight '(:type git :host github :repo "emacs-straight/org"
:build t
:pre-build
(with-temp-file "org-version.el"
(insert "(defun org-release () \"9.5\")\n"
(format "(defun org-git-version (&rest _) \"9.5-%s\")\n"
(cdr (my-call-process "git" "rev-parse" "--short" "HEAD")))
"(provide 'org-version)\n")))
:config
(require 'oc-basic))
#+end_src
2. Create bibtex file =org/test.bib= with
#+begin_src bibtex
@book{test-2021-test,
title = {Test},
author = {{Test}},
year = {2021},
}
#+end_src
3. Create org-mode file =org/test.org=
#+begin_src org
,#+TITLE: Test
,#+BIBLIOGRAPHY: test.bib
,* Test
-
+
-
,*
1.
a.
b.
2.
a)
b)
3.
-
+
4.
1)
#+end_src
4. Put cursor after any of the list bullets and ~org-cite-insert~
5. See message buffer ~Cannot insert a citation here~
** System information
Emacs : GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.30, cairo version 1.16.0)
Package: Org mode version 9.5 (9.5-7c78aca @ /home/yuu/.config/emacs/straight/build/org/)
current state:
==============
(setq
org-link-elisp-confirm-function 'yes-or-no-p
org-bibtex-headline-format-function #[257 "\300\236A\207" [:title] 3 "\n\n(fn ENTRY)"]
org-export-before-parsing-hook '(org-attach-expand-links)
org-archive-hook '(org-attach-archive-delete-maybe)
org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines
org-optimize-window-after-visibility-change)
org-mode-hook '(#[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-show-all append local] 5]
#[0 "\300\301\302\303\304$\207"
[add-hook change-major-mode-hook org-babel-show-result-all append local] 5]
org-babel-result-hide-spec org-babel-hide-all-hashes)
org-confirm-shell-link-function 'yes-or-no-p
org-reveal-start-hook '(org-decrypt-entry)
outline-isearch-open-invisible-function 'outline-isearch-open-invisible
org-agenda-before-write-hook '(org-agenda-add-entry-text)
org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer)
org-confirm-elisp-link-function 'yes-or-no-p
org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate)
org-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand)
org-link-shell-confirm-function 'yes-or-no-p
org-babel-pre-tangle-hook '(save-buffer)
org-agenda-loop-over-headlines-in-active-region nil
org-occur-hook '(org-first-headline-recenter)
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-link-parameters '(("attachment" :follow org-attach-follow :complete org-attach-complete-link)
("id" :follow org-id-open) ("eww" :follow org-eww-open :store org-eww-store-link)
("rmail" :follow org-rmail-open :store org-rmail-store-link)
("mhe" :follow org-mhe-open :store org-mhe-store-link)
("irc" :follow org-irc-visit :store org-irc-store-link :export org-irc-export)
("info" :follow org-info-open :export org-info-export :store org-info-store-link)
("gnus" :follow org-gnus-open :store org-gnus-store-link)
("docview" :follow org-docview-open :export org-docview-export :store
org-docview-store-link)
("bibtex" :follow org-bibtex-open :store org-bibtex-store-link)
("bbdb" :follow org-bbdb-open :export org-bbdb-export :complete org-bbdb-complete-link
:store org-bbdb-store-link)
("w3m" :store org-w3m-store-link)
("doi" :follow org-link-doi-open :export org-link-doi-export) ("file+sys") ("file+emacs")
("shell" :follow org-link--open-shell)
("news" :follow
#[514 "\301\300\302Q\"\207" ["news" browse-url ":"] 6 "\n\n(fn URL ARG)"])
("mailto" :follow
#[514 "\301\300\302Q\"\207" ["mailto" browse-url ":"] 6 "\n\n(fn URL ARG)"])
("https" :follow
#[514 "\301\300\302Q\"\207" ["https" browse-url ":"] 6 "\n\n(fn URL ARG)"])
("http" :follow
#[514 "\301\300\302Q\"\207" ["http" browse-url ":"] 6 "\n\n(fn URL ARG)"])
("ftp" :follow #[514 "\301\300\302Q\"\207" ["ftp" browse-url ":"] 6 "\n\n(fn URL ARG)"])
("help" :follow org-link--open-help :store org-link--store-help)
("file" :complete org-link-complete-file) ("elisp" :follow org-link--open-elisp))
org-metaup-hook '(org-babel-load-in-session-maybe)
)
[-- Attachment #2: Type: text/html, Size: 9654 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: org-cite: enable inserting citation (org-cite-insert) after list bullet [9.5 (9.5-7c78aca @ /home/yuu/.config/emacs/straight/build/org/)]
2021-08-26 12:18 org-cite: enable inserting citation (org-cite-insert) after list bullet [9.5 (9.5-7c78aca @ /home/yuu/.config/emacs/straight/build/org/)] Yuu Yin
@ 2021-08-31 10:24 ` Timothy
2021-08-31 11:41 ` Bruce D'Arcus
2021-09-01 16:05 ` Yuu Yin
0 siblings, 2 replies; 5+ messages in thread
From: Timothy @ 2021-08-31 10:24 UTC (permalink / raw)
To: Yuu Yin; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 810 bytes --]
Yuu Yin <yuuyin@protonmail.com> writes:
> Invoking ~org-cite-insert~ after list bullets (e.g. ~-~ and ~1.~ )
> doesn't work.
I did a little test myself, and can confirm that it's not currently
possible to insert a citation *immediately* after a bullet and space.
This can be checked with `org-cite--allowed-p'.
Thinking about this situation, inserting citations should be fine as
long as the `point' isn't before or immediately after the bullet itself
(i.e. no space).
I've prepared a patch that fixes this (attached). This is the test case
that I'm adding:
+ ((eq type 'item)
+ (> (point) (+ (org-element-property :begin context)
+ (org-get-indentation)
+ 1)))
As this is so simple, if nobody has any comments I'll push this in a
week or so.
--
Timothy
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-oc-allow-citations-following-an-item-bullet.patch --]
[-- Type: text/x-patch, Size: 1181 bytes --]
From 8a242b6c80c2ec2b384f12c16bb9f70c2d44c9c7 Mon Sep 17 00:00:00 2001
From: TEC <tec@tecosaur.com>
Date: Tue, 31 Aug 2021 19:03:19 +0800
Subject: [PATCH] oc: allow citations following an item bullet
* lisp/oc.el (org-cite--allowed-p): Expand the allowed cases to include
"item", which lets one insert a citation following a bullet, e.g. "- ".
We just have to check to make sure the citation actually is at least one
character away from the bullet.
---
lisp/oc.el | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/lisp/oc.el b/lisp/oc.el
index 5fcb9da62..7ffe37e57 100644
--- a/lisp/oc.el
+++ b/lisp/oc.el
@@ -1426,6 +1426,11 @@ (defun org-cite--allowed-p (context)
((= (point) (org-element-property :begin context)))
;; Within recursive object too, but not in a link.
((eq type 'link) nil)
+ ;; At the start of a list item is fine, as long as the bullet is unaffected.
+ ((eq type 'item)
+ (> (point) (+ (org-element-property :begin context)
+ (org-get-indentation)
+ 1)))
((eq type 'table-cell)
;; :contents-begin is not reliable on empty cells, so special
;; case it.
--
2.33.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: org-cite: enable inserting citation (org-cite-insert) after list bullet [9.5 (9.5-7c78aca @ /home/yuu/.config/emacs/straight/build/org/)]
2021-08-31 10:24 ` Timothy
@ 2021-08-31 11:41 ` Bruce D'Arcus
2021-09-01 16:05 ` Yuu Yin
1 sibling, 0 replies; 5+ messages in thread
From: Bruce D'Arcus @ 2021-08-31 11:41 UTC (permalink / raw)
To: Timothy; +Cc: org-mode-email, Yuu Yin
On Tue, Aug 31, 2021 at 7:21 AM Timothy <tecosaur@gmail.com> wrote:
> Thinking about this situation, inserting citations should be fine as
> long as the `point' isn't before or immediately after the bullet itself
> (i.e. no space).
I agree.
Cites in lists can be useful, including for things like CVs.
Bruce
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: org-cite: enable inserting citation (org-cite-insert) after list bullet [9.5 (9.5-7c78aca @ /home/yuu/.config/emacs/straight/build/org/)]
2021-08-31 10:24 ` Timothy
2021-08-31 11:41 ` Bruce D'Arcus
@ 2021-09-01 16:05 ` Yuu Yin
2021-09-18 5:40 ` Timothy
1 sibling, 1 reply; 5+ messages in thread
From: Yuu Yin @ 2021-09-01 16:05 UTC (permalink / raw)
To: Timothy; +Cc: emacs-orgmode
Thank you! Would it also be feasible to enable inserting citations after list checkboxes? For example
- [ ] [cite:@author-2021-title]
- [X] [cite:@author-2021-title]
+ [X] [cite:@author-2021-title]
This is super useful for marking which works/documents the user did read and took notes for e.g. a literature review.
Yuu Yin
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, August 31st, 2021 at 7:24 AM, Timothy <tecosaur@gmail.com> wrote:
> Yuu Yin yuuyin@protonmail.com writes:
>
> > Invoking ~org-cite-insert~ after list bullets (e.g. ~-~ and ~1.~ )
> >
> > doesn't work.
>
> I did a little test myself, and can confirm that it's not currently
>
> possible to insert a citation immediately after a bullet and space.
>
> This can be checked with `org-cite--allowed-p'. Thinking about this situation, inserting citations should be fine as long as the` point' isn't before or immediately after the bullet itself
>
> (i.e. no space).
>
> I've prepared a patch that fixes this (attached). This is the test case
>
> that I'm adding:
>
> - ((eq type 'item)
>
>
> - (> (point) (+ (org-element-property :begin context)
>
>
> - (org-get-indentation)
>
>
> - 1)))
>
>
>
> As this is so simple, if nobody has any comments I'll push this in a
>
> week or so.
>
> ------------------------------------------------------------------------------------
>
> Timothy
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-09-18 5:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-26 12:18 org-cite: enable inserting citation (org-cite-insert) after list bullet [9.5 (9.5-7c78aca @ /home/yuu/.config/emacs/straight/build/org/)] Yuu Yin
2021-08-31 10:24 ` Timothy
2021-08-31 11:41 ` Bruce D'Arcus
2021-09-01 16:05 ` Yuu Yin
2021-09-18 5:40 ` Timothy
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).