An open API service indexing awesome lists of open source software.

https://github.com/css/cssp

Ometa-JS based CSS parser
https://github.com/css/cssp

Last synced: 12 months ago
JSON representation

Ometa-JS based CSS parser

Awesome Lists containing this project

README

          

## Предварительные требования:

* Node.js: http://nodejs.org
* npm: https://github.com/isaacs/npm

##Установка, удаление и обновление:

Установка: `npm install cssp`

Обновление: `npm update cssp`

Удаление: `npm uninstall cssp`

## Описание

По умолчанию CSSP разбирает входной CSS-текст в дерево (parser -- P), затем отправляет дерево на трансформацию (transformer -- TF), после чего транслирует в CSS-текст (translator -- TL).

Таким образом полный цикл выглядит как CSS -> P -> TF -> TL -> CSS, и без указания ключей CSSP отдаст тот же текст, что был на входе.

## Использование

Использование command line интерфейса:

cssp
показывает этот текст
cssp <имя_файла>
считывает CSS из <имя_файла> и записывает результат полного цикла (тот же CSS) в stdout
cssp <имя_файла> -dp
cssp <имя_файла> --parser
считывает CSS из <имя_файла> и записывает результат CSS -> P -> stdout
cssp <имя_файла> -df
cssp <имя_файла> --transformer
считывает CSS из <имя_файла> и записывает результат CSS -> P -> TF -> stdout
cssp <имя_файла> -dl
cssp <имя_файла> --translator
считывает CSS из <имя_файла> и записывает результат CSS -> P -> TF -> TL -> stdout
cssp <имя_файла> -r <имя_правила>
cssp <имя_файла> --rule <имя_правила>
считывает CSS из <имя_файла> и передаёт в цикл (P TF TL) <имя_правила>, которое надо обработать
cssp <имя_файла> -t
cssp <имя_файла> --trim
считывает CSS из <имя_файла> и удаляет начальные и концевые пробельные символы

Примеры:

1) test.css = 'color: red'
> cssp test.css -r declaration -dp
> ['declaration',
['property',
['ident', 'color']],
['value',
['s', ' '],
['ident', 'red']]]
2) test.css = '10px'
> cssp test.css -r dimension -dp -dl
> ['dimension',
['number', '10'], 'px']
10px

Пример программного использования (Node.js):

var cssp = require('cssp'),
src = 'a { color: red }',
tree, trans,
dst;

tree = cssp.parse(src);
trans = cssp.transform(tree);
dst = cssp.translate(trans);

console.log('Source CSS:');
console.log(src);
console.log('Parser out:');
console.log(tree);
console.log('Transformer out:');
console.log(trans);
console.log('Translator out:');
console.log(dst);