Добавление libsass


Как установить python3-libsass в Ubuntu / Debian

Установка:

Для установки python3-libsass в Ubuntu / Linux Mint / Debian, введите в Терминал :

Подробная информация о пакете:

SASS для Python 3: прямое связывание libsass для Python

Этот пакет предоставляет простой модуль расширения Python 3 sass, который связывает Libsass (написанный на C/C++ Хэмптоном Кэтлином и Аароном Леунгом). Это очень просто, и нет никакой дистрибуции / деинсталляции Python, связанной с головной болью. Это означает, что вы можете добавить только libsass в свой файл install_requires setup.py или файл требований.txt. Не требуется Ruby или Node.js.

Зависимости:

Библиотека GNU C: общие библиотеки

Библиотека поддержки GCC

Порт C/C++ прекомпилятора CSS Sass CSS

Интерактивный высокоуровневый объектно-ориентированный язык (версия python3 по умолчанию)

Библиотека совместимости Python 2 и 3 (интерфейс Python 3)

Вышел LibSass 2.0

Компилятор LibSass обновился до версии 2.0 и стал совместим с последними возможностями Sass 3.3, включая синтаксис Sass с отступами (ранее поддерживался только SCSS) и БЭМ-селекторы. Не работает, точнее не всегда работает, пока только @extend . LibSass — это портированная с Ruby на Си версия Sass, которая работает гораздо быстрее оригинальной, однако до сих пор не совместима на 100%. Модули node-sass и grunt-sass, использующие LibSass, также обновились до новой версии компилятора.

Получите libsass-python, чтобы использовать библиотеку libsass для системы вместо ее компиляции

Not sure if this is possible but with libsass requiring gcc-c++ >= 4.7 and Centos 6 not having it, I was curious if libsass-python could use the system’s libsass instead of compiling it if it exists. I have been able to build a libsass rpm for Centos 6 but python-libsass still tries to compile it itself.

Я знаю, что я могу использовать devtoolset-1.1 для установки python-libsass (так мне удалось создать libsass rpm), но я пытаюсь сделать все это с помощью марионетки. Поэтому я подумал, что если бы система имела libsass, тогда python-libsass не нужно было устанавливать ее.

Я подумал о том, чтобы добавить проблему в проект python-libsass git, но подумал, что я должен сначала спросить здесь.

Получить libsass-питон использовать систему libsass библиотеки вместо компиляции


Не уверен, если это возможно, но с libsass требующих GCC-C++> = 4,7 и Centos 6, не имея его, мне было интересно, если libsass-питон может использовать libsass системы вместо компиляции, если он существует. Я был в состоянии построить libsass оборотов в минуту для Centos 6, но питон-libsass все еще пытается скомпилировать его сам.

Я знаю, что я могу использовать devtoolset-1.1, чтобы установить питона-libsass (то есть, как мне удалось построить libsass оборотов в минуту), но я пытаюсь сделать все это с куклой. Поэтому я подумал, что если система была libsass то питон-libsass не придется установить его.

Я рассмотрел добавление вопроса в мерзавца проекта питон-libsass, но думал, что я должен спросить здесь первым.

1 ответ

Возможно, для Вашего проекта будут необходимы бесплатные векторные карты. На нашем сайте представлены карты для всех стран.

Я придумал решение. Я создал свои собственные пакеты для установки GCC-4.8.2. Это было много работы, и я не уверен, если он нарушает кучу других зависимостей вниз линии. Но он работал на стеке сервера, что мне нужно в данный момент. Я должен был создать все следующие пакеты, чтобы заставить его работать.

  • cPP-4.8.2-8.el6.x86_64.rpm
  • нКУ-4.8.2-8.el6.x86_64.rpm
  • gCC-C++ — 4.8.2-8.el6.x86_64.rpm
  • нКУ-gfortran-4.8.2-8.el6.x86_64.rpm
  • libgcc-4.8.2-8.el6.x86_64.rpm
  • libgfortran-4.8.2-8.el6.x86_64.rpm
  • libgomp-4.8.2-8.el6.x86_64.rpm
  • libquadmath-4.8.2-8.el6.x86_64.rpm
  • libquadmath-разви-4.8.2-8.el6.x86_64.rpm
  • libstdc ++ — 4.8.2-8.el6.x86_64.rpm
  • libstdc ++ — разви-4.8.2-8.el6.x86_64.rpm

