libfonthelper

Crates.iolibfonthelper
lib.rslibfonthelper
version0.3.9
sourcesrc
created_at2019-08-25 06:17:55.422121
updated_at2023-04-04 15:06:09.151413
descriptionReads fonts in passed directories and return objects of fonts for Figma Font Helper
homepagehttps://github.com/ChugunovRoman/libfonthelper
repositoryhttps://github.com/ChugunovRoman/libfonthelper
max_upload_size
id159499
size27,380
Roman (ChugunovRoman)

documentation

https://docs.rs/libfonthelper/

README

Description

This module find (by mask: \.(tt[fc]|otf|pfb)) and combine all fonts from the passed directories. And returns IFonts object of fonts of next structure:

interface IFontsFigmaItem {
	postscript: string;
	family: string;
	id: string;
	style?: string;
	weight?: number;
	stretch?: number;
	italic?: boolean;
}

interface IFonts {
	[path: string]: Array<IFontsFigmaItem>
}

Example:

{ '/usr/share/fonts/opentype/stix/STIXVariants-Bold.otf':
   [ { postscript: 'STIXVariants-Bold',
       family: 'STIXVariants',
       id: 'STIXVariants',
       style: 'Bold',
       weight: 400,
       stretch: 5,
       italic: false } ],
  '/usr/share/fonts/opentype/stix/STIXIntegralsUpSm-Bold.otf':
   [ { postscript: 'STIXIntegralsUpSm-Bold',
       family: 'STIXIntegralsUpSm',
       id: 'STIXIntegralsUpSm',
       style: 'Bold',
       weight: 400,
       stretch: 5,
       italic: false } ],
  '/usr/share/fonts/opentype/stix/STIXNonUnicode-Regular.otf':
   [ { postscript: 'STIXNonUnicode-Regular',
       family: 'STIXNonUnicode',
       id: 'STIXNonUnicode',
       style: 'Regular',
       weight: 400,
       stretch: 5,
       italic: false } ],
  '/usr/share/fonts/opentype/stix/STIXSizeFourSym-Regular.otf':
   [ { postscript: 'STIXSizeFourSym-Regular',
       family: 'STIXSizeFourSym',
       id: 'STIXSizeFourSym',
       style: 'Regular',
       weight: 400,
       stretch: 5,
       italic: false } ],
  '/usr/share/fonts/opentype/noto/NotoSansCJK-DemiLight.ttc':
   [ { postscript: 'NotoSansCJKjp-DemiLight',
       family: 'Noto Sans CJK JP',
       id: 'Noto Sans CJK JP',
       style: 'DemiLight',
       weight: 400,
       stretch: 5,
       italic: false },
     { postscript: 'NotoSansCJKkr-DemiLight',
       family: 'Noto Sans CJK KR',
       id: 'Noto Sans CJK KR',
       style: 'DemiLight',
       weight: 400,
       stretch: 5,
       italic: false },
     { postscript: 'NotoSansCJKsc-DemiLight',
       family: 'Noto Sans CJK SC',
       id: 'Noto Sans CJK SC',
       style: 'DemiLight',
       weight: 400,
       stretch: 5,
       italic: false },
     { postscript: 'NotoSansCJKtc-DemiLight',
       family: 'Noto Sans CJK TC',
       id: 'Noto Sans CJK TC',
       style: 'DemiLight',
       weight: 400,
       stretch: 5,
       italic: false } ],
  '/usr/share/fonts/opentype/noto/NotoSansCJK-Thin.ttc':
   [ { postscript: 'NotoSansCJKjp-Thin',
       family: 'Noto Sans CJK JP',
       id: 'Noto Sans CJK JP',
       style: 'Thin',
       weight: 400,
       stretch: 5,
       italic: false },
     { postscript: 'NotoSansCJKkr-Thin',
       family: 'Noto Sans CJK KR',
       id: 'Noto Sans CJK KR',
       style: 'Thin',
       weight: 400,
       stretch: 5,
       italic: false },
     { postscript: 'NotoSansCJKsc-Thin',
       family: 'Noto Sans CJK SC',
       id: 'Noto Sans CJK SC',
       style: 'Thin',
       weight: 400,
       stretch: 5,
       italic: false },
     { postscript: 'NotoSansCJKtc-Thin',
       family: 'Noto Sans CJK TC',
       id: 'Noto Sans CJK TC',
       style: 'Thin',
       weight: 400,
       stretch: 5,
       italic: false } ] }

Usage

Commit count: 38

cargo fmt