Home

Awesome

GeoPattern :coffee: Coffee

Dependency Status NPM version Build Status

This is a CoffeeScript port of JavaScript port btmills/geopattern of Ruby project jasonlong/geo_pattern that is derived from the background generator originally used for GitHub Guides.

Installation & Building

npm install
make

Usage

Demo page

xdg-open docs/geo-pattern-coffee.html

Web

Include the minified script. jQuery is optional.

<script src="js/jquery.min.js"></script> <!-- optional -->
<script src="js/geo-pattern-coffee.min.js"></script>

Use either the GeoPattern browser global or the jQuery plugin:

// Use the global...
var pattern = GeoPattern.generate('GitHub');
$('#geopattern').css('background-image', pattern.toDataUrl());

// ...or the plugin
$('#geopattern').geopattern('GitHub');

For backwards compatibility with the script on the Guides, the source hash for generation can be supplied with a data-title-sha attribute on the element. If the attribute exists, the generator will ignore the input string and use the supplied hash.

View docs/geo-pattern-coffee.html for a complete example.

Node.js

npm install geopattern

After requiring geopattern, the API is identical to the browser version, minus the jQuery plugin.

var GeoPattern = require('geopattern');
var pattern = GeoPattern.generate('GitHub');
pattern.toDataUrl(); // url("data:image/svg+xml;...

API

GeoPattern.generate(string, options)

Returns a newly-generated, tiling SVG Pattern.

Pattern.toString() and Pattern.toSvg()

Gets the SVG string representing the pattern.

Pattern.toBase64()

Gets the SVG as a Base64-encoded string.

Pattern.toDataUri()

Gets the pattern as a data URI, i.e. data:image/svg+xml;base64,PHN2ZyB....

Pattern.toDataUrl()

Gets the pattern as a data URL suitable for use as a CSS background-image, i.e. url("data:image/svg+xml;base64,PHN2ZyB...").

License GPL-3.0+

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.