mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-03 20:30:04 +02:00
use minify
This commit is contained in:
2
node_modules/clean-css/lib/tokenizer/marker.js
generated
vendored
2
node_modules/clean-css/lib/tokenizer/marker.js
generated
vendored
@@ -2,6 +2,7 @@ var Marker = {
|
||||
ASTERISK: '*',
|
||||
AT: '@',
|
||||
BACK_SLASH: '\\',
|
||||
CARRIAGE_RETURN: '\r',
|
||||
CLOSE_CURLY_BRACKET: '}',
|
||||
CLOSE_ROUND_BRACKET: ')',
|
||||
CLOSE_SQUARE_BRACKET: ']',
|
||||
@@ -12,7 +13,6 @@ var Marker = {
|
||||
FORWARD_SLASH: '/',
|
||||
INTERNAL: '-clean-css-',
|
||||
NEW_LINE_NIX: '\n',
|
||||
NEW_LINE_WIN: '\r',
|
||||
OPEN_CURLY_BRACKET: '{',
|
||||
OPEN_ROUND_BRACKET: '(',
|
||||
OPEN_SQUARE_BRACKET: '[',
|
||||
|
1
node_modules/clean-css/lib/tokenizer/token.js
generated
vendored
1
node_modules/clean-css/lib/tokenizer/token.js
generated
vendored
@@ -9,6 +9,7 @@ var Token = {
|
||||
PROPERTY_BLOCK: 'property-block', // e.g. `--var:{color:red}`
|
||||
PROPERTY_NAME: 'property-name', // e.g. `color`
|
||||
PROPERTY_VALUE: 'property-value', // e.g. `red`
|
||||
RAW: 'raw', // e.g. anything between /* clean-css ignore:start */ and /* clean-css ignore:end */ comments
|
||||
RULE: 'rule', // e.g `div > a{...}`
|
||||
RULE_SCOPE: 'rule-scope' // e.g `div > a`
|
||||
};
|
||||
|
53
node_modules/clean-css/lib/tokenizer/tokenize.js
generated
vendored
53
node_modules/clean-css/lib/tokenizer/tokenize.js
generated
vendored
@@ -28,6 +28,9 @@ var BLOCK_RULES = [
|
||||
'@supports'
|
||||
];
|
||||
|
||||
var IGNORE_END_COMMENT_PATTERN = /\/\* clean\-css ignore:end \*\/$/;
|
||||
var IGNORE_START_COMMENT_PATTERN = /^\/\* clean\-css ignore:start \*\//;
|
||||
|
||||
var PAGE_MARGIN_BOXES = [
|
||||
'@bottom-center',
|
||||
'@bottom-left',
|
||||
@@ -88,11 +91,13 @@ function intoTokens(source, externalContext, internalContext, isNested) {
|
||||
var buffer = [];
|
||||
var buffers = [];
|
||||
var serializedBuffer;
|
||||
var serializedBufferPart;
|
||||
var roundBracketLevel = 0;
|
||||
var isQuoted;
|
||||
var isSpace;
|
||||
var isNewLineNix;
|
||||
var isNewLineWin;
|
||||
var isCarriageReturn;
|
||||
var isCommentStart;
|
||||
var wasCommentStart = false;
|
||||
var isCommentEnd;
|
||||
@@ -100,9 +105,11 @@ function intoTokens(source, externalContext, internalContext, isNested) {
|
||||
var isCommentEndMarker;
|
||||
var isEscaped;
|
||||
var wasEscaped = false;
|
||||
var isRaw = false;
|
||||
var seekingValue = false;
|
||||
var seekingPropertyBlockClosing = false;
|
||||
var position = internalContext.position;
|
||||
var lastCommentStartAt;
|
||||
|
||||
for (; position.index < source.length; position.index++) {
|
||||
var character = source[position.index];
|
||||
@@ -110,7 +117,8 @@ function intoTokens(source, externalContext, internalContext, isNested) {
|
||||
isQuoted = level == Level.SINGLE_QUOTE || level == Level.DOUBLE_QUOTE;
|
||||
isSpace = character == Marker.SPACE || character == Marker.TAB;
|
||||
isNewLineNix = character == Marker.NEW_LINE_NIX;
|
||||
isNewLineWin = character == Marker.NEW_LINE_NIX && source[position.index - 1] == Marker.NEW_LINE_WIN;
|
||||
isNewLineWin = character == Marker.NEW_LINE_NIX && source[position.index - 1] == Marker.CARRIAGE_RETURN;
|
||||
isCarriageReturn = character == Marker.CARRIAGE_RETURN && source[position.index + 1] && source[position.index + 1] != Marker.NEW_LINE_NIX;
|
||||
isCommentStart = !wasCommentEnd && level != Level.COMMENT && !isQuoted && character == Marker.ASTERISK && source[position.index - 1] == Marker.FORWARD_SLASH;
|
||||
isCommentEndMarker = !wasCommentStart && !isQuoted && character == Marker.FORWARD_SLASH && source[position.index - 1] == Marker.ASTERISK;
|
||||
isCommentEnd = level == Level.COMMENT && isCommentEndMarker;
|
||||
@@ -125,6 +133,8 @@ function intoTokens(source, externalContext, internalContext, isNested) {
|
||||
buffer.push(character);
|
||||
} else if (!isCommentEnd && level == Level.COMMENT) {
|
||||
buffer.push(character);
|
||||
} else if (!isCommentStart && !isCommentEnd && isRaw) {
|
||||
buffer.push(character);
|
||||
} else if (isCommentStart && (level == Level.BLOCK || level == Level.RULE) && buffer.length > 1) {
|
||||
// comment start within block preceded by some content, e.g. div/*<--
|
||||
metadatas.push(metadata);
|
||||
@@ -141,6 +151,33 @@ function intoTokens(source, externalContext, internalContext, isNested) {
|
||||
levels.push(level);
|
||||
level = Level.COMMENT;
|
||||
buffer.push(character);
|
||||
} else if (isCommentEnd && isIgnoreStartComment(buffer)) {
|
||||
// ignore:start comment end, e.g. /* clean-css ignore:start */<--
|
||||
serializedBuffer = buffer.join('').trim() + character;
|
||||
lastToken = [Token.COMMENT, serializedBuffer, [originalMetadata(metadata, serializedBuffer, externalContext)]];
|
||||
newTokens.push(lastToken);
|
||||
|
||||
isRaw = true;
|
||||
metadata = metadatas.pop() || null;
|
||||
buffer = buffers.pop() || [];
|
||||
} else if (isCommentEnd && isIgnoreEndComment(buffer)) {
|
||||
// ignore:start comment end, e.g. /* clean-css ignore:end */<--
|
||||
serializedBuffer = buffer.join('') + character;
|
||||
lastCommentStartAt = serializedBuffer.lastIndexOf(Marker.FORWARD_SLASH + Marker.ASTERISK);
|
||||
|
||||
serializedBufferPart = serializedBuffer.substring(0, lastCommentStartAt);
|
||||
lastToken = [Token.RAW, serializedBufferPart, [originalMetadata(metadata, serializedBufferPart, externalContext)]];
|
||||
newTokens.push(lastToken);
|
||||
|
||||
serializedBufferPart = serializedBuffer.substring(lastCommentStartAt);
|
||||
metadata = [position.line, position.column - serializedBufferPart.length + 1, position.source];
|
||||
lastToken = [Token.COMMENT, serializedBufferPart, [originalMetadata(metadata, serializedBufferPart, externalContext)]];
|
||||
newTokens.push(lastToken);
|
||||
|
||||
isRaw = false;
|
||||
level = levels.pop();
|
||||
metadata = metadatas.pop() || null;
|
||||
buffer = buffers.pop() || [];
|
||||
} else if (isCommentEnd) {
|
||||
// comment end, e.g. /* comment */<--
|
||||
serializedBuffer = buffer.join('').trim() + character;
|
||||
@@ -448,7 +485,7 @@ function intoTokens(source, externalContext, internalContext, isNested) {
|
||||
} else if (buffer.length == 1 && isNewLineWin) {
|
||||
// ignore windows newline which is composed of two characters
|
||||
buffer.pop();
|
||||
} else if (buffer.length > 0 || !isSpace && !isNewLineNix && !isNewLineWin) {
|
||||
} else if (buffer.length > 0 || !isSpace && !isNewLineNix && !isNewLineWin && !isCarriageReturn) {
|
||||
// any character
|
||||
buffer.push(character);
|
||||
}
|
||||
@@ -458,8 +495,8 @@ function intoTokens(source, externalContext, internalContext, isNested) {
|
||||
wasCommentStart = isCommentStart;
|
||||
wasCommentEnd = isCommentEnd;
|
||||
|
||||
position.line = (isNewLineWin || isNewLineNix) ? position.line + 1 : position.line;
|
||||
position.column = (isNewLineWin || isNewLineNix) ? 0 : position.column + 1;
|
||||
position.line = (isNewLineWin || isNewLineNix || isCarriageReturn) ? position.line + 1 : position.line;
|
||||
position.column = (isNewLineWin || isNewLineNix || isCarriageReturn) ? 0 : position.column + 1;
|
||||
}
|
||||
|
||||
if (seekingValue) {
|
||||
@@ -480,6 +517,14 @@ function intoTokens(source, externalContext, internalContext, isNested) {
|
||||
return allTokens;
|
||||
}
|
||||
|
||||
function isIgnoreStartComment(buffer) {
|
||||
return IGNORE_START_COMMENT_PATTERN.test(buffer.join('') + Marker.FORWARD_SLASH);
|
||||
}
|
||||
|
||||
function isIgnoreEndComment(buffer) {
|
||||
return IGNORE_END_COMMENT_PATTERN.test(buffer.join('') + Marker.FORWARD_SLASH);
|
||||
}
|
||||
|
||||
function originalMetadata(metadata, value, externalContext, selectorFallbacks) {
|
||||
var source = metadata[2];
|
||||
|
||||
|
Reference in New Issue
Block a user