Embedded Sass Host for Python.
Important
This is laboratory stage project. It does not ensure to continue development for goal.
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.
Install:
pip install sass-embedded
Source:
@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);
}
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".
Final goal is to have features as same as other "Sass Embedded" libraries.
But I will split some steps for it.
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.
Works as "Sass Embedded Host for Python".
- Support The Embedded Sass Protocol.
Works as alternative to libsass-python
.
- Support all api of
libsass-python
using Dart Sass native executable.
This project supports only Python 3.9+.
I plan for Apache License 2.0.