diff --git a/.github/workflows/font.yml b/.github/workflows/font.yml
index 92f3dec1f..db19bc82a 100644
--- a/.github/workflows/font.yml
+++ b/.github/workflows/font.yml
@@ -1,63 +1,48 @@
-name: Build Featherity
+name: Build Lucide
on:
push:
branches: [ master ]
- pull_request:
- branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
Build:
runs-on: ubuntu-latest
steps:
-
-
- - name: Clone 'Featherity'
+ - name: Clone 'Lucide'
uses: actions/checkout@v2
-
- name: Install FontForge
run: sudo apt-get install zlib1g-dev fontforge woff2
-
- name: Clone sfnt2woff-zopfli repo
run: git clone https://github.com/bramstein/sfnt2woff-zopfli.git sfnt2woff-zopfli
-
-
- name: Install and move sfnt2woff-zopfli
run: |
cd sfnt2woff-zopfli
make
sudo mv sfnt2woff-zopfli /usr/local/bin/sfnt2woff
-
- name: Clone woff2
run: git clone --recursive https://github.com/google/woff2.git
-
+
- name: Install woff2
run: |
cd woff2
sudo make clean all
sudo mv woff2_compress /usr/local/bin/ && sudo mv woff2_decompress /usr/local/bin/
-
-
-
- name: Install Font Custom dependency
run: sudo gem install fontcustom
-
- - name: Build 'Featherity'
+
+ - name: Build 'Lucide'
run: echo "Building Featherity font" && fontcustom compile ./icons -h -n Featherity -o build -F
-
-
- - name: Zip 'Featherity'
+
+ - name: Zip 'Lucide'
run: zip -r Featherity.zip build
-
-
+
- name: 'Upload to Artifacts'
uses: actions/upload-artifact@v1.0.0
with:
- name: Featherity
- path: build
-
+ name: Lucide
+ path: build
diff --git a/.npmignore b/.npmignore
index 1dcd77402..8684b5179 100644
--- a/.npmignore
+++ b/.npmignore
@@ -1,4 +1,6 @@
.github
packages
stats
-build
+node_modules
+tests
+scripts
diff --git a/README.md b/README.md
index 7cb39b7e2..d1f65967d 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# Lucide
+
+[](https://www.npmjs.com/package/lucide)
[](https://discord.gg/EH6nSts)
## What is Lucide?
diff --git a/icons/separator-vertical..svg b/icons/separator-vertical.svg
similarity index 100%
rename from icons/separator-vertical..svg
rename to icons/separator-vertical.svg
diff --git a/package.json b/package.json
index 60d47bb84..2c5a1a068 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,12 @@
{
"name": "lucide",
+ "description": "Lucide is a community-run fork of Feather Icons, open for anyone to contribute icons.",
+ "version": "0.1.1",
+ "license": "ISC",
"amdName": "lucide",
"homepage": "https://featherity.netlify.app",
+ "url": "https://github.com/owner/project/issues",
"repository": "github:lucide-icons/lucide",
- "url" : "https://github.com/owner/project/issues",
- "license": "ISC",
- "version": "0.1.0",
"source": "build/lucide.js",
"main": "dist/cjs/lucide.js",
"main:umd": "dist/umd/lucide.js",
diff --git a/packages/js/.babelrc b/packages/js/.babelrc
deleted file mode 100644
index b56a0d719..000000000
--- a/packages/js/.babelrc
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "presets": [
- [
- "env",
- {
- "targets": {
- "browsers": ["last 2 versions"]
- }
- }
- ],
- "stage-2"
- ]
-}
diff --git a/packages/js/.eslintignore b/packages/js/.eslintignore
deleted file mode 100644
index 3f6fff7b2..000000000
--- a/packages/js/.eslintignore
+++ /dev/null
@@ -1,2 +0,0 @@
-dist
-coverage
\ No newline at end of file
diff --git a/packages/js/.eslintrc.json b/packages/js/.eslintrc.json
deleted file mode 100644
index d9f1c147c..000000000
--- a/packages/js/.eslintrc.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "extends": ["airbnb-base", "prettier"],
- "plugins": ["import", "prettier"],
- "rules": {
- "no-console": ["error", { "allow": ["warn", "error"] }],
- "no-param-reassign": "off",
- "no-shadow": "off",
- "no-use-before-define": "off",
- "prettier/prettier": [
- "error",
- {
- "singleQuote": true,
- "trailingComma": "all"
- }
- ]
- }
-}
diff --git a/packages/js/bin/__tests__/__snapshots__/build-icons-object.test.js.snap b/packages/js/bin/__tests__/__snapshots__/build-icons-object.test.js.snap
deleted file mode 100644
index 588170662..000000000
--- a/packages/js/bin/__tests__/__snapshots__/build-icons-object.test.js.snap
+++ /dev/null
@@ -1,8 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`builds object correctly 1`] = `
-Object {
- "icon1": "",
- "icon2": "",
-}
-`;
diff --git a/packages/js/bin/__tests__/__snapshots__/build-sprite-string.test.js.snap b/packages/js/bin/__tests__/__snapshots__/build-sprite-string.test.js.snap
deleted file mode 100644
index e91b09279..000000000
--- a/packages/js/bin/__tests__/__snapshots__/build-sprite-string.test.js.snap
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`builds sprite correctly 1`] = `""`;
diff --git a/packages/js/bin/__tests__/__snapshots__/process-svg.test.js.snap b/packages/js/bin/__tests__/__snapshots__/process-svg.test.js.snap
deleted file mode 100644
index 75c8ebe54..000000000
--- a/packages/js/bin/__tests__/__snapshots__/process-svg.test.js.snap
+++ /dev/null
@@ -1,26 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`processes SVG correctly 1`] = `
-"
-"
-`;
-
-exports[`rejects when passed unparsable SVG string 1`] = `
-[Error: Error in parsing SVG: Unclosed root tag
-Line: 0
-Column: 10
-Char: ]
-`;
diff --git a/packages/js/bin/__tests__/build-icons-object.test.js b/packages/js/bin/__tests__/build-icons-object.test.js
deleted file mode 100644
index b13eab937..000000000
--- a/packages/js/bin/__tests__/build-icons-object.test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/* eslint-env jest */
-import buildIconsObject from '../build-icons-object';
-
-const SVG_FILES = {
- 'icon1.svg':
- '',
- 'icon2.svg':
- '',
-};
-
-function getSvg(svgFile) {
- return SVG_FILES[svgFile];
-}
-
-test('builds object correctly', () => {
- expect(buildIconsObject(Object.keys(SVG_FILES), getSvg)).toMatchSnapshot();
-});
diff --git a/packages/js/bin/__tests__/build-sprite-string.test.js b/packages/js/bin/__tests__/build-sprite-string.test.js
deleted file mode 100644
index ac08fa6dc..000000000
--- a/packages/js/bin/__tests__/build-sprite-string.test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/* eslint-env jest */
-import buildSpriteString from '../build-sprite-string';
-
-const icons = {
- icon1:
- '',
- icon2: '',
-};
-
-test('builds sprite correctly', () => {
- expect(buildSpriteString(icons)).toMatchSnapshot();
-});
diff --git a/packages/js/bin/__tests__/process-svg.test.js b/packages/js/bin/__tests__/process-svg.test.js
deleted file mode 100644
index 79c63ff9f..000000000
--- a/packages/js/bin/__tests__/process-svg.test.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/* eslint-env jest */
-import processSvg from '../process-svg';
-
-test('processes SVG correctly', () => {
- const SVG =
- '';
-
- expect(processSvg(SVG)).resolves.toMatchSnapshot();
-});
-
-test('rejects when passed unparsable SVG string', () => {
- const UNPARSABLE_SVG = ' path.extname(file) === '.svg');
-
-const getSvg = svgFile => fs.readFileSync(path.join(IN_DIR, svgFile));
-
-const icons = buildIconsObject(svgFiles, getSvg);
-
-fs.writeFileSync(OUT_FILE, JSON.stringify(icons));
diff --git a/packages/js/bin/build-icons-object.js b/packages/js/bin/build-icons-object.js
deleted file mode 100644
index 1c8acc8af..000000000
--- a/packages/js/bin/build-icons-object.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import path from 'path';
-import cheerio from 'cheerio';
-import { minify } from 'html-minifier';
-
-/**
- * Build an object in the format: `{ : }`.
- * @param {string[]} svgFiles - A list of filenames.
- * @param {Function} getSvg - A function that returns the contents of an SVG file given a filename.
- * @returns {Object}
- */
-function buildIconsObject(svgFiles, getSvg) {
- return svgFiles
- .map(svgFile => {
- const name = path.basename(svgFile, '.svg');
- const svg = getSvg(svgFile);
- const contents = getSvgContents(svg);
- return { name, contents };
- })
- .reduce((icons, icon) => {
- icons[icon.name] = icon.contents;
- return icons;
- }, {});
-}
-
-/**
- * Get contents between opening and closing `