Code Monkey home page Code Monkey logo

greybeard's Issues

Create a github.io page for 1.0 release.

Along with the planned changes for #7 , the project should probably have a github.io page, since the final product are font files to be downloaded. Integrating releases with a github.io page is a no-brainer, but now of course I have to learn about how all that stuff works, since I've never done it before ๐Ÿ˜ฌ.

Add option to eliminate whitespace glyphs.

Whilst attempting to use Greybeard in a keynote presentation, I noticed the linefeed glyph appeared wherever I hit shift-enter to manually split a line (i.e. a particularly long bulleted list item running into an image). This is common enough that this glyph should be optional, and the default should be not to show them.

This applies to the following glyphs:

  • CtlHT: horizontal tab
  • CtlLF: line feed
  • CtlVT: vertical tab
  • CtlFF: form feed
  • CtlCR: carriage return
  • CtlNL: newline

The normal precedent for feature selection is to edit the VARIANTS.dat file originally provided by UW ttyp0, which is what is done to avoid the display of non-breaking space by simply copying the ordinary space glyph in its place:

# build/VARIANTS.dat
COPYTO Space SpaceNoBreak

This won't work here since these characters should be zero width. Furthermore the original distribution's bdfmangle tool, which is used to parse and execute the changes in VARIANTS.dat, does not have a verb to delete or omit glyphs, so one will have to be added or a new tool will have to be written.

It's likely going to have to be a new tool so that I don't have to write Perl, and also to help out with the work that needs to be done for #6

Bold+Italic variant?

First, wanted to say thanks for making such a great font! I've been using it for the past six months and love it. Having standard, bold, and italic variants really makes it stand out (and much more useful as a result) among the other bitmap fonts I've come across.

Would you consider making a bold+italic font variant?

The three variants provided currently cover 95% of my use cases, but with kitty's font config I do run into occasional cases where the bold_italic_font is expected and I have to use a fallback. Having a bold+italic for Greybeard would really complete this font and make it usable across all applications I need.

Thanks! Feel free to close if it's not something you're interested in (or if it's not possible to do with the design of the font at its current sizes).

Create BDF preprocessor tool.

As part of the work for #10 #11 and #6, a new tool will need to be developed to operate on the unicode BDF files and provide the functionality of build/VARIANTS.dat as well as selective glyph removal and maybe even porting mkbold code over for the synthetic bolditalic variants to allow for glyph expansion and kerning when bold glyphs are too large.

Embedded bitmap strikes research.

One of the reasons Greybeard no longer provides a single .ttf is because bitmap strikes don't seem to be a viable option in the modern era. Therefore I switched from using fontforge to using Bits'N'Picas to synthesize the font as pseudo-pixel outlines. This works great, and seems to do a lot of inspection on the BDF to get things right, but now each size has to be its own font.

This was considered a worthwhile tradeoff for the convenience of automatic building, plus it makes it much more clear what size the font is intended to be used at, instead of providing list of "good point sizes" and "bad point sizes". That said, it would be nice to have them all in one file again.

mkttf attempts to automate this using the trick of adding CKJ glyphs and setting the codepage to trick Windows into actually rendering bitmap strikes, however it's unclear if this is viable for usage on Windows, given the issues described in the link above.

If you have experience making Windows do the right thing with fonts that have bitmap strikes, please comment here or issue a PR!

Cut v1.0 and move to release artifacts.

Checking out font files in a repo or manually downloading them from Github is old and busted. Github actions on release tags are the new hotness. To wit, I am planning a 1.0 "release" that will integrate this, removing all of the files in /dist from the repo itself.

This will dovetail with a github.io page.

woff/2 support

Consider woff/woff2 for web use. Shouldn't be too difficult with a little Makefile/Docker magic.

Fixup synthetic BoldItalic variants.

Thanks to #5 Greybeard now has synthesized BoldItalic variants generated from the italic strikes using mkbold-mkitalic. Unfortunately, the algorithm does not take bounding boxes into account, so anywhere a thickened glyph would run over the edge (usually by a single pixel), it simply cuts off. This isn't too bad, but it's bothering me. I'm sure there's a way to expand the bounding boxes dynamically and to use the bdf analogue of kerning to account for it, but it requires some investigation and, likely, digging into the annals of old xfont utilities.

Move /build to separate/archived repo.

Given that we're unlikely to need the non-unicode encodings ever again, and since most tools have difficulties making sense of the unmangled BDFs, it's probably best to move the /build directory out of the respository altogether and standardize on the built gb-X-uni files as source of truth moving forward.

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.