public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: <denis.maier-NSENcxR/0n0@public.gmane.org>
To: <pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Subject: AW: How do I replace a string in all text that pandoc converts, i.e. how do I do this with a filter?
Date: Mon, 5 Dec 2022 23:49:38 +0000	[thread overview]
Message-ID: <a5cc6e61614f4133870d4dabfa85d5fa@unibe.ch> (raw)
In-Reply-To: <7cabb17e-9a2b-4251-bd95-c5415140c9adn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>

You are matching against the whole paragraph (para). So, when the first element in your paragraph matches your search string, you'll replace the whole paragraph with the return value of your function. (Which is a block element, not an inline element.)

Use the example from here instead:
https://pandoc.org/lua-filters.html#macro-substitution
________________________________________
Von: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org <pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> im Auftrag von paulschillinger93-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <paulschillinger93-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Gesendet: Dienstag, 6. Dezember 2022 00:32:23
An: pandoc-discuss
Betreff: Re: How do I replace a string in all text that pandoc converts, i.e. how do I do this with a filter?

YES! that works! But can you tell me why it replaces the whole line? Can't I do this in running text?
Thanks!
return {
  {
    Para = function (elem)
      if elem.content[1].text == "{{helloworld}}" then
        return pandoc.RawBlock('latex','abc')
      else
        return elem
      end
    end,
  }
}




On Tuesday, December 6, 2022 at 12:09:13 a.m. UTC+1 denis...-NSENcxR/0n0@public.gmane.org wrote:
Just your example filter:

```lua
return {
  {
    Para = function (elem)
      if elem.content[1].text == "{{helloworld}}" then
        return pandoc.RawBlock('html','<div>abc</div>')
      else
        return elem
      end
    end,
  }
}
```

The problematic line is this: return pandoc.RawBlock('html','<div>abc</div>')
This adds a raw block that will only come in to effect when your output format is html.

If your target ist latex, you’ll need something like this: return pandoc.RawBlock('latex','\\whatever{abc}')

```cmd
pandoc test.md -L filter.lua -t latex
asf

\whatever{abc}

asf
```


Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org <pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> Im Auftrag von paulschi...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Gesendet: Dienstag, 6. Dezember 2022 00:04
An: pandoc-discuss <pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Betreff: Re: How do I replace a string in all text that pandoc converts, i.e. how do I do this with a filter?

No, my intended output is a PDF file. Does that change anything? Could you tell me what exactly you put in filter.lua?
Thanks!

On Monday, December 5, 2022 at 11:56:39 p.m. UTC+1 denis...-NSENcxR/0n0@public.gmane.org wrote:
What exactly are you doing? Your output format is html? I’ve just tested this and it seems to work.

```cmd
C:\Users\denis\Downloads\filter>cat test.md
asf

{{helloworld}}

asf
C:\Users\denis\Downloads\filter>pandoc test.md
<p>asf</p>
<p>{{helloworld}}</p>
<p>asf</p>

C:\Users\denis\Downloads\filter>pandoc test.md -L filter.lua
<p>asf</p>
<div>abc</div>
<p>asf</p>
```
Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org <pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> Im Auftrag von paulschi...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Gesendet: Montag, 5. Dezember 2022 18:58
An: pandoc-discuss <pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Betreff: Re: How do I replace a string in all text that pandoc converts, i.e. how do I do this with a filter?

I've tried this:

return {
  {
    Para = function (elem)
      if elem.content[1].text == "{{helloworld}}" then
        return pandoc.RawBlock('html','<div>abc</div>')
      else
        return elem
      end
    end,
  }
}

but that only gets rid of {{helloworld}}, it doesn't replace it with anything. Sadly this doens't work for "==", i.e. those don't disappear.
On Monday, December 5, 2022 at 6:49:08 p.m. UTC+1 - wrote:
I've been trying to replace markdown/Obsidian highlights "==" either with something that LaTeX can use e.g. \hl or just delete it/replace it with nothing, but I can't figure out how to do this.

