Commits on May 28, 2015
  1. more robust cache file creation

    committed May 28, 2015
Commits on May 27, 2015
  1. use an sqlite file to cache dependencies

    using the file-based key/value cache is actually still quite slow,
    whereas this allows us to very quickly check all dependencies
    committed May 27, 2015
Commits on Sep 17, 2014
  1. Merge pull request #21 from brainlock/tempfiles-instead-of-locking

    use tempfiles instead of locking
    committed Sep 17, 2014
  2. Merge pull request #20 from brainlock/jsx-support

    Jsx support
    committed Sep 17, 2014
Commits on Sep 1, 2014
  1. @brainlock

    use tempfiles instead of locking

    This avoids the issue of corrupted files being written to disk when some
    renderer fails.
    brainlock committed Sep 1, 2014
Commits on Aug 27, 2014
  1. explicitely add DOCUMENT_ROOT to the sass load path

    SASS 3.4 and later don't add cwd by default and the way how you'd use
    sacy, you really want DOCUMENT_ROOT in the load path for relative
    @imports to work
    committed Aug 27, 2014
Commits on Aug 20, 2014
  1. @brainlock

    add support for tracking generated files/content

    Sometimes we need to know which assets were generated by a given sacy
    block (for example to retrieve jsx components to pre-render on the
    In this case the smarty template can call asset_compile like this:
    {asset_compile block_ref="react-components"}
      <script type="text/x-jsx" src="/jslib/a_component.jsx"></script>
    Sacy will assign the generated assets into
      'react-components' => [
        // src relative to the document root
        ['type' => 'file', 'src' => '/assetcache/components-d141caabeb4e87ff2bd021da49e7305c-content.js'],
        ['type' => 'string', 'content' => '...rendered content...'],
    brainlock committed Aug 19, 2014
Commits on Aug 18, 2014
  1. @brainlock
Commits on Jan 9, 2014
  1. work around opcache phar issues

    opcache is using the parameter passed to mapPhar as a cache key, thus if
    multiple different versions of sacy are to be used with the same
    instance of opcache, only the files inside of the first phar file loaded
    will be seen.
    This patch produces a unique alias based of the content of the files to
    be included, thus allowing multiple versions of sacy to coexist
    committed Jan 9, 2014
Commits on Dec 9, 2013
  1. allow debug mode 3 for scripts

    committed Dec 9, 2013
Commits on Nov 25, 2013
  1. disable debug mode 3 when merge_tags is enabled

    you can't have both, I'm afraid. Either we merge multiple tags together
    before compiling (which will generate a new file), or we don't.
    committed Nov 25, 2013
Commits on Nov 6, 2013
  1. rewrite URLs before handing the content over to sassc in merge mode

    if a file contains relative urls, we need to resolve these before
    merging the content together because after sassc has run, there's no way
    to know the original file name any more (it's one of many possible
    committed Nov 6, 2013
  2. support merging sass/scss before compiling

    this means that variables and mixins defined in one included file will
    be available in subsequently linked files
    committed Nov 6, 2013
Commits on Oct 7, 2013
  1. note about opcache

    committed Oct 7, 2013
Commits on Jul 24, 2013
  1. I suck at recursion :p

    committed Jul 24, 2013
Commits on Jul 19, 2013
  1. use knowledge of parent file type for additional logic

    - only do the mixin stuff (_ filenames) for sass and less
    - only check dependencies for @import'ed .less files
    - don't look at the file extension, but at the specified mime type.
      This is in accordance to the rest of sacy
    committed Jul 19, 2013
  2. update docs a bit

    committed Jul 19, 2013
  3. track dependent files and force recompilation if they change

    this only is relevant for less/sass files where @import is resolved at
    compilation time
    committed Jul 19, 2013
Commits on Jul 6, 2013
  1. much cleaner expression

    committed Jul 6, 2013
  2. update NEWS

    committed Jul 6, 2013
  3. support for content-based naming of asset files

    this will get rid of the requirement of a shared file system for the
    sacy cache if it's run in a multi app server environment.
    In order to not having to do md5_file() over every file on every
    request, this uses the internal fragment cache to turn an mtime based
    key into a content based key
    committed Jul 6, 2013
  4. update copyright year

    committed Jul 6, 2013
  5. update year

    I should really release that 0.4 thing :p
    committed Jul 6, 2013
  6. added support for libsass based transform

    If our fork of libsass is loaded, that will be used to transform scss
    committed Jul 6, 2013
Commits on Jul 10, 2012
  1. don't take position into account when calculating hash

    as long as the order on the page is the same, the same files will
    produce the same output, independent of the actual position of the tags
    in the file.
    committed Jul 10, 2012
Commits on May 18, 2012
  1. fixed title

    committed May 18, 2012
  2. Merge pull request #12 from brainlock/eco-support

    Add basic support for Eco templates
    committed May 18, 2012
  3. @brainlock

    eco transformer: allow specifying the template root

    Use data-eco-root="XYZ" in the script tag to have the template
    assigned to window.XYZ instead of the default JST.
    brainlock committed May 18, 2012
  4. @brainlock

    ExternalProcessor: allow passing options down to getCommandLine()

    An optional third argument to ->transform() will be passed down to
    brainlock committed May 18, 2012
  5. @brainlock

    parse data attributes

    This puts the html data attributes under the key `data` in the work unit
    For example, for the following script tag:
    <script data-some-option="blah" data-other-options="blih" ...
    The work unit array will contain:
      'data' => array(
          'some-option' => 'blah',
          'other-option' => 'blih'
    brainlock committed May 18, 2012
  6. @brainlock

    parse tag attributes that contain dashes

    The regex is wrong, it will also match attr names like `a-` or `-b?` or
    even `-`, which are of course not valid.
    Since the whole concept of sacy is centered around parsing
    developer-supplied html and doesn't use a full-blown parser, I feel
    the compromise is acceptable here in order to keep the regex simple.
    brainlock committed May 18, 2012
  7. @brainlock

    add basic eco templates support

    This adds support for Eco (
    client-side templates, under the mimetype 'text/x-eco'.
    Define SACY_TRANSFORMER_ECO to point to the eco executable.
    brainlock committed May 18, 2012
Commits on May 6, 2012
  1. simplify regular expression

    by using the s modifier (to have dot match newlines), we can get rid of
    the or expression in the parentesis. This a) makes the regex more
    readable (...) and b) prevents pcre from crashing PHP with a stack
    overflow once the tag encompasses a lot of content
    committed May 6, 2012