Denis, you beat me to it (I forgot about stringify and I ws not making progress). El 01/07/2022 a las 18:23, John Carter Wood escribió: > would this also ensure that the first word after the dot is capitalised? No, it won't ensure that the first character after the full stop is a capital. For that, you can change this line:       el.title = pandoc.Str(string.gsub(stringify(el.title), ':', '.')) With this one (haven't tested it but I think it should work):       el.title = pandoc.Str(string.gsub(stringify(el.title), ': (%l)', '. %1'.lower())) Hth, Sukil El 01/07/2022 a las 18:40, denis.maier-NSENcxR/0n0@public.gmane.org escribió: > > A slightly more reliable version: > > ``` > > 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``` > > (This won’t replace colons in biblical references, e.g. Gen 1:1) > > You can test with this file : > > ```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 not a problem' > >   publisher: 'Whatever press' > >   lang: de-De > > ... > > test [@doe] > > ``` > > The filter itself does not cover capitalization. For some reason, > pandoc or citeproc applies title-case transformation here. I don’t > think it should though. > > *Von:*pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org > *Im Auftrag von *John Carter Wood > *Gesendet:* Freitag, 1. Juli 2022 18:24 > *An:* pandoc-discuss > *Betreff:* Re: Changing colons to full-stops in titles > > That's very interesting, 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 have 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 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 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’s a very simple and absolutely unreliable version of a > filter. This will replace every colon in a title with a period. > > ```lua > > 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 > > ``` > > Question is how this can be made robust enough to avoid false > positives. > > *Von:*pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org > *Im Auftrag von *John Carter Wood > *Gesendet:* Freitag, 1. Juli 2022 17:52 > *An:* pandoc-discuss > *Betreff:* Re: Changing colons to full-stops in titles > > Thanks for the suggestions, a couple of which are kind of > stretching my knowledge of these things, 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 > perspectives 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 solely 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 automatically 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 bibtex/biblatex as > they seemed to offer more flexibility (I was running into issue > 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 field > > 3. Sounds really interesting, and I use BBT, though it also sounds > like I would here have to create a separate bibliography file from > my Zotero database for those publishers/styles that require the > dot. This is not *too* onerous, as it would at least be automated. > > 4. Having a filter that I could simply apply (as part of a pandoc > command, say) or not apply as relevant seems like the most > flexible / efficient solution. I don't know lua, but if this is > one possible way, then I could use it as a (hopefully fairly > simple?) way into learning it. > > Does this help to clarify my situation? > > denis...-NSENcxR/0n0@public.gmane.org schrieb am Freitag, 1. Juli 2022 um 17:34:55 UTC+2: > > Yes, that’s a known issue... > > There are a couple of possible solutions : > > 1. use biblatex databases and patch 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 > ) > > 2. I think pandoc’s citeproc will just treat every unknown > variable as a string variable (see > https://github.com/jgm/citeproc/blob/3f94424db469c804cf2dac2d22dc7a18b614f43e/src/Citeproc/Types.hs#L1054 > > and > https://github.com/jgm/citeproc/blob/3f94424db469c804cf2dac2d22dc7a18b614f43e/src/Citeproc/Types.hs#L901), > so you should be able to use «subtitle» in styles. (This will > give you warnings when using the style with Zotero and it > won’t work reliably across implementations, but anyway ...) > > 3. if you’re using Zotero, you can leverage Zotero BBT’s > postscript feature to manipulate the JSON after exporting. > > E.g., this one : > > if (Translator.BetterCSL && item.title) { > >   reference.title = reference.title.replace(/ : /g, '. ') > > } > > Not bullet-proof, but simple. You will want to choose a better > separator, maybe a double-bar or so. > > 4. Doing the with lua should also be possible... > > The question is: do you have the subtitle in a distinct field > or is it just in the title field? > > *Von:*pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org > *Im Auftrag von *John Carter Wood > *Gesendet:* Freitag, 1. Juli 2022 16:39 > *An:* pandoc-discuss > *Betreff:* Changing colons to full-stops in titles > > 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). > > I'm not sure whether this is a CSL issue or whether 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. > > The house style for here (German-based publisher) wants a > *full-stop/period *between main title and subtitle in > citations / bibliographies; US/UK standard is a *colon* > between main title and subtitle. And reference managers like > Zotero -- IIUC -- save titles as single fields (at least they > are in my version 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://forums.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 > > However, these were in 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 titles into > full-stops via using a filter? If so is there such a filter > already around? Can this be done via CSL? > > Or is this, as of now, impossible? > > (Or is there a real simple solution that I have, as usual, > overlooked...) > > -- > > 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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To view this discussion on the web visit > https://groups.google.com/d/msgid/pandoc-discuss/78df697a-50f5-46d0-b0b8-29a2cbc9509an%40googlegroups.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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To view this discussion on the web visit > https://groups.google.com/d/msgid/pandoc-discuss/a2d540a6-a435-4285-aed5-018007d155cfn%40googlegroups.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/f0f222ef-e60e-4397-83ac-bec1a6ac2d08n%40googlegroups.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/2a8d940b3675472fb4b50ead406f6fc7%40unibe.ch > . -- 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/6621a84d-37f3-6741-bb0a-d4bfd6dac4bf%40gmail.com.