Code Monkey home page Code Monkey logo

scratch-svg-renderer's Introduction

scratch-svg-renderer

CI/CD

A class built for importing SVGs into Scratch. Imports an SVG string to a DOM element or an HTML canvas. Handles some of the quirks with Scratch 2.0 SVGs, which sometimes misreport their width, height and view box.

Installation

This requires you to have Git and Node.js installed.

To install as a dependency for your own application:

npm install scratch-svg-renderer

To set up a development environment to edit scratch-svg-renderer yourself:

git clone https://github.com/scratchfoundation/scratch-svg-renderer.git
cd scratch-svg-renderer
npm install

How to include in a Node.js App

import SvgRenderer from 'scratch-svg-renderer';

const svgRenderer = new SvgRenderer();

const svgData = "<svg>...</svg>";
const scale = 1;
const quirksMode = false; // If true, emulate Scratch 2.0 SVG rendering "quirks"
function doSomethingWith(canvas) {...};

svgRenderer.loadSVG(svgData, quirksMode, () => {
    svgRenderer.draw(scale);
    doSomethingWith(svgRenderer.canvas);
});

How to run locally as part of scratch-gui

To run scratch-svg-renderer locally as part of scratch-gui, for development:

  1. Set up local repositories (or pull updated code):
    1. scratch-svg-renderer (this repo)
    2. scratch-render
    3. scratch-paint
    4. scratch-gui
  2. In each of the local repos above, run npm install
  3. Run npm link in each of these local repos:
    1. scratch-svg-renderer
    2. scratch-render
    3. scratch-paint
  4. Run npm link scratch-svg-renderer in each of these local repos:
    1. scratch-render
    2. scratch-paint
    3. scratch-gui
  5. In your local scratch-gui repo:
    1. run npm link scratch-render
    2. run npm link scratch-paint
  6. In scratch-gui, follow its instructions to run it or build its code

Donate

We provide Scratch free of charge, and want to keep it that way! Please consider making a donation to support our continued engineering, design, community, and resource development efforts. Donations of any size are appreciated. Thank you!

Committing

This project uses semantic release to ensure version bumps follow semver so that projects depending on it don't break unexpectedly.

In order to automatically determine version updates, semantic release expects commit messages to follow the conventional-changelog specification.

You can use the commitizen CLI to make commits formatted in this way:

npm install -g commitizen@latest cz-conventional-changelog@latest

Now you're ready to make commits using git cz.

scratch-svg-renderer's People

Contributors

renovate[bot] avatar semantic-release-bot avatar fsih avatar cwillisf avatar adroitwhiz avatar paulkaplan avatar meyerhot95 avatar mzgoddard avatar greenkeeper[bot] avatar benjiwheeler avatar tomlum avatar picklesrus avatar renovate-bot avatar rschamp avatar ktbee avatar kchadha avatar skripted-io avatar thisandagain avatar aoneill01 avatar chua1989 avatar dependabot-preview[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.