✅ COMPLETED: 1. Dockerfile uses port 80 (astro preview) 2. BaseLayout imports globals.css 3. globals.css with Tailwind v4 @theme syntax 4. index.astro has Header, Footer, FixedContact 5. All image references fixed to existing files 6. Hero uses hdpe_pipe_main.jpg 7. Product cards use hdpe001.jpg 8. pt-20 on main for fixed header ✅ TESTED LOCALLY: - Build: 15 pages in 1.27s - Docker build successful - Port 80 working - Images load - CSS works Ready for Easypanel deployment.
61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
const cssTree = require('css-tree');
|
|
const compress = require('./compress.cjs');
|
|
const specificity = require('./restructure/prepare/specificity.cjs');
|
|
|
|
function encodeString(value) {
|
|
const stringApostrophe = cssTree.string.encode(value, true);
|
|
const stringQuote = cssTree.string.encode(value);
|
|
|
|
return stringApostrophe.length < stringQuote.length
|
|
? stringApostrophe
|
|
: stringQuote;
|
|
}
|
|
|
|
const {
|
|
lexer,
|
|
tokenize,
|
|
parse,
|
|
generate,
|
|
walk,
|
|
find,
|
|
findLast,
|
|
findAll,
|
|
fromPlainObject,
|
|
toPlainObject
|
|
} = cssTree.fork({
|
|
node: {
|
|
String: {
|
|
generate(node) {
|
|
this.token(cssTree.tokenTypes.String, encodeString(node.value));
|
|
}
|
|
},
|
|
Url: {
|
|
generate(node) {
|
|
const encodedUrl = cssTree.url.encode(node.value);
|
|
const string = encodeString(node.value);
|
|
|
|
this.token(cssTree.tokenTypes.Url,
|
|
encodedUrl.length <= string.length + 5 /* "url()".length */
|
|
? encodedUrl
|
|
: 'url(' + string + ')'
|
|
);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
exports.compress = compress;
|
|
exports.specificity = specificity;
|
|
exports.find = find;
|
|
exports.findAll = findAll;
|
|
exports.findLast = findLast;
|
|
exports.fromPlainObject = fromPlainObject;
|
|
exports.generate = generate;
|
|
exports.lexer = lexer;
|
|
exports.parse = parse;
|
|
exports.toPlainObject = toPlainObject;
|
|
exports.tokenize = tokenize;
|
|
exports.walk = walk;
|