emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Enhancement Proposal for 'org-link-file-path-type' Behavior
@ 2024-01-16 12:00 西 顾
  2024-01-16 16:06 ` [POLL] Change calling convention for when `org-link-file-path-type' is set to custom function (was: Enhancement Proposal for 'org-link-file-path-type' Behavior) Ihor Radchenko
  0 siblings, 1 reply; 5+ messages in thread
From: 西 顾 @ 2024-01-16 12:00 UTC (permalink / raw)
  To: emacs-orgmode@gnu.org

[-- Attachment #1: Type: text/plain, Size: 509 bytes --]

Dear Org mode maintainers,

I'd like to suggest a small enhancement to the 'org-link-file-path-type' option. When set to 'function', it currently passes an absolute path to the user's custom function. This limits flexibility as the original path input is not available to the function.

For better customization, I propose passing the raw path to the function. Users needing an absolute path could use 'expand-file-name' within their function.

Thank you for your time and consideration.

Best,
Ref

[-- Attachment #2: Type: text/html, Size: 1975 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [POLL] Change calling convention for when `org-link-file-path-type' is set to custom function (was: Enhancement Proposal for 'org-link-file-path-type' Behavior)
  2024-01-16 12:00 Enhancement Proposal for 'org-link-file-path-type' Behavior 西 顾
@ 2024-01-16 16:06 ` Ihor Radchenko
  2024-01-17  4:59   ` Christopher M. Miles
  2024-02-17 15:27   ` Ihor Radchenko
  0 siblings, 2 replies; 5+ messages in thread
From: Ihor Radchenko @ 2024-01-16 16:06 UTC (permalink / raw)
  To: 西 顾; +Cc: emacs-orgmode@gnu.org

西 顾 <z.ref@outlook.com> writes:

> I'd like to suggest a small enhancement to the
> 'org-link-file-path-type' option. When set to 'function', it currently
> passes an absolute path to the user's custom function. This limits
> flexibility as the original path input is not available to the
> function.
>
> For better customization, I propose passing the raw path to the
> function. Users needing an absolute path could use 'expand-file-name'
> within their function.

Thanks for the suggestion!

This makes sense - the current approach with passing absolute path is
indeed limiting the information passed to the custom function.

The docstring is also quite ambiguous about what is passed as an
argument:

    org-link-file-path-type is a customizable variable defined in ol.el.
    <...>
    Alternatively, users may supply a custom function that takes the
    full filename as an argument and returns the path.

"full filename" may or may not mean "absolute filename".

However, changing the absolute path to "as is" path will technically be
breaking.

I cannot find any actual uses of custom function value for
`org-link-file-path-type' in the wild, so I am leaning towards going
ahead with this (minor) breaking change.

Yet, I am starting a poll to give users who may be affected a chance to
chime in.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [POLL] Change calling convention for when `org-link-file-path-type' is set to custom function (was: Enhancement Proposal for 'org-link-file-path-type' Behavior)
  2024-01-16 16:06 ` [POLL] Change calling convention for when `org-link-file-path-type' is set to custom function (was: Enhancement Proposal for 'org-link-file-path-type' Behavior) Ihor Radchenko
@ 2024-01-17  4:59   ` Christopher M. Miles
  2024-01-17 13:17     ` Ihor Radchenko
  2024-02-17 15:27   ` Ihor Radchenko
  1 sibling, 1 reply; 5+ messages in thread
From: Christopher M. Miles @ 2024-01-17  4:59 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: 西 顾, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 2333 bytes --]


+1 for this propose.

I have one situation need this feature.

Assume a file structure like bellowing:

#+begin_example
`- folder-1
  `- file-1.org
  `- folder-1.2
    ` file-1.2.1.org
#+end_example

When I try to add link of "file-1.org" in "file-1.2.1.org", based on my
custom option `org-link-file-path-type' value `adaptive'. The link will
become a full-path link. But I want link to be relative to current Org
file path. The file link path should be [[file:../file-1.org]] instead
of [[file:folder-1/file-1.org]]. I hope I can use a custom function in
conditions to decide the file path.

Ihor Radchenko <yantar92@posteo.net> writes:

> 西 顾 <z.ref@outlook.com> writes:
>
>> I'd like to suggest a small enhancement to the
>> 'org-link-file-path-type' option. When set to 'function', it currently
>> passes an absolute path to the user's custom function. This limits
>> flexibility as the original path input is not available to the
>> function.
>>
>> For better customization, I propose passing the raw path to the
>> function. Users needing an absolute path could use 'expand-file-name'
>> within their function.
>
> Thanks for the suggestion!
>
> This makes sense - the current approach with passing absolute path is
> indeed limiting the information passed to the custom function.
>
> The docstring is also quite ambiguous about what is passed as an
> argument:
>
>     org-link-file-path-type is a customizable variable defined in ol.el.
>     <...>
>     Alternatively, users may supply a custom function that takes the
>     full filename as an argument and returns the path.
>
> "full filename" may or may not mean "absolute filename".
>
> However, changing the absolute path to "as is" path will technically be
> breaking.
>
> I cannot find any actual uses of custom function value for
> `org-link-file-path-type' in the wild, so I am leaning towards going
> ahead with this (minor) breaking change.
>
> Yet, I am starting a poll to give users who may be affected a chance to
> chime in.


-- 

[ stardiviner ]
I try to make every word tell the meaning that I want to express without misunderstanding.

Blog: https://stardiviner.github.io/
IRC(libera.chat, freenode): stardiviner, Matrix: stardiviner
GPG: F09F650D7D674819892591401B5DF1C95AE89AC3

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [POLL] Change calling convention for when `org-link-file-path-type' is set to custom function (was: Enhancement Proposal for 'org-link-file-path-type' Behavior)
  2024-01-17  4:59   ` Christopher M. Miles
@ 2024-01-17 13:17     ` Ihor Radchenko
  0 siblings, 0 replies; 5+ messages in thread
From: Ihor Radchenko @ 2024-01-17 13:17 UTC (permalink / raw)
  To: numbchild; +Cc: 西 顾, emacs-orgmode

"Christopher M. Miles" <numbchild@gmail.com> writes:

> I have one situation need this feature.
> 
> Assume a file structure like bellowing:
>
> #+begin_example
> `- folder-1
>   `- file-1.org
>   `- folder-1.2
>     ` file-1.2.1.org
> #+end_example
>
> When I try to add link of "file-1.org" in "file-1.2.1.org", based on my
> custom option `org-link-file-path-type' value `adaptive'. The link will
> become a full-path link. But I want link to be relative to current Org
> file path. The file link path should be [[file:../file-1.org]] instead
> of [[file:folder-1/file-1.org]]. I hope I can use a custom function in
> conditions to decide the file path.

I think that you do not need to wait for this feature in order to get
what you need. Just examine default-directory in your custom function to
determine whether to return relative or absolute path.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [POLL] Change calling convention for when `org-link-file-path-type' is set to custom function (was: Enhancement Proposal for 'org-link-file-path-type' Behavior)
  2024-01-16 16:06 ` [POLL] Change calling convention for when `org-link-file-path-type' is set to custom function (was: Enhancement Proposal for 'org-link-file-path-type' Behavior) Ihor Radchenko
  2024-01-17  4:59   ` Christopher M. Miles
@ 2024-02-17 15:27   ` Ihor Radchenko
  1 sibling, 0 replies; 5+ messages in thread
From: Ihor Radchenko @ 2024-02-17 15:27 UTC (permalink / raw)
  To: 西 顾; +Cc: emacs-orgmode@gnu.org

Ihor Radchenko <yantar92@posteo.net> writes:

>> I'd like to suggest a small enhancement to the
>> 'org-link-file-path-type' option. When set to 'function', it currently
>> passes an absolute path to the user's custom function. This limits
>> flexibility as the original path input is not available to the
>> function.
>>
>> For better customization, I propose passing the raw path to the
>> function. Users needing an absolute path could use 'expand-file-name'
>> within their function.
>
> Thanks for the suggestion!
>
> This makes sense - the current approach with passing absolute path is
> indeed limiting the information passed to the custom function.
> ...
> Yet, I am starting a poll to give users who may be affected a chance to
> chime in.

No objections after 1 month.
Done, on main.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=388ba5b5c

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-02-17 13:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-16 12:00 Enhancement Proposal for 'org-link-file-path-type' Behavior 西 顾
2024-01-16 16:06 ` [POLL] Change calling convention for when `org-link-file-path-type' is set to custom function (was: Enhancement Proposal for 'org-link-file-path-type' Behavior) Ihor Radchenko
2024-01-17  4:59   ` Christopher M. Miles
2024-01-17 13:17     ` Ihor Radchenko
2024-02-17 15:27   ` Ihor Radchenko

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).