





bulletin
internet
Duke energy
new marketing site
zoomed out perf fix: convert drawing canvas layers from canvas to svg
function pointsToSvgPath(points) {
if (!points || points.length === 0) return '';
// Start with a move command to the first point
let path = `M ${points[0].x} ${points[0].y}`;
// Add line segments to each subsequent point
for (let i = 1; i < points.length; i++) {
path += ` L ${points[i].x} ${points[i].y}`;
}
return path;
}
function createStrokePath(points, isEraser, strokeWidth, color) {
const pathData = pointsToSvgPath(points);
if (isEraser) {
// For erasers, we'll create a mask or use clip-path
// This is a simplified approach - for actual implementation you'd need to:
// 1. Create a unique ID for the mask
// 2. Define the mask element with the eraser path
// 3. Apply the mask to the content below
const maskId = `eraser-mask-${Date.now()}`;
return `
<mask id="${maskId}">
<rect x="0" y="0" width="100%" height="100%" fill="white"/>
<path d="${pathData}" stroke="black" stroke-width="${strokeWidth}" fill="none"/>
</mask>
<g mask="url(#${maskId})">
<!-- Content to be masked would go here -->
</g>
`;
} else {
// For regular strokes, just return a path
return `<path d="${pathData}" stroke="${color}" stroke-width="${strokeWidth}" fill="none" stroke-linecap="round" stroke-linejoin="round"/>`;
}
}
share boxes. item urls look for boxid too
Berkey
Keyboard address, 1128
Process photos
Comment only users shouldn’t be able to resize boxes , or connect items?, or draw
Pascal
Ahrefs
dr
Dentist
film a little youtube new demo
About page writing
blog challenge
use to make new ph
New hello space /about
git fetch origin pull/$ID/head:$BRANCHNAME

Dirt Man