mirror of
https://github.com/tabler/tabler-icons.git
synced 2025-09-02 02:12:49 +02:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
42
README.md
42
README.md
@@ -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,9 +245,39 @@ 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"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Svelte
|
### Svelte
|
||||||
|
|
||||||
|
51
gulpfile.js
51
gulpfile.js
@@ -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) {
|
||||||
|
Reference in New Issue
Block a user