Coder Social home page Coder Social logo

smufl-glyphs-info's Introduction

SMuFL Glyphs Info

npm GitHub issues

This package provides support files for use with the Glyphs font editing software that make it easier to develop fonts to the SMuFL (Standard Music Font Layout) specification.

It also includes a command line interface to help speed up installation of these support files.

Installation

To use the command line interface you will need to install this package using the Node Package Manager (NPM):

npm install -g smufl-glyphs-info
Click for more details if you’re not familiar with Node or NPM

Node.js allows you to run software written in JavaScript on your computer. The Node website includes several options for installing Node if you don’t already have it installed.

If you are already using Homebrew on your Mac, it might be easiest to install Node using Homebrew:

brew install node

Installing Node also installs the Node Package Manager, which is more commonly known as “NPM”. Here’s how the NPM installation command above breaks down:

  1. npm tells your terminal to start running the Node Package Manager.

  2. install tells NPM that you want to install a package.

  3. -g tells NPM that you want to install the package globally, rather than only for a local project.

  4. smufl-glyphs-info tells NPM the name of the package you want to install.

Usage

To install the support files using the command line interface run the following in your terminal:

smufl-glyphs

Follow the on-screen prompts to complete the installation. If you have existing GlyphData.xml or Groups.plist files, you will be asked if you want to overwrite them.

More information on how to use the smufl-glyphs command can be found by running:

smufl-glyphs --help

Details

The Glyphs font editing software allows for the expansion of its standard glyph database and custom categorisation in its left sidebar by providing custom GlyphData.xml and Groups.plist files.

This package provides:

  1. GlyphData.xml, which describes all of the glyphs defined in the SMuFL specification’s glyphnames.json so that Glyphs can understand these nonstandard codepoints.

  2. Groups.plist, which defines a custom SMuFL category in Glyphs’ left sidebar with sub-categories for each unicode range specified in the SMuFL specification’s ranges.json.

If you would like to access these files directly, you will find them in the dist directory.

Screenshot of the left sidebar in Glyphs with SMuFL support files installed

An example of the Glyphs left sidebar with the files installed

Manually copying the support files

Running the smufl-glyphs command in your terminal will copy these support files to Glyphs’ Application Support directory for you, but this can also be done manually if you prefer to avoid Node, the Terminal, and other scary things.

You can find Glyphs’ Application Support directory at: /Users/YOUR-USER-NAME/Library/Application Support/Glyphs.

One quick way to find this is to open Glyphs and select Script > Open Scripts Folder.

If it doesn’t exist, you should create an Info directory alongside the Scripts directory to put GlyphData.xml and Groups.plist in.

You should end up with a directory structure like this:

~/Library
└── Application Support
    └── Glyphs
        ├── Info
        │   ├── GlyphData.xml
        │   └── Groups.plist
        ├── Scripts
        └── ...

Contributing

This package was written by someone with fairly little experience working with Glyphs, and only cursory familiarity with the SMuFL specification. If you think something ought to be done differently, that’s fantastic! Both new issues and pull requests are very welcome.

Please check out the contribution guide for more details, and read the code of conduct to learn about being gentle and kind to one another. Gentleness and kindness are good things.

License

This software is free to use, modify, and redistribute under a GNU General Public License.

Useful Links

smufl-glyphs-info's People

Contributors

delucis avatar dependabot[bot] avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

smufl-glyphs-info's Issues

smufl-glyphs-info and Glyphsapp 3.1.1

Which part of smufl-glyphs-info isn’t working as you would like?

All the .plist file is ok with Glyphsapp 3.

What do you expect it to do?

to work the same way with old Glypsapp.

What is it actually doing? Does it always behave like this? What do you have to do to make it do this?

It doesn't show in the left side bar of Glyphsapp 3.

Could you give us a few last details?

  • I’m using Glyphs version: 3.1.1 e.g. 1.3, 2, 2.4…
  • I’m running smufl-glyphs-info on: macOS Ventura Windows / Mac version…
  • My favourite ice cream flavour is: THANKS A LOT for this awesome plist profile. ALL OF THEM

Add “decompose” attributes to GlyphData.xml

Glyphs supports a decompose attribute on <glyph> elements in GlyphData.xml:

decompose defines the components of a compound glyph. In other words, the parts that make up the glyph. This information is used when you construct such a letter using the Glyph > Make Component Glyph command (cmd + opt + shift + C).

Make sure the base letter comes first and all the diacritics follow. This is also useful for ligatures. In that case, you add the names of the glyphs that comprise the ligature, e.g. decompose="f, f, k" for an f_f_k ligature.

Among the various supported attributes not currently included in GlyphData.xml, decompose is probably the most useful, but the required data may need to be collected manually.

altname in GlyphData

I had a look at the files. I don’t understand most of the package stuff ;)

To use the category/subCategory like this is unusual but should work.

But you don’t need the altName if it is the same as "uni"+Unicode.

Install fails

npm i -g smufl-glyphs-info fails because the install script runs and calls napa, which is not available because it’s only a development dependency.

Can the install script be prevented from running when installing globally or as a dependency?

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.