From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.text.pandoc/30917 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: John Carter Wood Newsgroups: gmane.text.pandoc Subject: Re: Changing colons to full-stops in titles Date: Tue, 5 Jul 2022 03:02:39 -0700 (PDT) Message-ID: <5c2a1a00-28b9-4846-9541-92baaf0d5200n@googlegroups.com> References: <78df697a-50f5-46d0-b0b8-29a2cbc9509an@googlegroups.com> <2a8d940b3675472fb4b50ead406f6fc7@unibe.ch> Reply-To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_2844_1979478905.1657015359877" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14637"; mail-complaints-to="usenet@ciao.gmane.io" To: pandoc-discuss Original-X-From: pandoc-discuss+bncBCYPBGVKTEEBBQMYSCLAMGQE2GCKVZA-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Tue Jul 05 12:02:46 2022 Return-path: Envelope-to: gtp-pandoc-discuss@m.gmane-mx.org Original-Received: from mail-yw1-f191.google.com ([209.85.128.191]) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1o8fOG-0003ZF-N1 for gtp-pandoc-discuss@m.gmane-mx.org; Tue, 05 Jul 2022 12:02:44 +0200 Original-Received: by mail-yw1-f191.google.com with SMTP id 00721157ae682-31c89c753b3sf40256697b3.5 for ; Tue, 05 Jul 2022 03:02:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20210112; h=sender:date:from:to:message-id:in-reply-to:references:subject :mime-version:x-original-sender:reply-to:precedence:mailing-list :list-id:list-post:list-help:list-archive:list-subscribe :list-unsubscribe; bh=oCGI22iTV5++dnhkofQLXiE7N9WNfjfZkSYr2yzhRY8=; b=td6A1mzDsF+GPc58zdeSRFGJGf9RddNFcYdjaulwl+uW8f2eGoeY46HxSdzSuRV4Rc BJficoTI0G86llrBHpWGeptDWTas/wkNIXXi0YOKNjKQykBWkvT4z+YDZ/AEy3nx40ok lDroZJPIzQXko/7oNFFWGLrGvIWfChg8U7p+DxYzF/lOOPKyWoZo7V1Zbky26MFETR1f 1m3NvcViwL6lLdz/lwrZwwB9fVwh3AHcaEydF5W6yiTACXYS2GdOk4CRCb4FiHRfNzfQ YVqDOgT1p+e1CNKWrThH8T8Hv87hQUw4H3dMC5A8sVRBg6C0bR4x3hhjRylQmuncQfrT YFSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=sender:x-gm-message-state:date:from:to:message-id:in-reply-to :references:subject:mime-version:x-original-sender:reply-to :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=oCGI22iTV5++dnhkofQLXiE7N9WNfjfZkSYr2yzhRY8=; b=cvFJw6MLnEih9eMmOEFi2cse9UZJOocyqapAPyW+JDuTA6uklG2vsF/xxtLAInTyyw rGp7vQkHNtir+A5Nhx5Yf5XwSLmCka4+wc+eI1wY0n+VhNhoCShsNbg6sg2oc4lWd11Y kJMuQDstAPQkJwW4ldsXDz189o+b8pHtl4p/g6zNIT1f6esgau9kIgDB9Xvom7DsjkAK GFk1i885eGKKgcnOxQqJAcJMMv2iFyho8AxJ2Q9AmnRR+WDz8PXGqLAlHi7euw2KEFw6 BGMiMeURNJGNubThaztH5QADbttMJGapAPatmv+VeH7MKqvPQ2WkGFhPv0+9F9cjPv/M fu6w== Original-Sender: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org X-Gm-Message-State: AJIora+eYDw+Uy9VkHT6OTP1oxg42Zmt33XlPLX7iwECSjwOeRfDn3Qm XGI0ztjCVL5DCnYKiJ/YcLk= X-Google-Smtp-Source: AGRyM1sqk9udzVGMhrr1PP5YU6dK09UyeLeqlY8Ogk6hZSUjUXTE/jFOX71enx0eM4HAjDSOmf4MHA== X-Received: by 2002:a81:160d:0:b0:31c:8997:b760 with SMTP id 13-20020a81160d000000b0031c8997b760mr14155371yww.489.1657015363591; Tue, 05 Jul 2022 03:02:43 -0700 (PDT) X-BeenThere: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Original-Received: by 2002:a81:9b0e:0:b0:317:7fe0:b30 with SMTP id s14-20020a819b0e000000b003177fe00b30ls23806699ywg.4.gmail; Tue, 05 Jul 2022 03:02:40 -0700 (PDT) X-Received: by 2002:a0d:dd03:0:b0:31c:8909:f515 with SMTP id g3-20020a0ddd03000000b0031c8909f515mr14559282ywe.401.1657015360623; Tue, 05 Jul 2022 03:02:40 -0700 (PDT) In-Reply-To: <2a8d940b3675472fb4b50ead406f6fc7-NSENcxR/0n0@public.gmane.org> X-Original-Sender: woodjo-ZOsAvrTRSvuEhhMi0yms2Q@public.gmane.org Precedence: list Mailing-list: list pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org; contact pandoc-discuss+owners-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org List-ID: X-Google-Group-Id: 1007024079513 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Xref: news.gmane.io gmane.text.pandoc:30917 Archived-At: ------=_Part_2844_1979478905.1657015359877 Content-Type: multipart/alternative; boundary="----=_Part_2845_1222045795.1657015359877" ------=_Part_2845_1222045795.1657015359877 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I have finally had a chance to try out Denis's lua filter but I don't seem= =20 to be able to get it to work.=20 1. I saved the filter in my .pandoc/filters folder (as colon-to-dot.lua,=20 attached) 2. I used the test .md file Denis provided (as dot-test.md, attached) 3. I used the pandoc command: pandoc dot-test.md --citeproc --lua-filter=20 colon-to-dot.lua -o dot-test.docx But what comes out looks like this: the colon is unchanged.=20 [image: Screenshot from 2022-07-05 12-00-17.png] What am I doing wrong?=20 denis...-NSENcxR/0n0@public.gmane.org schrieb am Freitag, 1. Juli 2022 um 18:41:02 UTC+2: > A slightly more reliable version: > > =20 > > ``` > > local stringify =3D pandoc.utils.stringify > > function Meta(m) > > if m.references ~=3D nil then > > for _, el in ipairs (m.references) do > > -- print(stringify(el.title)) > > el.title =3D pandoc.Str(string.gsub(stringify(el.title), ': ', '. '= )) > > -- print(el.title) > > end > > end > > return m > > end``` > > =20 > > (This won=E2=80=99t replace colons in biblical references, e.g. Gen 1:1) > > =20 > > You can test with this file : > > =20 > > ```markdown > > --- > > references: > > - type: book > > id: doe > > author: > > - family: Doe > > given: Jane > > issued: > > date-parts: > > - - 2022 > > title: 'A book: with a subtitle and a reference to Gen 1:1, but that is= =20 > not a problem' > > publisher: 'Whatever press' > > lang: de-De > > ... > > =20 > > test [@doe] > > ``` > > =20 > > The filter itself does not cover capitalization. For some reason, pandoc= =20 > or citeproc applies title-case transformation here. I don=E2=80=99t think= it should=20 > though. > > =20 > > *Von:* pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org *Im=20 > Auftrag von *John Carter Wood > *Gesendet:* Freitag, 1. Juli 2022 18:24 > *An:* pandoc-discuss > *Betreff:* Re: Changing colons to full-stops in titles > > =20 > > That's very interesting, thanks! I'll try it out when I get a chance in= =20 > the coming days.=20 > > I have thought about this issue of false positives while thinking about= =20 > the option of some kind of filter. But...I think they would be very rare.= I=20 > have a hard time thinking of a title with a colon in it that shouldn't be= =20 > -- in this case -- be turned into a dot. At least, I don't have anything = in=20 > my 1,200 references where I can see that that wouldn't apply. > > Although, of course, I'm sure there are some out there... > > Just a question: would this also ensure that the first word after the dot= =20 > is capitalised? Or does that open a new series of problems? :-) > > > denis...-NSENcxR/0n0@public.gmane.org schrieb am Freitag, 1. Juli 2022 um 18:17:02 UTC+2: > > Here=E2=80=99s a very simple and absolutely unreliable version of a filte= r. This=20 > will replace every colon in a title with a period. > > =20 > > ```lua > > local stringify =3D pandoc.utils.stringify > > function Meta(m) > > if m.references ~=3D nil then > > for _, el in ipairs (m.references) do > > print(stringify(el.title)) > > el.title =3D pandoc.Str(string.gsub(stringify(el.title), ':', '.')) > > print(el.title) > > end > > end > > return m > > end > > ``` > > =20 > > Question is how this can be made robust enough to avoid false positives. > > =20 > > =20 > > *Von:* pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org *Im=20 > Auftrag von *John Carter Wood > *Gesendet:* Freitag, 1. Juli 2022 17:52 > *An:* pandoc-discuss > *Betreff:* Re: Changing colons to full-stops in titles > > =20 > > Thanks for the suggestions, a couple of which are kind of stretching my= =20 > knowledge of these things, but I see where they're going.=20 > > As to JGM's question: I am using a CSL json bibliography, so my titles ar= e=20 > in a single field. ("title":"Science and religion: new perspectives on th= e=20 > dialogue") > > The issue is that *most* of the journals / publishers I publish in use, a= s=20 > here, the colon. *Some* (mainly German) styles want the period. If I were= =20 > solely interested in either one, I could choose and just enter the releva= nt=20 > punctuation in the title field. However, I want to continue saving my=20 > bibliographic entries with a colon (because that's the most standard one= =20 > for me), but have the option of automatically converting them to a period= =20 > for those cases where I need to. If that makes sense.=20 > > Thus: going through denis's options:=20 > > 1. I have switched to json bibliographies from bibtex/biblatex as they=20 > seemed to offer more flexibility (I was running into issue with the stran= ge=20 > archival references I have to make in my field, and JSON seemed to work= =20 > better in that regard). So this seems to not apply.=20 > > 2. Seems to not apply, as I have a single title field > > 3. Sounds really interesting, and I use BBT, though it also sounds like I= =20 > would here have to create a separate bibliography file from my Zotero=20 > database for those publishers/styles that require the dot. This is not=20 > *too* onerous, as it would at least be automated.=20 > > 4. Having a filter that I could simply apply (as part of a pandoc command= ,=20 > say) or not apply as relevant seems like the most flexible / efficient=20 > solution. I don't know lua, but if this is one possible way, then I could= =20 > use it as a (hopefully fairly simple?) way into learning it.=20 > > =20 > > Does this help to clarify my situation? > > =20 > > denis...-NSENcxR/0n0@public.gmane.org schrieb am Freitag, 1. Juli 2022 um 17:34:55 UTC+2: > > Yes, that=E2=80=99s a known issue... > > There are a couple of possible solutions : > > =20 > > 1. use biblatex databases and patch pandoc so it will concat title and=20 > subtitle fields using periods. (line 667=20 > https://github.com/jgm/pandoc/blob/master/src/Text/Pandoc/Citeproc/BibTeX= .hs > ) > > =20 > > 2. I think pandoc=E2=80=99s citeproc will just treat every unknown variab= le as a=20 > string variable (see=20 > https://github.com/jgm/citeproc/blob/3f94424db469c804cf2dac2d22dc7a18b614= f43e/src/Citeproc/Types.hs#L1054=20 > and=20 > https://github.com/jgm/citeproc/blob/3f94424db469c804cf2dac2d22dc7a18b614= f43e/src/Citeproc/Types.hs#L901),=20 > so you should be able to use =C2=ABsubtitle=C2=BB in styles. (This will g= ive you=20 > warnings when using the style with Zotero and it won=E2=80=99t work relia= bly across=20 > implementations, but anyway ...) > > =20 > > 3. if you=E2=80=99re using Zotero, you can leverage Zotero BBT=E2=80=99s = postscript=20 > feature to manipulate the JSON after exporting. > > E.g., this one : > > if (Translator.BetterCSL && item.title) { > > reference.title =3D reference.title.replace(/ : /g, '. ') > > } > > Not bullet-proof, but simple. You will want to choose a better separator,= =20 > maybe a double-bar or so. > > =20 > > 4. Doing the with lua should also be possible... > > =20 > > The question is: do you have the subtitle in a distinct field or is it=20 > just in the title field? > > =20 > > *Von:* pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org *Im=20 > Auftrag von *John Carter Wood > *Gesendet:* Freitag, 1. Juli 2022 16:39 > *An:* pandoc-discuss > *Betreff:* Changing colons to full-stops in titles > > =20 > > I have one final (for now...) issue in setting up a CSL file (which I use= =20 > with pandoc/citeproc and references in a json file).=20 > > =20 > > I'm not sure whether this is a CSL issue or whether it's an issue that ca= n=20 > be solved via using a filter (or some other solution) in pandoc, but I=20 > thought there might be some people here who might have faced a similar=20 > issue.=20 > > =20 > > The house style for here (German-based publisher) wants a *full-stop/peri= od=20 > *between main title and subtitle in citations / bibliographies; US/UK=20 > standard is a *colon* between main title and subtitle. And reference=20 > managers like Zotero -- IIUC -- save titles as single fields (at least th= ey=20 > are in my version of Zotero). So it doesn't seem like it is possible to= =20 > control what delimiter is used between them via CSL.=20 > > > I have found various discussions of relevant title/subtitle division=20 > issues -- some going back quite a few years -- in forums on Zotero:=20 > > > https://forums.zotero.org/discussion/8077/separate-fields-for-title-and-s= ubtitle/ > > ...and CSL: > > > https://discourse.citationstyles.org/t/handling-main-sub-title-splits-cit= eproc-js/1563/11 > > =20 > > However, these were in part discussions among developers about *possible*= =20 > changes, and I'm not sure of the current status of this issue or whether= =20 > there is a way to handle it.=20 > > Would it be possible to automate turning colons in titles into full-stops= =20 > via using a filter? If so is there such a filter already around? Can this= =20 > be done via CSL? > > =20 > > Or is this, as of now, impossible? > > (Or is there a real simple solution that I have, as usual, overlooked...)= =20 > > --=20 > > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/78df697a-50f5-46d0-b0b8-= 29a2cbc9509an%40googlegroups.com=20 > > . > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/a2d540a6-a435-4285-aed5-= 018007d155cfn%40googlegroups.com=20 > > . > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/f0f222ef-e60e-4397-83ac-= bec1a6ac2d08n%40googlegroups.com=20 > > . > --=20 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 e= mail 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/5c2a1a00-28b9-4846-9541-92baaf0d5200n%40googlegroups.com. ------=_Part_2845_1222045795.1657015359877 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I have finally had a chance to try out Denis's lua filter but I don't seem = to be able to get it to work.

1. I saved the filter in my .pandoc/f= ilters folder (as colon-to-dot.lua, attached)
2. I used the test .md fil= e Denis provided (as dot-test.md, attached)
3. I used the pandoc command= : pandoc dot-test.md --citeproc --lua-filter colon-to-dot.lua -o dot-test.d= ocx

But what comes out looks like this: the colon is unchanged.
=
3D"Screenshot

What am I doing wrong?


denis...-NSENcxR/0n0@public.gmane.org schrieb am Fr= eitag, 1. Juli 2022 um 18:41:02 UTC+2:

A slightly more reliable versio= n:

=C2=A0

```

local stringify =3D pandoc.util= s.stringify

function Meta(m)<= /span>

=C2=A0 if m.references ~=3D nil= then

=C2=A0=C2=A0=C2=A0 for _, el in= ipairs (m.references) do

=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 -- print(stringify(el.title))=

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = el.title =3D pandoc.Str(string.gsub(stringify(el.title), ': ', '= ;. '))

=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 -- print(el.title)

=C2=A0=C2=A0=C2=A0 end

=C2=A0 end

=C2=A0 return m

end```

=C2=A0

(This w= on=E2=80=99t replace colons in biblical references, e.g. Gen 1:1)=

=C2=A0

You can test with this file=C2= =A0:

=C2=A0

```markdown

---

references:

- type: book

=C2=A0 id: doe

=C2=A0 author:

=C2=A0 - family: Doe

=C2=A0=C2=A0=C2=A0 given: Jane

=C2=A0 issued:<= /u>

=C2=A0=C2=A0=C2=A0 date-parts:<= u>

=C2=A0=C2=A0=C2=A0 - - 2022<= /u>

=C2=A0 title: 'A book: with= a subtitle and a reference to Gen 1:1, but that is not a problem'

=C2=A0 publisher: 'Whatever= press'

=C2=A0 lang: de-De

...

=C2=A0

test [@doe]

```

=C2=A0

The filter itself does not cover capitalizatio= n. For some reason, pandoc or citeproc applies tit= le-case transformation here. I don=E2=80=99t think it should though.=

=C2=A0

Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org <pandoc-...@googlegroups.c= om> Im Auftrag von John Carter Wood
Gesendet: Freitag, 1. Juli 2022 18:24
An: pandoc-discuss <pa= ndoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Betreff: Re: Changing colons to full-stops in titles

=C2=A0

That's very inter= esting, thanks! I'll try it out when I get a chance in the coming days.

I have thought about this issue of false positives while thinking about the= option of some kind of filter. But...I think they would be very rare. I ha= ve a hard time thinking of a title with a colon in it that shouldn't be= -- in this case -- be turned into a dot. At least, I don't have anything in my 1,200 references where I ca= n see that that wouldn't apply.

Although, of course, I'm sure there are some out there...

Just a question: would this also ensure that the first word after the dot i= s capitalised? Or does that open a new series of problems? :-)


