Как включить файл 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. Любая идея, где его найти?

Ответ 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(...).