OmniGraffle Stencil generator
Tool to create OmniGraffle stencils from SVG icons.
Features:
- create multiple sheets by directory
- parametrize object magnets
- filter images and format icon names
Idea based on script from AWS-OmniGraffle-Stencils
Usage
Requires Python 3.8+.
Install:
pip3 install omnigraffle-stencil
Run:
omnigraffle-stencil --help
to see all options:
usage: omnigraffle-stencil [-h] [--svg-dir SVG_DIR] [--stencil-file STENCIL_FILE] [--filename-includes [FILENAME_INCLUDES [FILENAME_INCLUDES ...]]] [--filename-excludes [FILENAME_EXCLUDES [FILENAME_EXCLUDES ...]]]
[--stencil-name-remove [STENCIL_NAME_REMOVE [STENCIL_NAME_REMOVE ...]]] [--no-vertex-magnets] [--side-magnets SIDE_MAGNETS] [--text-output]
Convert SVG files into OmniGraffle stencil
optional arguments:
-h, --help show this help message and exit
--svg-dir SVG_DIR svg files directory path (default: ./svg)
--stencil-file STENCIL_FILE
name of output stencil file (default: output.gstencil)
--filename-includes [FILENAME_INCLUDES [FILENAME_INCLUDES ...]]
strings to filter image file name by, taking only those which contains them all
--filename-excludes [FILENAME_EXCLUDES [FILENAME_EXCLUDES ...]]
strings to filter image file name by, taking only those which do not contain any of them
--stencil-name-remove [STENCIL_NAME_REMOVE [STENCIL_NAME_REMOVE ...]]
strings to be removed from image file name when creating stencil name (default: . - _)
--no-vertex-magnets don't create magnets on vertices (NE, NW, SE, SW)
--side-magnets SIDE_MAGNETS
number of magnets for each side (default: 5)
--text-output write OmniGraffle data file as text instead of binary
Input files are taken from the given location (./svg by default)
and should be grouped into directories.
Every directory will be parsed to a separate canvas in output stencil.
SVG directories structure example:
svg/
├── Group 1/
│ ├── icon1.svg
│ ├── icon2.svg
│ ├── icon3.svg
└── Group 2/
├── icon4.svg
└── icon5.svg
AWS Architecture Icons example
To generate icons from AWS Architecture Icons download SVG zip file (example: AWS-Architecture-Assets-For-Light-and-Dark-BG_20200911) and unpack it.
Run script with options:
omnigraffle-stencil \
--svg-dir "AWS-Architecture-Assets-For-Light-and-Dark-BG_20200911/AWS-Architecture-Service-Icons_20200911" \
--stencil-file AWS_20200911_Services.gstencil \
--filename-includes _48 \
--stencil-name-remove Arch_ _48 . - _ \
--group-name-remove Arch_ . - _
Output stencil will be created as AWS_20200911_Services.gstencil.
Check out the AWS stencil in Stenciltown - it contains all Service and Resource icons.
Development
Requires Python 3.8+ and Poetry.
Install dependencies in virtual env:
poetry shell
poetry install
Troubleshooting installing pillow library on MacOS:
https://akrabat.com/installing-pillow-on-macos-10-15-calatalina/
Get virtual env path for the IDE:
poetry env info -p
Run script:
poetry run omnigraffle-stencil
Publishing
Build and publish package:
poetry build
poetry publish
Release files for omnigraffle-stencil 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| omnigraffle-stencil-1.1.0.tar.gz | 9.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| omnigraffle_stencil-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.1 kB
Release files / omnigraffle-stencil-1.1.0.tar.gz
| Download URL | omnigraffle-stencil-1.1.0.tar.gz |
|---|---|
| Size | 9.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7666d8117b47834956b99a302eab15e85eda707e758947384c5ec32e1e310a39
|
|
BLAKE2b-256 checksum How to use checksums |
ae7b16cdde415c9d2e102ae945b590fc7aeac3d6f13920d29cd7cfec068454ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.4 CPython/3.9.1 Darwin/19.6.0
|
Release files / omnigraffle_stencil-1.1.0-py3-none-any.whl
| Download URL | omnigraffle_stencil-1.1.0-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e7af519a27f74aa836ae69a0f82d5f741cc65d3ceece5ccfd1563dfd0c49825e
|
|
BLAKE2b-256 checksum How to use checksums |
faa4f008d4fd7e94be83dfb939fa96bca14d6b750a6ac3de8942b2a7bcb7d5a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.4 CPython/3.9.1 Darwin/19.6.0
|