public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: Albert Krewinkel <albert+pandoc-9EawChwDxG8hFhg+JK9F0w@public.gmane.org>
To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: requiring other lua files from parent directories from within filters
Date: Thu, 05 Oct 2023 12:11:22 +0200	[thread overview]
Message-ID: <875y3lnzho.fsf@zeitkraut.de> (raw)
In-Reply-To: <d94cef59-9869-4376-9d36-b38cab195025n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>


jcr <ffi.appdev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:

> Another approach is to use Lua's debug facilities to find the path to
> the script being executed, and add its directory to the Lua package
> path. This is the function I use:
>
> ```
> local function addMyDirToPath()
>   local myFile = debug.getinfo(2, "S").source:sub(2)
>   local myDir = myFile:match("(.*)/.*") or '.'
>   package.path = ("%s/?.lua;%s"):format(myDir, package.path)
> end
> ```

That's elegant. Another way to get the value of `myDir` would be

    local myDir = pandoc.path.directory(arg[0])

and should also work on all platforms. It relies on pandoc's built-in
path library and on a feature of the default lua interpreter, which
pandoc replicates for compatibility:
https://www.lua.org/manual/5.4/manual.html#7


-- 
Albert Krewinkel
GPG: 8eed e3e2 e8c5 6f18 81fe  e836 388d c0b2 1f63 1124


  parent reply	other threads:[~2023-10-05 10:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-03 16:17 ch_...-S0/GAf8tV78@public.gmane.org
     [not found] ` <ee1ceb10-3318-48d0-ae1a-0ca538a3cdc9n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2023-10-03 16:50   ` Bastien DUMONT
2023-10-04 13:54     ` jcr
     [not found]       ` <d94cef59-9869-4376-9d36-b38cab195025n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2023-10-05 10:11         ` Albert Krewinkel [this message]
     [not found]           ` <875y3lnzho.fsf-9EawChwDxG8hFhg+JK9F0w@public.gmane.org>
2023-10-05 14:49             ` jcr
2023-10-05 15:00             ` jcr
     [not found]               ` <82dabe2b-28c9-4ea3-a299-36a8c01b31b6n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2023-10-05 20:34                 ` Albert Krewinkel

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=875y3lnzho.fsf@zeitkraut.de \
    --to=albert+pandoc-9eawchwdxg8hfhg+jk9f0w@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).