I've tried this:
function Str (str)
str.text = string.upper(str.text)
return str
end

But I can't even figure out where I'm meant to put my own text?

How do I rpelace == with " "?

Thanks!
--
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/3ae58adb-8789-4398-8ab0-fe1e6928e292n%40googlegroups.com<https://groups.google.com/d/msgid/pandoc-discuss/3ae58adb-8789-4398-8ab0-fe1e6928e292n%40googlegroups.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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/e9cb34ca-b760-4ef6-9432-91d37f5e45c5n%40googlegroups.com<https://groups.google.com/d/msgid/pandoc-discuss/e9cb34ca-b760-4ef6-9432-91d37f5e45c5n%40googlegroups.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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<mailto:pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/7cabb17e-9a2b-4251-bd95-c5415140c9adn%40googlegroups.com<https://groups.google.com/d/msgid/pandoc-discuss/7cabb17e-9a2b-4251-bd95-c5415140c9adn%40googlegroups.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/a5cc6e61614f4133870d4dabfa85d5fa%40unibe.ch.


  parent reply	other threads:[~2022-12-05 23:49 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <AQHZCNHjf/ZLvnEKSku8rNPhS+hfuK5fg9cAgABjBzD///KPAIAAEQug///2x4CAABQqJv//8RSAAAAIb4AAAF/3gAAW7vkg>
     [not found] ` <AQHZCNHjf/ZLvnEKSku8rNPhS+hfuK5fg9cAgABjBzD///KPAIAAEQug///2x4CAABQqJg==>
     [not found]   ` <AQHZCNHjf/ZLvnEKSku8rNPhS+hfuK5fg9cAgABjBzD///KPAIAAEQug>
     [not found]     ` <AQHZCNHjf/ZLvnEKSku8rNPhS+hfuK5fg9cAgABjBzA=>
2022-12-05 17:49       ` -
     [not found]         ` <83eeff5c-8fc3-4ca3-862c-bb85790daabcn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-12-05 17:58           ` -
     [not found]             ` <3ae58adb-8789-4398-8ab0-fe1e6928e292n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-12-05 22:56               ` AW: " denis.maier-NSENcxR/0n0
     [not found]                 ` <24509d5ca5844dbda07b3e77d86ab3f4-NSENcxR/0n0@public.gmane.org>
2022-12-05 23:04                   ` -
     [not found]                     ` <e9cb34ca-b760-4ef6-9432-91d37f5e45c5n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-12-05 23:09                       ` AW: " denis.maier-NSENcxR/0n0
     [not found]                         ` <2faac96e448d4303b3ea0e12ef05dfbe-NSENcxR/0n0@public.gmane.org>
2022-12-05 23:32                           ` -
     [not found]                             ` <7cabb17e-9a2b-4251-bd95-c5415140c9adn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-12-05 23:49                               ` denis.maier-NSENcxR/0n0 [this message]
     [not found]                                 ` <a5cc6e61614f4133870d4dabfa85d5fa-NSENcxR/0n0@public.gmane.org>
2022-12-05 23:51                                   ` -
     [not found]                                     ` <e0806b27-10df-48cd-ab8a-7806ac1c8039n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-12-05 23:52                                       ` -
     [not found]                                         ` <272ed09b-4245-4128-94a2-50cf5f67e10dn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-12-06  0:02                                           ` -
     [not found]                                             ` <6d25bb08-224d-4f01-8eba-3f1c55d19e83n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-12-06  9:59                                               ` AW: " denis.maier-NSENcxR/0n0
     [not found]                                                 ` <3db81523c80944f3a81a18f25166124f-NSENcxR/0n0@public.gmane.org>
2022-12-06 10:55                                                   ` -
     [not found]                                                     ` <aedaf371-8dc3-4585-a16c-b4ef55967a7dn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-12-06 11:51                                                       ` -

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a5cc6e61614f4133870d4dabfa85d5fa@unibe.ch \
    --to=denis.maier-nsencxr/0n0@public.gmane.org \
    --cc=pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).