Merge branch 'master' of https://github.com/devicons/devicon
0
.github/scripts/build_assets/drafts/check_devicon_object.py → .github/drafts/check_devicon_object.py
vendored
26
.github/drafts/check_svgs_monthly.py
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
import traceback
|
||||
import sys
|
||||
|
||||
# pycharm complains that build_assets is an unresolved ref
|
||||
# don't worry about it, the script still runs
|
||||
from build_assets import filehandler, arg_getters
|
||||
from build_assets import util
|
||||
|
||||
|
||||
def main():
|
||||
"""
|
||||
Check the quality of the svgs of the whole icons folder.
|
||||
"""
|
||||
args = arg_getters.get_check_svgs_monthly_args()
|
||||
|
||||
try:
|
||||
devicon_json = filehandler.get_json_file_content(args.devicon_json_path)
|
||||
svgs = filehandler.get_svgs_paths(devicon_json, args.icons_folder_path)
|
||||
util.check_svgs(svgs)
|
||||
print("All SVGs found were good. Task completed.")
|
||||
except Exception as e:
|
||||
util.exit_with_err(e)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
42
.github/drafts/check_svgs_monthly.yml
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
name: Check SVGs Monthly
|
||||
on: workflow_dispatch
|
||||
# schedule:
|
||||
# - cron: '0 0 1 * *'
|
||||
jobs:
|
||||
check_develop:
|
||||
name: Check the SVGs' quality in the `develop` branch
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: develop
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.8
|
||||
|
||||
- name: Install dependencies
|
||||
run: python -m pip install --upgrade pip
|
||||
|
||||
- name: Run the check_svg script
|
||||
run: >
|
||||
python ./.github/scripts/check_svgs_monthly.py ./devicon.json ./icons
|
||||
|
||||
check_master:
|
||||
name: Check the SVGs' quality in the `master` branch
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2 # check out default branch, which is master
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.8
|
||||
|
||||
- name: Install dependencies
|
||||
run: python -m pip install --upgrade pip
|
||||
|
||||
- name: Run the check_svg script
|
||||
run: >
|
||||
python ./.github/scripts/check_svgs_monthly.py ./icomoon.json ./devicon.json ./icons
|
0
.github/scripts/build_assets/drafts/peek_icons imgur.yml → .github/drafts/peek_icons imgur.yml
vendored
21
.github/scripts/build_assets/arg_getters.py
vendored
@ -40,15 +40,26 @@ def get_selenium_runner_args(peek_mode=False):
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def get_check_svgs_args():
|
||||
def get_check_svgs_on_pr_args():
|
||||
"""
|
||||
Get the commandline arguments for the chec_svgs.py.
|
||||
Get the commandline arguments for the check_svgs_on_pr.py.
|
||||
"""
|
||||
parser = ArgumentParser(description="Check the SVGs to ensure their attributes are correct.")
|
||||
parser.add_argument("icomoon_json_path",
|
||||
help="The path to the icomoon.json aka the selection.json created by Icomoon",
|
||||
parser = ArgumentParser(description="Check the SVGs to ensure their attributes are correct. Run whenever a PR is opened")
|
||||
parser.add_argument("files_added_json_path",
|
||||
help="The path to the files_added.json created by the gh-action-get-changed-files@2.1.4",
|
||||
action=PathResolverAction)
|
||||
|
||||
parser.add_argument("files_modified_json_path",
|
||||
help="The path to the files_modified.json created by the gh-action-get-changed-files@2.1.4",
|
||||
action=PathResolverAction)
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def get_check_svgs_monthly_args():
|
||||
"""
|
||||
Get the commandline arguments for the check_svgs_monthly.py.
|
||||
"""
|
||||
parser = ArgumentParser(description="Check the SVGs to ensure their attributes are correct. Run monthly.")
|
||||
parser.add_argument("devicon_json_path",
|
||||
help="The path to the devicon.json",
|
||||
action=PathResolverAction)
|
||||
|
55
.github/scripts/build_assets/filehandler.py
vendored
@ -6,7 +6,7 @@ import os
|
||||
import re
|
||||
|
||||
|
||||
def find_new_icons(devicon_json_path: str, icomoon_json_path: str) -> List[dict]:
|
||||
def find_new_icons(devicon_json_path: str, icomoon_json_path: str):
|
||||
"""
|
||||
Find the newly added icons by finding the difference between
|
||||
the devicon.json and the icomoon.json.
|
||||
@ -14,11 +14,8 @@ def find_new_icons(devicon_json_path: str, icomoon_json_path: str) -> List[dict]
|
||||
:param icomoon_json_path: a path to the iconmoon.json.
|
||||
:return: a list of the new icons as JSON objects.
|
||||
"""
|
||||
with open(devicon_json_path) as json_file:
|
||||
devicon_json = json.load(json_file)
|
||||
|
||||
with open(icomoon_json_path) as json_file:
|
||||
icomoon_json = json.load(json_file)
|
||||
devicon_json = get_json_file_content(devicon_json_path)
|
||||
icomoon_json = get_json_file_content(icomoon_json_path)
|
||||
|
||||
new_icons = []
|
||||
for icon in devicon_json:
|
||||
@ -28,7 +25,17 @@ def find_new_icons(devicon_json_path: str, icomoon_json_path: str) -> List[dict]
|
||||
return new_icons
|
||||
|
||||
|
||||
def is_not_in_icomoon_json(icon, icomoon_json) -> bool:
|
||||
def get_json_file_content(json_path: str):
|
||||
"""
|
||||
Get the json content of the json_path.
|
||||
:param: json_path, the path to the json file.
|
||||
:return: a dict representing the file content.
|
||||
"""
|
||||
with open(json_path) as json_file:
|
||||
return json.load(json_file)
|
||||
|
||||
|
||||
def is_not_in_icomoon_json(icon, icomoon_json):
|
||||
"""
|
||||
Checks whether the icon's name is not in the icomoon_json.
|
||||
:param icon: the icon object we are searching for.
|
||||
@ -45,7 +52,7 @@ def is_not_in_icomoon_json(icon, icomoon_json) -> bool:
|
||||
|
||||
|
||||
def get_svgs_paths(new_icons: List[dict], icons_folder_path: str,
|
||||
icon_versions_only: bool=False, as_str: bool=True) -> List[str] or List[Path]:
|
||||
icon_versions_only: bool=False, as_str: bool=True):
|
||||
"""
|
||||
Get all the suitable svgs file path listed in the devicon.json.
|
||||
:param new_icons, a list containing the info on the new icons.
|
||||
@ -199,3 +206,35 @@ def create_screenshot_folder(dir, screenshot_name: str="screenshots/"):
|
||||
print(f"{screenshot_folder} already exist. Script will do nothing.")
|
||||
finally:
|
||||
return str(screenshot_folder)
|
||||
|
||||
def get_added_modified_svgs(files_added_json_path: str,
|
||||
files_modified_json_path: str):
|
||||
"""
|
||||
Get the svgs added and modified from the files_changed_json_path.
|
||||
:param: files_added_json_path, the path to the files_added.json created by the gh-action-get-changed-files@2.1.4
|
||||
:param: files_modified_json_path, the path to the files_modified.json created by the gh-action-get-changed-files@2.1.4
|
||||
:return: a list of the svg file paths that were added/modified in this pr as Path. It will only return icons in /icons path (see https://github.com/devicons/devicon/issues/505)
|
||||
"""
|
||||
files_added = get_json_file_content(files_added_json_path)
|
||||
files_modified = get_json_file_content(files_modified_json_path)
|
||||
|
||||
svgs = []
|
||||
for file in files_added:
|
||||
path = Path(file)
|
||||
if path.suffix.lower() == ".svg" and path.as_posix().lower().startswith('icons/'):
|
||||
svgs.append(path)
|
||||
|
||||
for file in files_modified:
|
||||
path = Path(file)
|
||||
if path.suffix.lower() == ".svg" and path.as_posix().lower().startswith('icons/'):
|
||||
svgs.append(path)
|
||||
|
||||
return svgs
|
||||
|
||||
|
||||
def write_to_file(path: str, value: any):
|
||||
"""
|
||||
Write the value to a JSON file.
|
||||
"""
|
||||
with open(path, "w") as file:
|
||||
file.write(value)
|
||||
|
@ -1,5 +1,16 @@
|
||||
import os
|
||||
import platform
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
|
||||
def exit_with_err(err: Exception):
|
||||
"""
|
||||
Exit the current step and display the err.
|
||||
:param: err, the error/exception encountered.
|
||||
"""
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def set_env_var(key: str, value: str, delimiter: str='~'):
|
18
.github/scripts/check_all_icons.py
vendored
@ -1,18 +0,0 @@
|
||||
from pathlib import Path
|
||||
import json
|
||||
|
||||
|
||||
# pycharm complains that build_assets is an unresolved ref
|
||||
# don't worry about it, the script still runs
|
||||
from build_assets import filehandler
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
"""
|
||||
Use as a cmd line script to check all the icons of the devicon.json.
|
||||
"""
|
||||
devicon_json_path = str(Path("./devicon.json").resolve())
|
||||
icons_folder_path = str(Path("./icons").resolve())
|
||||
with open(devicon_json_path) as json_file:
|
||||
devicon_json = json.load(json_file)
|
||||
svgs = filehandler.get_svgs_paths(devicon_json, icons_folder_path)
|
@ -1,40 +1,46 @@
|
||||
from enum import Enum
|
||||
from typing import List
|
||||
import sys
|
||||
import xml.etree.ElementTree as et
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
# pycharm complains that build_assets is an unresolved ref
|
||||
# don't worry about it, the script still runs
|
||||
from build_assets import filehandler, arg_getters
|
||||
from build_assets import github_env
|
||||
from build_assets import util
|
||||
|
||||
|
||||
class SVG_STATUS_CODE(Enum):
|
||||
"""
|
||||
The status codes to check for in post_check_svgs_comment.yml
|
||||
"""
|
||||
NO_SVG = 0 # action: do nothing
|
||||
SVG_OK = 1 # action: let user know their svgs are fine
|
||||
|
||||
|
||||
def main():
|
||||
"""
|
||||
Check the quality of the svgs.
|
||||
If any error is found, set an environmental variable called ERR_MSGS
|
||||
that will contains the error messages.
|
||||
If any svg error is found, create a json file called 'svg_err_messages.json'
|
||||
in the root folder that will contains the error messages.
|
||||
"""
|
||||
args = arg_getters.get_check_svgs_args()
|
||||
new_icons = filehandler.find_new_icons(args.devicon_json_path, args.icomoon_json_path)
|
||||
|
||||
if len(new_icons) == 0:
|
||||
sys.exit("No files need to be uploaded. Ending script...")
|
||||
|
||||
# print list of new icons
|
||||
print("SVGs being checked:", *new_icons, sep = "\n", end='\n\n')
|
||||
|
||||
time.sleep(1) # do this so the logs stay clean
|
||||
args = arg_getters.get_check_svgs_on_pr_args()
|
||||
try:
|
||||
# check the svgs
|
||||
svgs = filehandler.get_svgs_paths(new_icons, args.icons_folder_path, as_str=False)
|
||||
check_svgs(svgs)
|
||||
print("All SVGs found were good.\nTask completed.")
|
||||
svgs = filehandler.get_added_modified_svgs(args.files_added_json_path,
|
||||
args.files_modified_json_path)
|
||||
print("SVGs to check: ", *svgs, sep='\n')
|
||||
|
||||
if len(svgs) == 0:
|
||||
print("No SVGs to check, ending script.")
|
||||
err_messages = SVG_STATUS_CODE.NO_SVG.value
|
||||
else:
|
||||
err_messages = check_svgs(svgs)
|
||||
|
||||
filehandler.write_to_file("./svg_err_messages.txt", str(err_messages))
|
||||
print("Task completed.")
|
||||
except Exception as e:
|
||||
github_env.set_env_var("ERR_MSGS", str(e))
|
||||
sys.exit(str(e))
|
||||
util.exit_with_err(e)
|
||||
|
||||
|
||||
def check_svgs(svg_file_paths: List[Path]):
|
||||
@ -45,6 +51,8 @@ def check_svgs(svg_file_paths: List[Path]):
|
||||
The style must not contain any 'fill' declarations.
|
||||
If any error is found, they will be thrown.
|
||||
:param: svg_file_paths, the file paths to the svg to check for.
|
||||
:return: None if there no errors. If there is, return a JSON.stringified
|
||||
list with the error messages in it.
|
||||
"""
|
||||
# batch err messages together so user can fix everything at once
|
||||
err_msgs = []
|
||||
@ -52,7 +60,7 @@ def check_svgs(svg_file_paths: List[Path]):
|
||||
tree = et.parse(svg_path)
|
||||
root = tree.getroot()
|
||||
namespace = "{http://www.w3.org/2000/svg}"
|
||||
err_msg = [f"{svg_path.name}:"]
|
||||
err_msg = [f"{svg_path}:"]
|
||||
|
||||
if root.tag != f"{namespace}svg":
|
||||
err_msg.append(f"-root is '{root.tag}'. Root must be an 'svg' element")
|
||||
@ -84,7 +92,8 @@ def check_svgs(svg_file_paths: List[Path]):
|
||||
err_msgs.append("\n".join(err_msg))
|
||||
|
||||
if len(err_msgs) > 0:
|
||||
raise Exception("Errors found in these files:\n" + "\n\n".join(err_msgs))
|
||||
return "\n\n".join(err_msgs)
|
||||
return SVG_STATUS_CODE.SVG_OK.value
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
5
.github/scripts/icomoon_build.py
vendored
@ -6,6 +6,7 @@ from selenium.common.exceptions import TimeoutException
|
||||
# don't worry about it, the script still runs
|
||||
from build_assets.SeleniumRunner import SeleniumRunner
|
||||
from build_assets import filehandler, arg_getters
|
||||
from build_assets import util
|
||||
|
||||
|
||||
def main():
|
||||
@ -32,9 +33,9 @@ def main():
|
||||
filehandler.rename_extracted_files(args.download_path)
|
||||
print("Task completed.")
|
||||
except TimeoutException as e:
|
||||
sys.exit("Selenium Time Out Error: \n" + str(e))
|
||||
util.exit_with_err("Selenium Time Out Error: \n" + str(e))
|
||||
except Exception as e:
|
||||
sys.exit(str(e))
|
||||
util.exit_with_err(e)
|
||||
finally:
|
||||
runner.close()
|
||||
|
||||
|
5
.github/scripts/icomoon_peek.py
vendored
@ -8,6 +8,7 @@ import xml.etree.ElementTree as et
|
||||
# don't worry about it, the script still runs
|
||||
from build_assets.SeleniumRunner import SeleniumRunner
|
||||
from build_assets import filehandler, arg_getters
|
||||
from build_assets import util
|
||||
|
||||
|
||||
def main():
|
||||
@ -39,9 +40,9 @@ def main():
|
||||
runner.upload_svgs(svgs, screenshot_folder)
|
||||
print("Task completed.")
|
||||
except TimeoutException as e:
|
||||
sys.exit("Selenium Time Out Error: \n" + str(e))
|
||||
util.exit_with_err("Selenium Time Out Error: \n" + str(e))
|
||||
except Exception as e:
|
||||
sys.exit(str(e))
|
||||
util.exit_with_err(e)
|
||||
finally:
|
||||
runner.close()
|
||||
|
||||
|
11
.github/workflows/build_icons.yml
vendored
@ -6,29 +6,34 @@ jobs:
|
||||
runs-on: windows-2019
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup Python v3.8
|
||||
uses: actions/setup-python@v2
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.8
|
||||
|
||||
- name: Install dependencies (python, pip, npm)
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r ./.github/scripts/requirements.txt
|
||||
npm install
|
||||
|
||||
- name: Executing build and create fonts via icomoon
|
||||
run: >
|
||||
python ./.github/scripts/icomoon_build.py
|
||||
./.github/scripts/build_assets/geckodriver-v0.27.0-win64/geckodriver.exe ./icomoon.json
|
||||
./devicon.json ./icons ./ --headless
|
||||
|
||||
- name: Upload geckodriver.log for debugging purposes
|
||||
uses: actions/upload-artifact@v2
|
||||
if: failure()
|
||||
with:
|
||||
name: geckodriver-log
|
||||
path: ./geckodriver.log
|
||||
|
||||
- name: Build devicon.min.css
|
||||
if: success()
|
||||
run: npm run build-css
|
||||
|
||||
- name: Upload screenshot of the newly made icons
|
||||
id: imgur_step
|
||||
uses: devicons/public-upload-to-imgur@v2.1.1
|
||||
@ -36,6 +41,7 @@ jobs:
|
||||
with:
|
||||
path: ./new_icons.png
|
||||
client_id: ${{secrets.IMGUR_CLIENT_ID}}
|
||||
|
||||
- name: Create Pull Request
|
||||
if: success()
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
@ -53,7 +59,6 @@ jobs:
|
||||
-The icon content
|
||||
-The aliases
|
||||
-The colored classes
|
||||
-The default fallback font
|
||||
|
||||
More information can be found in the GitHub Action logs for this workflow.
|
||||
|
||||
|
58
.github/workflows/check_svgs.yml
vendored
@ -1,58 +0,0 @@
|
||||
name: Check SVGs
|
||||
on: pull_request
|
||||
jobs:
|
||||
check:
|
||||
name: Check the SVGs' quality
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup Python v3.8
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Install dependencies
|
||||
run: python -m pip install --upgrade pip
|
||||
- name: Run the check_svg script
|
||||
run: >
|
||||
python ./.github/scripts/check_svgs.py ./icomoon.json ./devicon.json ./icons
|
||||
- name: Comment on the PR about the result - Success
|
||||
if: success()
|
||||
uses: github-actions-up-and-running/pr-comment@v1.0.1
|
||||
env:
|
||||
MESSAGE: |
|
||||
Hi!
|
||||
I'm Devicons' SVG-Checker Bot and I just checked all the SVGs in this branch.
|
||||
|
||||
Everything looks great. Good job!
|
||||
|
||||
Have a nice day,
|
||||
SVG-Checker Bot :grin:
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
message: ${{ env.MESSAGE }}
|
||||
|
||||
- name: Comment on the PR about the result - Failed
|
||||
if: failure()
|
||||
uses: github-actions-up-and-running/pr-comment@v1.0.1
|
||||
env:
|
||||
MESSAGE: |
|
||||
Hi!
|
||||
|
||||
I'm Devicons' SVG-Checker Bot and it seems we've ran into a problem. I'm supposed to check your svgs but I couldn't do my task due to an issue.
|
||||
|
||||
Here is what went wrong:
|
||||
```
|
||||
{0}
|
||||
```
|
||||
|
||||
For more reference, check out our [CONTRIBUTING guide](https://github.com/devicons/devicon/blob/develop/CONTRIBUTING.md#svgStandards)
|
||||
|
||||
Please address these issues. When you update this PR, I will check your SVGs again.
|
||||
|
||||
Thanks for your help,
|
||||
SVG-Checker Bot :smile:
|
||||
|
||||
PS. One day, I will be smart enough to fix these errors for you :persevere:. Until then, I can only point them out.
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
message: ${{ format(env.MESSAGE, env.ERR_MSGS)}}
|
45
.github/workflows/check_svgs_on_pr.yml
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
name: Check SVGs On PR
|
||||
on: pull_request
|
||||
jobs:
|
||||
check:
|
||||
name: Check the SVGs' quality
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.8
|
||||
|
||||
- name: Install dependencies
|
||||
run: python -m pip install --upgrade pip
|
||||
|
||||
- name: Get Changed Files and generate files_added.json & files_modified.json
|
||||
uses: lots0logs/gh-action-get-changed-files@2.1.4
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Run the check_svg script
|
||||
run: >
|
||||
python ./.github/scripts/check_svgs_on_pr.py $HOME/files_added.json $HOME/files_modified.json
|
||||
|
||||
- name: Upload the err messages
|
||||
uses: actions/upload-artifact@v2
|
||||
if: success()
|
||||
with:
|
||||
name: svg_err_messages
|
||||
path: ./svg_err_messages.txt
|
||||
|
||||
- name: Save the pr num in an artifact
|
||||
shell: bash
|
||||
if: success()
|
||||
env:
|
||||
PR_NUM: ${{ github.event.number }}
|
||||
run: echo $PR_NUM > pr_num.txt
|
||||
|
||||
- name: Upload the pr num
|
||||
uses: actions/upload-artifact@v2
|
||||
if: success()
|
||||
with:
|
||||
name: pr_num
|
||||
path: ./pr_num.txt
|
22
.github/workflows/npm_publish.yml
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
jobs:
|
||||
publish:
|
||||
environment: release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
# "ref" specifies the branch to check out.
|
||||
# "github.event.release.target_commitish" is a global variable and specifies the branch the release targeted
|
||||
ref: ${{ github.event.release.target_commitish }}
|
||||
- name: Use Node.js 12
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 12
|
||||
registry-url: https://registry.npmjs.org/ # Specifies the registry, this field is required!
|
||||
- run: npm ci
|
||||
- run: npm publish
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTOMATION_TOKEN }}
|
43
.github/workflows/peek_icons.yml
vendored
@ -5,18 +5,21 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
name: Peek Icons
|
||||
if: contains(github.event.pull_request.labels.*.name, 'bot:peek')
|
||||
if: github.event.label.name == 'bot:peek'
|
||||
runs-on: windows-2019
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Python v3.8
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.8
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r ./.github/scripts/requirements.txt
|
||||
|
||||
- name: Run icomoon_peek.py
|
||||
env:
|
||||
PR_TITLE: ${{ github.event.pull_request.title }}
|
||||
@ -25,37 +28,29 @@ jobs:
|
||||
python ./.github/scripts/icomoon_peek.py
|
||||
./.github/scripts/build_assets/geckodriver-v0.27.0-win64/geckodriver.exe ./icomoon.json
|
||||
./devicon.json ./icons ./ --headless --pr_title "%PR_TITLE%"
|
||||
|
||||
- name: Upload screenshots for comments
|
||||
uses: actions/upload-artifact@v2
|
||||
if: success()
|
||||
with:
|
||||
name: screenshots
|
||||
path: ./screenshots/*.png
|
||||
|
||||
- name: Save the pr num in an artifact
|
||||
shell: bash
|
||||
env:
|
||||
PR_NUM: ${{ github.event.number }}
|
||||
run: echo $PR_NUM > pr_num.txt
|
||||
|
||||
- name: Upload the pr num
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: pr_num
|
||||
path: ./pr_num.txt
|
||||
|
||||
- name: Upload geckodriver.log for debugging purposes
|
||||
uses: actions/upload-artifact@v2
|
||||
if: failure()
|
||||
with:
|
||||
name: geckodriver-log
|
||||
path: ./geckodriver.log
|
||||
- name: Comment on the PR about the result
|
||||
if: failure()
|
||||
uses: github-actions-up-and-running/pr-comment@v1.0.1
|
||||
env:
|
||||
MESSAGE: |
|
||||
~Hi
|
||||
|
||||
I'm Devicons' Peek Bot and it seems we've ran into a problem (sorry!).
|
||||
|
||||
Please double check and fix the possible issues below:
|
||||
|
||||
- Your svgs are named and added correctly to the /icons folder as seen [here](https://github.com/devicons/devicon/blob/master/CONTRIBUTING.md#orgGuidelines).
|
||||
- Your icon information has been added to the `devicon.json` as seen [here](https://github.com/devicons/devicon/blob/master/CONTRIBUTING.md#updateDevicon)
|
||||
- Your PR title follows the format seen [here](https://github.com/devicons/devicon/blob/master/CONTRIBUTING.md#overview)
|
||||
|
||||
Once everything is fixed, I will try. If I still fail (sorry!), the maintainers will investigate further.
|
||||
|
||||
Best of luck,
|
||||
Peek Bot :relaxed:
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
message: ${{env.MESSAGE}}
|
||||
path: ./geckodriver.log
|
99
.github/workflows/post_check_svgs_comment.yml
vendored
Normal file
@ -0,0 +1,99 @@
|
||||
name: Post the result of a SVG Check into its PR.
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ['Check SVGs On PR']
|
||||
types:
|
||||
- completed
|
||||
jobs:
|
||||
post_result_of_svg_check:
|
||||
name: Post the result of the Check SVG Action
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- name: Check if the trigger run worked. If it failed, fail the current run.
|
||||
if: github.event.workflow_run.conclusion != 'success'
|
||||
uses: cutenode/action-always-fail@v1.0.1
|
||||
|
||||
- name: Download workflow artifact
|
||||
uses: dawidd6/action-download-artifact@v2.11.0
|
||||
if: success()
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
workflow: peek_icons.yml
|
||||
run_id: ${{ github.event.workflow_run.id }}
|
||||
|
||||
- name: Read the pr_num file
|
||||
if: success()
|
||||
id: pr_num_reader
|
||||
uses: juliangruber/read-file-action@v1.0.0
|
||||
with:
|
||||
path: ./pr_num/pr_num.txt
|
||||
|
||||
- name: Read the err message file
|
||||
if: success()
|
||||
id: err_message_reader
|
||||
uses: juliangruber/read-file-action@v1.0.0
|
||||
with:
|
||||
path: ./svg_err_messages/svg_err_messages.txt
|
||||
|
||||
- name: Comment on the PR about the result - Success
|
||||
uses: jungwinter/comment@v1 # let us comment on a specific PR
|
||||
if: success() && steps.err_message_reader.outputs.content == '1'
|
||||
env:
|
||||
MESSAGE: |
|
||||
Hi!
|
||||
I'm Devicons' SVG-Checker Bot and everything looks great. Good job!
|
||||
|
||||
Have a nice day,
|
||||
SVG-Checker Bot :grin:
|
||||
with:
|
||||
type: create
|
||||
issue_number: ${{ steps.pr_num_reader.outputs.content }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
body: ${{ env.MESSAGE }}
|
||||
|
||||
- name: Comment on the PR about the result - SVG Error
|
||||
uses: jungwinter/comment@v1 # let us comment on a specific PR
|
||||
if: success() && (steps.err_message_reader.outputs.content != '0' && steps.err_message_reader.outputs.content != '1')
|
||||
env:
|
||||
MESSAGE: |
|
||||
Hi!
|
||||
|
||||
I'm Devicons' SVG-Checker Bot and it seems we have some issues with your SVGs.
|
||||
|
||||
Here is what went wrong:
|
||||
```
|
||||
{0}
|
||||
```
|
||||
|
||||
For more reference on why these are errors, check out our [CONTRIBUTING guide](https://github.com/devicons/devicon/blob/develop/CONTRIBUTING.md#svgStandards)
|
||||
|
||||
Please address these issues. When you update this PR, I will check your SVGs again.
|
||||
|
||||
Thanks for your help,
|
||||
SVG-Checker Bot :smile:
|
||||
|
||||
PS. One day, I will be smart enough to fix these errors for you :persevere:. Until then, I can only point them out.
|
||||
with:
|
||||
type: create
|
||||
issue_number: ${{ steps.pr_num_reader.outputs.content }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
body: ${{ format(env.MESSAGE, steps.err_message_reader.outputs.content) }}
|
||||
|
||||
- name: Comment on the PR about the result - Failure
|
||||
uses: jungwinter/comment@v1 # let us comment on a specific PR
|
||||
if: failure()
|
||||
env:
|
||||
MESSAGE: |
|
||||
Hi!
|
||||
|
||||
I'm Devicons' SVG-Checker Bot and it seems we've ran into a problem. I'm supposed to check your svgs but I couldn't do my task due to an issue.
|
||||
|
||||
Please let my maintainers know of the issues. They will take a look at my work and try to resolve the problem. Until then, please hang tight and sorry for the inconvenience.
|
||||
|
||||
Cheers,
|
||||
SVG-Checker Bot :smile:
|
||||
with:
|
||||
type: create
|
||||
issue_number: ${{ steps.pr_num_reader.outputs.content }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
body: ${{ env.MESSAGE }}
|
99
.github/workflows/post_peek_screenshot.yml
vendored
Normal file
@ -0,0 +1,99 @@
|
||||
name: Post the screenshots into a comment from Peek Icons workflow
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ['Peek Icons']
|
||||
types:
|
||||
- completed
|
||||
jobs:
|
||||
post_screenshots_in_comment:
|
||||
name: Post the screenshot
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- name: Check if the trigger run worked. If not, fail the current run.
|
||||
if: github.event.workflow_run.conclusion != 'success'
|
||||
uses: cutenode/action-always-fail@v1.0.1
|
||||
|
||||
- name: Download workflow artifact
|
||||
uses: dawidd6/action-download-artifact@v2.11.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
workflow: peek_icons.yml
|
||||
run_id: ${{ github.event.workflow_run.id }}
|
||||
|
||||
- name: Read the pr_num file
|
||||
if: success()
|
||||
id: pr_num_reader
|
||||
uses: juliangruber/read-file-action@v1.0.0
|
||||
with:
|
||||
path: ./pr_num/pr_num.txt
|
||||
|
||||
- name: Upload screenshot of the newly made icons gotten from the artifacts
|
||||
id: icons_overview_img_step
|
||||
uses: devicons/public-upload-to-imgur@v2.2.1
|
||||
with:
|
||||
path: ./screenshots/new_icons.png
|
||||
client_id: ${{secrets.IMGUR_CLIENT_ID}}
|
||||
|
||||
- name: Upload zoomed in screenshot of the newly made icons gotten from the artifacts
|
||||
id: icons_detailed_img_step
|
||||
uses: devicons/public-upload-to-imgur@v2.2.1
|
||||
if: success()
|
||||
with:
|
||||
path: ./screenshots/screenshot_*.png
|
||||
client_id: ${{secrets.IMGUR_CLIENT_ID}}
|
||||
|
||||
- name: Comment on the PR about the result - Success
|
||||
uses: jungwinter/comment@v1 # let us comment on a specific PR
|
||||
if: success()
|
||||
env:
|
||||
OVERVIEW_IMG_MARKDOWN: ${{ fromJSON(steps.icons_overview_img_step.outputs.markdown_urls)[0] }}
|
||||
DETAILED_IMGS_MARKDOWN: ${{ join(fromJSON(steps.icons_detailed_img_step.outputs.markdown_urls), '') }}
|
||||
MESSAGE: |
|
||||
Hi there,
|
||||
|
||||
I'm Devicons' Peek Bot and I just peeked at the icons that you wanted to add using [icomoon.io](https://icomoon.io/app/#/select).
|
||||
Here is the result below:
|
||||
|
||||
{0}
|
||||
|
||||
Here are the zoomed-in screenshots of the added icons:
|
||||
{1}
|
||||
|
||||
Note: If the images don't show up, it's probably because it has been autodeleted by Imgur after 6 months due to our API choice.
|
||||
|
||||
**The maintainers will now take a look at it and decide whether to merge your PR.**
|
||||
|
||||
Thank you for contributing to Devicon! I hope everything works out and your icons are accepted into the repo.
|
||||
|
||||
Cheers,
|
||||
Peek Bot :blush:
|
||||
with:
|
||||
type: create
|
||||
issue_number: ${{ steps.pr_num_reader.outputs.content }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
body: ${{format(env.MESSAGE, env.OVERVIEW_IMG_MARKDOWN, env.DETAILED_IMGS_MARKDOWN)}}
|
||||
|
||||
- name: Comment on the PR about the result - Failure
|
||||
if: failure() || cancelled()
|
||||
uses: jungwinter/comment@v1 # let us comment on a specific PR
|
||||
env:
|
||||
MESSAGE: |
|
||||
Hi there,
|
||||
|
||||
I'm Devicons' Peek Bot and it seems we've ran into a problem (sorry!).
|
||||
|
||||
Please double check and fix the possible issues below:
|
||||
|
||||
- Your svgs are named and added correctly to the /icons folder as seen [here](https://github.com/devicons/devicon/blob/master/CONTRIBUTING.md#orgGuidelines).
|
||||
- Your icon information has been added to the `devicon.json` as seen [here](https://github.com/devicons/devicon/blob/master/CONTRIBUTING.md#updateDevicon)
|
||||
- Your PR title follows the format seen [here](https://github.com/devicons/devicon/blob/master/CONTRIBUTING.md#overview)
|
||||
|
||||
Once everything is fixed, I will try. If I still fail (sorry!), the maintainers will investigate further.
|
||||
|
||||
Best of luck,
|
||||
Peek Bot :relaxed:
|
||||
with:
|
||||
type: create
|
||||
issue_number: ${{ steps.pr_num_reader.outputs.content }}
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
body: ${{ env.MESSAGE }}
|
@ -13,6 +13,7 @@ First of all, thanks for taking the time to contribute! This project can only gr
|
||||
<li><a href="#updateDevicon">Updating the <code>devicon.json</code></a></li>
|
||||
<li><a href="#example">Example</a></li>
|
||||
<li><a href="#requestingIcon">Requesting An Icon</a></li>
|
||||
<li><a href="#teams">Maintainer/Reviewer/Teams</a></li>
|
||||
<li><a href="#buildScript">Regarding the Build Script</a></li>
|
||||
</ul>
|
||||
|
||||
@ -81,6 +82,7 @@ First of all, thanks for taking the time to contribute! This project can only gr
|
||||
<li>Each <code>.svg</code> file contains one version of an icon in a <code>0 0 128 128</code> viewbox. You can use a service like <a href="https://www.iloveimg.com/resize-image/resize-svg">resize-image</a> for scaling the svg.</li>
|
||||
<li>The <code>svg</code> element does not need the <code>height</code> and <code>width</code> attributes. However, if you do use it, ensure their values are either <code>"128"</code> or <code>"128px"</code>. Ex: <code>height="128"</code></li>
|
||||
<li>Each <code>.svg</code> must use the <code>fill</code> attribute instead of using <code>classes</code> for colors. See <a href="https://github.com/devicons/devicon/issues/407">here</a> for more details.</li>
|
||||
<li>The naming convention for the svg file is the following: <code>(Icon name)-(original|plain|line)(-wordmark?).</code></li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
@ -246,6 +248,42 @@ As an example, let's assume you have created the svgs for Redhat and Amazon Web
|
||||
<li>Optional: include links where the icon can be found</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<h2 id='teams'>Maintainer/Reviewer/Teams</h2>
|
||||
<p>
|
||||
Devicon is living by it's contributors and <a href="https://github.com/orgs/devicons/people">maintainers</a>. Everyone can and is asked to contribute to this project.
|
||||
You <b>don't</b> have to be in a team to contribute!
|
||||
</p>
|
||||
<p>
|
||||
The branches <code>master</code> and <code>develop</code> are protected branches and only members
|
||||
with corresponding permissions (see teams below) are able to push changes to them.
|
||||
Additional branches <b>must</b> follow the pattern <code><i>username</i>/feature/<i>description</i></code>.
|
||||
The <code>/feature/</code> indicates that a change is made to existing code (regardless
|
||||
if it's a fix, refactor or actual feature). The naming convention is based on the <i>gitflow</i>-workflow.
|
||||
</p>
|
||||
<p>For organisational purposes we introduced <a href="https://github.com/orgs/devicons/teams">teams</a> with permissions and responsibilities:</p>
|
||||
<dl>
|
||||
<dt>Supporter (@devicons/supporter)</dt>
|
||||
<dd>
|
||||
Members of this team are responsible for reviewing pull request (auto assigned), managing issues and preparing the upcoming release.<br />
|
||||
Supporters have <code>Write</code> access to the repository (allowing them to create own branches)
|
||||
and are allowed to push changes to the <code>develop</code> branch (pull request and status checks required).
|
||||
</dd>
|
||||
<dt>Maintainer (@devicons/maintainer)</dt>
|
||||
<dd>
|
||||
Maintainer role inherits from the 'Supporter' role and adds <code>Maintainer</code> permission
|
||||
to the repository.
|
||||
Members of this team are allowed to publish a new release (push <code>master</code> branch after pull
|
||||
request and status checks).
|
||||
</dd>
|
||||
</dl>
|
||||
<p>
|
||||
Wanna join the team? Please <a href="https://github.com/devicons/devicon/discussions/new">open a public discussion</a> where
|
||||
you introduce yourself.<br />
|
||||
New member requests have to be approved by all active members of the team <b>Maintainer</b>. Every member
|
||||
of this team has a veto permission to reject a new member.<br />
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
<h2 id='buildScript'>Regarding The Build Script</h2>
|
||||
<p>To make adding icons easier for repo maintainers, we rely on GitHub Actions, Python, Selenium, and Gulp to automate our tasks.</p>
|
||||
@ -259,4 +297,5 @@ As an example, let's assume you have created the svgs for Redhat and Amazon Web
|
||||
<li>Ensure code quality is up to standard</li>
|
||||
<li>Upload svgs to <a href="https://icomoon.io/app/#/select">icomoon.io</a> and take a screenshot to check that it looks good.
|
||||
<li>Comment on the PR so maintainers don't have to manually upload icon result.</li>
|
||||
<li>Publishing a new release to <a href="https://www.npmjs.com/package/devicon">npm</a>; See <a href="https://github.com/devicons/devicon/issues/288">#288</a></li>
|
||||
</ul>
|
||||
|
220
README.md
@ -1,26 +1,129 @@
|
||||
# Devicon v2
|
||||
<p align="center">
|
||||
<a href="https://github.com/devicons/devicon/releases">
|
||||
<img alt="GitHub release (latest by semver)" src="https://img.shields.io/github/v/release/devicons/devicon?color=%2360be86&label=Latest%20release&style=for-the-badge&sort=semver">
|
||||
</a>
|
||||
<a href="/LICENSE">
|
||||
<img alt="GitHub" src="https://img.shields.io/github/license/devicons/devicon?color=%2360be86&style=for-the-badge">
|
||||
</a>
|
||||
<a href="https://github.com/devicons/devicon/graphs/contributors">
|
||||
<img alt="GitHub contributors" src="https://img.shields.io/github/contributors-anon/devicons/devicon?color=%2360be86&style=for-the-badge">
|
||||
</a>
|
||||
<a href="https://github.com/devicons/devicon/actions">
|
||||
<img alt="GitHub branch checks state" src="https://img.shields.io/github/checks-status/devicons/devicon/master?color=%2360be86&style=for-the-badge">
|
||||
</a>
|
||||
<a href="https://github.com/devicons/devicon/issues?q=is%3Aopen+is%3Aissue+label%3Arequest%3Aicon">
|
||||
<img alt="GitHub issues by-label" src="https://img.shields.io/github/issues/devicons/devicon/request:icon?color=%2360be86&label=icon%20requests&style=for-the-badge">
|
||||
</a>
|
||||
<a href="https://github.com/devicons/devicon/stargazers">
|
||||
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/devicons/devicon?color=%2360be86&label=github%20stars&style=for-the-badge">
|
||||
</a>
|
||||
</p>
|
||||
<br />
|
||||
<div align="center">
|
||||
<a href="https://github.com/devicons/devicon">
|
||||
<img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/devicon/devicon-original-wordmark.svg" alt="Devicon Logo" height="140" />
|
||||
</a>
|
||||
<h5 align="center">
|
||||
devicon aims to gather all logos representing development languages and tools.
|
||||
</h5>
|
||||
<p align="center">
|
||||
<a target="_blank" href="https://devicon.dev">Demo</a>
|
||||
·
|
||||
<a target="_blank" href="https://github.com/devicons/devicon/issues/new?assignees=&labels=request%3Aicon&template=icon-request.md&title=Icon+request%3A+%5BNAME%5D">Request Icon</a>
|
||||
·
|
||||
<a href="#contribute">Contribute</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
[https://devicons.github.io/devicon/](https://devicons.github.io/devicon/)
|
||||
<h2>TL;DR;</h2>
|
||||
|
||||
Devicon aims to gather all logos representing development languages and tools.
|
||||
Each icon comes in several versions: font/svg, original/plain/line, colored/not colored, wordmark/no wordmark.
|
||||
```html
|
||||
<!-- in your header -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/devicon.min.css">
|
||||
|
||||
Devicon has 80+ icons and 200+ versions. And it's growing!
|
||||
<!-- in your body -->
|
||||
<i class="devicon-devicon-plain"></i>
|
||||
```
|
||||
|
||||
See all available icons on the [new website](https://devicons.github.io/devicon/).
|
||||
<h2>Table of Contents</h2>
|
||||
<ol>
|
||||
<li><a href="#about">About the project</a></li>
|
||||
<li><a href="#getting-started">Getting started</a></li>
|
||||
<li><a href="#request-icon">Requesting icon</a></li>
|
||||
<li><a href="#contribute">Contributing</a></li>
|
||||
<li><a href="#build-yourself">Go build yourself</a></li>
|
||||
</ol>
|
||||
|
||||
## Icon requests
|
||||
When you want to request a icon please feel feel to create a issue. See our [contribution guidelines](https://github.com/konpa/devicon/blob/master/CONTRIBUTING.md) for more information.
|
||||
<h2 id="about">About the project</h2>
|
||||
<p>
|
||||
Devicon aims to gather all logos representing development languages and tools.
|
||||
Each icon comes in several versions: font/svg, original/plain/line, colored/not colored, wordmark/no wordmark.
|
||||
Devicon has 150+ icons. And it's growing!<br />
|
||||
</p>
|
||||
<p>
|
||||
See the <a href="/devicon.json">devicon.json</a> or <a href="https://devicon.dev">our website</a> for complete and up to date reference of
|
||||
all available icons.
|
||||
</p>
|
||||
<sub>
|
||||
All product names, logos, and brands are property of their respective owners. All company, product and service
|
||||
names used in this website are for identification purposes only. Use of these names, logos, and brands does not
|
||||
imply endorsement.
|
||||
</sub>
|
||||
|
||||
## How to use
|
||||
|
||||
For a super fast setup go check [https://devicons.github.io/devicon/](https://devicons.github.io/devicon/)
|
||||
<h2 id="getting-started">Getting started</h2>
|
||||
<p>
|
||||
For a super fast setup go check <a href="https://devicon.dev">devicon.dev</a>.<br />
|
||||
You can either <a href="#getting-started-svg">use the raw svg</a> icons or our <a href="#getting-started-font">devicon font</a> (which is
|
||||
also available via CDN).
|
||||
</p>
|
||||
|
||||
_2 ways of using devicon:_
|
||||
<h4 id="getting-started-font">Use the <code>devicon</code> font (recommended)</h4>
|
||||
<p>
|
||||
You can install devicon as a dependency to your project either with <code>npm</code> or <code>yarn</code>:
|
||||
</p>
|
||||
|
||||
#### SVG icons
|
||||
```bash
|
||||
npm install --save devicon
|
||||
yarn add devicon
|
||||
```
|
||||
|
||||
- Copy/paste svg code (from the [svg folder](https://github.com/devicons/devicon/tree/master/icons) or the [project page](https://github.com/devicons/devicon) using your dev tool)
|
||||
<p>
|
||||
If you don't want to use a package manager you can also download
|
||||
and include <a href="/devicon.min.css">devicon.min.css</a> next to the <a href="/fonts">font files</a> to your project.
|
||||
See <a href="https://devicon.dev">devicon.dev</a> for details about how to add devicon to your project via
|
||||
a CDN.
|
||||
</p>
|
||||
<p>
|
||||
After setting up you just have to include the stylesheet in your header
|
||||
to get started:
|
||||
</p>
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="devicon.min.css">
|
||||
```
|
||||
|
||||
<p>Start using icons with <code><i></code>-tag</p>
|
||||
|
||||
```html
|
||||
<!-- for git plain version -->
|
||||
<i class="devicon-git-plain"></i>
|
||||
|
||||
<!-- for git plain version with wordmark -->
|
||||
<i class="devicon-git-plain-wordmark"></i>
|
||||
|
||||
<!-- for git plain version colored with git main color (devicon-color.css or devicon.min.css required) -->
|
||||
<i class="devicon-git-plain colored"></i>
|
||||
|
||||
<!-- for git plain version with wordmark colored with git main color (devicon-color.css or devicon.min.css required) -->
|
||||
<i class="devicon-git-plain-wordmark colored"></i>
|
||||
```
|
||||
|
||||
<p>
|
||||
An alternate way to use <code>devicon</code> is by copy/paste the raw svg code
|
||||
to your project.
|
||||
</p>
|
||||
<h4 id="getting-started-svg">Copy/paste svg code (from the <a href="https://github.com/devicons/devicon/tree/master/icons">svg folder</a> or the <a href="https://devicon.dev">project page</a></h4>
|
||||
|
||||
```html
|
||||
<!-- for git plain version -->
|
||||
@ -29,7 +132,7 @@ _2 ways of using devicon:_
|
||||
</svg>
|
||||
```
|
||||
|
||||
- Add css rules in your stylesheet
|
||||
Add css rules in your stylesheet
|
||||
```css
|
||||
.devicon-git-plain {
|
||||
max-width: 2em;
|
||||
@ -41,71 +144,48 @@ _2 ways of using devicon:_
|
||||
}
|
||||
```
|
||||
|
||||
#### Icons font
|
||||
<h2 id="request-icon">Requesting icon</h2>
|
||||
<p>
|
||||
When you want to request a icon please feel feel to create a issue. See our <a href="/CONTRIBUTING.md#requestingIcon">contribution guidelines</a> for more information.
|
||||
</p>
|
||||
|
||||
- Upload devicon.min.css and font files to your project
|
||||
- Note: the `devicon.css` file is not the same as the `devicon.min.css`. It doesn't contain any colors or aliases.
|
||||
<h2 id="contribute">Contributing</h2>
|
||||
<p>
|
||||
We are happy for every contribution. Please have a look at our <a href="CONTRIBUTING.md">contribution guidelines</a>
|
||||
to see how you can contribute to this project.
|
||||
</p>
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="devicon.min.css">
|
||||
```
|
||||
<h2 id="build-yourself">Go build yourself</h2>
|
||||
<p>
|
||||
Feel free to follow those steps when you want to build the font
|
||||
by yourself.
|
||||
</p>
|
||||
<h5>Prerequisites</h5>
|
||||
<p>Install gulp (and gulp plugins)</p>
|
||||
|
||||
- Add icon using `<i>` tag
|
||||
|
||||
```html
|
||||
<!-- for git plain version -->
|
||||
<i class="devicon-git-plain"></i>
|
||||
|
||||
<!-- for git plain version with wordmark -->
|
||||
<i class="devicon-git-plain-wordmark"></i>
|
||||
|
||||
<!-- for git plain version colored with git main color (devicon-color.css or devicon.min.css required) -->
|
||||
<i class="devicon-git-plain colored"></i>
|
||||
|
||||
<!-- for git plain version with wordmark colored with git main color (devicon-color.css or devicon.min.css required) -->
|
||||
<i class="devicon-git-plain-wordmark colored"></i>
|
||||
```
|
||||
|
||||
##### NPM and Bower packages
|
||||
|
||||
You can install devicon as a dependency to your project either with NPM or Bower
|
||||
|
||||
```
|
||||
// NPM
|
||||
npm install --save devicon
|
||||
|
||||
// Bower
|
||||
bower install --save devicon
|
||||
```
|
||||
|
||||
<sub>Final font is build with [Icomoon app](https://icomoon.io/)</sub>
|
||||
|
||||
##### See the [devicon.json file](https://github.com/devicons/devicon/blob/master/devicon.json) or [devicon website](https://devicons.github.io/devicon/) for complete and up to date reference of icon's available versions.
|
||||
|
||||
## Contribute
|
||||
|
||||
Please have a look at the [CONTRIBUTING.md](https://github.com/devicons/devicon/blob/master/CONTRIBUTING.md) file
|
||||
|
||||
Under [MIT Licence](https://github.com/devicons/devicon/blob/master/LICENSE)
|
||||
|
||||
<sub>All product names, logos, and brands are property of their respective owners. All company, product and service names used in this website are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.</sub>
|
||||
|
||||
## Go build yourself
|
||||
### Prerequisites
|
||||
Install gulp (and gulp plugins)
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
### Build the font and export stylesheet
|
||||
Open [icomoon app](https://icomoon.io/app/#/select) and import [icomoon.json](icomoon.json). Choose _yes_ when beeing asked
|
||||
|
||||
<h5>Build the font and export stylesheet</h5>
|
||||
Open <a href="https://icomoon.io/app/#/select">icomoon.io</a> and import <a href="/icomoon.json">icomoon.json</a>. Choose <i>yes</i> when beeing asked
|
||||
if you like to restore the settings stored in the configuration file.
|
||||
|
||||
The next step is to click on **Generate font** and download the resulting archive. Extract it
|
||||
contents and you will find a [fonts](./fonts) directory next to a `style.css`. Replace the content of the `fonts` folder,
|
||||
rename the `style.css` to [devicon.css](./devicon.css) and follow the next step to build the final stylesheet.
|
||||
The next step is to click on <b>Generate font</b> and download the resulting archive. Extract it
|
||||
contents and you will find a <a href="/fonts">fonts</a> directory next to a <code>style.css</code>. Replace the content of the <code>fonts</code> folder,
|
||||
rename the <code>style.css</code> to <a href="/devicon.css">devicon.css</a> and follow the next step to build the final stylesheet.
|
||||
|
||||
<h5>Build and minify stylesheet</h5>
|
||||
<p>
|
||||
Run the following command to build the resulting file <code>devicon.min.css</code>
|
||||
</p>
|
||||
|
||||
### Build and minify stylesheet
|
||||
Run the following command to build the resulting file `devicon.min.css`
|
||||
```bash
|
||||
npm run build-css
|
||||
```
|
||||
|
||||
<br />
|
||||
<div align="center">
|
||||
<img src="https://forthebadge.com/images/badges/built-with-love.svg" />
|
||||
<img src="https://forthebadge.com/images/badges/built-by-developers.svg" />
|
||||
</div>
|
||||
|
103
devicon.css
@ -1,10 +1,10 @@
|
||||
@font-face {
|
||||
font-family: 'devicon';
|
||||
src: url('fonts/devicon.eot?r4n05t');
|
||||
src: url('fonts/devicon.eot?r4n05t#iefix') format('embedded-opentype'),
|
||||
url('fonts/devicon.ttf?r4n05t') format('truetype'),
|
||||
url('fonts/devicon.woff?r4n05t') format('woff'),
|
||||
url('fonts/devicon.svg?r4n05t#devicon') format('svg');
|
||||
src: url('fonts/devicon.eot?e4qd2c');
|
||||
src: url('fonts/devicon.eot?e4qd2c#iefix') format('embedded-opentype'),
|
||||
url('fonts/devicon.ttf?e4qd2c') format('truetype'),
|
||||
url('fonts/devicon.woff?e4qd2c') format('woff'),
|
||||
url('fonts/devicon.svg?e4qd2c#devicon') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: block;
|
||||
@ -25,6 +25,99 @@
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.devicon-r-plain:before {
|
||||
content: "\e98e";
|
||||
}
|
||||
.devicon-r-original:before {
|
||||
content: "\e98f";
|
||||
}
|
||||
.devicon-ocaml-plain-wordmark:before {
|
||||
content: "\e990";
|
||||
}
|
||||
.devicon-ocaml-plain:before {
|
||||
content: "\e991";
|
||||
}
|
||||
.devicon-matlab-plain:before {
|
||||
content: "\e992";
|
||||
}
|
||||
.devicon-jupyter-plain-wordmark:before {
|
||||
content: "\e993";
|
||||
}
|
||||
.devicon-jupyter-plain:before {
|
||||
content: "\e994";
|
||||
}
|
||||
.devicon-fsharp-plain:before {
|
||||
content: "\e995";
|
||||
}
|
||||
.devicon-elixir-plain-wordmark:before {
|
||||
content: "\e996";
|
||||
}
|
||||
.devicon-elixir-plain:before {
|
||||
content: "\e997";
|
||||
}
|
||||
.devicon-aarch64-plain:before {
|
||||
content: "\e998";
|
||||
}
|
||||
.devicon-xd-line:before {
|
||||
content: "\e97a";
|
||||
}
|
||||
.devicon-xd-plain:before {
|
||||
content: "\e97b";
|
||||
}
|
||||
.devicon-uwsgi-plain:before {
|
||||
content: "\e97c";
|
||||
}
|
||||
.devicon-microsoftsqlserver-plain-wordmark:before {
|
||||
content: "\e97d";
|
||||
}
|
||||
.devicon-microsoftsqlserver-plain:before {
|
||||
content: "\e97e";
|
||||
}
|
||||
.devicon-sqlalchemy-original-wordmark:before {
|
||||
content: "\e97f";
|
||||
}
|
||||
.devicon-sqlalchemy-plain:before {
|
||||
content: "\e980";
|
||||
}
|
||||
.devicon-rocksdb-plain:before {
|
||||
content: "\e981";
|
||||
}
|
||||
.devicon-objectivec-plain:before {
|
||||
content: "\e982";
|
||||
}
|
||||
.devicon-kubernetes-plain-wordmark:before {
|
||||
content: "\e983";
|
||||
}
|
||||
.devicon-kubernetes-plain:before {
|
||||
content: "\e984";
|
||||
}
|
||||
.devicon-googlecloud-plain-wordmark:before {
|
||||
content: "\e985";
|
||||
}
|
||||
.devicon-googlecloud-plain:before {
|
||||
content: "\e986";
|
||||
}
|
||||
.devicon-flask-original-wordmark:before {
|
||||
content: "\e987";
|
||||
}
|
||||
.devicon-flask-original:before {
|
||||
content: "\e988";
|
||||
}
|
||||
.devicon-firebase-plain-wordmark:before {
|
||||
content: "\e989";
|
||||
}
|
||||
.devicon-firebase-plain:before {
|
||||
content: "\e98a";
|
||||
}
|
||||
.devicon-eleventy-plain:before {
|
||||
content: "\e98b";
|
||||
}
|
||||
.devicon-appwrite-plain-wordmark:before {
|
||||
content: "\e98c";
|
||||
}
|
||||
.devicon-appwrite-plain:before {
|
||||
content: "\e98d";
|
||||
}
|
||||
.devicon-bash-plain:before {
|
||||
content: "\e979";
|
||||
}
|
||||
|
153
devicon.json
@ -64,6 +64,26 @@
|
||||
"color": "#A4C439",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "aarch64",
|
||||
"tags": [
|
||||
"architecture",
|
||||
"programming",
|
||||
"language",
|
||||
"ARM"
|
||||
],
|
||||
"versions": {
|
||||
"svg": [
|
||||
"original",
|
||||
"plain"
|
||||
],
|
||||
"font": [
|
||||
"plain"
|
||||
]
|
||||
},
|
||||
"color": "#16358C",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "angularjs",
|
||||
"tags": [
|
||||
@ -156,6 +176,33 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "appwrite",
|
||||
"tags": ["cloud", "platform", "server"],
|
||||
"versions": {
|
||||
"svg": [
|
||||
"original",
|
||||
"original-wordmark",
|
||||
"plain",
|
||||
"plain-wordmark"
|
||||
],
|
||||
"font": [
|
||||
"plain",
|
||||
"plain-wordmark"
|
||||
]
|
||||
},
|
||||
"color": "#f02e65",
|
||||
"aliases": [
|
||||
{
|
||||
"base": "plain",
|
||||
"alias": "original"
|
||||
},
|
||||
{
|
||||
"base": "plain-wordmark",
|
||||
"alias": "original-wordmark"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "atom",
|
||||
"tags": [
|
||||
@ -905,6 +952,16 @@
|
||||
"color": "#1f1f1f",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "elixir",
|
||||
"tags": "language",
|
||||
"versions": {
|
||||
"svg": ["original", "original-wordmark", "plain", "plain-wordmark"],
|
||||
"font": ["plain", "plain-wordmark"]
|
||||
},
|
||||
"color": "#380A4D",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "elm",
|
||||
"tags": [
|
||||
@ -1112,6 +1169,23 @@
|
||||
"color": "#008cba",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "fsharp",
|
||||
"tags": [
|
||||
"language"
|
||||
],
|
||||
"versions": {
|
||||
"svg": [
|
||||
"original",
|
||||
"plain"
|
||||
],
|
||||
"font": [
|
||||
"plain"
|
||||
]
|
||||
},
|
||||
"color": "#378BBA",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "gatling",
|
||||
"tags": [
|
||||
@ -1758,6 +1832,27 @@
|
||||
"color": "#0769ad",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "jupyter",
|
||||
"tags": [
|
||||
"programming",
|
||||
"language"
|
||||
],
|
||||
"versions": {
|
||||
"svg": [
|
||||
"original",
|
||||
"original-wordmark",
|
||||
"plain",
|
||||
"plain-wordmark"
|
||||
],
|
||||
"font": [
|
||||
"plain",
|
||||
"plain-wordmark"
|
||||
]
|
||||
},
|
||||
"color": "#F37726",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "kotlin",
|
||||
"tags": [
|
||||
@ -2008,6 +2103,24 @@
|
||||
"color": "#00618a",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "matlab",
|
||||
"tags": [
|
||||
"programming",
|
||||
"language"
|
||||
],
|
||||
"versions": {
|
||||
"svg": [
|
||||
"original",
|
||||
"plain"
|
||||
],
|
||||
"font": [
|
||||
"plain"
|
||||
]
|
||||
},
|
||||
"color": "#6dd0c7",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "nestjs",
|
||||
"tags": [
|
||||
@ -2156,6 +2269,27 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ocaml",
|
||||
"tags": [
|
||||
"programming",
|
||||
"language"
|
||||
],
|
||||
"versions": {
|
||||
"svg": [
|
||||
"original",
|
||||
"original-wordmark",
|
||||
"plain",
|
||||
"plain-wordmark"
|
||||
],
|
||||
"font": [
|
||||
"plain",
|
||||
"plain-wordmark"
|
||||
]
|
||||
},
|
||||
"color": "#F18803",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "photoshop",
|
||||
"tags": [
|
||||
@ -2311,6 +2445,25 @@
|
||||
"color": "#ffd845",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "r",
|
||||
"tags": [
|
||||
"programming",
|
||||
"language"
|
||||
],
|
||||
"versions": {
|
||||
"svg": [
|
||||
"original",
|
||||
"plain"
|
||||
],
|
||||
"font": [
|
||||
"original",
|
||||
"plain"
|
||||
]
|
||||
},
|
||||
"color": "#2369bc",
|
||||
"aliases": []
|
||||
},
|
||||
{
|
||||
"name": "rails",
|
||||
"tags": [
|
||||
|
2
devicon.min.css
vendored
Before (image error) Size: 1018 KiB After (image error) Size: 1.1 MiB |
23
icons/aarch64/aarch64-original.svg
Normal file
After (image error) Size: 25 KiB |
23
icons/aarch64/aarch64-plain.svg
Normal file
After (image error) Size: 25 KiB |
1
icons/appwrite/appwrite-original-wordmark.svg
Normal file
After (image error) Size: 7.6 KiB |
1
icons/appwrite/appwrite-original.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><path d="M40.162 23.768C24.121 25.189 10.496 36.065 5.473 51.443 4.028 55.874 3.53 59.05 3.53 64.026s.498 8.151 1.943 12.582c7.701 23.505 34.334 34.595 56.466 23.529L64 99.094l2.085 1.043c18.222 9.123 40.377 3.293 51.703-13.672 2.962-4.407 5.237-10.118 6.208-15.544.356-2.085.474-3.744.474-6.895 0-4.976-.497-8.152-1.943-12.583-7.701-23.505-34.334-34.594-56.442-23.529L64 28.957l-2.061-1.043a41.323 41.323 0 00-14.904-4.17c-3.152-.261-3.792-.261-6.873.024zm10.142 8.601c2.322.45 6.801 2.203 9.525 3.744 3.721 2.085 7.938 5.995 10.521 9.739 1.398 2.037 3.27 5.876 4.336 8.933 1.517 4.265 1.517 14.217 0 18.481-1.848 5.214-4.194 9.266-7.345 12.607-3.744 3.981-7.227 6.326-12.44 8.364-3.317 1.303-5.307 1.73-9.217 1.919-4.787.237-9.1-.331-12.488-1.682-.853-.356-1.73-.663-1.99-.711-.498-.118-4.763-2.488-6.208-3.46-1.54-1.042-5.331-4.762-6.801-6.682-.734-.971-1.35-1.824-1.35-1.895 0-.071-.545-1.067-1.209-2.204-1.161-2.014-1.943-3.649-1.753-3.649.047 0-.213-.758-.592-1.682-1.161-2.772-1.517-5.213-1.517-10.165 0-4.953.356-7.394 1.517-10.166.379-.924.639-1.682.592-1.682-.19 0 .592-1.635 1.753-3.649.664-1.137 1.209-2.132 1.209-2.204 0-.071.616-.924 1.35-1.895 1.47-1.92 5.261-5.64 6.801-6.682 1.422-.972 5.71-3.342 6.208-3.46.26-.047 1.256-.403 2.227-.782 2.156-.853 3.554-1.184 6.043-1.469 2.559-.284 8.577-.094 10.828.332z" fill="#f02e65"/><path d="M44.973 49.737c-.048.119-.664 2.536-1.327 5.403-.688 2.867-1.777 7.393-2.393 10.07-1.185 4.905-1.896 8.128-1.896 8.554 0 .118.735.214 1.635.214h1.635l.734-3.271c.427-1.777 1.375-5.852 2.133-9.051.759-3.199 1.682-7.085 2.038-8.649.355-1.564.711-2.985.782-3.151.071-.213-.332-.284-1.564-.284-.924 0-1.73.071-1.777.165zM32.248 59.997l-2.18 2.37.64.758c.355.426 1.327 1.493 2.156 2.37l1.517 1.611H38.694l-2.038-2.204c-1.114-1.184-2.038-2.322-2.038-2.464 0-.166.853-1.232 1.896-2.369 1.042-1.161 1.895-2.157 1.895-2.275 0-.095-.9-.166-1.99-.166h-1.967l-2.204 2.369zM48.835 57.77c0 .071.403.521.9 1.019 1.849 1.848 3.152 3.412 3.081 3.72-.047.166-.948 1.279-2.038 2.44l-1.966 2.157h2.203l2.204-.024 2.013-2.203c1.115-1.232 2.015-2.323 2.015-2.465 0-.118-.948-1.232-2.133-2.487l-2.132-2.299H50.92c-1.161 0-2.085.071-2.085.142z" fill="#f02e65"/></svg>
|
After (image error) Size: 2.2 KiB |
1
icons/appwrite/appwrite-plain-wordmark.svg
Normal file
After (image error) Size: 7.6 KiB |
1
icons/appwrite/appwrite-plain.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><path d="M40.162 23.768C24.121 25.189 10.496 36.065 5.473 51.443 4.028 55.874 3.53 59.05 3.53 64.026s.498 8.151 1.943 12.582c7.701 23.505 34.334 34.595 56.466 23.529L64 99.094l2.085 1.043c18.222 9.123 40.377 3.293 51.703-13.672 2.962-4.407 5.237-10.118 6.208-15.544.356-2.085.474-3.744.474-6.895 0-4.976-.497-8.152-1.943-12.583-7.701-23.505-34.334-34.594-56.442-23.529L64 28.957l-2.061-1.043a41.323 41.323 0 00-14.904-4.17c-3.152-.261-3.792-.261-6.873.024zm10.142 8.601c2.322.45 6.801 2.203 9.525 3.744 3.721 2.085 7.938 5.995 10.521 9.739 1.398 2.037 3.27 5.876 4.336 8.933 1.517 4.265 1.517 14.217 0 18.481-1.848 5.214-4.194 9.266-7.345 12.607-3.744 3.981-7.227 6.326-12.44 8.364-3.317 1.303-5.307 1.73-9.217 1.919-4.787.237-9.1-.331-12.488-1.682-.853-.356-1.73-.663-1.99-.711-.498-.118-4.763-2.488-6.208-3.46-1.54-1.042-5.331-4.762-6.801-6.682-.734-.971-1.35-1.824-1.35-1.895 0-.071-.545-1.067-1.209-2.204-1.161-2.014-1.943-3.649-1.753-3.649.047 0-.213-.758-.592-1.682-1.161-2.772-1.517-5.213-1.517-10.165 0-4.953.356-7.394 1.517-10.166.379-.924.639-1.682.592-1.682-.19 0 .592-1.635 1.753-3.649.664-1.137 1.209-2.132 1.209-2.204 0-.071.616-.924 1.35-1.895 1.47-1.92 5.261-5.64 6.801-6.682 1.422-.972 5.71-3.342 6.208-3.46.26-.047 1.256-.403 2.227-.782 2.156-.853 3.554-1.184 6.043-1.469 2.559-.284 8.577-.094 10.828.332z"/><path d="M44.973 49.737c-.048.119-.664 2.536-1.327 5.403-.688 2.867-1.777 7.393-2.393 10.07-1.185 4.905-1.896 8.128-1.896 8.554 0 .118.735.214 1.635.214h1.635l.734-3.271c.427-1.777 1.375-5.852 2.133-9.051.759-3.199 1.682-7.085 2.038-8.649.355-1.564.711-2.985.782-3.151.071-.213-.332-.284-1.564-.284-.924 0-1.73.071-1.777.165zM32.248 59.997l-2.18 2.37.64.758c.355.426 1.327 1.493 2.156 2.37l1.517 1.611H38.694l-2.038-2.204c-1.114-1.184-2.038-2.322-2.038-2.464 0-.166.853-1.232 1.896-2.369 1.042-1.161 1.895-2.157 1.895-2.275 0-.095-.9-.166-1.99-.166h-1.967l-2.204 2.369zM48.835 57.77c0 .071.403.521.9 1.019 1.849 1.848 3.152 3.412 3.081 3.72-.047.166-.948 1.279-2.038 2.44l-1.966 2.157h2.203l2.204-.024 2.013-2.203c1.115-1.232 2.015-2.323 2.015-2.465 0-.118-.948-1.232-2.133-2.487l-2.132-2.299H50.92c-1.161 0-2.085.071-2.085.142z"/></svg>
|
After (image error) Size: 2.2 KiB |
2171
icons/appwrite/appwrite.eps
Normal file
1
icons/elixir/elixir-original-wordmark.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><linearGradient id="A" gradientUnits="userSpaceOnUse" x1="24.682" y1="33.035" x2="23.615" y2="100.535"><stop offset="0" stop-color="#d9d8dc"/><stop offset="1" stop-color="#fff" stop-opacity=".385"/></linearGradient><path d="M25.8 27.7C10 35.3-9.9 75.1 6.7 92.5c15.3 19.2 48.9.7 39.1-23.2-12.3-20.5-20-21.6-20-41.6z" fill="url(#A)" class="M"/><linearGradient id="B" gradientUnits="userSpaceOnUse" x1="1137.202" y1="-5.548" x2="1069.889" y2="287.831" gradientTransform="matrix(.1142 0 0 .2271 -106.224 33.229)"><stop offset="0" stop-color="#8d67af" stop-opacity=".672"/><stop offset="1" stop-color="#9f8daf"/></linearGradient><path d="M25.8 27.5C10 35.2-9.9 74.8 6.7 92.3c6.1 7.1 16 9.4 21.6 5.2 15.1-10.8 4.2-30.4 5.9-44.9-6.3-5.8-8.5-18.8-8.4-25.1z" fill="url(#B)" class="M"/><linearGradient id="C" gradientUnits="userSpaceOnUse" x1="27.26" y1="51.801" x2="27.26" y2="98.425"><stop offset="0" stop-color="#26053d" stop-opacity=".762"/><stop offset="1" stop-color="#b7b4b4" stop-opacity=".278"/></linearGradient><path d="M21.4 29.8C8.7 38.9 5.3 72.7 7.6 83.7c4.7 27.5 43 16.2 39.8-9.4-3.4-16.7-27.9-22.4-26-44.5z" fill="url(#C)" class="M"/><linearGradient id="D" gradientUnits="userSpaceOnUse" x1="578.113" y1="142.292" x2="680.68" y2="348.7" gradientTransform="matrix(.1848 0 0 .1404 -96.85 33.137)"><stop offset="0" stop-color="#91739f" stop-opacity=".46"/><stop offset="1" stop-color="#32054f" stop-opacity=".54"/></linearGradient><path d="M34.1 55.9c5.9 7.7 7.3 12.9 3.9 16-15.9 11-35.1 4.2-30.9-21.4-5.4 12.9-15.5 32.3 6.7 35 11.9 2.1 30.9 1.1 33.7-9.2-.2-9.1-6.2-13.1-13.4-20.4z" fill="url(#D)" class="M"/><linearGradient id="E" gradientUnits="userSpaceOnUse" x1="982.624" y1="331.094" x2="800.904" y2="136.958" gradientTransform="matrix(.1418 0 0 .1829 -102.558 33.18)"><stop offset="0" stop-color="#463d49" stop-opacity=".331"/><stop offset="1" stop-color="#340a50" stop-opacity=".821"/></linearGradient><path d="M10.8 48.2C9.1 60.3 30.9 92.8 44.1 88.8 34 109.2 11.6 76.7 7.5 65c.9-6.3 1.3-9.4 3.3-16.8z" fill="url(#E)" class="M"/><linearGradient id="F" gradientUnits="userSpaceOnUse" x1="1281.778" y1="73.753" x2="1227.874" y2="263.17" gradientTransform="matrix(.106 0 0 .2448 -107.314 33.242)"><stop offset="0" stop-color="#715383" stop-opacity=".145"/><stop offset="1" stop-color="#f4f4f4" stop-opacity=".234"/></linearGradient><path d="M23.5 55.8c.5 4.5 2.2 11.7 0 16.5-2.2 4.7-12.4 13.4-9.6 21.1 6.5 14.2 21.2-2.5 21.1-10.9.6-6.8-3.8-22.1-1-30l-1.3-1.6-7.7-2.4c-1.3 1.9-1.8 4.3-1.5 7.3z" fill="url(#F)" class="M"/><linearGradient id="G" gradientUnits="userSpaceOnUse" x1="1542.574" y1="94.466" x2="1373.566" y2="62.662" gradientTransform="matrix(.09173 0 0 .2828 -109.209 33.28)"><stop offset="0" stop-color="#a5a1a8" stop-opacity=".356"/><stop offset="1" stop-color="#370c50" stop-opacity=".582"/></linearGradient><g class="M"><path d="M26.3 33.6C9.5 43.1 16.4 58 17.1 74.1L28 42.4c-.7-3.3-1.2-5.5-1.7-8.8z" fill="url(#G)"/><path d="M28 42.3c-8.4 6.7-8 17.9-10.6 30.9C22 61 19.8 51.3 28 42.3z" fill="#330a4c" fill-opacity=".316"/><path d="M15.2 95.9c4.6.6 6.9 1.3 7.2 1.7.1 2.4-6.4.7-7.2-1.7z" fill="#fff"/><path d="M17.5 33.6C13.5 38 9.2 46 7.1 50.5c-.6 3.7-.3 9 .3 13.4.5-10.3 4.3-22.3 10.1-30.3z" fill="#ededed" fill-opacity=".603"/></g><path d="M63.7 72c.1 4.1 2.6 5.8 5.7 5.8 2.2 0 3.5-.4 4.6-.9l.5 2.2c-1.1.5-2.9 1.1-5.6 1.1-5.1 0-8.2-3.4-8.2-8.4s3-8.9 7.8-8.9c5.5 0 6.9 4.7 6.9 7.8 0 .6 0 1.1-.1 1.4H63.7zm8.9-2.2c0-1.9-.8-4.9-4.2-4.9-3.1 0-4.4 2.8-4.6 4.9h8.8zm6.6-14.4h3v24.4h-3V55.4zm11.5 3.1c0 1-.7 1.9-1.9 1.9-1.1 0-1.8-.8-1.8-1.9s.8-1.9 1.9-1.9c1 0 1.8.8 1.8 1.9zm-3.4 21.3V63.1h3v16.6h-3zm9.5-16.7l2.4 3.6c.7.9 1.2 1.8 1.7 2.7h.1c.5-1 1.1-1.8 1.7-2.7l2.3-3.5h3.3l-5.7 8 5.8 8.6H105l-2.5-3.7c-.7-1-1.2-1.9-1.8-2.9h-.1c-.5 1-1.1 1.9-1.8 2.9l-2.4 3.7h-3.3l5.9-8.5-5.6-8.1h3.4zm17.8-4.6c0 1-.7 1.9-1.9 1.9-1.1 0-1.8-.8-1.8-1.9s.8-1.9 1.9-1.9 1.8.8 1.8 1.9zm-3.4 21.3V63.1h3v16.6h-3zm8.1-11.5l-.1-5.2h2.6l.1 3.3h.1c.8-2.2 2.6-3.6 4.6-3.6.3 0 .5 0 .8.1v2.8c-.3-.1-.6-.1-1-.1-2.1 0-3.6 1.6-4 3.8-.1.4-.1.9-.1 1.4v8.9h-3V68.3z" fill="#333"/></svg>
|
After (image error) Size: 4.0 KiB |
1
icons/elixir/elixir-original.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="835.592" y1="-36.546" x2="821.211" y2="553.414" gradientTransform="matrix(.1297 0 0 .2 -46.03 17.198)"><stop offset="0" stop-color="#d9d8dc"/><stop offset="1" stop-color="#fff" stop-opacity=".385"/></linearGradient><path fill-rule="evenodd" clip-rule="evenodd" fill="url(#a)" d="M64.4.5C36.7 13.9 1.9 83.4 30.9 113.9c26.8 33.5 85.4 1.3 68.4-40.5-21.5-36-35-37.9-34.9-72.9z"/><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="942.357" y1="-40.593" x2="824.692" y2="472.243" gradientTransform="matrix(.1142 0 0 .2271 -47.053 17.229)"><stop offset="0" stop-color="#8d67af" stop-opacity=".672"/><stop offset="1" stop-color="#9f8daf"/></linearGradient><path fill-rule="evenodd" clip-rule="evenodd" fill="url(#b)" d="M64.4.2C36.8 13.6 1.9 82.9 31 113.5c10.7 12.4 28 16.5 37.7 9.1 26.4-18.8 7.4-53.1 10.4-78.5C68.1 33.9 64.2 11.3 64.4.2z"/><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="924.646" y1="120.513" x2="924.646" y2="505.851" gradientTransform="matrix(.1227 0 0 .2115 -46.493 17.206)"><stop offset="0" stop-color="#26053d" stop-opacity=".762"/><stop offset="1" stop-color="#b7b4b4" stop-opacity=".278"/></linearGradient><path fill-rule="evenodd" clip-rule="evenodd" fill="url(#c)" d="M56.7 4.3c-22.3 15.9-28.2 75-24.1 94.2 8.2 48.1 75.2 28.3 69.6-16.5-6-29.2-48.8-39.2-45.5-77.7z"/><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="428.034" y1="198.448" x2="607.325" y2="559.255" gradientTransform="matrix(.1848 0 0 .1404 -42.394 17.138)"><stop offset="0" stop-color="#91739f" stop-opacity=".46"/><stop offset="1" stop-color="#32054f" stop-opacity=".54"/></linearGradient><path fill-rule="evenodd" clip-rule="evenodd" fill="url(#d)" d="M78.8 49.8c10.4 13.4 12.7 22.6 6.8 27.9-27.7 19.4-61.3 7.4-54-37.3C22.1 63 4.5 96.8 43.3 101.6c20.8 3.6 54 2 58.9-16.1-.2-15.9-10.8-22.9-23.4-35.7z"/><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="907.895" y1="540.636" x2="590.242" y2="201.281" gradientTransform="matrix(.1418 0 0 .1829 -45.23 17.18)"><stop offset="0" stop-color="#463d49" stop-opacity=".331"/><stop offset="1" stop-color="#340a50" stop-opacity=".821"/></linearGradient><path fill-rule="evenodd" clip-rule="evenodd" fill="url(#e)" d="M38.1 36.4c-2.9 21.2 35.1 77.9 58.3 71-17.7 35.6-56.9-21.2-64-41.7 1.5-11 2.2-16.4 5.7-29.3z"/><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="1102.297" y1="100.542" x2="1008.071" y2="431.648" gradientTransform="matrix(.106 0 0 .2448 -47.595 17.242)"><stop offset="0" stop-color="#715383" stop-opacity=".145"/><stop offset="1" stop-color="#f4f4f4" stop-opacity=".234"/></linearGradient><path fill-rule="evenodd" clip-rule="evenodd" fill="url(#f)" d="M60.4 49.7c.8 7.9 3.9 20.5 0 28.8S38.7 102 43.6 115.3c11.4 24.8 37.1-4.4 36.9-19 1.1-11.8-6.6-38.7-1.8-52.5L76.5 41l-13.6-4c-2.2 3.2-3 7.5-2.5 12.7z"/><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="1354.664" y1="140.06" x2="1059.233" y2="84.466" gradientTransform="matrix(.09173 0 0 .2828 -48.536 17.28)"><stop offset="0" stop-color="#a5a1a8" stop-opacity=".356"/><stop offset="1" stop-color="#370c50" stop-opacity=".582"/></linearGradient><path fill-rule="evenodd" clip-rule="evenodd" fill="url(#g)" d="M65.3 10.8C36 27.4 48 53.4 49.3 81.6l19.1-55.4c-1.4-5.7-2.3-9.5-3.1-15.4z"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#330A4C" fill-opacity=".316" d="M68.3 26.1c-14.8 11.7-14.1 31.3-18.6 54 8.1-21.3 4.1-38.2 18.6-54z"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" d="M45.8 119.7c8 1.1 12.1 2.2 12.5 3 .3 4.2-11.1 1.2-12.5-3z"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#EDEDED" fill-opacity=".603" d="M49.8 10.8c-6.9 7.7-14.4 21.8-18.2 29.7-1 6.5-.5 15.7.6 23.5.9-18.2 7.5-39.2 17.6-53.2z"/></svg>
|
After (image error) Size: 3.7 KiB |
1
icons/elixir/elixir-plain-wordmark.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 128 128" xmlns:v="https://vecta.io/nano"><g enable-background="new"><path d="M64 70.5c.1 4.1 2.6 5.8 5.7 5.8 2.2 0 3.5-.4 4.6-.9l.5 2.2c-1.1.5-2.9 1.1-5.6 1.1-5.1 0-8.2-3.4-8.2-8.4s3-8.9 7.8-8.9c5.5 0 6.9 4.7 6.9 7.8 0 .6 0 1.1-.1 1.4H64zm8.8-2.2c0-1.9-.8-4.9-4.2-4.9-3.1 0-4.4 2.8-4.6 4.9h8.8zm6.7-14.4h3v24.4h-3V53.9z"/><use xlink:href="#B"/><path d="M97 61.6l2.4 3.6c.7.9 1.2 1.8 1.7 2.7h.1c.5-1 1.1-1.8 1.7-2.7l2.3-3.5h3.3l-5.7 8 5.8 8.6h-3.4l-2.5-3.7c-.7-1-1.2-1.9-1.8-2.9h-.1c-.5 1-1.1 1.9-1.8 2.9l-2.4 3.7h-3.3l5.9-8.5-5.6-8.1H97z"/><use xlink:href="#B" x="23.9"/><path d="M119.6 66.8l-.1-5.2h2.6l.1 3.3h.1c.8-2.2 2.6-3.6 4.6-3.6.3 0 .5 0 .8.1v2.8c-.3-.1-.6-.1-1-.1-2.1 0-3.6 1.6-4.1 3.8-.1.4-.1.9-.1 1.4v8.9h-3V66.8z"/></g><path d="M38.3 70.7l1.4-.9c3.2-2.7 2.1-7.7-3.4-14.7.1 3.5.7 7.1 1.3 10.9.2 1.5.4 3.1.7 4.7zM7.4 83.9c1.8 7.8 6.4 12 11.7 13.8 2.9.5 5.8.4 8.7-.2.5-.2.9-.5 1.3-.8 1.1-.7 2.1-1.6 3-2.5-3.7-1.6-7.5-4.7-11-8.3-2.7-.2-5.4-.5-7.8-.8-2.2-.2-4.2-.6-5.9-1.2zm-.8-36.8l-.1.8c-.8 4.5-.8 8.6-.2 12.1.6-4.2 1.5-8.6 2.7-12.7.2-.6.3-1.3.6-2h.1c.9-2.9 1.9-5.6 3.1-8.2-2.4 3.1-4.4 6.4-6.2 10zM6.2 90a21 21 0 0 0 6.8 5.6C9.8 93 7.3 89 6.2 83.4 4 82.7 2.3 81.6 1 80.2c.9 3.7 2.6 7 5.2 9.8zm-.3-26.8c-1-3.4-1.4-7.2-1-11.6-.6 1.3-1.2 2.7-1.8 4.2C.5 63.2-.7 71 .4 77.8c1.2 1.8 3 3.3 5.5 4.3-.8-4.3-.9-11.3 0-18.9zm1.2 19.3c0 .1 0 .1 0 0 1.8.7 3.9 1.1 6.3 1.4 2 .3 4.2.6 6.4.7-4.6-5.1-8.8-11.2-11.5-16.2-.6-.9-1.1-1.9-1.6-2.9-.6 7-.4 13.2.4 17zm29.3-16.3c-.6-4.3-1.3-8.6-1.3-12.7-7.2-6.7-14.3-13.9-14-25.5-.2.2-.5.3-.6.5-1.3 1.1-2.5 2.3-3.7 3.6-2.6 3.6-4.6 8.3-6.2 13.4-.9 6.6 5.5 19.6 14 29.5 4.1-.2 8.4-1.4 12.6-3.7-.2-1.7-.5-3.4-.8-5.1zm5.7 22.6a17.61 17.61 0 0 1-4.4-1.5c-.7 2.3-1.9 4.5-3.6 6.5.6.2 1.2.3 1.8.4 2.3-1.4 4.5-3.3 6.2-5.4zM22.3 27.1c-.6 11.1 5.8 18.2 12.7 24.6-6.1-8.1-9.6-12.9-9.6-26.5-1 .5-2 1.2-3.1 1.9zm12 58.3c-3 .5-6.2.6-9.2.6-.8 0-1.7 0-2.5-.1 3.3 3.3 6.8 6 10.3 7.4 1.8-2 3-4.2 3.8-6.6-.8-.4-1.6-.8-2.4-1.3zm-1.3-.9c-1.1-.8-2.2-1.7-3.1-2.5a79.33 79.33 0 0 1-5.8-5.8c-4 .1-7.8-.9-10.9-2.9a6.42 6.42 0 0 1-1.3-1c2.6 4.2 6 8.7 9.6 12.5 3.7.2 7.7.1 11.5-.3zm5.4.1c-.1.6-.2 1.1-.4 1.7 1.6.8 3.2 1.4 4.9 1.5 1.4-1.9 2.6-4.1 3.2-6.4-2 1.3-4.7 2.4-7.7 3.2zM13.8 72.3c2.7 1.7 5.9 2.6 9.3 2.7-7-8.3-12.4-18.5-13.5-25.7-1.3 5.1-1.8 8.2-2.5 13.5v.1a42.87 42.87 0 0 0 2.1 4.6c1.2 2 2.7 3.6 4.6 4.8zm23.5.2c-3.9 2.1-7.9 3.3-11.8 3.6 1.7 1.8 3.3 3.5 5 5 1.2 1.1 2.6 2.2 4 3.1 1-.2 1.9-.3 2.8-.5.7-3.6.5-7.3 0-11.2zm1.3 10.9c3.2-.9 6-2.1 8-3.8.9-3.9.6-8.2-1.3-12.8-1.7-2.8-3.2-5.2-4.7-7.4 2.7 5 2.7 8.7-.2 11.2l-.1.1c-.6.4-1.3.8-1.9 1.2.5 3.9.7 7.8.2 11.5z"/><defs ><path id="B" d="M91 56.9c0 1-.7 1.9-1.9 1.9-1.1 0-1.8-.8-1.8-1.9s.8-1.9 1.9-1.9c1 .1 1.8.9 1.8 1.9zm-3.4 21.3V61.6h3v16.6h-3z"/></defs></svg>
|
After (image error) Size: 2.8 KiB |
1
icons/elixir/elixir-plain.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path d="M90.1 80c.8-.5 1.7-1 2.5-1.5 5.6-4.8 3.6-13.5-5.9-25.7.2 6.1 1.2 12.4 2.2 19.1.4 2.6.8 5.3 1.2 8.1zM36 103.2c3.2 13.7 11.3 21.1 20.5 24.2 5.1.9 10.2.7 15.3-.4.8-.4 1.5-.9 2.2-1.4 2-1.3 3.7-2.8 5.3-4.3-6.5-2.8-13.1-8.2-19.3-14.6-4.8-.3-9.5-.8-13.6-1.4-4-.4-7.4-1.1-10.4-2.1zM34.6 38.7l-.2 1.4c-1.4 7.9-1.5 15-.4 21.2 1.1-7.4 2.6-15 4.7-22.3.3-1.1.6-2.3 1-3.5h.1c1.6-5 3.4-9.8 5.5-14.3-4 5.3-7.5 11.2-10.7 17.5z"/><path d="M33.9 114c3.5 4.4 7.5 7.6 11.9 9.9-5.6-4.6-10-11.5-12-21.4-3.8-1.4-6.8-3.3-9.1-5.7 1.6 6.4 4.6 12.3 9.2 17.2zM33.3 67c-1.8-5.9-2.4-12.7-1.8-20.4-1.1 2.3-2.1 4.8-3.2 7.3-4.5 13.1-6.5 26.7-4.6 38.7 2.1 3.2 5.2 5.8 9.6 7.6-1.4-7.7-1.5-19.9 0-33.2zM35.5 100.8c0 .1 0 .1 0 0 3.2 1.2 6.8 2 11.1 2.5 3.5.6 7.3 1 11.3 1.3-8.3-9.1-15.6-19.8-20.3-28.6-1.1-1.6-2-3.3-2.8-5-1.1 12.2-.8 23.1.7 29.8zM86.9 72.1c-1.1-7.5-2.3-15.1-2.3-22.3C71.9 38 59.6 25.4 60.1 5.1c-.4.3-.8.6-1.1.9-2.2 1.9-4.4 4-6.5 6.3-4.5 6.4-8.1 14.6-10.9 23.5-1.6 11.6 9.6 34.3 24.5 51.7 7.2-.3 14.8-2.5 22.1-6.5-.4-2.9-.8-5.9-1.3-8.9zM96.9 111.8c-2.6-.5-5.2-1.4-7.8-2.6-1.3 4.1-3.4 7.9-6.4 11.4 1.1.3 2.1.6 3.1.7 4.2-2.5 8-5.8 11.1-9.5z"/><path d="M62.1 3.6C61 23.1 72.2 35.5 84.4 46.8 73.7 32.6 67.5 24.1 67.5.3c-1.7.9-3.5 2-5.4 3.3zM83.2 105.8c-5.3.8-10.8 1.1-16.2 1.1-1.4 0-2.9 0-4.3-.1 5.8 5.8 12 10.6 18 13 3.2-3.5 5.3-7.4 6.6-11.6-1.4-.7-2.8-1.5-4.1-2.4zM80.8 104.2c-2-1.4-3.8-2.9-5.5-4.4-3.5-3.1-6.9-6.5-10.1-10.2-7.1.1-13.7-1.6-19.1-5.1-.8-.5-1.6-1.1-2.3-1.7 4.6 7.3 10.5 15.3 16.9 22 6.5.3 13.5.2 20.1-.6zM90.4 104.4c-.2 1-.4 1.9-.7 2.9 2.8 1.4 5.7 2.4 8.6 2.7 2.5-3.4 4.5-7.2 5.7-11.3-3.7 2.5-8.4 4.4-13.6 5.7z"/><path d="M47.2 82.8c4.7 3 10.3 4.6 16.3 4.8-12.3-14.6-21.8-32.4-23.7-45-2.3 8.9-3.1 14.4-4.4 23.6v.2c.9 2.3 2.1 5.1 3.7 8.1 2.1 3.4 4.8 6.2 8.1 8.3zM88.5 83.2c-6.8 3.7-13.9 5.8-20.7 6.3 2.9 3.2 5.8 6.2 8.8 8.8 2.1 1.9 4.5 3.8 7.1 5.5 1.7-.3 3.3-.6 4.9-.9 1-6.3.7-12.9-.1-19.7zM90.7 102.3c5.6-1.5 10.5-3.6 14.1-6.6 1.5-6.9 1-14.4-2.3-22.4-2.9-4.9-5.7-9.2-8.3-13 4.8 8.8 4.7 15.2-.4 19.6l-.1.1c-1.1.7-2.2 1.4-3.4 2.1.9 6.9 1.3 13.8.4 20.2z"/></svg>
|
After (image error) Size: 2.1 KiB |
1
icons/fsharp/fsharp-original.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg version="1.2" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" overflow="visible"><path fill="#378BBA" d="M0 64.5L60.7 3.8v30.4L30.4 64.5l30.4 30.4v30.4L0 64.5z"/><path fill="#378BBA" d="M39.1 64.5l21.7-21.7v43.4L39.1 64.5z"/><path fill="#30B9DB" d="M128 64.5L65.1 3.8v30.4l30.4 30.4-30.4 30.3v30.4L128 64.5z"/></svg>
|
After (image error) Size: 349 B |
1
icons/fsharp/fsharp-plain.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path d="M0 64.5L60.7 3.8v30.4L30.4 64.5l30.4 30.4v30.4L0 64.5zm39.1 0l21.7-21.7v43.4L39.1 64.5zm88.9 0L65.1 3.8v30.4l30.4 30.4-30.4 30.3v30.4L128 64.5z"/></svg>
|
After (image error) Size: 223 B |
17
icons/jupyter/jupyter-original-wordmark.svg
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(30.588235%,30.588235%,30.588235%);fill-opacity:1;" d="M 6.648438 67.351562 C 6.648438 71.261719 6.285156 72.535156 5.351562 73.472656 C 4.316406 74.28125 2.96875 74.726562 1.570312 74.726562 L 1.933594 76.960938 C 4.097656 76.984375 6.199219 76.324219 7.839844 75.105469 C 8.722656 74.175781 9.378906 73.105469 9.769531 71.953125 C 10.160156 70.800781 10.277344 69.59375 10.117188 68.402344 L 10.117188 53.609375 L 6.648438 53.609375 Z M 6.648438 67.351562 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(30.588235%,30.588235%,30.588235%);fill-opacity:1;" d="M 32.53125 65.589844 C 32.53125 67.265625 32.53125 68.761719 32.683594 70.058594 L 29.601562 70.058594 L 29.394531 67.398438 C 28.75 68.339844 27.828125 69.117188 26.722656 69.648438 C 25.617188 70.183594 24.367188 70.457031 23.101562 70.4375 C 20.097656 70.4375 16.523438 69.03125 16.523438 63.289062 L 16.523438 53.746094 L 19.996094 53.746094 L 19.996094 62.683594 C 19.996094 65.789062 21.109375 67.867188 24.242188 67.867188 C 24.886719 67.875 25.527344 67.769531 26.125 67.558594 C 26.71875 67.347656 27.261719 67.039062 27.71875 66.644531 C 28.175781 66.25 28.535156 65.78125 28.777344 65.269531 C 29.023438 64.753906 29.144531 64.203125 29.136719 63.644531 L 29.136719 53.632812 L 32.605469 53.632812 L 32.605469 65.5 Z M 32.53125 65.589844 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(30.588235%,30.588235%,30.588235%);fill-opacity:1;" d="M 39.109375 59.0625 C 39.109375 56.984375 39.109375 55.285156 38.953125 53.746094 L 42.0625 53.746094 L 42.214844 56.539062 C 42.910156 55.527344 43.90625 54.699219 45.101562 54.140625 C 46.296875 53.582031 47.644531 53.3125 49 53.363281 C 53.613281 53.363281 57.082031 56.695312 57.082031 61.652344 C 57.082031 67.507812 52.914062 70.414062 48.40625 70.414062 C 47.253906 70.457031 46.105469 70.246094 45.074219 69.792969 C 44.046875 69.34375 43.167969 68.671875 42.527344 67.84375 L 42.527344 76.78125 L 39.109375 76.78125 Z M 42.527344 63.417969 C 42.535156 63.824219 42.589844 64.230469 42.683594 64.625 C 42.976562 65.617188 43.644531 66.496094 44.582031 67.125 C 45.519531 67.753906 46.675781 68.089844 47.863281 68.089844 C 51.515625 68.089844 53.664062 65.519531 53.664062 61.789062 C 53.664062 58.527344 51.644531 55.734375 47.992188 55.734375 C 46.546875 55.835938 45.195312 56.386719 44.1875 57.289062 C 43.183594 58.191406 42.589844 59.375 42.527344 60.625 Z M 42.527344 63.417969 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(30.588235%,30.588235%,30.588235%);fill-opacity:1;" d="M 63.265625 53.730469 L 67.4375 63.359375 C 67.875 64.433594 68.34375 65.726562 68.652344 66.6875 C 69.015625 65.707031 69.402344 64.453125 69.871094 63.292969 L 73.652344 53.730469 L 77.304688 53.730469 L 72.125 65.347656 C 69.535156 70.933594 67.953125 73.816406 65.570312 75.558594 C 64.371094 76.507812 62.90625 77.167969 61.324219 77.480469 L 60.46875 74.980469 C 61.578125 74.664062 62.605469 74.171875 63.5 73.527344 C 64.761719 72.636719 65.765625 71.503906 66.425781 70.21875 C 66.566406 69.996094 66.664062 69.753906 66.710938 69.503906 C 66.679688 69.234375 66.601562 68.972656 66.476562 68.722656 L 59.433594 53.683594 L 63.214844 53.683594 Z M 63.265625 53.730469 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(30.588235%,30.588235%,30.588235%);fill-opacity:1;" d="M 86.515625 49.042969 L 86.515625 53.734375 L 91.488281 53.734375 L 91.488281 55.96875 L 86.515625 55.96875 L 86.515625 64.773438 C 86.515625 66.785156 87.191406 67.945312 89.105469 67.945312 C 89.789062 67.953125 90.464844 67.886719 91.125 67.742188 L 91.28125 69.980469 C 90.292969 70.273438 89.246094 70.410156 88.199219 70.378906 C 87.507812 70.417969 86.8125 70.324219 86.164062 70.109375 C 85.515625 69.894531 84.929688 69.558594 84.445312 69.128906 C 83.390625 67.910156 82.910156 66.394531 83.097656 64.882812 L 83.097656 55.945312 L 80.144531 55.945312 L 80.144531 53.710938 L 83.148438 53.710938 L 83.148438 49.734375 Z M 86.515625 49.042969 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(30.588235%,30.588235%,30.588235%);fill-opacity:1;" d="M 97.882812 62.417969 C 97.8125 63.175781 97.933594 63.9375 98.238281 64.648438 C 98.542969 65.363281 99.023438 66.011719 99.644531 66.546875 C 100.269531 67.085938 101.019531 67.5 101.847656 67.761719 C 102.671875 68.027344 103.558594 68.128906 104.433594 68.070312 C 106.210938 68.105469 107.976562 67.816406 109.613281 67.21875 L 110.210938 69.453125 C 108.199219 70.167969 106.039062 70.511719 103.867188 70.460938 C 102.597656 70.535156 101.328125 70.371094 100.140625 69.984375 C 98.953125 69.59375 97.878906 68.988281 96.988281 68.207031 C 96.097656 67.425781 95.410156 66.488281 94.980469 65.457031 C 94.550781 64.429688 94.382812 63.328125 94.488281 62.238281 C 94.488281 57.320312 97.882812 53.433594 103.425781 53.433594 C 109.640625 53.433594 111.195312 58.125 111.195312 61.121094 C 111.226562 61.582031 111.226562 62.042969 111.195312 62.503906 L 97.804688 62.503906 Z M 108.035156 60.183594 C 108.136719 59.585938 108.085938 58.976562 107.890625 58.394531 C 107.695312 57.816406 107.355469 57.28125 106.898438 56.824219 C 106.441406 56.367188 105.878906 55.996094 105.242188 55.746094 C 104.609375 55.492188 103.917969 55.359375 103.21875 55.355469 C 101.796875 55.445312 100.460938 55.988281 99.480469 56.882812 C 98.496094 57.773438 97.9375 58.949219 97.910156 60.183594 Z M 108.035156 60.183594 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(30.588235%,30.588235%,30.588235%);fill-opacity:1;" d="M 116.460938 58.808594 C 116.460938 56.890625 116.460938 55.234375 116.304688 53.714844 L 119.414062 53.714844 L 119.414062 56.910156 L 119.570312 56.910156 C 119.894531 55.925781 120.570312 55.050781 121.496094 54.410156 C 122.425781 53.769531 123.5625 53.394531 124.75 53.335938 C 125.074219 53.300781 125.40625 53.300781 125.734375 53.335938 L 125.734375 56.128906 C 125.335938 56.089844 124.9375 56.089844 124.542969 56.128906 C 123.367188 56.167969 122.246094 56.574219 121.394531 57.273438 C 120.539062 57.972656 120.011719 58.917969 119.90625 59.925781 C 119.808594 60.386719 119.757812 60.847656 119.75 61.3125 L 119.75 70.003906 L 116.332031 70.003906 L 116.332031 58.832031 Z M 116.460938 58.808594 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(46.27451%,46.27451%,46.666667%);fill-opacity:1;" d="M 109.765625 7.28125 C 109.828125 8.785156 109.449219 10.277344 108.675781 11.5625 C 107.902344 12.847656 106.765625 13.875 105.414062 14.511719 C 104.058594 15.148438 102.542969 15.363281 101.074219 15.132812 C 99.59375 14.902344 98.21875 14.234375 97.121094 13.21875 C 96.019531 12.199219 95.246094 10.875 94.890625 9.414062 C 94.539062 7.953125 94.625 6.417969 95.136719 5 C 95.644531 3.589844 96.5625 2.359375 97.765625 1.46875 C 98.96875 0.582031 100.410156 0.0703125 101.902344 0.0078125 C 103.898438 -0.078125 105.851562 0.640625 107.324219 2.003906 C 108.800781 3.371094 109.675781 5.265625 109.761719 7.277344 Z M 109.765625 7.28125 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(95.294118%,46.666667%,14.901961%);fill-opacity:1;" d="M 65.757812 96.789062 C 45.660156 96.789062 28.109375 89.425781 18.992188 78.523438 C 22.386719 88.304688 28.710938 96.777344 37.09375 102.777344 C 45.476562 108.777344 55.496094 111.992188 65.769531 111.992188 C 76.042969 111.992188 86.0625 108.773438 94.445312 102.777344 C 102.824219 96.78125 109.148438 88.304688 112.539062 78.523438 C 103.40625 89.425781 85.855469 96.789062 65.757812 96.789062 Z M 65.757812 96.789062 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(95.294118%,46.666667%,14.901961%);fill-opacity:1;" d="M 65.75 25.882812 C 85.847656 25.882812 103.402344 33.25 112.515625 44.148438 C 109.121094 34.367188 102.796875 25.894531 94.414062 19.894531 C 86.03125 13.898438 76.015625 10.675781 65.742188 10.675781 C 55.472656 10.675781 45.449219 13.898438 37.070312 19.894531 C 28.6875 25.890625 22.359375 34.367188 18.96875 44.148438 C 28.101562 33.269531 45.652344 25.882812 65.75 25.882812 Z M 65.75 25.882812 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(61.960784%,61.960784%,61.960784%);fill-opacity:1;" d="M 38.164062 117.984375 C 38.246094 119.878906 37.769531 121.757812 36.792969 123.382812 C 35.8125 125.007812 34.386719 126.304688 32.675781 127.101562 C 30.964844 127.902344 29.089844 128.175781 27.203125 127.886719 C 25.316406 127.59375 23.609375 126.753906 22.222656 125.46875 C 20.839844 124.183594 19.863281 122.515625 19.414062 120.671875 C 18.972656 118.824219 19.082031 116.890625 19.726562 115.105469 C 20.375 113.324219 21.53125 111.777344 23.054688 110.652344 C 24.578125 109.527344 26.390625 108.894531 28.269531 108.820312 C 30.789062 108.714844 33.238281 109.621094 35.097656 111.339844 C 36.953125 113.066406 38.058594 115.453125 38.164062 117.988281 Z M 38.164062 117.984375 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(38.039216%,38.431373%,38.431373%);fill-opacity:1;" d="M 21.285156 23.417969 C 20.183594 23.46875 19.085938 23.179688 18.144531 22.601562 C 17.199219 22.023438 16.445312 21.171875 15.980469 20.167969 C 15.511719 19.160156 15.359375 18.03125 15.527344 16.929688 C 15.695312 15.828125 16.183594 14.796875 16.933594 13.980469 C 17.679688 13.160156 18.652344 12.582031 19.722656 12.316406 C 20.792969 12.046875 21.925781 12.113281 22.960938 12.5 C 24 12.882812 24.898438 13.566406 25.546875 14.46875 C 27.117188 16.640625 26.953125 19.617188 25.148438 21.597656 C 24.148438 22.699219 22.757812 23.351562 21.28125 23.417969 Z M 21.285156 23.417969 "/>
|
||||
</g>
|
||||
</svg>
|
After (image error) Size: 9.6 KiB |
10
icons/jupyter/jupyter-original.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(46.27451%,46.27451%,46.666667%);fill-opacity:1;" d="M 109.765625 7.28125 C 109.828125 8.785156 109.449219 10.277344 108.675781 11.5625 C 107.902344 12.847656 106.765625 13.875 105.414062 14.511719 C 104.058594 15.148438 102.542969 15.363281 101.074219 15.132812 C 99.59375 14.902344 98.21875 14.234375 97.121094 13.21875 C 96.019531 12.199219 95.246094 10.875 94.890625 9.414062 C 94.539062 7.953125 94.625 6.417969 95.136719 5 C 95.644531 3.589844 96.5625 2.359375 97.765625 1.46875 C 98.96875 0.582031 100.410156 0.0703125 101.902344 0.0078125 C 103.898438 -0.078125 105.851562 0.640625 107.324219 2.003906 C 108.800781 3.371094 109.675781 5.265625 109.761719 7.277344 Z M 109.765625 7.28125 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(95.294118%,46.666667%,14.901961%);fill-opacity:1;" d="M 65.757812 96.789062 C 45.660156 96.789062 28.109375 89.425781 18.992188 78.523438 C 22.386719 88.304688 28.710938 96.777344 37.09375 102.777344 C 45.476562 108.777344 55.496094 111.992188 65.769531 111.992188 C 76.042969 111.992188 86.0625 108.773438 94.445312 102.777344 C 102.824219 96.78125 109.148438 88.304688 112.539062 78.523438 C 103.40625 89.425781 85.855469 96.789062 65.757812 96.789062 Z M 65.757812 96.789062 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(95.294118%,46.666667%,14.901961%);fill-opacity:1;" d="M 65.75 25.882812 C 85.847656 25.882812 103.402344 33.25 112.515625 44.148438 C 109.121094 34.367188 102.796875 25.894531 94.414062 19.894531 C 86.03125 13.898438 76.015625 10.675781 65.742188 10.675781 C 55.472656 10.675781 45.449219 13.898438 37.070312 19.894531 C 28.6875 25.890625 22.359375 34.367188 18.96875 44.148438 C 28.101562 33.269531 45.652344 25.882812 65.75 25.882812 Z M 65.75 25.882812 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(59.607843%,59.215686%,59.607843%);fill-opacity:1;" d="M 38.164062 117.984375 C 38.246094 119.878906 37.769531 121.757812 36.792969 123.382812 C 35.8125 125.007812 34.386719 126.304688 32.675781 127.101562 C 30.964844 127.902344 29.089844 128.175781 27.203125 127.886719 C 25.316406 127.59375 23.609375 126.753906 22.222656 125.46875 C 20.839844 124.183594 19.863281 122.515625 19.414062 120.671875 C 18.972656 118.824219 19.082031 116.890625 19.726562 115.105469 C 20.375 113.324219 21.53125 111.777344 23.054688 110.652344 C 24.578125 109.527344 26.390625 108.894531 28.269531 108.820312 C 30.789062 108.714844 33.238281 109.621094 35.097656 111.339844 C 36.953125 113.066406 38.058594 115.453125 38.164062 117.988281 Z M 38.164062 117.984375 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(43.529412%,43.921569%,43.921569%);fill-opacity:1;" d="M 21.285156 23.417969 C 20.183594 23.46875 19.085938 23.179688 18.144531 22.601562 C 17.199219 22.023438 16.445312 21.171875 15.980469 20.167969 C 15.511719 19.160156 15.359375 18.03125 15.527344 16.929688 C 15.695312 15.828125 16.183594 14.796875 16.933594 13.980469 C 17.679688 13.160156 18.652344 12.582031 19.722656 12.316406 C 20.792969 12.046875 21.925781 12.113281 22.960938 12.5 C 24 12.882812 24.898438 13.566406 25.546875 14.46875 C 27.117188 16.640625 26.953125 19.617188 25.148438 21.597656 C 24.148438 22.699219 22.757812 23.351562 21.28125 23.417969 Z M 21.285156 23.417969 "/>
|
||||
</g>
|
||||
</svg>
|
After (image error) Size: 3.4 KiB |
17
icons/jupyter/jupyter-plain-wordmark.svg
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 5.429688 67.058594 C 5.429688 70.941406 5.042969 72.207031 4.042969 73.136719 C 2.9375 73.9375 1.496094 74.378906 0 74.378906 L 0.386719 76.597656 C 2.703125 76.621094 4.949219 75.964844 6.707031 74.757812 C 7.648438 73.832031 8.351562 72.769531 8.769531 71.625 C 9.1875 70.484375 9.3125 69.285156 9.140625 68.101562 L 9.140625 53.417969 L 5.429688 53.417969 Z M 5.429688 67.058594 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 31.589844 64.890625 C 31.589844 66.5 31.589844 67.933594 31.742188 69.179688 L 28.621094 69.179688 L 28.410156 66.625 C 27.753906 67.53125 26.820312 68.277344 25.699219 68.785156 C 24.582031 69.296875 23.3125 69.5625 22.03125 69.542969 C 18.984375 69.542969 15.359375 68.191406 15.359375 62.683594 L 15.359375 53.527344 L 18.878906 53.527344 L 18.878906 62.101562 C 18.878906 65.082031 20.011719 67.074219 23.183594 67.074219 C 23.839844 67.082031 24.488281 66.980469 25.09375 66.78125 C 25.695312 66.578125 26.246094 66.28125 26.710938 65.902344 C 27.175781 65.523438 27.539062 65.074219 27.78125 64.582031 C 28.03125 64.089844 28.15625 63.5625 28.148438 63.023438 L 28.148438 53.417969 L 31.664062 53.417969 L 31.664062 64.804688 Z M 31.589844 64.890625 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 39.070312 58.300781 C 39.070312 56.15625 39.070312 54.398438 38.910156 52.8125 L 42.074219 52.8125 L 42.230469 55.695312 C 42.933594 54.648438 43.949219 53.796875 45.164062 53.21875 C 46.378906 52.640625 47.75 52.363281 49.128906 52.414062 C 53.816406 52.414062 57.34375 55.855469 57.34375 60.976562 C 57.34375 67.023438 53.105469 70.023438 48.523438 70.023438 C 47.351562 70.066406 46.183594 69.851562 45.136719 69.382812 C 44.089844 68.917969 43.199219 68.222656 42.546875 67.371094 L 42.546875 76.597656 L 39.070312 76.597656 Z M 42.546875 62.796875 C 42.554688 63.21875 42.609375 63.636719 42.703125 64.046875 C 43.003906 65.070312 43.683594 65.976562 44.636719 66.625 C 45.589844 67.277344 46.765625 67.625 47.972656 67.625 C 51.683594 67.625 53.867188 64.96875 53.867188 61.117188 C 53.867188 57.75 51.816406 54.863281 48.101562 54.863281 C 46.632812 54.96875 45.257812 55.539062 44.234375 56.46875 C 43.214844 57.402344 42.609375 58.625 42.546875 59.914062 Z M 42.546875 62.796875 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 63.34375 53.460938 L 67.648438 62.84375 C 68.097656 63.890625 68.582031 65.148438 68.898438 66.085938 C 69.273438 65.128906 69.675781 63.910156 70.15625 62.777344 L 74.058594 53.460938 L 77.824219 53.460938 L 72.480469 64.78125 C 69.808594 70.21875 68.179688 73.03125 65.722656 74.726562 C 64.484375 75.652344 62.972656 76.292969 61.339844 76.597656 L 60.460938 74.164062 C 61.605469 73.855469 62.664062 73.375 63.585938 72.746094 C 64.886719 71.878906 65.921875 70.777344 66.605469 69.523438 C 66.75 69.308594 66.851562 69.070312 66.898438 68.828125 C 66.863281 68.566406 66.785156 68.3125 66.65625 68.066406 L 59.390625 53.417969 L 63.292969 53.417969 Z M 63.34375 53.460938 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 87.222656 48.378906 L 87.222656 53.03125 L 92.160156 53.03125 L 92.160156 55.246094 L 87.222656 55.246094 L 87.222656 63.976562 C 87.222656 65.972656 87.894531 67.121094 89.792969 67.121094 C 90.472656 67.128906 91.144531 67.0625 91.800781 66.917969 L 91.953125 69.140625 C 90.972656 69.429688 89.933594 69.566406 88.894531 69.535156 C 88.207031 69.574219 87.515625 69.480469 86.875 69.265625 C 86.230469 69.054688 85.648438 68.722656 85.167969 68.296875 C 84.121094 67.085938 83.640625 65.582031 83.828125 64.085938 L 83.828125 55.222656 L 80.894531 55.222656 L 80.894531 53.007812 L 83.878906 53.007812 L 83.878906 49.0625 Z M 87.222656 48.378906 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 98.789062 61.441406 C 98.714844 62.203125 98.839844 62.96875 99.15625 63.683594 C 99.476562 64.402344 99.972656 65.054688 100.621094 65.589844 C 101.269531 66.132812 102.046875 66.550781 102.90625 66.8125 C 103.761719 67.078125 104.683594 67.183594 105.59375 67.121094 C 107.4375 67.15625 109.273438 66.867188 110.972656 66.265625 L 111.59375 68.511719 C 109.503906 69.230469 107.261719 69.578125 105.003906 69.527344 C 103.6875 69.601562 102.367188 69.433594 101.132812 69.046875 C 99.902344 68.65625 98.785156 68.046875 97.859375 67.261719 C 96.933594 66.476562 96.222656 65.53125 95.773438 64.496094 C 95.328125 63.460938 95.152344 62.355469 95.265625 61.261719 C 95.265625 56.316406 98.789062 52.410156 104.546875 52.410156 C 111 52.410156 112.617188 57.125 112.617188 60.136719 C 112.648438 60.601562 112.648438 61.0625 112.617188 61.527344 L 98.707031 61.527344 Z M 109.332031 59.195312 C 109.4375 58.59375 109.386719 57.980469 109.183594 57.394531 C 108.980469 56.816406 108.625 56.277344 108.152344 55.816406 C 107.675781 55.359375 107.09375 54.984375 106.433594 54.734375 C 105.773438 54.480469 105.058594 54.34375 104.332031 54.339844 C 102.855469 54.429688 101.46875 54.976562 100.449219 55.875 C 99.425781 56.773438 98.84375 57.953125 98.816406 59.195312 Z M 109.332031 59.195312 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 117.914062 58.054688 C 117.914062 56.085938 117.914062 54.386719 117.761719 52.824219 L 120.800781 52.824219 L 120.800781 56.105469 L 120.949219 56.105469 C 121.269531 55.09375 121.929688 54.195312 122.832031 53.539062 C 123.742188 52.882812 124.851562 52.496094 126.015625 52.4375 C 126.332031 52.398438 126.65625 52.398438 126.976562 52.4375 L 126.976562 55.304688 C 126.585938 55.261719 126.199219 55.261719 125.8125 55.304688 C 124.664062 55.34375 123.566406 55.757812 122.734375 56.476562 C 121.898438 57.195312 121.382812 58.164062 121.28125 59.199219 C 121.183594 59.671875 121.136719 60.144531 121.125 60.621094 L 121.125 69.542969 L 117.785156 69.542969 L 117.785156 58.078125 Z M 117.914062 58.054688 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 109.765625 7.28125 C 109.828125 8.785156 109.449219 10.277344 108.675781 11.5625 C 107.902344 12.847656 106.765625 13.875 105.414062 14.511719 C 104.058594 15.148438 102.542969 15.363281 101.074219 15.132812 C 99.59375 14.902344 98.21875 14.234375 97.121094 13.21875 C 96.019531 12.199219 95.246094 10.875 94.890625 9.414062 C 94.539062 7.953125 94.625 6.417969 95.136719 5 C 95.644531 3.589844 96.5625 2.359375 97.765625 1.46875 C 98.96875 0.582031 100.410156 0.0703125 101.902344 0.0078125 C 103.898438 -0.078125 105.851562 0.640625 107.324219 2.003906 C 108.800781 3.371094 109.675781 5.265625 109.761719 7.277344 Z M 109.765625 7.28125 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 65.757812 96.789062 C 45.660156 96.789062 28.109375 89.425781 18.992188 78.523438 C 22.386719 88.304688 28.710938 96.777344 37.09375 102.777344 C 45.476562 108.777344 55.496094 111.992188 65.769531 111.992188 C 76.042969 111.992188 86.0625 108.773438 94.445312 102.777344 C 102.824219 96.78125 109.148438 88.304688 112.539062 78.523438 C 103.40625 89.425781 85.855469 96.789062 65.757812 96.789062 Z M 65.757812 96.789062 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 65.75 25.882812 C 85.847656 25.882812 103.402344 33.25 112.515625 44.148438 C 109.121094 34.367188 102.796875 25.894531 94.414062 19.894531 C 86.03125 13.898438 76.015625 10.675781 65.742188 10.675781 C 55.472656 10.675781 45.449219 13.898438 37.070312 19.894531 C 28.6875 25.890625 22.359375 34.367188 18.96875 44.148438 C 28.101562 33.269531 45.652344 25.882812 65.75 25.882812 Z M 65.75 25.882812 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 38.164062 117.984375 C 38.246094 119.878906 37.769531 121.757812 36.792969 123.382812 C 35.8125 125.007812 34.386719 126.304688 32.675781 127.101562 C 30.964844 127.902344 29.089844 128.175781 27.203125 127.886719 C 25.316406 127.59375 23.609375 126.753906 22.222656 125.46875 C 20.839844 124.183594 19.863281 122.515625 19.414062 120.671875 C 18.972656 118.824219 19.082031 116.890625 19.726562 115.105469 C 20.375 113.324219 21.53125 111.777344 23.054688 110.652344 C 24.578125 109.527344 26.390625 108.894531 28.269531 108.820312 C 30.789062 108.714844 33.238281 109.621094 35.097656 111.339844 C 36.953125 113.066406 38.058594 115.453125 38.164062 117.988281 Z M 38.164062 117.984375 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 21.285156 23.417969 C 20.183594 23.46875 19.085938 23.179688 18.144531 22.601562 C 17.199219 22.023438 16.445312 21.171875 15.980469 20.167969 C 15.511719 19.160156 15.359375 18.03125 15.527344 16.929688 C 15.695312 15.828125 16.183594 14.796875 16.933594 13.980469 C 17.679688 13.160156 18.652344 12.582031 19.722656 12.316406 C 20.792969 12.046875 21.925781 12.113281 22.960938 12.5 C 24 12.882812 24.898438 13.566406 25.546875 14.46875 C 27.117188 16.640625 26.953125 19.617188 25.148438 21.597656 C 24.148438 22.699219 22.757812 23.351562 21.28125 23.417969 Z M 21.285156 23.417969 "/>
|
||||
</g>
|
||||
</svg>
|
After (image error) Size: 9.3 KiB |
10
icons/jupyter/jupyter-plain.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 109.765625 7.28125 C 109.828125 8.785156 109.449219 10.277344 108.675781 11.5625 C 107.902344 12.847656 106.765625 13.875 105.414062 14.511719 C 104.058594 15.148438 102.542969 15.363281 101.074219 15.132812 C 99.59375 14.902344 98.21875 14.234375 97.121094 13.21875 C 96.019531 12.199219 95.246094 10.875 94.890625 9.414062 C 94.539062 7.953125 94.625 6.417969 95.136719 5 C 95.644531 3.589844 96.5625 2.359375 97.765625 1.46875 C 98.96875 0.582031 100.410156 0.0703125 101.902344 0.0078125 C 103.898438 -0.078125 105.851562 0.640625 107.324219 2.003906 C 108.800781 3.371094 109.675781 5.265625 109.761719 7.277344 Z M 109.765625 7.28125 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 65.757812 96.789062 C 45.660156 96.789062 28.109375 89.425781 18.992188 78.523438 C 22.386719 88.304688 28.710938 96.777344 37.09375 102.777344 C 45.476562 108.777344 55.496094 111.992188 65.769531 111.992188 C 76.042969 111.992188 86.0625 108.773438 94.445312 102.777344 C 102.824219 96.78125 109.148438 88.304688 112.539062 78.523438 C 103.40625 89.425781 85.855469 96.789062 65.757812 96.789062 Z M 65.757812 96.789062 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 65.75 25.882812 C 85.847656 25.882812 103.402344 33.25 112.515625 44.148438 C 109.121094 34.367188 102.796875 25.894531 94.414062 19.894531 C 86.03125 13.898438 76.015625 10.675781 65.742188 10.675781 C 55.472656 10.675781 45.449219 13.898438 37.070312 19.894531 C 28.6875 25.890625 22.359375 34.367188 18.96875 44.148438 C 28.101562 33.269531 45.652344 25.882812 65.75 25.882812 Z M 65.75 25.882812 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 38.164062 117.984375 C 38.246094 119.878906 37.769531 121.757812 36.792969 123.382812 C 35.8125 125.007812 34.386719 126.304688 32.675781 127.101562 C 30.964844 127.902344 29.089844 128.175781 27.203125 127.886719 C 25.316406 127.59375 23.609375 126.753906 22.222656 125.46875 C 20.839844 124.183594 19.863281 122.515625 19.414062 120.671875 C 18.972656 118.824219 19.082031 116.890625 19.726562 115.105469 C 20.375 113.324219 21.53125 111.777344 23.054688 110.652344 C 24.578125 109.527344 26.390625 108.894531 28.269531 108.820312 C 30.789062 108.714844 33.238281 109.621094 35.097656 111.339844 C 36.953125 113.066406 38.058594 115.453125 38.164062 117.988281 Z M 38.164062 117.984375 "/>
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 21.285156 23.417969 C 20.183594 23.46875 19.085938 23.179688 18.144531 22.601562 C 17.199219 22.023438 16.445312 21.171875 15.980469 20.167969 C 15.511719 19.160156 15.359375 18.03125 15.527344 16.929688 C 15.695312 15.828125 16.183594 14.796875 16.933594 13.980469 C 17.679688 13.160156 18.652344 12.582031 19.722656 12.316406 C 20.792969 12.046875 21.925781 12.113281 22.960938 12.5 C 24 12.882812 24.898438 13.566406 25.546875 14.46875 C 27.117188 16.640625 26.953125 19.617188 25.148438 21.597656 C 24.148438 22.699219 22.757812 23.351562 21.28125 23.417969 Z M 21.285156 23.417969 "/>
|
||||
</g>
|
||||
</svg>
|
After (image error) Size: 3.3 KiB |
29
icons/matlab/matlab-original.svg
Normal file
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
|
||||
<defs>
|
||||
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="16.803" y1="16.631" x2="15.013" y2="22.411" gradientTransform="matrix(4,0,0,-4,0,128)">
|
||||
<stop offset="0" style="stop-color:rgb(33.333333%,6.666667%,13.333333%);stop-opacity:1;"/>
|
||||
<stop offset="0.23" style="stop-color:rgb(33.333333%,13.333333%,20%);stop-opacity:1;"/>
|
||||
<stop offset="0.36" style="stop-color:rgb(33.333333%,20%,26.666667%);stop-opacity:1;"/>
|
||||
<stop offset="0.51" style="stop-color:rgb(40%,26.666667%,33.333333%);stop-opacity:1;"/>
|
||||
<stop offset="0.66" style="stop-color:rgb(33.333333%,40%,53.333333%);stop-opacity:1;"/>
|
||||
<stop offset="0.84" style="stop-color:rgb(13.333333%,60%,86.666667%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="29.71" y1="18.983" x2="11.71" y2="14.563" gradientTransform="matrix(4,0,0,4,0,0)">
|
||||
<stop offset="0.081" style="stop-color:rgb(80%,20%,20%);stop-opacity:1;"/>
|
||||
<stop offset="0.189" style="stop-color:rgb(87.058824%,32.156863%,22.352941%);stop-opacity:1;"/>
|
||||
<stop offset="0.313" style="stop-color:rgb(94.117647%,43.137255%,24.313725%);stop-opacity:1;"/>
|
||||
<stop offset="0.421" style="stop-color:rgb(98.039216%,50.196078%,25.882353%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(99.607843%,52.54902%,26.27451%);stop-opacity:1;"/>
|
||||
<stop offset="0.58" style="stop-color:rgb(98.039216%,49.803922%,25.882353%);stop-opacity:1;"/>
|
||||
<stop offset="0.696" style="stop-color:rgb(93.72549%,42.352941%,24.313725%);stop-opacity:1;"/>
|
||||
<stop offset="0.833" style="stop-color:rgb(86.27451%,29.803922%,21.568627%);stop-opacity:1;"/>
|
||||
<stop offset="0.916" style="stop-color:rgb(81.176471%,21.176471%,20%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(26.666667%,60%,86.666667%);fill-opacity:1;" d="M 8 70.199219 L 39.878906 57.320312 C 43.117188 53.042969 46.757812 49.089844 50.761719 45.519531 C 53.398438 44.121094 58.359375 44.878906 67.441406 33.601562 C 76.238281 22.601562 79.039062 13.199219 83.160156 13.199219 C 89.679688 13.199219 94.480469 27.28125 101.761719 48.601562 C 106.949219 64.882812 113.039062 80.871094 120 96.480469 C 112.398438 89.398438 105.921875 81.761719 98.519531 81.960938 C 91.640625 82.121094 84 90.28125 75.640625 100.761719 C 69 109.160156 60.199219 114.921875 56.761719 114.800781 C 56.761719 114.800781 47.878906 89.679688 40.441406 85.601562 C 37.308594 84.320312 33.753906 84.617188 30.878906 86.398438 L 8 70.160156 Z M 8 70.199219 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 79.199219 16.078125 C 76.519531 19.679688 73.28125 26.28125 67.441406 33.601562 C 58.359375 44.878906 53.441406 44.121094 50.761719 45.519531 C 46.742188 49.070312 43.09375 53.027344 39.878906 57.320312 L 53.078125 66.960938 C 64.28125 51.679688 70.28125 35.121094 74.960938 24.398438 C 76.132812 21.511719 77.550781 18.726562 79.199219 16.078125 Z M 79.199219 16.078125 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 83.199219 13.199219 C 74.480469 13.199219 68.519531 59.121094 36.320312 84.761719 C 45.359375 83.28125 53.199219 105.71875 56.800781 114.800781 C 72.800781 112.078125 85.601562 81.480469 98.519531 81.960938 C 105.921875 82.238281 112.398438 89.398438 120 96.480469 C 102.640625 60 94.519531 13.199219 83.199219 13.199219 Z M 83.199219 13.199219 "/>
|
||||
</g>
|
||||
</svg>
|
After (image error) Size: 3.5 KiB |
6
icons/matlab/matlab-plain.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 123.964844 91.902344 C 116.71875 73.605469 110.703125 54.84375 103.78125 36.425781 C 100.726562 28.585938 97.734375 20.679688 93.566406 13.34375 C 91.910156 10.710938 90.328125 7.816406 87.613281 6.128906 C 86.925781 5.695312 86.15625 5.511719 85.390625 5.523438 C 84.121094 5.550781 82.855469 6.117188 81.886719 6.9375 C 78.242188 9.824219 76.082031 14.019531 73.660156 17.886719 C 69.382812 25.058594 64.871094 32.574219 57.71875 37.234375 C 54.359375 39.605469 49.957031 39.863281 46.71875 42.40625 C 42.289062 45.746094 39.277344 50.484375 35.644531 54.589844 C 34.816406 55.578125 33.535156 55.972656 32.417969 56.507812 C 21.578125 60.929688 10.738281 65.335938 0 69.980469 C 9.089844 77.011719 18.777344 83.269531 28.050781 90.058594 C 30.59375 89.554688 33.148438 88.511719 35.769531 88.976562 C 39.929688 90.277344 42.367188 94.261719 44.273438 97.90625 C 48.148438 105.847656 50.949219 114.230469 54.085938 122.476562 C 59.332031 122.101562 64.054688 119.398438 68.113281 116.21875 C 75.921875 109.894531 81.871094 101.71875 88.417969 94.171875 C 91.558594 90.871094 94.757812 86.941406 99.46875 86.023438 C 104.230469 84.871094 109.332031 86.578125 112.863281 89.859375 C 117.820312 94.289062 122.207031 99.410156 128 102.800781 C 127.222656 98.964844 125.355469 95.523438 123.964844 91.902344 Z M 42.960938 79.011719 C 38.390625 81.714844 33.535156 83.941406 28.785156 86.300781 C 21.328125 81.304688 14.0625 76.011719 6.734375 70.835938 C 16.613281 66.507812 26.644531 62.488281 36.652344 58.449219 C 41.398438 62.152344 46.289062 65.671875 51.035156 69.375 C 48.804688 72.9375 46.121094 76.246094 42.960938 79.011719 Z M 53.128906 66.597656 C 48.414062 63.058594 43.640625 59.609375 39 55.976562 C 41.976562 51.921875 45.238281 48 49.140625 44.804688 C 51.726562 43.148438 54.882812 42.6875 57.566406 41.195312 C 63.933594 38.015625 68.277344 32.183594 72.425781 26.613281 C 67.109375 40.417969 61.433594 54.277344 53.128906 66.597656 Z M 53.128906 66.597656 "/>
|
||||
</g>
|
||||
</svg>
|
After (image error) Size: 2.2 KiB |
1
icons/ocaml/ocaml-original-wordmark.svg
Normal file
After (image error) Size: 6.0 KiB |
1
icons/ocaml/ocaml-original.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><defs><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="82.925" y1="97.718" x2="82.925" y2="97.9" gradientTransform="translate(0 8.224) scale(.77317)"><stop offset="0" stop-color="#F29100"/><stop offset="1" stop-color="#EC670F"/></linearGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="61.276" y1="98.981" x2="61.276" y2="144.277" gradientTransform="translate(0 8.224) scale(.77317)"><stop offset="0" stop-color="#F29100"/><stop offset="1" stop-color="#EC670F"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="82.781" y1="0" x2="82.781" y2="144.245" gradientTransform="translate(0 8.224) scale(.77317)"><stop offset="0" stop-color="#F29100"/><stop offset="1" stop-color="#EC670F"/></linearGradient><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="22.871" y1="92.114" x2="22.871" y2="143.249" gradientTransform="translate(0 8.224) scale(.77317)"><stop offset="0" stop-color="#F29100"/><stop offset="1" stop-color="#EC670F"/></linearGradient></defs><path d="M64.11 83.918l.019-.047c-.027-.117-.035-.148-.02.047zm0 0" fill="#484444"/><path d="M64.11 83.918l.019-.047c-.027-.117-.035-.148-.02.047zm0 0" fill="url(#a)"/><path d="M64.969 115.441c-.45-.937-1.016-2.773-1.39-3.582-.356-.754-1.434-2.722-1.974-3.355-1.175-1.375-1.453-1.477-1.796-3.215-.602-3.023-2.192-8.508-4.067-12.293-.969-1.953-2.578-3.594-4.05-5.012-1.286-1.242-4.184-3.332-4.692-3.226-4.734.945-6.203 5.59-8.434 9.27-1.23 2.034-2.535 3.765-3.507 5.929-.899 1.992-.817 4.195-2.352 5.902-1.578 1.758-2.602 3.625-3.371 5.891-.148.43-.563 4.953-1.016 6.027l7.04-.496c6.558.45 4.663 2.965 14.902 2.414l16.164-.5c-.504-1.48-1.196-3.195-1.461-3.754zm0 0" fill="url(#b)"/><path d="M111.875 8.223H16.133C7.227 8.227.008 15.445.008 24.352v35.183c2.308-.836 5.625-5.742 6.664-6.937 1.82-2.086 2.148-4.75 3.055-6.426 2.066-3.82 2.421-6.445 7.109-6.445 2.187 0 3.055.503 4.535 2.488 1.027 1.379 2.809 3.93 3.637 5.633.96 1.968 2.527 4.629 3.215 5.164.511.402 1.015.699 1.488.875.758.289 1.39-.235 1.898-.64.649-.52.93-1.571 1.532-2.977.867-2.028 1.808-4.458 2.347-5.31.93-1.464 1.246-3.202 2.25-4.046 1.485-1.242 3.414-1.328 3.95-1.434 2.976-.59 4.328 1.434 5.792 2.743.961.855 2.27 2.582 3.204 4.89.726 1.809 1.652 3.48 2.039 4.524.375 1.004 1.3 2.62 1.847 4.55.496 1.758 1.828 3.106 2.332 3.938 0 0 .774 2.168 5.48 4.152 1.02.43 3.083 1.13 4.313 1.575 2.047.746 4.028.648 6.551.347 1.797 0 2.774-2.605 3.59-4.691.484-1.23.945-4.766 1.262-5.766.304-.976-.41-1.73.199-2.586.71-1 1.133-1.054 1.543-2.355.883-2.785 5.984-2.926 8.847-2.926 2.399 0 2.086 2.32 6.141 1.527 2.32-.457 4.559.297 7.024.95 2.074.55 4.023 1.175 5.195 2.546.758.887 2.633 5.325.719 5.516.183.223.32.629.664.852-.426 1.675-2.282.48-3.309.265-1.39-.285-2.367.043-3.726.645-2.32 1.035-5.715.914-7.739 2.597-1.715 1.43-1.71 4.614-2.511 6.399 0 0-2.223 5.719-7.075 9.215-1.242.898-3.668 3.054-8.953 3.87-2.367.368-4.586.395-7.02.274l-3.511-.133c-.695-.003-3.063-.082-2.945.145l-.266.656c.043.219.129.754.152.887.098.527.125.95.145 1.437.035 1-.082 2.043-.031 3.055.105 2.094.882 4.008.98 6.121.11 2.356 1.274 4.844 2.399 6.77.43.73 1.078.812 1.363 1.715.332 1.03.02 2.129.18 3.23.632 4.266 1.855 8.73 3.785 12.582a.685.685 0 00.043.094c2.375-.395 4.754-1.25 7.84-1.707 5.652-.836 13.519-.406 18.57-.88 12.781-1.198 19.719 5.243 31.203 2.602V24.352c-.004-8.907-7.223-16.13-16.129-16.13zM64.109 83.918c-.015-.195-.007-.168.02-.047zm0 0" fill="url(#c)"/><path d="M29.516 98.727c.89-1.946 1.406-4.165 2.144-6.157.711-1.906 1.817-4.61 3.7-5.57-.227-.27-3.938-.39-4.93-.492l-3.2-.453-6.164-1.27c-1.199-.289-5.187-1.703-6.054-2.101-2.032-.938-3.383-3.48-4.969-3.22-1.016.165-2.012.513-2.633 1.536-.515.836-.691 2.27-1.047 3.23-.414 1.118-1.129 2.16-1.754 3.223-1.152 1.95-3.222 3.715-4.113 5.617-.18.39-.34.828-.488 1.285v21.735l3.347.722c8.993 2.403 11.188 2.606 20.008 1.594l.828-.11c.672-1.405 1.196-6.187 1.633-7.667.34-1.137.809-2.04.988-3.2.168-1.1-.015-2.148-.113-3.152-.242-2.504 1.828-3.398 2.82-5.55zm0 0" fill="url(#d)"/></svg>
|
After (image error) Size: 4.0 KiB |
1
icons/ocaml/ocaml-plain-wordmark.svg
Normal file
After (image error) Size: 5.9 KiB |
1
icons/ocaml/ocaml-plain.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path d="M65.004 115.355c-.461-.894-1.004-2.796-1.356-3.601-.378-.711-1.46-2.692-1.984-3.332-1.164-1.332-1.437-1.438-1.809-3.23-.628-3.067-2.148-8.462-4.042-12.227-1.004-2-2.626-3.606-4.067-5.07-1.246-1.247-4.121-3.31-4.668-3.227-4.766.894-6.226 5.586-8.457 9.27-1.27 2.062-2.516 3.769-3.52 5.937-.898 1.98-.812 4.23-2.331 5.938a15.44 15.44 0 00-3.333 5.855c-.195.453-.546 4.957-1.003 6.016l7.02-.438c6.585.461 4.687 2.961 14.858 2.438l16.098-.54a24.864 24.864 0 00-1.433-3.792zM111.793 8.254H16.207C7.312 8.23.086 15.457.086 24.352v35.105c2.352-.812 5.578-5.75 6.668-6.934 1.789-2.062 2.16-4.77 3.059-6.378 2.062-3.793 2.433-6.477 7.101-6.477 2.164 0 3.063.516 4.5 2.516.996 1.332 2.79 3.957 3.602 5.668 1.004 1.98 2.523 4.582 3.254 5.125.515.351.972.722 1.433.894.707.27 1.356-.27 1.902-.629.622-.539.895-1.52 1.52-2.953.895-2.086 1.813-4.418 2.332-5.312.914-1.461 1.273-3.254 2.25-4.067 1.461-1.246 3.441-1.355 3.957-1.437 2.98-.625 4.336 1.437 5.777 2.707.973.894 2.243 2.605 3.246 4.851.708 1.793 1.606 3.52 2.067 4.5.351.98 1.266 2.606 1.789 4.582.543 1.711 1.809 3.067 2.352 3.961 0 0 .812 2.164 5.476 4.145a34.992 34.992 0 004.336 1.52c2.066.734 4.047.644 6.563.374 1.789 0 2.793-2.625 3.601-4.683.438-1.254.98-4.774 1.25-5.758.27-.996-.437-1.707.192-2.625.722-.977 1.164-1.082 1.519-2.332.914-2.793 5.957-2.875 8.832-2.875 2.414 0 2.063 2.332 6.125 1.52 2.336-.434 4.586.273 7.023.995 2.063.543 4.043 1.168 5.204 2.524.73.898 2.629 5.312.73 5.476.164.188.36.645.625.817-.46 1.707-2.25.46-3.332.27-1.355-.27-2.332 0-3.684.624-2.335.996-5.668.918-7.726 2.625-1.715 1.438-1.715 4.582-2.543 6.371 0 0-2.254 5.696-6.996 9.192-1.278.914-3.715 3.058-8.918 3.871-2.356.355-4.586.355-7.024.27-1.164-.079-2.332-.079-3.52-.079-.706 0-3.062-.109-2.96.164l-.27.645c.024.29.063.602.164.895.102.515.102.976.192 1.437 0 .98-.086 2.063 0 3.066.082 2.063.894 3.957 1.004 6.102.078 2.355 1.246 4.875 2.414 6.77.46.707 1.086.789 1.355 1.71.352.98 0 2.141.188 3.227.625 4.227 1.875 8.73 3.773 12.61v.078c2.332-.352 4.77-1.247 7.836-1.684 5.664-.832 13.5-.461 18.54-.914 12.796-1.168 19.706 5.226 31.148 2.601V24.336c-.063-8.895-7.293-16.102-16.207-16.102zM64.086 83.855c0-.187 0-.187 0 0zm-34.457 14.75c.894-1.98 1.433-4.125 2.144-6.101.73-1.899 1.813-4.61 3.684-5.582-.246-.274-3.957-.375-4.934-.461-1.082-.086-2.171-.273-3.25-.438a135.241 135.241 0 01-6.125-1.265c-1.168-.274-5.21-1.715-6.02-2.067-2.085-.894-3.421-3.52-4.96-3.246-.977.188-1.98.54-2.605 1.54-.543.812-.731 2.242-1.083 3.226-.437 1.086-1.168 2.164-1.707 3.25-1.277 1.875-3.332 3.582-4.23 5.484-.191.457-.27.895-.457 1.356v21.683c1.082.188 2.16.371 3.328.73 8.996 2.438 11.164 2.606 19.98 1.63l.813-.11c.625-1.437 1.188-6.207 1.629-7.644.352-1.164.812-2.063.996-3.14.164-1.09 0-2.173-.102-3.15-.171-2.628 1.895-3.519 2.899-5.69zm0 0"/></svg>
|
After (image error) Size: 2.8 KiB |
15
icons/r/r-original.svg
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg preserveAspectRatio="xMidYMid" version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="gradientFill-1" x1=".74144" x2="590.86" y1="3.6658" y2="593.79" gradientTransform="matrix(.2169 0 0 .14527 -.16082 14.112)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#cbced0" offset="0"/>
|
||||
<stop stop-color="#84838b" offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="gradientFill-2" x1="301.03" x2="703.07" y1="151.4" y2="553.44" gradientTransform="matrix(.17572 0 0 .17931 -.16082 14.112)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#276dc3" offset="0"/>
|
||||
<stop stop-color="#165caa" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path d="m64 100.38c-35.346 0-64-19.19-64-42.863 0-23.672 28.654-42.863 64-42.863s64 19.19 64 42.863c0 23.672-28.654 42.863-64 42.863zm9.7963-68.967c-26.866 0-48.646 13.119-48.646 29.303 0 16.183 21.779 29.303 48.646 29.303 26.866 0 46.693-8.9693 46.693-29.303 0-20.327-19.827-29.303-46.693-29.303z" fill="url(#gradientFill-1)" fill-rule="evenodd" stroke-width=".17751"/>
|
||||
<path d="m97.469 81.033s3.8736 1.1689 6.124 2.3076c0.78086 0.39513 2.1319 1.1836 3.1064 2.2189 0.95464 1.0139 1.4201 2.0413 1.4201 2.0413l15.266 25.739-24.674 0.011-11.538-21.667s-2.3626-4.0594-3.8164-5.2365c-1.2127-0.9818-1.7298-1.3313-2.9289-1.3313h-5.8624l0.0046 28.219-21.833 9e-3v-72.084h43.844s19.97 0.36016 19.97 19.359c0 18.999-19.082 20.413-19.082 20.413zm-9.4967-24.137-13.218-0.0085-0.0066 12.257 13.224-0.0043s6.124-0.01899 6.124-6.235c0-6.3409-6.124-6.0092-6.124-6.0092z" fill="url(#gradientFill-2)" fill-rule="evenodd" stroke-width=".17751"/>
|
||||
</svg>
|
After (image error) Size: 1.6 KiB |
7
icons/r/r-plain.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg preserveAspectRatio="xMidYMid" version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="translate(0 -5.3522)">
|
||||
<path d="m64 20c-35.346 0-64 19.19-64 42.863 0 20.764 22.046 38.078 51.316 42.019v-12.831c-15.55-4.89-26.166-14.693-26.166-25.991 0-16.183 21.779-29.303 48.646-29.303 26.866 0 46.693 8.9757 46.693 29.303 0 10.486-5.2734 17.95-14.066 22.72 1.2042 0.90838 2.2193 2.0722 2.9036 3.4191 0.1295 0.21856 0.25915 0.43704 0.38865 0.6556 11.309-7.7305 18.285-18.315 18.285-29.993 0-23.672-28.654-42.863-64-42.863zm20.1 74.881c-2.6125 0.25583-5.3218 0.40876-8.1137 0.46076 5.31e-4 3.2098 8.87e-4 6.4196 0.0014 9.6295 4.3281-0.54935 8.5018-1.39 12.474-2.4914-0.16701-0.31364-0.33396-0.62731-0.50098-0.94093-0.6793-1.2681-1.3463-2.5428-2.033-3.8067-0.57387-0.97192-1.1754-1.9296-1.8278-2.8512z" stroke-width=".17751"/>
|
||||
<path d="m97.469 86.388s3.8736 1.1689 6.124 2.3076c0.78085 0.39513 2.1319 1.1836 3.1064 2.2189 0.95465 1.0139 1.4201 2.0413 1.4201 2.0413l15.266 25.739-24.674 0.011-11.538-21.667s-2.3626-4.0594-3.8164-5.2365c-1.2127-0.9818-1.7298-1.3313-2.9289-1.3313h-5.8624l0.0046 28.219-21.834 9e-3v-72.084h43.845s19.97 0.36016 19.97 19.359-19.082 20.413-19.082 20.413zm-9.4967-24.137-13.218-0.0085-0.0065 12.257 13.224-0.0042s6.124-0.019 6.124-6.235c0-6.3409-6.124-6.0092-6.124-6.0092z" fill-rule="evenodd" stroke-width=".178"/>
|
||||
</g>
|
||||
</svg>
|
After (image error) Size: 1.4 KiB |
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "devicon",
|
||||
"version": "2.2.0",
|
||||
"version": "2.9.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
10
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "devicon",
|
||||
"version": "2.2.0",
|
||||
"version": "2.10.1",
|
||||
"description": "Programming related icons collection",
|
||||
"main": "devicon.min.css",
|
||||
"scripts": {
|
||||
@ -10,7 +10,7 @@
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/konpa/devicon.git"
|
||||
"url": "https://github.com/devicons/devicon.git"
|
||||
},
|
||||
"keywords": [
|
||||
"programming",
|
||||
@ -18,12 +18,12 @@
|
||||
"svg",
|
||||
"font"
|
||||
],
|
||||
"author": "konpa",
|
||||
"author": "devicons",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/konpa/devicon/issues"
|
||||
"url": "https://github.com/devicons/devicon/issues"
|
||||
},
|
||||
"homepage": "http://konpa.github.io/devicon/",
|
||||
"homepage": "https://devicon.dev",
|
||||
"devDependencies": {
|
||||
"gulp": "^4.0.0",
|
||||
"gulp-sass": "^4.1.0",
|
||||
|