[![](https://github.com/LingDong-/psvg/blob/master/examples/textanim.svg)](https://github.com/LingDong-/psvg/blob/master/examples/textanim.psvg)
# PSVG - Programmable SVG
**[Doc](https://github.com/LingDong-/psvg/blob/master/QUICKSTART.md) | [Playground](https://github.com/LingDong-/psvg/blob/master/https://psvg.netlify.app/) | [Examples](https://github.com/LingDong-/psvg/blob/master/examples/) | [NPM](https://github.com/LingDong-/psvg/blob/master/https://www.npmjs.com/package/@lingdong/psvg)**
PSVG is an extension of the SVG (Scalable Vector Graphics) format that introduces programming language features like functions, control flows, and variables -- Instead of writing a program that draws a picture, write a picture that draws itself!
PSVG is compliant with XML and HTML specs, so it can be easily embedded in a webpage or edited with an XML editor.
This repo contains a [PSVG→SVG complier](https://github.com/LingDong-/psvg/blob/master/psvg.ts) that transforms PSVG files to just regular SVG's. It can also automatically render all PSVG's on an HTML page when included as a `
```
By including the script, all the `` elements on the webpage will be compiled to `