diagrams-svg: SVG backend for diagrams drawing EDSL.

[ bsd3, graphics, library ] [ Propose Tags ]

This package provides a modular backend for rendering diagrams created with the diagrams EDSL to SVG files. It uses lucid-svg to be a native Haskell backend, making it suitable for use on any platform.

The package provides the following modules:

Additional documentation can be found in the README file distributed with the source tarball or viewable on GitHub: https://github.com/diagrams/diagrams-svg/blob/master/README.md.


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.3, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.7, 0.6, 0.6.0.1, 0.7, 0.8, 0.8.0.1, 0.8.0.2, 1.0, 1.0.1, 1.0.1.1, 1.0.1.2, 1.0.1.3, 1.0.2, 1.0.2.1, 1.1, 1.1.0.1, 1.1.0.2, 1.1.0.3, 1.1.0.4, 1.1.0.5, 1.3, 1.3.1, 1.3.1.1, 1.3.1.2, 1.3.1.3, 1.3.1.4, 1.3.1.5, 1.3.1.6, 1.3.1.7, 1.3.1.8, 1.3.1.9, 1.3.1.10, 1.4, 1.4.0.1, 1.4.0.2, 1.4.0.3, 1.4.0.4, 1.4.1, 1.4.1.1, 1.4.2, 1.4.3, 1.4.3.1 (info)
Change log CHANGELOG.md
Dependencies base (>=4.3 && <4.11), base64-bytestring (>=1 && <1.1), bytestring (>=0.9 && <1.0), colour, containers (>=0.3 && <0.6), diagrams-core (>=1.4 && <1.5), diagrams-lib (>=1.4 && <1.5), filepath, ghc-prim, hashable (>=1.1 && <1.3), JuicyPixels (>=3.1.5 && <3.3), lens (>=4.0 && <4.16), monoid-extras (>=0.3 && <0.5), mtl (>=1 && <2.3), optparse-applicative (>=0.13 && <0.14), semigroups (>=0.13 && <0.19), split (>=0.1.2 && <0.3), svg-builder (>=0.1 && <0.2), text (>=0.11 && <1.3) [details]
License BSD-3-Clause
Author Felipe Lessa, Deepak Jois
Maintainer diagrams-discuss@googlegroups.com
Revised Revision 1 made by BrentYorgey at 2017-06-21T22:48:12Z
Category Graphics
Home page http://projects.haskell.org/diagrams/
Bug tracker http://github.com/diagrams/diagrams-svg/issues
Source repo head: git clone http://github.com/diagrams/diagrams-svg
Uploaded by BrentYorgey at 2016-10-27T05:19:31Z
Distributions Debian:1.4.3, LTSHaskell:1.4.3.1, NixOS:1.4.3.1, Stackage:1.4.3.1
Reverse Dependencies 22 direct, 33 indirect [details]
Downloads 59424 total (166 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-10-29 [all 1 reports]

Readme for diagrams-svg-1.4.1

[back to package description]

diagrams-svg Hackage Build Status

diagrams-svg is a an SVG backend for diagrams. Diagrams is a powerful, flexible, declarative domain-specific language for creating vector graphics, using the Haskell programming language.

diagrams-svg is the default out-of-the box backend that comes with the diagrams framework, and supports most features defined in diagrams-lib.

Installation

cabal update && cabal install diagrams-svg

Usage

A simple example that uses diagrams-svg to draw a square.

import Diagrams.Prelude
import Diagrams.Backend.SVG.CmdLine

b1 = square 20 # lw 0.002

main = mainWith (pad 1.1 b1)

Save this to file named Square.hs and compile this program:

ghc --make Square.hs

This will generate an executable which, when run produces an SVG file. Run the executable with the --help option to find out more about how to call it.

$ ./Square --help
./Square

Usage: ./Square [-w|--width WIDTH] [-h|--height HEIGHT] [-o|--output OUTPUT] [--loop] [-s|--src ARG] [-i|--interval INTERVAL]
  Command-line diagram generation.

Available options:
  -?,--help                Show this help text
  -w,--width WIDTH         Desired WIDTH of the output image
  -h,--height HEIGHT       Desired HEIGHT of the output image
  -o,--output OUTPUT       OUTPUT file
  -l,--loop                Run in a self-recompiling loop
  -s,--src ARG             Source file to watch
  -i,--interval INTERVAL   When running in a loop, check for changes every INTERVAL seconds.
  -p,--pretty              Pretty print the SVG output

You must pass an output file name with a .svg extension to generate the SVG file.

$ ./Square -o square.svg

The command above generates the SVG file:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="22.0" height="22.0" viewBox="0 0 22 22">
  <g>
    <g stroke="rgb(0,0,0)" stroke-opacity="1.0" fill="rgb(0,0,0)" fill-opacity="0.0" stroke-width="2.0e-3">
       <path d="M 21.0,21.0 l -2.220446049250313e-15,-20.0 h -20.0 l -2.220446049250313e-15,20.0 Z" />
    </g>
  </g>
</svg>