npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

shogiground

v0.8.5

Published

lishogi.org shogi ui

Downloads

78

Readme

Shogiground

Continuous Integration npm

Shogiground

Shogiground is a free/libre open source shogi UI forked from Chessground rewritten for lishogi.org. It targets modern browsers, as well as mobile development using Cordova.

License

Shogiground is distributed under the GPL-3.0 license (or any later version, at your option). When you use Shogiground for your website, your combined work may be distributed only under the GPL. You must release your source code to the users of your website.

Please read more about GPL for JavaScript on greendrake.info/#nfy0.

Demos

Features

Shogiground

Shogiground is designed to fulfill all lishogi.org web and mobile apps needs, so it is pretty featureful.

  • Well typed with TypeScript
  • Fast. Uses a custom DOM diff algorithm to reduce DOM writes to the absolute minimum.
  • Small footprint: cca 40K unzipped. No dependencies.
  • SVG drawing of circles and arrows on the board and hands
  • Individual square elements for styling
  • Entirely configurable and reconfigurable at any time
  • Styling with CSS only: board, pieces and drawn shapes can be changed by simply switching a class
  • Fluid layout: board can be resized at any time
  • Full mobile support (touchstart, touchmove, touchend)
  • Move or drop pieces by click
  • Move or drop pieces by drag & drop
    • Minimum distance before drag
    • Centralisation of the piece under the cursor
    • Piece ghost element
    • Drop off revert or trash
  • Supports shogi-like promotions
  • Premove or predrop by click or drag
  • Animation of pieces: moving and fading away both on board and from hands
  • Display last move, check, move destinations, and premove destinations (hover effects possible)
  • Import and export positions in SFEN notation, custom sfen parser/renderer
  • User callbacks
  • Supports board dimensions up to 16x16
  • No shogi logic inside: can be used for shogi variants

Installation

npm install --save shogiground

Usage

const Shogiground = require('shogiground').Shogiground;

const config = {
  sfen: {
    board: 'lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL',
  },
};
const ground = Shogiground(config, { board: document.body });

Documentation

Development

Install build dependencies:

npm install

To build the node module:

npm run compile -- --watch

To build the standalone:

npm run dist -- --watch