Итак, еще раз это было много работы, но он сделал работу. Но после того, как выяснить это через несколько месяцев я смог просто перейти на Centos 7.

Илон Маск рекомендует:  Borland delphi 4 0 для начинающих библиотеки типов

Использование libsass с трубопроводом активов Rails

Я пытаюсь получить libsass работать с трубопроводом активов в Rails 4. До сих пор я клонировал рубиновый libsass Gem из Github в папку поставщика моего приложения. Я добавил к моему followig Gemfile:

Затем я следовал документы и добавил подмодули для libsass. В папке libsass мне пришлось клонировать в sass2scss библиотеке для того , чтобы скомпилировать. Я составил его make install-shared создавшей /usr/local/lib/libsass.so . После этого, бег rake assets:precompile дать следующее сообщение об ошибке:

Так что я слинкован libsass.dylib это /usr/local/lib/libsass.dylib . После этого я получил следующее сообщение об ошибке:

NameError: uninitialized constant SassC::Lib::Context::SassOptions

Я попытался закомментировать строку в /ruby-libsass/lib/sassc/lib/context.rb том , что вызывает SassOptions, и что , казалось, сделал его работу и составление активов. Закомментирована код на линии 20, context.rb:

Теперь проблема у меня в том, что я не вижу никакой разницы скорости. Он остается на уровне около 7 секунд, чтобы собрать свои активы, с добавлением или без добавления libsass к моему Gemfile. Так как начальный компиляции дал ошибки, связанные TOT файлы в libsass.dylib не найдено, я предположил, что это на самом деле с помощью sassc вместо дерзости, но, похоже, это не так.

Любые идеи, что я мог бы не быть? У меня нет опыта работы с C, так что я даже не уверен, если я собрал все правильно, и т.д.

Да, я , наконец , получил это работает благодаря этому жемчужину ! Проект все еще WIP, и может сделать с несколькими сторонниками. :)

Только вопрос , который я столкнулся, что вам нужно , чтобы полностью удалить sass-rails из проекта, который может быть проблемой , если вы используете драгоценные камни , как ActiveAdmin. Есть обходные пути , хотя. Затем, простые CSS файлы , которые получают входящие в вашей SCSS файлах с @import необходимостью иметь .css в конце файла в импорте.


libsass

