Metadata-Version: 2.4
Name: latticesvg
Version: 0.1.0
Summary: Grid-based vector layout engine — CSS Grid layout to SVG/PNG
Project-URL: Homepage, https://github.com/Qalxry/LatticeSVG
Project-URL: Documentation, https://Qalxry.github.io/LatticeSVG/
Project-URL: Repository, https://github.com/Qalxry/LatticeSVG
Project-URL: Issues, https://github.com/Qalxry/LatticeSVG/issues
Project-URL: Changelog, https://Qalxry.github.io/LatticeSVG/changelog/
Author: Qalxry
License-Expression: MIT
License-File: LICENSE
Keywords: css-grid,layout,png,report,svg,typesetting,vector
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Text Processing :: Markup
Classifier: Typing :: Typed
Requires-Python: >=3.8
Requires-Dist: drawsvg>=2.0
Requires-Dist: freetype-py>=2.3
Requires-Dist: quickjax>=0.1.0
Provides-Extra: dev
Requires-Dist: cairosvg>=2.5; extra == 'dev'
Requires-Dist: matplotlib>=3.5; extra == 'dev'
Requires-Dist: pillow>=9.0; extra == 'dev'
Requires-Dist: pyphen>=0.16; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-glightbox>=0.4; extra == 'docs'
Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
Requires-Dist: mkdocs-static-i18n>=1.2; extra == 'docs'
Requires-Dist: mkdocs>=1.6; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.24; extra == 'docs'
Provides-Extra: hyphens
Requires-Dist: pyphen>=0.16; extra == 'hyphens'
Provides-Extra: png
Requires-Dist: cairosvg>=2.5; extra == 'png'
Description-Content-Type: text/markdown

# LatticeSVG

基于 CSS Grid 的矢量布局引擎，输出高质量 SVG/PNG。

## 安装

```bash
pip install latticesvg

# 如需 PNG 输出
pip install latticesvg[png]
```

## 快速开始

```python
from latticesvg import GridContainer, TextNode, ImageNode, Renderer

grid = GridContainer(style={
    "width": "800px",
    "padding": "20px",
    "background-color": "#ffffff",
    "grid-template-columns": ["200px", "1fr"],
    "gap": "20px",
})

title = TextNode("实验报告", style={
    "font-size": "24px",
    "font-weight": "bold",
    "color": "#333333",
    "justify-self": "center",
})
grid.add(title, row=1, col=1)

grid.layout(available_width=800)

renderer = Renderer()
renderer.render(grid, "report.svg")
```

## 依赖

- Python ≥ 3.8
- drawsvg — SVG 生成
- freetype-py — 文本测量
- cairosvg（可选）— PNG 转换

## 许可证

MIT
