Woops, I mean this one (upper, not lower), and I needed a colon right before it, not a period):       el.title = pandoc.Str(string.gsub(stringify(el.title), ': (%l)', '. %1':upper())) Hth, Sukil El 01/07/2022 a las 18:54, Sukil Etxenike arizaleta escribió: > > 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/b77d6ecf-8648-d6bc-3818-5a44cadd8a48%40gmail.com.