denis...@= unibe.ch schrieb am Freitag, 1. Juli 2022 um 18:17:02 UTC+2:<= /u>

Here=E2=80=99s a very simple an= d absolutely unreliable version of a filter. This will replace every colon = in a title with a period.

=C2=A0

```lua

local stringify =3D pandoc.util= s.stringify

function Meta(m)<= u>

=C2=A0 if m.references ~=3D nil= then

=C2=A0=C2=A0=C2=A0 for _, el in= ipairs (m.references) do

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = print(stringify(el.title))

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = el.title =3D pandoc.Str(string.gsub(stringify(el.title), ':', '= .'))

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 print(el.title)

=C2=A0=C2=A0=C2=A0 end

=C2=A0 end

=C2=A0 return m

end

```

=C2=A0

Question is how this can be mad= e robust enough to avoid false positives.

=C2=A0

=C2=A0

Von: pandoc-...-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m <pandoc-..= .@googlegroups.com> Im Auftrag von John Carter Wood
Gesendet: Freitag, 1. Juli 2022 17:52
An: pandoc-discuss <pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Betreff: Re: Changing colons to full-stops in titles

=C2=A0

Thanks for the sugges= tions, a couple of which are kind of stretching my knowledge of these thing= s, but I see where they're going.

As to JGM's question: I am using a CSL json bibliography, so my titles = are in a single field. ("title":"Science and religion: new p= erspectives on the dialogue")

