mirror of https://gitgud.io/fatchan/jschan.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
552 B
21 lines
552 B
'use strict';
|
|
|
|
const fontList = require('child_process')
|
|
.execSync('fc-list -f "%{file}:%{family[0]} %{style[0]}\n"')
|
|
.toString()
|
|
.split('\n') //split by newlines, like here ^
|
|
.filter(line => line) //filter empty lines
|
|
.map(line => {
|
|
//map to an object with path and name
|
|
const [path, name] = line.split(':');
|
|
return { path, name };
|
|
})
|
|
.sort((a, b) => {
|
|
//alphabetical name sort
|
|
return a.name.localeCompare(b.name);
|
|
});
|
|
|
|
module.exports = {
|
|
fontList,
|
|
fontPaths: new Set(['default', ...fontList.map(f => f.path)]), //memoize paths
|
|
};
|
|
|