1
0
mirror of https://github.com/tabler/tabler-icons.git synced 2025-09-02 18:33:18 +02:00

Merge remote-tracking branch 'origin/master'

This commit is contained in:
codecalm
2022-03-16 03:07:05 +01:00
2 changed files with 76 additions and 17 deletions

View File

@@ -217,7 +217,7 @@ The default settings if you have not defined the file will be:
{ {
"includeIcons": [], "includeIcons": [],
"fontForge": "fontforge", "fontForge": "fontforge",
"strokeWidth": 2 "strokeWidth": null
} }
``` ```
@@ -225,16 +225,16 @@ The fontforge executable needs to be in the path or you can set the path to the
```JSON ```JSON
{ {
"fontForge":"/Applications/FontForge.app/Contents/MacOS/FontForge" "fontForge": "/Applications/FontForge.app/Contents/MacOS/FontForge"
} }
``` ```
To compile the fonts run: To compile the fonts run:
```sh ```sh
npm run build-iconfont npm run build-iconfont
``` ```
By default the stroke width is 2. You can change the stroke width in the compile-options.json By default the stroke width is 2. You can change the stroke width in the `compile-options.json`
```JSON ```JSON
{ {
"strokeWidth": 1.5, "strokeWidth": 1.5,
@@ -245,7 +245,37 @@ To reduce the font file size you can choose to compile a sub set of icons. When
```JSON ```JSON
{ {
"includeIcons":["alert-octagon","alert-triangle"] "includeIcons": ["alert-octagon", "alert-triangle"]
}
```
Optional property `includeCategories` - an array or string of icon categories to include, category names are case-issensetive.
```JSON
{
"includeCategories": ["Devices", "System"]
}
```
or
```JSON
{
"includeCategories": "Devices System"
}
```
Optional property `excludeIcons` - an array of icon names using to exclude some category icons:
```JSON
{
"includeCategories": ["system"],
"excludeIcons": ["adjustments"]
}
```
Complex solution:
```JSON
{
"includeIcons": ["alert-octagon", "alert-triangle"],
"includeCategories": ["devices", "system"],
"excludeIcons": ["adjustments"]
} }
``` ```

View File

@@ -18,7 +18,7 @@ const gulp = require('gulp'),
svgpath = require('svgpath'), svgpath = require('svgpath'),
svgr = require('@svgr/core').default; svgr = require('@svgr/core').default;
let compileOptions = { const compileOptions = {
includeIcons: [], includeIcons: [],
strokeWidth: null, strokeWidth: null,
fontForge: "fontforge" fontForge: "fontforge"
@@ -26,28 +26,57 @@ let compileOptions = {
if (fs.existsSync('./compile-options.json')) { if (fs.existsSync('./compile-options.json')) {
try { try {
let tempOptions = require('./compile-options'); const tempOptions = require('./compile-options.json');
if (typeof tempOptions!="object") { if (typeof tempOptions !== "object") {
throw "Compile options file does not contain an json object"; throw "Compile options file does not contain an json object";
} }
if (typeof tempOptions.includeIcons!="undefined") { if (typeof tempOptions.includeIcons !== "undefined") {
if (!Array.isArray(tempOptions.includeIcons)) { if (!Array.isArray(tempOptions.includeIcons)) {
throw "property inludeIcons is not an array"; throw "property inludeIcons is not an array";
} }
compileOptions.includeIcons= tempOptions.includeIcons; compileOptions.includeIcons = tempOptions.includeIcons;
} }
if (typeof tempOptions.strokeWidth!="undefined") {
if (typeof tempOptions.strokeWidth!="string" && typeof tempOptions.strokeWidth!="number") { if (typeof tempOptions.includeCategories !== "undefined") {
if (typeof tempOptions.includeCategories === "string") {
tempOptions.includeCategories = tempOptions.includeCategories.split(' ');
}
if (!Array.isArray(tempOptions.includeCategories)) {
throw "property includeCategories is not an array or string";
}
const tags = Object.entries(require('./tags.json'));
tempOptions.includeCategories.forEach(function (category) {
category = category.charAt(0).toUpperCase() + category.slice(1);
for (const [icon, data] of tags) {
if (data.category === category && compileOptions.includeIcons.indexOf(icon) === -1) {
compileOptions.includeIcons.push(icon);
}
}
});
}
if (typeof tempOptions.excludeIcons !== "undefined") {
if (!Array.isArray(tempOptions.excludeIcons)) {
throw "property excludeIcons is not an array";
}
compileOptions.includeIcons = compileOptions.includeIcons.filter(function (icon) {
return tempOptions.excludeIcons.indexOf(icon) === -1;
});
}
if (typeof tempOptions.strokeWidth !== "undefined") {
if (typeof tempOptions.strokeWidth !== "string" && typeof tempOptions.strokeWidth !== "number") {
throw "property strokeWidth is not a string or number"; throw "property strokeWidth is not a string or number";
} }
compileOptions.strokeWidth=tempOptions.strokeWidth.toString(); compileOptions.strokeWidth = tempOptions.strokeWidth.toString();
} }
if (typeof tempOptions.fontForge!="undefined") {
if (typeof tempOptions.fontForge!="string") { if (typeof tempOptions.fontForge !== "undefined") {
if (typeof tempOptions.fontForge !== "string") {
throw "property fontForge is not a string"; throw "property fontForge is not a string";
} }
compileOptions.fontForge=tempOptions.fontForge; compileOptions.fontForge = tempOptions.fontForge;
} }
} catch (error) { } catch (error) {