编辑:已解决我的问题来自两件事——我在某处的 defmacro 中有语法错误。我删除了它并编写了一个我可以访问的小函数(仅在重新启动 repl 后)。第二个大问题是我不知道需要重新启动 repl 以识别我所做的任何更改。如果没有下面给出的具体答案,永远不会明白这一点=)。
我一直在研究 github 上的基座教程,它建议通过 repl 测试一些东西 - 我的问题是我找不到我感兴趣的命名空间/宏或函数。
user=> (require '(junkyard-client.html-templates))
nil
user=> (def t (junkyard-client-templates))
user=> CompilerException java.lang.RuntimeException: Unable to resolve symbol:
junkyard-client-templates in this context, compiling:
(C:\Users\Ben\AppData\Local\Temp\form-init3290053673397861360.clj:1:8)
我在语法上尝试了其他东西,例如(需要'junkyard-client.html-templates)。这是基座教程中的 v2.0.10:https ://github.com/pedestal/app-tutorial/wiki/Slicing-Templates
编辑:这就是我想要达到的
(ns junkyard-client.html-templates
(:use [io.pedestal.app.templates :only [tfn dtfn tnodes]]))
(defmacro junkyard-client-templates
[]
{:junkyard-client-page (dtfn (tnodes "junkyard-client.html" "hello") #{:id})
:other-counter (dtfn (tnodes "tutorial-client.html" "other-counter") #{:id}
})
解决阶段