1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
libsass-python: Sass_/SCSS for Python
=====================================
This package provides a simple Python extension module :mod:`sass` which is
binding LibSass_ (written in C/C++ by Hampton Catlin and Aaron Leung).
It's very straightforward and there isn't any headache related Python
distribution/deployment. That means you can add just ``libsass`` into
your :file:`setup.py`'s ``install_requires`` list or :file:`requirements.txt`
file.
It currently supports CPython 3.6+ and PyPy 3!
.. _Sass: https://sass-lang.com/
.. _LibSass: https://github.com/sass/libsass
Features
--------
- You don't need any Ruby/Node.js stack at all, for development or deployment
either.
- Fast. (LibSass_ is written in C++.)
- Simple API. See :ref:`example code <example>` for details.
- Custom functions.
- ``@import`` callbacks.
- Support both tabbed (Sass) and braces (SCSS) syntax.
- WSGI middleware for ease of development.
It automatically compiles Sass/SCSS files for each request.
See also :mod:`sassutils.wsgi` for details.
- :mod:`setuptools`/:mod:`distutils` integration.
You can build all Sass/SCSS files using
:program:`setup.py build_sass` command.
See also :mod:`sassutils.distutils` for details.
- Works also on PyPy.
- Provides prebuilt wheel (:pep:`427`) binaries for Windows and Mac.
Install
-------
It's available on PyPI_, so you can install it using :program:`pip`:
.. code-block:: console
$ pip install libsass
.. note::
libsass requires some features introduced by the recent C++ standard.
You need a C++ compiler that support those features.
See also libsass project's README_ file.
.. _PyPI: https://pypi.org/pypi/libsass/
.. _README: https://github.com/sass/libsass#readme
.. _example:
Examples
--------
Compile a String of Sass to CSS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> import sass
>>> sass.compile(string='a { b { color: blue; } }')
'a b {\n color: blue; }\n'
Compile a Directory of Sass Files to CSS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> import sass
>>> import os
>>> os.mkdir('css')
>>> os.mkdir('sass')
>>> scss = """\
... $theme_color: #cc0000;
... body {
... background-color: $theme_color;
... }
... """
>>> with open('sass/example.scss', 'w') as example_scss:
... example_scss.write(scss)
...
>>> sass.compile(dirname=('sass', 'css'), output_style='compressed')
>>> with open('css/example.css') as example_css:
... print(example_css.read())
...
body{background-color:#c00}
User's Guide
------------
.. toctree::
:maxdepth: 2
frameworks/flask
changes
References
----------
.. toctree::
:maxdepth: 2
pysassc
sass
sassutils
Credit
------
Hong Minhee wrote this Python binding of LibSass_.
Hampton Catlin and Aaron Leung wrote LibSass_, which is portable C/C++
implementation of Sass_.
Hampton Catlin originally designed Sass_ language and wrote the first
reference implementation of it in Ruby.
The above three are all distributed under `MIT license`_.
.. _MIT license: https://mit-license.org/
Open source
-----------
GitHub (Git repository + issues)
https://github.com/sass/libsass-python
Azure Pipelines CI (linux + windows)
https://dev.azure.com/asottile/asottile/_build/latest?definitionId=22&branchName=main
.. image:: https://dev.azure.com/asottile/asottile/_apis/build/status/sass.libsass-python?branchName=main
:target: https://dev.azure.com/asottile/asottile/_build/latest?definitionId=22&branchName=main
:alt: Build Status
Azure Pipelines Coverage (Test coverage)
https://dev.azure.com/asottile/asottile/_build/latest?definitionId=22&branchName=main
.. image:: https://img.shields.io/azure-devops/coverage/asottile/asottile/22/main.svg
:target: https://dev.azure.com/asottile/asottile/_build/latest?definitionId=22&branchName=main
:alt: Coverage Status
PyPI
https://pypi.org/pypi/libsass/
.. image:: https://badge.fury.io/py/libsass.svg
:alt: PyPI
:target: https://pypi.org/pypi/libsass/
Changelog
:doc:`changes`
Indices and tables
------------------
- :ref:`genindex`
- :ref:`modindex`
- :ref:`search`
|