Skip to content

Python Sass binding using Dart Sass

Notifications You must be signed in to change notification settings

attakei/sass-embedded-python

Repository files navigation

sass-embedded-python

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-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:

frompathlibimportPathfromsass_embeddedimportcompile_filecompile_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".

Third goal

Works as alternative to libsass-python.

  • Support all api of libsass-python using Dart Sass native executable.

Support

This project supports only Python 3.9+.

License

I plan for Apache License 2.0.

About

Python Sass binding using Dart Sass

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 3

  •  
  •  
  •