Is it possible to create a custom <<anchor>>: From: (info "(org) Internal Links") 1. one item 2. <<target>>another item Here we refer to item [[target]]. That is fine, however, in the HTML output the <<target>> will become something like: <li><a id="orgc0c2c98"></a>another item</li> As I am developing finely grained referenced Org outputs I would need the id="orgc0c2c98" to be defined how I wish it and not interpolated into something random. Is there a possibility to tell Org, that <<target>> really remains "target" as in id="target" instead of a random ID? -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns Sign an open letter in support of Richard M. Stallman https://stallmansupport.org/ https://rms-support-letter.github.io/
Hello,
Jean Louis <bugs@gnu.support> writes:
> Is it possible to create a custom <<anchor>>:
>
> From: (info "(org) Internal Links")
>
> 1. one item
> 2. <<target>>another item
> Here we refer to item [[target]].
>
> That is fine, however, in the HTML output the <<target>> will become
> something like: <li><a id="orgc0c2c98"></a>another item</li>
>
> As I am developing finely grained referenced Org outputs I would need
> the id="orgc0c2c98" to be defined how I wish it and not interpolated
> into something random.
>
> Is there a possibility to tell Org, that <<target>> really remains
> "target" as in id="target" instead of a random ID?
See `org-html-prefer-user-labels'.
Regards.
--
Nicolas Goaziou
* Nicolas Goaziou <mail@nicolasgoaziou.fr> [2021-05-20 23:00]: > > Is there a possibility to tell Org, that <<target>> really remains > > "target" as in id="target" instead of a random ID? > > See `org-html-prefer-user-labels'. Thanks. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns Sign an open letter in support of Richard M. Stallman https://stallmansupport.org/ https://rms-support-letter.github.io/
thanks for pointing us to this variable. docstring says "This process ensures that these values are unique and valid...", so it sounds like you could create non-unique or invalid identifiers without it. does this mean, for example, if the user exports a subtree with two link targets with the same user label, then if this variable is non-nil, then the output could include more than one link target? what if this var were nil [the default], my brain is not working well now, but it seems as if the exporter could still get confused which target to link to, even if it is not printing duplicatedly-named targets. so i am curious what the purpose of the default is? On 5/20/21, Jean Louis <bugs@gnu.support> wrote: > * Nicolas Goaziou <mail@nicolasgoaziou.fr> [2021-05-20 23:00]: >> > Is there a possibility to tell Org, that <<target>> really remains >> > "target" as in id="target" instead of a random ID? >> >> See `org-html-prefer-user-labels'. > > Thanks. > > > -- > Jean > > Take action in Free Software Foundation campaigns: > https://www.fsf.org/campaigns > > Sign an open letter in support of Richard M. Stallman > https://stallmansupport.org/ > https://rms-support-letter.github.io/ > > > -- The Kafka Pandemic Please learn what misopathy is. https://thekafkapandemic.blogspot.com/2013/10/why-some-diseases-are-wronged.html
* Samuel Wales <samologist@gmail.com> [2021-05-21 01:19]: > thanks for pointing us to this variable. > > docstring says "This process ensures that these values are unique and > valid...", so it sounds like you could create non-unique or invalid > identifiers without it. > > does this mean, for example, if the user exports a subtree with two > link targets with the same user label, then if this variable is > non-nil, then the output could include more than one link target? I may try to give the example here: <<paragraph>> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. <<paragraph>> Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut tristique vitae, sagittis vel odio. Maecenas convallis ullamcorper ultricies. which results in: <a id="paragraph"></a> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. </p> <p> <a id="paragraph"></a> Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut tristique vitae, sagittis vel odio. Maecenas convallis ullamcorper ultricies. </p> > what if this var were nil [the default], my brain is not working well > now, but it seems as if the exporter could still get confused which > target to link to, even if it is not printing duplicatedly-named > targets. > > so i am curious what the purpose of the default is? You already discovered the purpose: "This process ensures that these values are unique and valid..." Randomly generated internal hyperlinks are not part of author's document creation and I don't believe they can be unique across all documents as they rely on randomity, not uniqueness, but they may be unique in one document. The sentence should say "This process ensures that these values are unique to specific document and valid" Problem with it is that those random anchors/links are random, and that makes it a bad default for user. A user may bookmark the link https://www.example.com/doc#org2cf8625 with some title, but with the next document generation same link may appear as https://www.example.com/doc#org6ac9de0 and that means that bookmark disappeared, at least for HTML export. For me personally I am editing Org text (not files) on a meta level where all objects have its unique ID and from there I can create Org files. Then each object of a structure of meta level Org has its unique ID. Also the document has its unique ID. Then it becomes possible to automatically create anchors like <<1:17311:31121>> which are truly unique across all documents, remain immutable, and are trackable. With "trackable" I mean that it is possible to generate a list of "referenced by" documents, documents which hyperlink to that anchor. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns Sign an open letter in support of Richard M. Stallman https://stallmansupport.org/ https://rms-support-letter.github.io/
thanks for the example. yes, that is the example i was thinkng of. i was asking, why does adding uniqueness do any good currently. if the user has your example as follows, it does create duplicates in the output, but i don't get why that all by itself needs fixing by default. ===vvv I may try to give the example here: <<paragraph>> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. <<paragraph>> Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut tristique vitae, sagittis vel odio. Maecenas convallis ullamcorper ultricies. which results in: <a id="paragraph"></a> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. </p> <p> <a id="paragraph"></a> Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut tristique vitae, sagittis vel odio. Maecenas convallis ullamcorper ultricies. </p> ===^^^ so the duplicates in the output there are apparently a problem. i am not sure why, unless a link needs to point to each. perhaps so that the reader of the web page can point to each? but as you say, generating the document again foils that plot. [note: i started the thread about toc links. this is a subtly different question although it overlaps.] On 5/20/21, Jean Louis <bugs@gnu.support> wrote: > * Samuel Wales <samologist@gmail.com> [2021-05-21 01:19]: >> thanks for pointing us to this variable. >> >> docstring says "This process ensures that these values are unique and >> valid...", so it sounds like you could create non-unique or invalid >> identifiers without it. >> >> does this mean, for example, if the user exports a subtree with two >> link targets with the same user label, then if this variable is >> non-nil, then the output could include more than one link target? > > I may try to give the example here: > > <<paragraph>> > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam > lectus. Sed sit amet ipsum mauris. > > <<paragraph>> > Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut > tristique vitae, sagittis vel odio. Maecenas convallis ullamcorper > ultricies. > > which results in: > > <a id="paragraph"></a> > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam > lectus. Sed sit amet ipsum mauris. > </p> > > <p> > <a id="paragraph"></a> > Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut > tristique vitae, sagittis vel odio. Maecenas convallis ullamcorper > ultricies. > </p> > >> what if this var were nil [the default], my brain is not working well >> now, but it seems as if the exporter could still get confused which >> target to link to, even if it is not printing duplicatedly-named >> targets. >> >> so i am curious what the purpose of the default is? > > You already discovered the purpose: "This process ensures that these > values are unique and valid..." > > Randomly generated internal hyperlinks are not part of author's > document creation and I don't believe they can be unique across all > documents as they rely on randomity, not uniqueness, but they may be > unique in one document. The sentence should say "This process ensures > that these values are unique to specific document and valid" > > Problem with it is that those random anchors/links are random, and > that makes it a bad default for user. A user may bookmark the link > > https://www.example.com/doc#org2cf8625 with some title, but with the > next document generation same link may appear as > https://www.example.com/doc#org6ac9de0 and that means that bookmark > disappeared, at least for HTML export. > > For me personally I am editing Org text (not files) on a meta level > where all objects have its unique ID and from there I can create Org > files. Then each object of a structure of meta level Org has its > unique ID. Also the document has its unique ID. Then it becomes > possible to automatically create anchors like <<1:17311:31121>> which > are truly unique across all documents, remain immutable, and are > trackable. With "trackable" I mean that it is possible to generate a > list of "referenced by" documents, documents which hyperlink to that > anchor. > > -- > Jean > > Take action in Free Software Foundation campaigns: > https://www.fsf.org/campaigns > > Sign an open letter in support of Richard M. Stallman > https://stallmansupport.org/ > https://rms-support-letter.github.io/ > > -- The Kafka Pandemic Please learn what misopathy is. https://thekafkapandemic.blogspot.com/2013/10/why-some-diseases-are-wronged.html
Hello,
Samuel Wales <samologist@gmail.com> writes:
> so i am curious what the purpose of the default is?
I think the purpose of the default value is to offer a solution that
works for everyone. It is certainly not the best one in all situations.
For example, I heard that even in 2021, using full Unicode in a URL is
not good idea. Yet, some users may want to use Unicode symbols in
a target.
Regards,
--
Nicolas Goaziou
tahnk you. that makes sense for validity. still not sure about uniqueness. it's not needed for me to understand, though. of course with across-export link stability then uniqueness would be meaningful. On 5/21/21, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > Hello, > > Samuel Wales <samologist@gmail.com> writes: > >> so i am curious what the purpose of the default is? > > I think the purpose of the default value is to offer a solution that > works for everyone. It is certainly not the best one in all situations. > > For example, I heard that even in 2021, using full Unicode in a URL is > not good idea. Yet, some users may want to use Unicode symbols in > a target. > > Regards, > -- > Nicolas Goaziou > -- The Kafka Pandemic Please learn what misopathy is. https://thekafkapandemic.blogspot.com/2013/10/why-some-diseases-are-wronged.html