Embedded Sass Host for Python.
Important
This is laboratory stage project. It does not ensure to continue development for goal.
Overview
This is Python project to compile Sass/SCSS using Dart Sass <https://sass-lang.com/dart-sass/> that is primary implementation of Sass using Dart runtime.
Simple usage
Install:
pip install sass-embeddedSource:
@use "sass:list"; @use "sass:color"; $font-stack: Helvetica, Arial; $primary-color: #333; body { $font-stack: list.append($font-stack, sans-serif); font: $font-stack; } a { color: $primary-color; &:hover{ color: color.scale($primary-color, $lightness: 20%); } } @debug $font-stack;
Run:
from pathlib import Path from sass_embedded import compile_file compile_file(Path("style.scss"))
Output:
body { font: Helvetica, Arial, sans-serif; } a { color: #333; } a:hover { color: rgb(91.8, 91.8, 91.8); }
Motivation
I develop sphinx-revealjs that is Python Project to generate HTML presentation from reStructuredText or Markdown.
Reveal.js uses Sass to create presentation themes, and this uses sass:color module since v5.2.0.
But sphinxcontrib-sass does not compile themes, because this module is not supported by LibSass.
To resolve it, I am developing optional extension optimized sphinx-revealjs. Concurrently I will develop generic project for multiple usecases.
This is the side of "generic project".
Project goal
Final goal is to have features as same as other "Sass Embedded" libraries.
But I will split some steps for it.
First goal
Works as compile Sass/SCSS with subprocess-based actions.
- Provide single entrypoint to compile sources using Dart Sass native executable.
- Generate Dart Sass bundled bdist files every platforms.
Second goal
Works as "Sass Embedded Host for Python".
- Support The Embedded Sass Protocol.
Third goal
Works as alternative to libsass-python.
- Support all api of
libsass-pythonusing Dart Sass native executable.
Support
This project supports only Python 3.9+.
License
I plan for Apache License 2.0.