BTW, sorry for failing to read your original message properly!
Right. The auto-identifiers.lua filter is not yet in pandoc-ext, but I'll
look into adding it. Note that it doesn't remove the need to add an
identifier (it just derives the identifier from the content).
I think that auto-defined identifiers are only appropriate for terms, not
for definitions, but you could use a filter such as the one shown below to
auto-add identifiers to definitions if their terms have identifiers. Using
this input (based on Bastien's):
[Term 1]{#t1}
: Definition 1
: Definition 2
Term 2
: Definition 1
Here Term 1 has [this meaning](#t1-def2).
gives this HTML:
- Term 1
-
Definition 1
-
Definition 2
- Term 2
-
Definition 1
Here Term 1 has this meaning.
The filter:
function DefinitionList(list)
local changed = false
for _, item in ipairs(list.content) do
local term = item[1]
local defs = item[2]
if (#term > 0 and term[1].tag == 'Span' and
#term[1].attr.identifier > 0) then
local term_id = term[1].attr.identifier
for i, def in ipairs(defs) do
if #def > 0 then
local def_id = string.format('%s-def%s', term_id, i)
def[1].content:insert(
1, pandoc.Span({}, pandoc.Attr(def_id)))
changed = true
end
end
end
end
if changed then
return list
end
end
On Sun, 12 Nov 2023 at 10:27, A A wrote:
> Hey William,
>
> I'd be interested in getting a hold of that filter you mentioned, I can
> see how it would greatly reduce the amount of bookkeeping required here.
>
> I did check in https://github.com/pandoc/lua-filters as well as the link
> you provided but couldn't find it. I could also technically make my own
> filter or post-process the resulting document using JS but if you have that
> filter on hand that would be very helpful.
>
> Regards,
>
> Amine
>
> On Sun, 12 Nov 2023 at 11:13, A A wrote:
>
>> Nevermind sorry. Please disregard my last reply. The anchor link works
>> fine.
>>
>> On Sun, 12 Nov 2023 at 11:05, A A wrote:
>>
>>> Ok, thanks for that, but when I try to convert something like the
>>> following:
>>>
>>> [USA]{#usa}
>>> : United States of America
>>>
>>> The resulting HTML looks like this:
>>>
>>> USA
>>>
>>> United States of America
>>>
>>>
>>> The hash symbol gets dropped which basically makes that span useless as
>>> the target of an anchor link. I think I’m probably still doing something
>>> wrong but I’m not sure what.
>>>
>>> On Sat, 11 Nov 2023 at 23:57, Bastien DUMONT bastien.dumont-VwIFZPTo/vqsTnJN9+BGXg@public.gmane.org
>>> wrote:
>>>
>>> Same thing, but on the definition:
>>>>
>>>> Term 1
>>>>
>>>> : Definition 1
>>>>
>>>> : [Definition 2]{#t1-def2}
>>>>
>>>> Term 2
>>>>
>>>> : Definition 1
>>>>
>>>> Here Term 1 has [this meaning](#t1-def2).
>>>>
>>>> You will not get the id on the element directly, but on a
>>>> inside .
>>>>
>>>> Le Saturday 11 November 2023 à 10:57:48PM, A A a écrit :
>>>> > Thanks William, this will certainly come in handy, however I was
>>>> asking about
>>>> > linking to specific *definitions*, not *terms*, i.e. in the case
>>>> where I have
>>>> > multiple definitions for a single term, I'd like to be able to link
>>>> to only one
>>>> > of them from another definition or from the main body of my
>>>> document....
>>>> >
>>>> > On Mon, 6 Nov 2023 at 16:02, 'William Lupton' via pandoc-discuss <[1]
>>>> > pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> wrote:
>>>> >
>>>> > You can use [2]bracketed spans to do this manually, as in:
>>>> >
>>>> > [Term 1]{#term-1}
>>>> > ...
>>>> > Reference to [Term 1](#term-1).
>>>> >
>>>> > We use an auto-identifiers.lua filter that I could probably add
>>>> to [3]
>>>> > pandoc-ext. This will auto-derive the identifiers from the span
>>>> content.
>>>> > This allows you to write this:
>>>> >
>>>> > [Term 1]{}
>>>> > ...
>>>> > Reference to [Term 1]().
>>>> >
>>>> > or this (the t: is used as a prefix):
>>>> >
>>>> > [Term 1]{#t:}
>>>> > ...
>>>> > Reference to [Term 1](#t:).
>>>> >
>>>> > The latter example generates this HTML.
>>>> >
>>>> > Term 1
>>>> > ...
>>>> > Reference to Term 1.
>>>> >
>>>> > On Mon, 6 Nov 2023 at 12:14, A A <[4]amine.aboufirass-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>>> wrote:
>>>> >
>>>> >
>>>> > Pandoc will convert the following markdown:
>>>> >
>>>> > Term 1
>>>> >
>>>> > : Definition 1
>>>> >
>>>> > : Definition 2
>>>> >
>>>> > Term 2
>>>> >
>>>> > : Definition 1
>>>> >
>>>> > To the following HTML:
>>>> >
>>>> >
>>>> > - Term 1
>>>> > -
>>>> >
Definition 1
>>>> >
>>>> > -
>>>> >
Definition 2
>>>> >
>>>> > - Term 2
>>>> > -
>>>> >
Definition 1
>>>> >
>>>> >
>>>> >
>>>> > How easy/straightforward is it to assign identifiers to
>>>> specific
>>>> > definition items in markdown? For example such that the
>>>> resulting HTML
>>>> > looks like the following:
>>>> >
>>>> >
>>>> > - Term 1
>>>> > -
>>>> >
Definition 1
>>>> >
>>>> > -
>>>> >
Definition 2
>>>> >
>>>> > - Term 2
>>>> > -
>>>> >
Definition 1
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > You received this message because you are subscribed to the
>>>> Google
>>>> > Groups "pandoc-discuss" group.
>>>> > To unsubscribe from this group and stop receiving emails from
>>>> it, send
>>>> > an email to [5]pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>>>> > To view this discussion on the web visit [6]
>>>> https://groups.google.com/d
>>>> > /msgid/pandoc-discuss/
>>>> > CAMwawgNTwDo55QU5dZsgeXQpG9jAr1_RevLPdshEjFgqyF%3DgLQ%
>>>> 40mail.gmail.com.
>>>> >
>>>> > --
>>>> > You received this message because you are subscribed to the
>>>> Google Groups
>>>> > "pandoc-discuss" group.
>>>> > To unsubscribe from this group and stop receiving emails from it,
>>>> send an
>>>> > email to [7]pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>>>> > To view this discussion on the web visit [8]
>>>> https://groups.google.com/d/
>>>> > msgid/pandoc-discuss/
>>>> > CAEe_xxiyw7-04ghifFmDDv3XH0rBVL-WszRX44%3D27Q_OP%2BXSnA%
>>>> 40mail.gmail.com.
>>>> >
>>>> > --
>>>> > You received this message because you are subscribed to the Google
>>>> Groups
>>>> > "pandoc-discuss" group.
>>>> > To unsubscribe from this group and stop receiving emails from it,
>>>> send an email
>>>> > to [9]pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>>>> > To view this discussion on the web visit [10]
>>>> https://groups.google.com/d/msgid/
>>>> > pandoc-discuss/
>>>> > CAMwawgMn0hHWHAk7wAk0GYFrjgh%3Do5R3yhZjB5kSpcNxWhvb%3DA%
>>>> 40mail.gmail.com.
>>>> >
>>>> > References:
>>>> >
>>>> > [1] mailto:pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
>>>> > [2] https://pandoc.org/MANUAL.html#extension-bracketed_spans
>>>> > [3] https://github.com/pandoc-ext
>>>> > [4] mailto:amine.aboufirass-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
>>>> > [5] mailto:pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
>>>> > [6]
>>>> https://groups.google.com/d/msgid/pandoc-discuss/CAMwawgNTwDo55QU5dZsgeXQpG9jAr1_RevLPdshEjFgqyF%3DgLQ%40mail.gmail.com?utm_medium=email&utm_source=footer
>>>> > [7] mailto:pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
>>>> > [8]
>>>> https://groups.google.com/d/msgid/pandoc-discuss/CAEe_xxiyw7-04ghifFmDDv3XH0rBVL-WszRX44%3D27Q_OP%2BXSnA%40mail.gmail.com?utm_medium=email&utm_source=footer
>>>> > [9] mailto:pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
>>>> > [10]
>>>> https://groups.google.com/d/msgid/pandoc-discuss/CAMwawgMn0hHWHAk7wAk0GYFrjgh%3Do5R3yhZjB5kSpcNxWhvb%3DA%40mail.gmail.com?utm_medium=email&utm_source=footer
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "pandoc-discuss" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/pandoc-discuss/ZVAG4DKHakT2qzn6%40localhost
>>>> .
>>>
>>>
>>>> --
> You received this message because you are subscribed to the Google Groups
> "pandoc-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/pandoc-discuss/CAMwawgMH_vudUviXZa8odQ-jyn5Snk3YYGzx4K9to2RBQ_dpOA%40mail.gmail.com
>
> .
>
--
You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/CAEe_xxjOecwEVJSiO%2BBQDVHqc1zaDxHZuuzDSTDjZEmQna4xOg%40mail.gmail.com.