hamlet

    1热度

    1回答

    我遇到了一个有趣的问题,我认为这可能是模板哈斯克尔的一个相关地方。我正在使用yesod和yesod-persistant在Web数据库的前端工作。我使用mkPerist函数和persistLowerCase准报价生成我的数据库类型。 我的问题是,我需要一种方法来编辑数据库的字段,但编写六个不同页面的每个列的哈姆雷特代码似乎令人难以置信的重复。我想我可以使用模板Haskell自动生成文本字段和复选框

    0热度

    1回答

    我目前持久地从数据库中拉出产品列表并将它们显示在屏幕上。我想使用数据库中的Id将一些关于这些产品的信息存储在cookie中,并链接到更详细的信息页面。从我所了解的ID只存在于持久实体中,而不是实际的产品类型中?这是否意味着我应该在cookie中使用随机字符串来存储附加字段,或者有没有办法访问数据库中使用的id?我将使用JavaScript添加Cookie。 直到现在我刚刚使用PHP,因此我会使用I

    9热度

    3回答

    对于Hamlet模板机制运行时的成本,据我所知,模板是在编译时解析,导致包含调用闪耀HTML组合程序(可能还有其他表现形式,因为源代码的插值)。所以插值发生的点(子树)在编译时是已知的。 在运行时,我们需要计算内插值(当然), 并将其“插入”树中,即应用html组合器。 所有这些?实际上,其中一些应用程序可以在编译时进行评估(那些在它们下面没有插值的应用程序)。这是否发生?

    0热度

    1回答

    我刚刚开始使用Yesod,尽管我已经可以得到一些有趣的结果,但我很难理解它的一些类型(可能是因为我不熟悉Template Haskell)。 将传递给defaultLayout函数是通过toWidget函数。因此,遵循下面的ham1和ham2的定义,defaultLayout中的正确指令分别为toWidget ham1和ham2。 我的问题:在下面的(工作)代码为什么指令toWidget ham2

    1热度

    1回答

    这是O reilly - Yesod - Widgets的代码片段, getRootR = defaultLayout $ do setTitle "My Page Title" toWidget [lucius| h1 { color: green; } |] addScriptRemote "https://ajax.googleapis.com/ajax/lib

    3热度

    1回答

    $newline never在Hamlet中允许我们缩小HTML代码。如果我们将它设置在父窗口小部件中,它将对其生效,但不会在子窗口小部件上生效。因此,当我们想要缩小整个代码时,我们必须将$newline never设置为所有的小部件。这不好。 难道你不知道更好的解决方案吗?谢谢。

    9热度

    1回答

    我只是无法找到如何在哈姆雷特模板评论行。有评论的语法吗?像 -- <p>Some code should be ignored by template 什么?

    1热度

    2回答

    里面我已经writen小语种查找与函数 getValue :: String -> String -> String getValue lang key = ( head $ filter ((== key) . head) langData) !! getLangIndex lang 现在我想打电话给一个小村庄文件中此查找功能。 这是可能的,我该如何改变函数使

    4热度

    1回答

    我在Yesod中使用QuasiQuotations,并且一切正常。但我的文件变得非常大,不好看。另外,我的TextEditor不会正确地突出显示此语法。这就是为什么分割我的文件是这样的: getHomeR :: Handler Html getHomeR = do webSockets chatApp defaultLayout $ do $(luciusFile

    1热度

    2回答

    我有呈现一个HTML标签,像这样一个简单的耶索德处理程序: getHomeR :: Yesod site => HandlerT site IO Html getHomeR = defaultLayout [whamlet|$newline never <h1>Hello! |] 我想打印的路线,并改变使用@{HomeR}代码路线插值语法,就像这样: getHomeR :: Y