Так что у меня есть ворчание сценарий, который работал хорошо: module.exports = function (grunt) < grunt.initConfig(< pkg: grunt.file.readJSON(‘package.json’), sass: <…

Я пытаюсь установить grunt-sass, но у меня возникли проблемы в процессе. Я следую документации grunt-sass и документации node-gyp , но…

Найдена эта ошибка после импорта приложения из ADT: is missing required Java project:’appcompat_v7′ Мой проект.свойства не содержит ‘ appcompat_v7. Только:…

Пытаясь получить autoprefixer работает с ворчанием, Livereload и node-sass. Кажется, у меня нет никаких префиксов. Ниже мой Gruntfile.js: module.exports =…

Я хотел бы создать пользовательские функции в моем файле grunt (или везде) для использования с grunt-sass. Я пытался с этим:…

У меня возникли проблемы с получением libsass для компиляции файлов SASS. I can get it to compile SCSS files just…

Поэтому я использую довольно сложный Sass для удаления всех других селекторов из «&» .test, .test-2, .test-3, .test-4 < $selectors: (&);…

Я использую libsass, поскольку это быстрее, чем ruby sass и импорт susy с помощью bower. @import «../bower_components/susy/sass/susy»; $susy: ( columns:…

Я использую Weka и хотел бы знать, каковы ограничения для числового типа атрибута. Это для формата файла ARFF. Например, можно…

This package has been deprecated

No longer maintained

grunt-libsass

No Longer Maintained.

This project was built as an attempt to fit libsass into our build process at project collins more comfortably than grunt-sass but at the time libsass had not reached a level of feature parity which would allow it to use it. While that may no longer be the case I don’t have time right now to come back to this project. It’s not quite dead, but definitely sleeping.

For fast sass compilation with libsass look at grunt-sass which is an actively maintained grunt sass compiler using libsass

Fast grunt sass compiler using libsass via node-sass

This plugin requires Grunt 0.4.0


If you haven’t used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you’re familiar with that process, you may install this plugin with this command:

Илон Маск рекомендует:  strrpos - Возвращает позицию последнего вхождения символа

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

The «libsass» task

Run this task with the grunt libsass command

This plugin automates fast compilation of scss files using libsass via the node-sass module. It aims to make coexistence with and transition from the grunt-contrib-sass library as painless as possible.

Please not that grunt-libsass is incomplete and only very lightly tested at this point.

As noted in the documentation for the node-sass module

The libsass library is not currently at feature parity with the 3.2 Ruby Gem that most Sass users will use, and has little-to-no support for 3.3 syntax.

In other words, you may find that there are scss files it cannot compile and if there are sass 3.3 features you simply must have then the afforementioned grunt-contrib-sass plugin would be a better choice.

Type: [String] Default value: []

An array of paths to search for files to @import

Type: [String] Default value false

When set to true a sourcemap named .map will be generated in the same location as the compiled css file.

Compile a single file

In this example, the default options are used to compile a sass file

Compile all files in a directory, with a loadPath set and sourcemaps enabled

In this example, all the scss files in a directory will be compiled. Paths are set to search for files to @import

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

0.1.0 Alpha release. Limited functionality.


Начинаем использовать SASS

На основе данных с Wikipedia, Sass (Syntactically Awesome Stylesheets) — модуль, включенный в Haml. Sass — это метаязык на основе CSS, предназначенный для увеличения уровня абстракции CSS кода и упрощения файлов каскадных таблиц стилей.

Язык Sass имеет два синтаксиса:

  • старый — sass — отличается отсутствием фигурных скобок, в нём вложенные элементы реализованы с помощью отступов;
  • новый — SCSS (Sassy CSS) — использует фигурные скобки, как и сам CSS.

В данной статье мы будем рассматривать новый синтаксис SCSS, потому как он более новый, порог вхождения ниже, чем у оригинального SASS и он является обратносовместимым с CSS.

Положительные стороны использования SASS:

  1. в разработке более 8 лет.
  2. 3 мажорных версии.
  3. Огромное community.

Кроме этого существует достаточно большое количество css-frameworks и библиотек, который написаны на SCSS. Среди них стоит выделить особо популярные:

УСТАНОВКА И КОМПИЛЯЦИЯ

Sass можно установить и компилировать несколькими способами.

1. С помощью Ruby.

2. C помощью Libsass.

Рассмотрим оба варианта более детально.

RUBY

Для возможности работы с SASS нам требуется установить Ruby себе на ПК. После установки терминала, в командной строке Ruby:

$ gem install sass
// устанавливаем себе SASS

$ sass -v
// показывает установленную версию, также подтверждает,
// что у нас все правильно установилось


После установки Ruby и SASS заходим в нужную директорию через и пишем в командной строке:

sass —watch path/to/src: path/to/dist —style expanded

И это все. Теперь встроенный watcher будет следить за нашими Sass файлами и при изменении будет компилировать в указанную папку.

Рассмотрим более детально способы приведения скомпилированного кода CSS в нужный нам порядок. Существует 4 возможных варианта :

1. expanded

2. nested

3. compact

4. compressed

LIBSASS

Libsass это экспериментальная библиотека написанная на C/C++. Ее основной задачей является компилирование SASS файлов. Она достаточно быстрая, но не стоит забывать, что она еще в процессе разработки.
Библиотека Libsass используется разными плагинами для task-builders, таких как Gulp.js и Grunt.js.
Мы в процессе верстки используем Grunt.js, поэтому рассмотрим примеры компиляции SASS файлов с помощью Grunt.js.
Скомпилировать SASS с помощью Grunt.js мы можем двумя плагинами:
grunt-sass (использует библиотеку Libsass) и grunt-contrib-sass (использует Ruby и gem sass).

Илон Маск рекомендует:  Индикатор прогресса

Выше пример компиляции с помощью gruntsass. Нам не нужно устанавливать Ruby для компиляции SASS, а вот для работы с плагином gruntcontribsass установить Ruby придется.

ПЕРЕМЕЩЕНИЕ ФАЙЛОВ (@IMPORT)

Мы можем подключать внешние файлы с помощью @import. Расширение прописывать не обязательно. Также мы можем подключать файлы непосредственно в код, в итоге получается, что то вроде шаблонизатора.

ПЕРЕМЕННЫЕ

Все очень просто.

Можем их объединять:

Флаги !default, !global.

!default — данный флаг позволяет установить значение переменной в случае, если оно еще не установлено или его текущее значение равно нулю.

Области видимости переменной с флагом !default.

А вот как себя поведет компилятор с двумя дефолтными переменными.


!global

В представленном ниже переменная неопределенна, потому что находится за пределами видимости ее использования.

Но с помощью использования флага !global мы можем использовать ее везде где нам нужно.

Флаг !global позволяет нам изменять область видимости локальной переменной, тоесть вызываться с любого участка кода.

Но при этом объявленная локально переменная имеет высший приоритет.

Иерархию приоритетов можно посмотреть на данном примере.

Правила вложенности переменных:

МИКСИНЫ

Миксины с аргументами:

Миксины с переменными аргументами:

Миксины – медиа-запросы @media-rules (mobile-first):

ТИХИЕ КЛАССЫ (silent classes)

В SASS мы можем использовать silent classes, они не компилируются в код, но могут быть вызваны с директивой @extend.

Они очень схожи с миксинами, но разница все же присутствует:

ДИРЕКТОРИЯ @extends

Здесь все также достаточно просто.

ДИРЕКТОРИЯ @atroot

Данная директория позволяет нам выйти с любого уровня вложенности.


Также можем выйти с медиазапроса.

С переменными и с миксинами в данной статье мы закончили. Как видим все достаточно просто и если у кого то есть опыт использования LESS, то разница совсем не большая.

А сейчас обратим ваше внимание на типы данных SASS:

libsass

Так что у меня есть ворчание сценарий, который работал хорошо: module.exports = function (grunt) < grunt.initConfig(< pkg: grunt.file.readJSON(‘package.json’), sass: <…

Я пытаюсь установить grunt-sass, но у меня возникли проблемы в процессе. Я следую документации grunt-sass и документации node-gyp , но…

Найдена эта ошибка после импорта приложения из ADT: is missing required Java project:’appcompat_v7′ Мой проект.свойства не содержит ‘ appcompat_v7. Только:…

Пытаясь получить autoprefixer работает с ворчанием, Livereload и node-sass. Кажется, у меня нет никаких префиксов. Ниже мой Gruntfile.js: module.exports =…

Я хотел бы создать пользовательские функции в моем файле grunt (или везде) для использования с grunt-sass. Я пытался с этим:…

У меня возникли проблемы с получением libsass для компиляции файлов SASS. I can get it to compile SCSS files just…

Поэтому я использую довольно сложный Sass для удаления всех других селекторов из «&» .test, .test-2, .test-3, .test-4 < $selectors: (&);…

Я использую libsass, поскольку это быстрее, чем ruby sass и импорт susy с помощью bower. @import «../bower_components/susy/sass/susy»; $susy: ( columns:…

Я использую Weka и хотел бы знать, каковы ограничения для числового типа атрибута. Это для формата файла ARFF. Например, можно…

Добавление libsass

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1

В топике SASS против LESS хабраюзер morr упомянул интересный libsass — реализацию SASS на C++

На минувшем Railsconf 2012 был отдельный доклад про sass, где анонсировали фичи над которыми сейчас ведётся работа, и которые появятся в следующем релизе:

1. libsass — написанный на C компилятор sass в css, работающий быстрее на порядки нынешнего скрипта на руби. Для крупных проектов это очень существенно — большие объёмы стилей при деплое компилируются ну очень долго(полминуты и дольше). Так же это позволит написать биндинги для libsass к другим языкам, что означает более простое встраивание sass во фрейморки питона/ноды/дотнета/пхп.

А я взял и сделал для libsass биндинги для Python. Встречайте, любите и пользуйтесь python-sass

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL