Как включить файл css в нефрит (без привязки)
У меня есть этот нефритовый файл:
!!! 5
html
head
title test include
style(type='text/css')
//- DOES NOT WORK!
include test.css
body
//- works
include test.css
div
//- works
include test.css
Выход:
$ jade -P test.jade
rendered test.html
$ cat test.html
<!DOCTYPE html>
<html>
<head>
<title>test include</title>
<style type="text/css">
//- DOES NOT WORK!
include test.css
</style>
</head>
<body>body { color: peachpuff; }
<div> body { color: peachpuff; }
</div>
</body>
</html>
Конечно, я мог бы просто связать css файл, но я не хочу.
Ответы
Ответ 1
Я еще не тестировал его (не на моем компьютерном банкомате dev), но есть шанс сделать что-то вроде этого:
!!!
head
title test include
| <style type='text/css'>
include test.css
| </style>
Кстати, я нашел онлайн-конвертер HTML2Jade, но не Jade2HTML. Любая идея, где его найти?
Ответ 2
Из нефритовые документы:
doctype html
html
head
style
include style.css
body
h1 My Site
p Welcome to my super lame site.
Он отлично работает.
Ответ 3
Ответ Arnauds сработал у меня, но с тех пор я понял, что это немного чище:
doctype
head
title test include
style(type="text/css"): include test.css
(type="text/css")
также является необязательным, в зависимости от вашей ситуации.
Ответ 4
Pass fs
в качестве данных, и вы можете
style !{fs.readFileSync("index.css").toString()}
Ответ 5
В текущей версии Jade (0.35.0) достаточно написать просто include style.css
.
Полный пример (учитывая, что вы пишете index.jade, который находится в папке views
, тогда как ваши стили находятся в папке assets
):
!!!
html
head
include ../assets/bootstrap3/css/bootstrap-theme.css
include ../assets/bootstrap3/css/bootstrap.css
body
h1 Hi!
Обратите внимание на отсутствие тега style
в шаблоне, оно будет автоматически вставлено jade (какая приятная функция!).
Ответ 6
Возможное решение:
style(type="text/css")
#{css}
И затем передайте css-текст в вызове res.render(...)
.