Python-SCSS是用于Python的SCSS编译器。有关SCSS语法的详细信息,请参见http://sass-lang.com。

scss的Python项目详细描述


Python-scss

警告:

我不再支持python scss了。使用kronus的pyscss

python scss是python的SCSS编译器。文档可在pypigithub找到。 这是zeta-library的一部分。

Features

python scss在sassSCSS3.2及更多版本中具有大部分功能。它支持:

  • 嵌套规则
  • 关键字参数
  • {STR 1 } $ MIXIN < /强>:^ {Tt1} $,^ {TT2}$
  • 函数@function@return
  • 继承@extend
  • 条件@if@else@if else
  • 循环@for
  • 变量$@variables@vars
  • 图像image-urlimage-widthimage-height,…
  • 嵌入的内联图像inline-image
  • 颜色处理adjust-color()scale-color()opacify()/transparentize()lighten()/darken()mix(),…
  • 数学函数sin()cos()tan()round()ceil()floor()pi(),…
  • 选项@option compress:true, sort:false;@option comments:false;
  • 指南针助手enumeratetype-of,…
  • 排序声明:在Zen sorting order

注意

对于@import支持,可以使用zeta-library,python compass替代品。

zeta库支持@import url(path or http),但所有静态文件都是css、scss。

zeta还支持js导入require( '../jquery.js' );。zeta允许你控制所有的静态文件。

Requirements

  • python>;=2.5
  • pyparsing=1.5.5

Installation

python scss应使用pip或setuptools安装:

pip install scss

easy_install scss

Usage

  1. 来自python源代码

    from scss import parser
    
    file_path = path_to_file
    src = open( file_path ).read()
    
    # from file
    print parser.load( 'file_path' )
    
    # from string
    print parser.parse( 'src' )
    
    # Create parser object
    p = parser.Stylesheet( options=dict( compress=True ) )
    print p.loads( src )
    p.load( file_path )
    print p
    
  2. 来自命令行

    $ scss --help
    Usage: scss [OPTION]... [INFILE] [OUTFILE]
    
    Compile INFILE or standard input, to OUTFILE or standard output.
    
    Options:
    --version             show program's version number and exit
    -h, --help            show this help message and exit
    -c, --cache           Create and use cache file. Only for files.
    -i, --interactive     Run in interactive shell mode.
    -m, --compress        Compress css output.
    -w WATCH, --watch=WATCH
                            Watch files or directories for changes. The location
                            of the generated CSS can be set using a colon:
                            scss -w input.scss:output.css
    -S, --no-sorted       Do not sort declaration.
    -C, --no-comments     Clear css comments.
    -W, --no-warnings     Disable warnings.
    
  3. 处于交互模式

    scss -i
    
    >>> 25px + 1.5em
    

Changes

如果要从以前版本的SCSS升级,请确保已阅读以下文档:

http://packages.python.org/scss/changes.html

Examples

  1. 嵌套规则

    示例:

    .selector {
        a {
            display: block;
        }
        strong {
            color: blue;
        }
    }
    

    …产生:

    .selector a {
        display: block}
    
    .selector strong {
        color: blue}
    
  2. 变量

    示例:

    $main-color: #ce4dd6;
    $style: solid;
    $side: bottom;
    #navbar {
        border-#{$side}: {
        color: $main-color;
        style: $style;
        }
    }
    

    …产生:

    #navbar {
        border-bottom-color: #ce4dd6;
        border-bottom-style: solid}
    
  3. ^ {STR 1 } $MIXIN < /强>

    示例:

    @mixin rounded($side, $radius: 10px) {
        border-#{$side}-radius: $radius;
        -moz-border-radius-#{$side}: $radius;
        -webkit-border-#{$side}-radius: $radius;
    }
    #navbar li { @include rounded(top); }
    #footer { @include rounded(top, 5px); }
    #sidebar { @include rounded(left, 8px); }
    

    …产生:

    #navbar li {
            -moz-border-radius-top: 10px;
            -webkit-border-top-radius: 10px;
            border-top-radius: 10px}
    
    #footer {
            -moz-border-radius-top: 5px;
            -webkit-border-top-radius: 5px;
            border-top-radius: 5px}
    
    #sidebar {
            -moz-border-radius-left: 8px;
            -webkit-border-left-radius: 8px;
            border-left-radius: 8px}
    
  4. extend(使用@extend

    示例:

    .error {
        border: 1px #f00;
        background-color: #fdd;
    }
    .error.intrusion {
        background-image: url("/image/hacked.png");
    }
    .seriousError {
        @extend .error;
        border-width: 3px;
    }
    

    …产生:

    .error, .seriousError {
        background-color: #fdd;
        border: 1px #f00}
    
    .error .intrusion, .seriousError .intrusion {
        background-image: url('/image/hacked.png')}
    
    .seriousError {
        border-width: 3px}
    
  5. 交互模式

    示例:

    $ python scss.py --interactive
    >>> 25px + 1.5em
    44.5px
    >>> lighten(rgba(130,130,130,.4),10%)
    rgba(155,155,155,0.40)
    >>> .rule { test: red; }
    .rule {
        test: red }
    >>> _
    

Options

python scss有以下选项:

  • compress:压缩输出css,默认为false
  • cache:预缓存编译结果,默认为false
  • comments:保留css注释,默认值为true
  • sort:sort声明,默认为true 声明排序在Zen sorting order
  • {STR 1 } $警告< /强>:启用或禁用警告:未知的混入、声明名、扩展规则集、缺省值为真

选项可以定义…

  1. 从命令行:

    scss -m -S file.scss
    
  2. 来自python:

    parser = Stylesheet( options=dict( compress=True ) )
    
  3. 来自SCSS源:

    @option compress: true, sort: false;
    

注意

python scss仍处于开发的早期阶段设备

Bug tracker

如果您有任何建议、错误报告或 烦恼请向问题追踪者报告 在https://github.com/klen/python-scss/issues

Contributing

python scss的开发在github进行:https://github.com/klen/python-scss

  • klen(基里尔·克莱诺夫)

Note

欢迎您的反馈!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何获取所有链接并使用SeleniumWebDriver逐个单击这些链接   java中数组列表的arraylist移位元素   java如何存储具有不同类型参数的元素   java不能使用List<Future<?>>当从不同位置调用时,在方法参数中   java我应该如何修复代码以避免测试代码出错?   安卓 PreferenceFragment java。lang.RuntimeException   java在运行emulator时发现错误   java取消多个AsyncTask回调的有效方法是什么?如果中途满足条件,这些回调将在将来返回?   有没有办法在运行时将方法动态分配给Java类?   java如何将propertyfile与GlassFish一起使用   如何在PHP中使用bcrypt对密码进行哈希处理?   Java和UDP web服务器   java JPA允许EntityListeners执行JPA操作吗?   java执行do while语句时不会产生错误   java无法在edittext中显示数据库中的数据   java Tomcat中活动会话的数量   java在何处使用@SuppressWarnings(“requestfactory”)   netty连接中的java HornetQ异常