Merge pull request #1 from sqshq/master

Add a public interface to load bindata fonts in addition to the built-in ones
This commit is contained in:
Maxi Binder
2019-02-24 17:06:19 +01:00
committed by GitHub
2 changed files with 21 additions and 4 deletions

View File

@@ -122,18 +122,30 @@ func (fm *fontManager) loadBuildInFont() error {
if err != nil { if err != nil {
return err return err
} }
// Get the font // Load the font
font, err := parseFontContent(string(fontStr)) err = fm.loadBindataFont(fontStr, name)
if err != nil { if err != nil {
return err return err
} }
// Register the font object in the fontLib
fm.fontLib[name] = font
} }
return nil return nil
} }
// Load a bindata font
func (fm *fontManager) loadBindataFont(fontBinary []byte, fontName string) error {
// Get the font
font, err := parseFontContent(string(fontBinary))
if err != nil {
return err
}
// Register the font object in the fontLib
fm.fontLib[fontName] = font
return nil
}
// Parse a font from a content string // Parse a font from a content string
// Used to load fonts from disk and the builtin fonts // Used to load fonts from disk and the builtin fonts
func parseFontContent(cont string) (*font, error) { func parseFontContent(cont string) (*font, error) {

View File

@@ -39,6 +39,11 @@ func (ar *AsciiRender) LoadFont(fontPath string) error {
return ar.fontMgr.loadFontList(fontPath) return ar.fontMgr.loadFontList(fontPath)
} }
// LoadBinDataFont loads provided font binary
func (ar *AsciiRender) LoadBindataFont(fontBinary []byte, fontName string) error {
return ar.fontMgr.loadBindataFont(fontBinary, fontName)
}
// Render renders a string with the default options // Render renders a string with the default options
// Calls the RenderOpts method with a new RenderOptions object // Calls the RenderOpts method with a new RenderOptions object
func (ar *AsciiRender) Render(str string) (string, error) { func (ar *AsciiRender) Render(str string) (string, error) {