Code Monkey home page Code Monkey logo

fp-stylus's Introduction

Stylus extension for Fepper

Known Vulnerabilities Linux Build Status Mac Build Status Windows Build Status Coverage Status License

Install

cd extend
npm install --save-dev fp-stylus

Use

Add these tasks to extend/custom.js:

  • Under gulp task 'custom:frontend-copy'
    • 'stylus:frontend-copy'
  • Under gulp task 'custom:once'
    • 'stylus:once'
  • Under gulp task 'custom:watch'
    • 'stylus:watch'

On the command line:

fp stylus[:subtask]

The main Fepper distribution ships with a source/_styles/src/stylus directory by default. Create one if there isn't one, and put all Stylus code there.

This extension will read one directory deep for files with a .styl extension. Partials must be nested deeper. Stylus code will be preprocessed into CSS and built into the paths.source.cssBld directory as declared in patternlab-config.json.

This extension defaults toward the printing of line comments for debugging purposes. Doing so provides an unambiguous indication that the CSS was preprocessed and that direct edits to the CSS should be avoided. If a project decision is made to style with Stylus, it would be a good idea to have version control ignore CSS builds in the source directory. This would avoid committing line comments, which could otherwise lead to a morass of conflicts.

Another debugging alternative is writing CSS sourcemaps. (However, this will not work if line comments are enabled.) Add the following to your pref.yml file:

stylus:
  linenos: false
  sourcemap: true

The stylus.sourcemap setting in pref.yml allows any of the documented Stylus sourcemap options. Just configure stylus.sourcemap as an object, and set its properties as desired. Similarly, any documented gulp-stylus option can be configured in pref.yml under the stylus setting.

Tasks

'stylus'

  • Builds Stylus into CSS.
  • Overwrites CSS whether or not it has direct edits.
  • Respects the stylus.linenos setting in pref.yml.
  • If stylus.linenos is not set, will default to printing line comments.

'stylus:diff-then-comment'

  • Usually under gulp task 'custom:once'.
  • Checks if the Stylus code was modified before overwriting CSS.
  • Allows direct edits to CSS without triggering Stylus builds.
  • Allows the choice of using Stylus exclusively or not using Stylus exclusively.
  • Respects the stylus.linenos setting in pref.yml.
  • If stylus.linenos is not set, will default to printing line comments.

'stylus:frontend-copy'

  • Usually under gulp task 'custom:frontend-copy'.
  • Checks if the CSS has line comments or not.
  • If it does, it builds Stylus without line comments and copies the CSS to the backend.
  • If it does not, it just copies the CSS to the backend.

'stylus:no-comment'

  • Like 'stylus'and'stylus:once'` but without line comments.
  • Ignores any stylus.linenos setting in pref.yml.

'stylus:once'

  • Usually under gulp task 'custom:once'.
  • Same as 'stylus'.

'stylus:watch'

  • Usually under gulp task 'custom:watch'.
  • Watches the source/_styles/src/stylus directory for file modifications.
  • Triggers stylus and overwrites CSS whether or not it has direct edits.

'stylus:watch-no-comment'

  • Usually under gulp task 'custom:watch'.
  • Watches the source/_styles/src/stylus directory for file modifications.
  • Triggers stylus:no-comment and overwrites CSS whether or not it has direct edits.

'stylus:watch-write-tmp'

  • Usually under gulp task 'custom:watch'.
  • Watches the source/_styles/src/stylus directory for file modifications.
  • Triggers stylus and overwrites CSS whether or not it has direct edits.
  • Writes the tmp file for comparing the current Stylus build with the previous one.

'stylus:write-tmp'

  • Writes the tmp file for comparing the current Stylus build with the previous one.

fp-stylus's People

Contributors

e2tha-e avatar electric-el avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.