Question

I wanted to use custom stylesheet path /stylesheets/stylesheet.css to use with nanoc but nanoc doesn't render css file in output folder. Here are my rules:

compile '/stylesheets/' do
  filter :css
end

compile '/images/*/' do
end

compile '*' do
  if item.binary?
    # don’t filter binary items
  else
    filter :haml
    layout 'default'
  end
end

route '/stylesheets/' do
  '/stylesheets/stylesheet.css'
end

route '*' do
  if item.binary?
    # Write item with identifier /foo/ to /foo.ext
    item.identifier.chop + '.' + item[:extension]
  else
    # Write item with identifier /foo/ to /foo/index.html
    item.identifier + 'index.html'
  end
end

layout '*', :haml

And it doesn't work - anyone know where is the problem? Also it only generates output/stylesheet/index.html which contains my stylesheet but put into my html layout! :(

Here's how it looks like (output/stylesheet/index.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
    <title>
      A Brand New nanoc Site -

    </title>
    <link href='/stylesheets/stylesheet.css' media='screen' rel='stylesheet' type='text/css' />
    <meta content='nanoc 3.1.6' name='generator' />
  </head>
  <body>
    <!-- * reset css begins */ -->
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline;}
<!-- * HTML5 display-role reset for older browsers */ -->
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display: block;}
body {line-height: 1;}
ol, ul {list-style: none;}
blockquote, q {quotes: none;}
blockquote:before, blockquote:after, q:before, q:after {content: ''; content: none;}
table {border-collapse: collapse; border-spacing: 0;}
<!-- * reset css ends */ -->
body, html{background: url('../images/background.png') no-repeat center top fixed; background-color: #fff; color: #666 !important;}
p{font-size: 400px;}
  </body>
</html>

Please help!

Was it helpful?

Solution

It should say compile '/stylesheet/', not compile '/stylesheets/', so remove the extra s. There’s a similar problem with the routing rule.

There also is no :css filter. What did you want to achieve with this? If you want the stylesheet to be outputted as-is, there is no need for a filter.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top