Claude Sonnet 5.5
Site and docs for 0.9.0; drop template leftovers; scripts without hard-coded paths
794b22f Download scripts/make-extension-icon.py from EHS-Studio/dssl: direct link, hf CLI and curl.
- Browser
- Download file 1.38 kB
-
https://huggingface.co/EHS-Studio/dssl/resolve/main/scripts/make-extension-icon.py
- Command line
-
hf download hf://EHS-Studio/dssl/scripts/make-extension-icon.py
-
curl -L -o make-extension-icon.py https://huggingface.co/EHS-Studio/dssl/resolve/main/scripts/make-extension-icon.py
1.38 kB
| #!/usr/bin/env python3 | |
| """Generates the DSSL extension marketplace icon (128x128 PNG). | |
| Design ties into the site's classic re-skin: ink background, parchment | |
| section-mark glyph (the site's logo mark is a literal section sign), brass accent. | |
| """ | |
| from PIL import Image, ImageDraw, ImageFont | |
| SIZE = 128 | |
| INK = (24, 19, 16, 255) # candlelit walnut, the site's dark bg | |
| PARCHMENT = (245, 240, 228, 255) # site parchment | |
| BRASS = (201, 164, 92, 255) # brass accent | |
| img = Image.new("RGBA", (SIZE, SIZE), (0, 0, 0, 0)) | |
| d = ImageDraw.Draw(img) | |
| d.rounded_rectangle([2, 2, SIZE - 2, SIZE - 2], radius=24, fill=INK) | |
| font_path = "/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf" | |
| try: | |
| font = ImageFont.truetype(font_path, 78) | |
| except OSError: | |
| font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 78) | |
| glyph = "\u00a7" # section sign, the site's logo mark | |
| bbox = d.textbbox((0, 0), glyph, font=font) | |
| w = bbox[2] - bbox[0] | |
| h = bbox[3] - bbox[1] | |
| x = (SIZE - w) / 2 - bbox[0] | |
| y = (SIZE - h) / 2 - bbox[1] - 6 | |
| d.text((x, y), glyph, font=font, fill=PARCHMENT) | |
| # brass baseline accent under the glyph | |
| d.rounded_rectangle([36, SIZE - 26, SIZE - 36, SIZE - 20], radius=3, fill=BRASS) | |
| import os | |
| out = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "dssl-vscode", "icon.png") | |
| img.save(out, "PNG") | |
| print("wrote", out, img.size) | |