Files
dealplustech/node_modules/astro/dist/vite-plugin-html/transform/escape.js
Kunthawat 5171a789e9 fix: Final restoration with port 80
 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.
2026-03-12 08:58:56 +07:00

31 lines
1.1 KiB
JavaScript

import { visit } from "unist-util-visit";
import { escapeTemplateLiteralCharacters, needsEscape, replaceAttribute } from "./utils.js";
const rehypeEscape = ({ s }) => {
return (tree) => {
visit(tree, (node) => {
if (node.type === "text" || node.type === "comment") {
if (needsEscape(node.value)) {
s.overwrite(
node.position.start.offset,
node.position.end.offset,
escapeTemplateLiteralCharacters(node.value)
);
}
} else if (node.type === "element") {
if (!node.properties) return;
for (let [key, value] of Object.entries(node.properties)) {
key = key.replace(/([A-Z])/g, "-$1").toLowerCase();
const newKey = needsEscape(key) ? escapeTemplateLiteralCharacters(key) : key;
const newValue = needsEscape(value) ? escapeTemplateLiteralCharacters(value) : value;
if (newKey === key && newValue === value) continue;
replaceAttribute(s, node, key, value === "" ? newKey : `${newKey}="${newValue}"`);
}
}
});
};
};
var escape_default = rehypeEscape;
export {
escape_default as default
};