- Rename
Container#childs
tonodes
. - Rename
PostCSS#processors
toplugins
. - Add
Node#replaceValues()
method. - Add
Node#moveTo()
,moveBefore()
andmoveAfter()
methods. - Add
Node#cloneBefore()
andcloneAfter()
shortcuts. - Add
Node#next()
,prev()
androot()
shorcuts. - Add
Node#replaceWith()
method. - Add
Node#error()
method. - Add
Container#removeAll()
method. - Add filter argument to
eachDecl()
andeachAtRule()
. - Add
Node#source.input
and movesource.file
orsource.id
toinput
. - Change code indent, when node was moved.
- Better fix code style on
Rule
,AtRule
andComment
nodes changes. - Allow to create rules and at-rules by hash shortcut in append methods.
- Add class name to CSS syntax error output.
- Fix IE filter parsing with multiple commands.
- Safer way to consume PostCSS object as plugin (by Maxime Thirouin).
- Fix missing semicolon when comment comes after last declaration.
- Fix Safe Mode declaration parsing on unclosed blocks.
- Fix parser to support difficult cases with backslash escape and brackets.
- Add
CssSyntaxError#stack
(by Maxime Thirouin).
- Fix Safe Mode on unknown word before declaration.
- Increase tokenizer speed (by Roman Dvornov).
- Fix empty comment parsing.
- Fix
Root#normalize
in some inserts.
- Fix Rhino JS runtime support.
- Typo in deprecated warning (by Maxime Thirouin).
- New parser, which become the fastest ever CSS parser written in JavaScript.
- Parser can now parse declarations and rules in one parent (like in
@page
) and nested declarations for plugins likepostcss-nested
. - Child nodes array is now in
childs
property, instead ofdecls
andrules
. map.inline
andmap.sourcesContent
options are nowtrue
by default.- Fix iterators (
each
,insertAfter
) on children array changes. - Use previous source map to show origin source of CSS syntax error.
- Use 6to5 ES6 compiler, instead of ES6 Transpiler.
- Use code style for manually added rules from existing rules.
- Use
from
option from previous source mapfile
field. - Set
to
value tofrom
ifto
option is missing. - Use better node source name when missing
from
option. - Show a syntax error when
;
is missed between declarations. - Allow to pass
PostCSS
instance or list of plugins touse()
method. - Allow to pass
Result
instance toprocess()
method. - Trim Unicode BOM on source maps parsing.
- Parse at-rules without spaces like
@import"file"
. - Better previous
sourceMappingURL
annotation comment cleaning. - Do not remove previous
sourceMappingURL
comment onmap.annotation: false
. - Parse nameless at-rules in Safe Mode.
- Fix source map generation for nodes without source.
- Fix next child
before
ifRoot
first child got removed.
- Fix map generation for nodes without source (by Josiah Savary).
- Fix source map with BOM marker support (by Mohammad Younes).
- Fix source map paths (by Mohammad Younes).
- Fix
prepend()
on emptyRoot
.
- Allow to use object shortcut in
use()
with functions likeautoprefixer
.
- Add shortcut to set processors in
use()
via object with.postcss
property.
- Send
opts
fromProcessor#process(css, opts)
to processors.
- Use GNU style syntax error messages.
- Add
Node#replace
method. - Add
CssSyntaxError#reason
property.
- Fix UTF-8 support in inline source map.
- Fix source map
sourcesContent
if there is nofrom
andto
options.
- Allow to miss
to
andfrom
options for inline source maps. - Add
Node#source.id
if file name is unknown. - Better detect splitter between rules in CSS concatenation tools.
- Automatically clone node in insert methods.
- Change Traceur ES6 compiler to ES6 Transpiler.
- Show broken CSS line in syntax error.
- Project was rewritten from CoffeeScript to ES6.
- Add Safe Mode to works with live input or with hacks from legacy code.
- More safer parser to pass all hacks from Browserhacks.com.
- Use real properties instead of magic getter/setter for raw propeties.
- Save previous source map for each node to support CSS concatenation with multiple previous maps.
- Add
map.sourcesContent
option to add origin content tosourcesContent
inside map. - Allow to set different place of output map in annotation comment.
- Allow to use arrays and
Root
inContainer#append
and same methods. - Add
Root#prevMap
with information about previous map. - Allow to use latest PostCSS from GitHub by npm.
Result
now is lazy and it will stringify output CSS only if you usecss
ormap
property.- Use separated
map.prev
option to set previous map. - Rename
inlineMap
option tomap.inline
. - Rename
mapAnnotation
option tomap.annotation
. Result#map
now returnSourceMapGenerator
object, instead of string.- Run previous map autodetect only if input CSS contains annotation comment.
- Add
map: 'inline'
shortcut formap: { inline: true }
option. Node#source.file
now will contains absolute path.- Clean
Declaration#between
style on node clone.
- Allow to use
Root
orResult
as first argument inprocess()
. - Save parsed AST to
Result#root
.
- Better space symbol detect to read UTF-8 BOM correctly.
- Remove source map hacks by using new Mozilla’s
source-map
(by Simon Lydell).
- Add URI encoding support for inline source maps.
- Fix relative paths from previous source map.
- Safer space split in
Rule#selectors
(by Simon Lydell).
- Add
Comment
node for comments between declarations or rules. - Add source map annotation comment to output CSS.
- Allow to inline source map to annotation comment by data:uri.
- Fix source maps on Windows.
- Fix source maps for styles in subdirectory (by @nDmitry and @lydell).
- Autodetect previous source map.
- Add
first
andlast
shortcuts to container nodes. - Parse
!important
to separated property inDeclaration
. - Allow to break iteration by returning
false
. - Copy code style to new nodes.
- Add
eachInside
method to recursivelly iterate all nodes. - Add
selectors
shortcut to get selectors array. - Add
toResult
method toRule
to simplify work with several input files. - Clean declaration’s
value
, rule’sselector
and at-rule’sparams
by storing spaces inbetween
property.
- Add source map support.
- Add shortcuts to create nodes.
- Method
process()
now returns object withcss
andmap
keys. - Origin CSS file option was renamed from
file
tofrom
. - Rename
Node#remove()
method toremoveSelf()
to fix name conflict. - Node source was moved to
source
property with origin file and node end position. - You can set own stringify function.
- Initial release.