我希望我的程序输出以下HTML:
<!--[if lt IE 8]><link rel="stylesheet" href="../blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
Run Code Online (Sandbox Code Playgroud)
有没有办法用Hiccup输出html评论文字?
我所看到的所有流行的Clojure Web框架都使用打嗝来生成HTML.与其他从模板中解析语法的框架相比,我发现打嗝很难让前端设计人员适应.
是否有一个不需要前端开发人员学习LISP的clojure Web框架?
当我在环形码头服务器中运行Web应用程序时,我得到了EOF异常,我无法解决这个问题,因为没有关于错误发生在哪一行的线索.我在我的clojure代码上使用compojure和hiccup.我正在使用Emacs 23作为编辑器.
以下是例外的一部分:
Exception in thread "main" java.lang.Exception: EOF while reading (core.clj:66)
at clojure.lang.Compiler.load(Compiler.java:5863)
at clojure.lang.RT.loadResourceScript(RT.java:340)
at clojure.lang.RT.loadResourceScript(RT.java:331)
.................
............
.........
.....
Run Code Online (Sandbox Code Playgroud)
我该如何解决?谢谢!
我正在使用hiccup-1.0.0-beta1创建一个compojure项目.我运行时得到以下堆栈跟踪lein ring server-headless:
Caused by: java.lang.IllegalAccessError: defelem does not exist
at clojure.core$refer.doInvoke(core.clj:3287)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$load_lib.doInvoke(core.clj:4781)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$load_libs.doInvoke(core.clj:4800)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:544)
at clojure.core$use.doInvoke(core.clj:4892)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at hiccup.page_helpers$eval17$loading__4414__auto____18.invoke(page_helpers.clj:1)
at hiccup.page_helpers$eval17.invoke(page_helpers.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:5424)
Run Code Online (Sandbox Code Playgroud)
这对我来说很困惑,因为page_helpers.clj打嗝中的文件不再存在:
$ jar tf lib/hiccup-1.0.0-beta1.jar
META-INF/MANIFEST.MF
META-INF/maven/hiccup/hiccup/pom.xml
META-INF/maven/hiccup/hiccup/pom.properties
project.clj
hiccup/compiler.clj
hiccup/core.clj
hiccup/def.clj
hiccup/element.clj
hiccup/form.clj
hiccup/middleware.clj
hiccup/page.clj
hiccup/util.clj
$
Run Code Online (Sandbox Code Playgroud)
此外,我的代码甚至没有尝试引入page_helpers.clj:
(ns views.layout
(:require [app-config :as config])
(:use hiccup.core)
(:use hiccup.page)
(:use hiccup.element))
Run Code Online (Sandbox Code Playgroud) 有没有办法将clojure函数作为字符串返回?我正在制作一些在线文档,我真的希望能够通过某种方式将函数评估为文本来将代码添加到html中.
谢谢
我需要在打嗝内建立样式信息,以便将元素放在变量"top"和"left"所指示的位置.我的代码看起来像这样:
(html [:div {:style(str"top"top"; left"left)}"some text"])
这段代码非常难看.如果打嗝使用标准CSS样式规则自动呈现"样式"属性会更好...然后我可以写下面的内容:
(html [:div {:style {:top top:left left}}"some text"])
是否有一个图书馆可以做到这一点?或者,我需要推出自己的解决方案吗?
感谢Clojurians任何指针!
对noir/hiccup有什么相同的will_paginate吗?
人们通常如何与黑色/打嗝分开?
谢谢
我对Clojure和Compojure Web开发相对较新.在我正在构建的玩具示例中,我注意到的第一个问题是HTML模板.我想支持Rails中的partials或Django使用的模板框架.
目前我有:
(defn index-page []
(html5
[:head
[:title "Home | Compojure Docs"]
(include-css "/css/bootstrap.min.css")
(include-css "/css/bootstrap-responsive.min.css")]
[:body
[:div {:class "container-fluid"}
[:div {:class "row-fluid"}
[:div {:class "span2 menu"}]
[:div {:class "span10 content"}
[:h1 "Compojure Docs"]
[:ul
[:li
[:a {:href "/getting-started"} "Getting Started"]]
[:li
[:a {:href "/routes-in-detail"} "Routes in Detail"]]
[:li
[:a {:href "/destructuring-syntax"} "Destructuring Syntax"]]
[:li
[:a {:href "/nesting-routes"} "Nesting Routes"]]
[:li
[:a {:href "/api-documentation"} "API Documentation"]]
[:li
[:a {:href "/paas-platforms"} "PaaS Platforms"]]
[:li
[:a {:href "/example-project"} "Example Project"]]
[:li …Run Code Online (Sandbox Code Playgroud) 我一直在将一些Noir网站转换为Compojure.
我在这里有一个函数来创建页面的布局:
(defn layout [title & content]
(html5
[:head
[:title "My Site | " title]
(include-css "css/main.css")
[:body
[:header
[:h1 (link-to "/" "My Site")]]
content]))
Run Code Online (Sandbox Code Playgroud)
这是功能和路线:
(defn home-page []
(layout
"Home"
[:div [:p "Home Page"]])))
(defn article-list []
(layout
"Article List"
[:div [:p "Article List"]])))
(defroutes app-routes
(GET "/" [] (home-page))
(GET "/article-list" [] (article-list))
Run Code Online (Sandbox Code Playgroud)
当我打开localhost:3000/article-list时,所有CSS规则都可以正常工作.
但是,当我尝试扩展URL路径并将程序更改为:
(defn article-list []
(layout
"Article List"
[:div [:p "Article List"]])))
(defn article-one []
(layout
"Article One"
[:div [:p "Article One"]])))
(defroutes app-routes
(GET …Run Code Online (Sandbox Code Playgroud) 我刚用 Hiccup 试过这个:
(hiccup.core/html [:h1 "<script>alert('xss');</script>"])
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,我收到了一个警告框,默认情况下 Hiccup 不会转义字符串。我看到有一种转义字符串的方法,但在我看来,如果它不是默认值,迟早你会忘记并容易受到 XSS 的攻击。
默认情况下,Hiccup 有没有办法让它转义字符串?