documentation omits how to make examples work if installed lua is not 5.1
As a new knot-resolver user, I had the darndest time following examples in the documentation. For example, adding 'http' to the modules list gave a non-helpful syntax error. Tried installing lua-http from the os package manager, but that didn't help. The root cause of the problem was that I wasn't installing the right libraries for the right lua version. What I ended up doing was uninstalling all versions of lua on my system (including things that depended on lua, such as neovim and vs code), and then installing lua (the default 5.4), 'lua51' and luarocks. Then I ran luarocks --lua-version 5.1 install http
and the http module worked with knot-resolver!
I propose adding some links in the documentation to describe how to check if you have the right lua version and how to install necessary add-on modules. Since you can land on any of the doc pages from a google search, I suggest that there is a link to the module-install info from every page where there are examples that depend on non-standard modules or libraries.
I use arch linux, which installs lua 5.4 by default (as of Aug 2020). If you install luarocks and run the install command above without lua51 installed, you get a error that lua.h header file is missing. That can be fixed by installing the lua51 package. I understand why lua51 isn't a dependency of knot-resolver, since it's built-in, but the docs should include all these steps needed to install the modules used in the example code.
knot-resolver is really a really amazing package, and for some, it may be the inspiration to learn enough lua to do further automation with it. I'm not suggesting that you duplicate all the lua programming guides, but it might be helpful to have a non-lua programmer do a review pass on the documentation to help point out things that are non-obvious and could benefit with clarification or explanations of the syntax.