The issue is that *most* of the journals / publishers I publish in use, as = here, the colon. *Some* (mainly German) styles want the period. If I were s= olely interested in either one, I could choose and just enter the relevant = punctuation in the title field. However, I want to continue saving my bibliographic entries with a colon (= because that's the most standard one for me), but have the option of au= tomatically converting them to a period for those cases where I need to. If= that makes sense.

Thus: going through denis's options:

1. I have switched to json bibliographies from bibte= x/biblatex as they seemed to offer more flexibility (I was running into iss= ue with the strange archival references I have to make in my field, and JSON seemed to work better in that regard). So this = seems to not apply.

2. Seems to not apply, as I have a single title fiel= d

3. Sounds really interesting, and I use BBT, though = it also sounds like I would here have to create a separate bibliography fil= e from my Zotero database for those publishers/styles that require the dot. This is not *too* onerous, as it would at least be a= utomated.

4. Having a filter that I could simply apply (as par= t of a pandoc command, say) or not apply as relevant seems like the most fl= exible / efficient solution. I don't know lua, but if this is one possible way, then I could use it as a (hopefully fairly si= mple?) way into learning it.

=C2=A0

Does this help to cla= rify my situation?

=C2=A0

den= is...-NSENcxR/0n0@public.gmane.org schrieb am Freitag, 1. Juli 2022 um 17:34:55 UTC+= 2:

Yes, that=E2=80=99s a known iss= ue...

There are a couple of possible = solutions=C2=A0:

=C2=A0

1. use biblatex databases and p= atch pandoc so it will concat title and subtitle fields using periods. (line 667 https://github.com/jgm/pandoc/blob/= master/src/Text/Pandoc/Citeproc/BibTeX.hs)<= /p>

=C2=A0

2. I think pandoc=E2=80=99s citeproc will just treat= every unknown variable as a string variable (see https://github.com/jgm/citeproc/blob/3f94424db469c804cf2dac2d22dc7a18= b614f43e/src/Citeproc/Types.hs#L1054 and https://github.com/jgm/citeproc/blob/3f94424db469c804cf2dac2d22dc7a18b614f4= 3e/src/Citeproc/Types.hs#L901), so you should be able to use =C2=ABsubt= itle=C2=BB in styles. (This will give you warnings when using the style wit= h Zotero and it won=E2=80=99t work reliably across implementations, but anyway ...)

=C2=A0

3. if you=E2=80=99re using Zote= ro, you can leverage Zotero BBT=E2=80=99s postscript feature to manipulate = the JSON after exporting.

E.g., this one=C2=A0:=

if (Translator.BetterCSL &&= amp; item.title) {

=C2=A0 reference.title =3D refe= rence.title.replace(/ : /g, '. ')

}

Not bullet-proof, but simple. Y= ou will want to choose a better separator, maybe a double-bar or so.=

=C2=A0

4. Doing the with lua should also be possible...<= /u>

=C2=A0

The question is: do you have the subtitle in a disti= nct field or is it just in the title field?

=C2=A0

Von: pandoc-...-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m <pandoc-..= .@googlegroups.com> Im Auftrag von John Carter Wood
Gesendet: Freitag, 1. Juli 2022 16:39
An: pandoc-discuss <pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Betreff: Changing colons to full-stops in titles

=C2=A0

I have one final (for now...) issue in setting up a = CSL file (which I use with pandoc/citeproc and references in a json file).

=C2=A0

I'm not sure whether this is a CSL issue or whet= her it's an issue that can be solved via using a filter (or some other = solution) in pandoc, but I thought there might be some people here who might have faced a similar issue.

=C2=A0

The house style for here (German-based publisher) wa= nts a full-stop/period between main title and subtitle in citations / bibl= iographies; US/UK standard is a colon between main title and subtitle. And reference managers like Z= otero -- IIUC -- save titles as single fields (at least they are in my vers= ion of Zotero). So it doesn't seem like it is possible to control what = delimiter is used between them via CSL.


I have found various discussions of relevant title/subtitle division issues= -- some going back quite a few years -- in forums on Zotero:

https://fo= rums.zotero.org/discussion/8077/separate-fields-for-title-and-subtitle/=

...and CSL:

https://discourse.citationstyles.org/t/handling-main-sub-title-splits-= citeproc-js/1563/11

=C2=A0

However, these were i= n part discussions among developers about possible changes, and I'm not sure of the current status of this= issue or whether there is a way to handle it.

Would it be possible to automate turning colons in t= itles into full-stops via using a filter? If so is there such a filter alre= ady around? Can this be done via CSL?

=C2=A0

Or is this, as of now, impossible?

(Or is there a real simple solution that I have, as usual, overlooked...) <= u>

--

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 e= mail to pandoc-discus...@googlegro= ups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/78df697a-50f5-46d0-b0b8-29= a2cbc9509an%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...@googlegro= ups.com.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pand= oc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
To view this discussion on the web visit https://groups.google.com/d= /msgid/pandoc-discuss/5c2a1a00-28b9-4846-9541-92baaf0d5200n%40googlegroups.= com.
------=_Part_2845_1222045795.1657015359877-- ------=_Part_2844_1979478905.1657015359877 Content-Type: text/x-lua; charset=US-ASCII; name=colon-to-dot.lua Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=colon-to-dot.lua X-Attachment-Id: 4c66a97e-4b6f-4b67-94e3-de82aec23d86 Content-ID: <4c66a97e-4b6f-4b67-94e3-de82aec23d86> local stringify = pandoc.utils.stringify function Meta(m) if m.references ~= nil then for _, el in ipairs (m.references) do -- print(stringify(el.title)) el.title = pandoc.Str(string.gsub(stringify(el.title), ': ', '. ')) -- print(el.title) end end return m end ------=_Part_2844_1979478905.1657015359877 Content-Type: text/markdown; charset=US-ASCII; name=dot-test.md Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=dot-test.md X-Attachment-Id: db02ba47-6376-4dae-b663-af14608fb8be Content-ID: --- references: - type: book id: doe author: - family: Doe given: Jane issued: date-parts: - - 2022 title: 'A book: with a subtitle and a reference to Gen 1:1, but that is not a problem' publisher: 'Whatever press' lang: de-De ... test [@doe] ------=_Part_2844_1979478905.1657015359877 Content-Type: image/png; name="Screenshot from 2022-07-05 12-00-17.png" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="Screenshot from 2022-07-05 12-00-17.png" X-Attachment-Id: fef9092d-2c6e-4536-ab84-f60e393c3fc1 Content-ID: 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 ------=_Part_2844_1979478905.1657015359877--