修改校验、新增导出

This commit is contained in:
何童崇 2021-12-29 09:58:21 +08:00
parent 0f28e1edc7
commit 02d52c0971
26 changed files with 4527 additions and 41 deletions

155
public/dist/font-class.html vendored Normal file
View File

@ -0,0 +1,155 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>svgtofont</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<meta name="description" content="Converts SVG fonts to TTF/EOT/WOFF/WOFF2/SVG format.">
<meta name="keywords" content="svgtofont,TTF,EOT,WOFF,WOFF2,SVG">
<link rel="icon" type="image/x-icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABUxJREFUaAW9Wk2IHEUUfq9mJiARFfM307NGMEENixIhejAXdwlRdnZXPeTg2RyUgOgl8Tds8D8H9aInvQkRhIDZDKgk8SB4WVHQLOJJE5OemY2YKO4Gs9NVvteTWnp6qnr6pyZ12Op679Wr79vX9arrMQgjaEuz3gNBAHOg4MHQPcJCqQRzm0/4P7peDl079KfqLyDIowqgHPWNgKuI6mC12fogKi/6LIo6iM5vN2ovA8j34uDZRoGqSAXvt6a9g9E5RZ+dReCfGW/jcqAWCfzmYaBQ4KHaSf/oMLs0emcRuGXe/xMqlQlE6AxbWEn1rqtIOIuABu037tyBcO2MUlDVMlvvIhKFItB+ctvA6+I1z/1SEciRaNuAa7mLSOSOQKtRf4025nOiLCarX1z4WYPSfaex9S4JwQ4BsitBPESb+wBFZYvWR/sikchFgFLlqwTodQZBDi4hlierzT/ORkHFn//eN3b78rI8Rvlob1zH47wkMhPwG/VXQMk3oiDIyRKUKpO1+fOLUXn8OSSxIn8CpepxHY/zkMi0B0zgeeEwdQarZ5Zmx7bz2NZu/fzCX7Q3Prbp8+yJ1ARs4DUYJhFIuFuPbT2dyN/adCzPSiIVgfCEjb02JhAI6j+TvE+m1Pq+sWGQhcRQAgyePgHeNKwzIKIs8/CAMCZAKJ+lKLRi4oFhWhKJm7g9XXtJSnhrwLtFwJv5Jqzce1vz/GWLSSi+NOvd0+3CN5SGa0l2rBu2sa0RyAqeF+N9cBVWj3O24bGtbTrh/1ouw4SLSBgJtKe8F7P856NA6TV6ZGWld0ZE5fFnVyQGCITgQb0dXzDLmF6NvrsAz1X7xtfFfbgg0Ueg1fAOyYLg4yD1uLV8ZW5pqr5Tj3VflMQaAQavlHpHO3beo9zQRXWqMzt2f9w3k8BSZXcJcTeimKaNeyQ83eOGNI5np5AApcrnRwpeA1FqQxDI0+3Hx+7TIt1X58/9tqXpf1drXmzSZWdufQnHAfGU1kd7JsGYWSb4Aq4UOrkdRRexPiu1Ua0Gp1szW8etNqTgC9LNAp6yRoIwM3YRdOEI31eTnLnWUbrdBPTt1Hnijm1JvsNbHuKHJhvGzJUPfoV2mQxGLeMzA4Ng6EEGQixYsVDZZm0TW41GqKCzJvHAS7O0oBuJnWEaD0VsUPUKX0k+pLTbEHbBFTMuOiX5GJVOKnzGdK/W63Gphi4/B/Q42jNmxi643McVs6jyhj1zRrp29TMTCQb/r4RjvFdMeBgzYw+PfC73UZ1mHedXk/EoZXT+TBCJRTpIP6IDbEHRpwDQq0VFsmdpXTN4KoxVT/phiXLtm4UrZUQiPOmKAKa8TZjEDwM+SEY1U/rW4zpArHEkAA6rgP5yu971Bv1/45/XA864YlYkEgJxf7Xpf9K/bG/UbnhPEwXrndg0JyqLg2fdAAEW5iaB+JXX9B9jH7bmN7wvKUaP2vQ2uQk82xrPAX6deILNmV0uPrXrtCaNjbbt9TbwrDUSYEUeEmUhf+e5SS2NTXR+Eni2sxJgZVYSQYDbeV5SS2Oj5w8Dz3aJBNggCwmFag/PSWppbHh+GvChXdJiUV2ajc0plLLQXvquN37HdxreHspCXxtTaWSxtOB5ytAIaL9pIsHA6Bw63p7x9ut5umcZ61yCZ9/GNKoXNfVpIhHOQ7xI/ffXfeyyFXSja2T5z+t5mQnwxNQk9Cop+jzg2W0uAjzRJYm84AsRcEWiCPjCBIqSKAreCYG8JFyAd0YgKwlX4J0SSEvCJXjnBNhhr8qH9GOP/loT32FH8WOP3GmUwdrajfy5zf8bun5GxUuCHgAAAABJRU5ErkJggg==">
<link rel="stylesheet" href="svgtofont.css" />
<style>
*{margin: 0;padding: 0;list-style: none;}
body { color: #696969; font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif; }
a { color: #333; text-decoration: underline; }
a:hover { color: rgb(9, 73, 209); }
.header { color: #333; text-align: center; padding: 80px 0 60px 0; min-height: 153px; font-size: 14px; }
.header .logo svg { height: 120px; width: 120px; }
.header h1 { font-size: 42px; padding: 26px 0 10px 0; }
.header sup {font-size: 14px; margin: 8px 0 0 8px; position: absolute; color: #7b7b7b; }
.info {
color: #999;
font-weight: normal;
max-width: 346px;
margin: 0 auto;
padding: 20px 0;
font-size: 14px;
}
.icons { max-width: 1190px; margin: 0 auto; }
.icons ul { text-align: center; }
.icons ul li {
vertical-align: top;
width: 120px;
display: inline-block;
text-align: center;
background-color: rgba(0,0,0,.02);
border-radius: 3px;
padding: 29px 0 10px 0;
margin-right: 10px;
margin-top: 10px;
transition: all 0.6s ease;
}
.icons ul li:hover { background-color: rgba(0,0,0,.06); }
.icons ul li:hover span { color: #3c75e4; opacity: 1; }
.icons ul li .unicode { color: #8c8c8c; opacity: 0.3; }
.icons ul li h4 {
font-weight: normal;
padding: 10px 0 5px 0;
display: block;
color: #8c8c8c;
font-size: 14px;
line-height: 12px;
opacity: 0.8;
}
.icons ul li:hover h4 { opacity: 1; }
.icons ul li svg { width: 24px; height: 24px; }
.icons ul li:hover { color: #3c75e4; }
.footer { text-align: center; padding: 10px 0 90px 0; }
.footer a { text-align: center; padding: 10px 0 90px 0; color: #696969;}
.footer a:hover { color: #0949d1; }
.links { text-align: center; padding: 50px 0 0 0; font-size: 14px; }
.icons ul li.class-icon { font-size: 21px; line-height: 21px; padding-bottom: 20px; }
.icons ul li.class-icon p{ font-size: 12px; }
.icons ul li.class-icon [class^="svgtofont-"]{ font-size: 26px; }
</style>
<style>
.github-corner:hover .octo-arm { animation: octocat-wave 560ms ease-in-out; }
.github-corner svg { position: fixed; z-index: 999; border: 0px; top: 0px; right: 0px;}
@keyframes octocat-wave{
0%, 100% { transform: rotate(0); }
20%, 60% { transform: rotate(-25deg); }
40%, 80% { transform: rotate(10deg); }
}
@media (max-width:500px){
.github-corner:hover .octo-arm { animation: none; }
.github-corner .octo-arm { animation: octocat-wave 560ms ease-in-out; }
}
</style>
</head>
<body>
<a href="https://github.com/jaywcjlove/svgtofont" target="__blank" class="github-corner">
<svg width="62" height="62" viewBox="0 0 250 250" aria-hidden="true" style="fill: #dc3545; color: rgb(255, 255, 255); ">
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
<path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" class="octo-arm" style="transform-origin: 130px 106px;"></path>
<path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path>
</svg>
</a>
<div class="header">
<div class="logo">
<a href="./"><svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m2.6 10.59l5.78-5.79 1.69 1.7c-0.24 0.85 0.15 1.78 0.93 2.23v5.54c-0.6 0.34-1 0.99-1 1.73a2 2 0 0 0 2 2 2 2 0 0 0 2 -2c0-0.74-0.4-1.39-1-1.73v-4.86l2.07 2.09c-0.07 0.15-0.07 0.32-0.07 0.5a2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2c-0.18 0-0.35 0-0.5 0.07l-2.57-2.57c0.26-0.93-0.22-1.95-1.15-2.34-0.43-0.16-0.88-0.2-1.28-0.09l-1.7-1.69 0.79-0.78c0.78-0.79 2.04-0.79 2.82 0l7.99 7.99c0.79 0.78 0.79 2.04 0 2.82l-7.99 7.99c-0.78 0.79-2.04 0.79-2.82 0l-7.99-7.99c-0.79-0.78-0.79-2.04 0-2.82z" fill="#e64a19"/>
</svg>
</a>
</div>
<h1>svgtofont<sup>3.13.1</sup></h1>
<div class="info">
Converts SVG fonts to TTF/EOT/WOFF/WOFF2/SVG format.
</div>
<p>
<a href="https://github.com/jaywcjlove/svgtofont">GitHub</a> ·
<a href="https://github.com/jaywcjlove/svgtofont/issues">Feedback</a> ·
<a href="font-class.html">Font Class Demo</a> ·
<a href="symbol.html">Symbol Demo</a> ·
<a href="index.html">Unicode Demo</a>
</p>
</div>
<div class="icons">
<ul>
<li class="class-icon"><i class="svgtofont-adobe"></i><p class="name">adobe</p></li><li class="class-icon"><i class="svgtofont-demo"></i><p class="name">demo</p></li><li class="class-icon"><i class="svgtofont-git"></i><p class="name">git</p></li><li class="class-icon"><i class="svgtofont-left"></i><p class="name">left</p></li><li class="class-icon"><i class="svgtofont-stylelint"></i><p class="name">stylelint</p></li><li class="class-icon"><i class="svgtofont-test1 "></i><p class="name">test1 </p></li><li class="class-icon"><i class="svgtofont-test2"></i><p class="name">test2</p></li><li class="class-icon"><i class="svgtofont-test3"></i><p class="name">test3</p></li>
</ul>
</div>
<p class="links">
<a href="https://github.com/jaywcjlove/svgtofont">GitHub</a> ·
<a href="https://github.com/jaywcjlove/svgtofont/issues">Feedback</a> ·
<a href="font-class.html">Font Class Demo</a> ·
<a href="symbol.html">Symbol Demo</a> ·
<a href="index.html">Unicode Demo</a>
</p>
<div class="footer">
Licensed under MIT. (Yes it's free and <a target="_blank" href="https://github.com/jaywcjlove/svgtofont">open-sourced</a>)
<div><a target="_blank" href="https://github.com/jaywcjlove/svgtofont">Created By svgtofont</a></div>
</div>
</body>
</html>

323
public/dist/index.html vendored Normal file
View File

@ -0,0 +1,323 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>svgtofont</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<meta name="description" content="Converts SVG fonts to TTF/EOT/WOFF/WOFF2/SVG format.">
<meta name="keywords" content="svgtofont,TTF,EOT,WOFF,WOFF2,SVG">
<link rel="icon" type="image/x-icon"
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABUxJREFUaAW9Wk2IHEUUfq9mJiARFfM307NGMEENixIhejAXdwlRdnZXPeTg2RyUgOgl8Tds8D8H9aInvQkRhIDZDKgk8SB4WVHQLOJJE5OemY2YKO4Gs9NVvteTWnp6qnr6pyZ12Op679Wr79vX9arrMQgjaEuz3gNBAHOg4MHQPcJCqQRzm0/4P7peDl079KfqLyDIowqgHPWNgKuI6mC12fogKi/6LIo6iM5vN2ovA8j34uDZRoGqSAXvt6a9g9E5RZ+dReCfGW/jcqAWCfzmYaBQ4KHaSf/oMLs0emcRuGXe/xMqlQlE6AxbWEn1rqtIOIuABu037tyBcO2MUlDVMlvvIhKFItB+ctvA6+I1z/1SEciRaNuAa7mLSOSOQKtRf4025nOiLCarX1z4WYPSfaex9S4JwQ4BsitBPESb+wBFZYvWR/sikchFgFLlqwTodQZBDi4hlierzT/ORkHFn//eN3b78rI8Rvlob1zH47wkMhPwG/VXQMk3oiDIyRKUKpO1+fOLUXn8OSSxIn8CpepxHY/zkMi0B0zgeeEwdQarZ5Zmx7bz2NZu/fzCX7Q3Prbp8+yJ1ARs4DUYJhFIuFuPbT2dyN/adCzPSiIVgfCEjb02JhAI6j+TvE+m1Pq+sWGQhcRQAgyePgHeNKwzIKIs8/CAMCZAKJ+lKLRi4oFhWhKJm7g9XXtJSnhrwLtFwJv5Jqzce1vz/GWLSSi+NOvd0+3CN5SGa0l2rBu2sa0RyAqeF+N9cBVWj3O24bGtbTrh/1ouw4SLSBgJtKe8F7P856NA6TV6ZGWld0ZE5fFnVyQGCITgQb0dXzDLmF6NvrsAz1X7xtfFfbgg0Ueg1fAOyYLg4yD1uLV8ZW5pqr5Tj3VflMQaAQavlHpHO3beo9zQRXWqMzt2f9w3k8BSZXcJcTeimKaNeyQ83eOGNI5np5AApcrnRwpeA1FqQxDI0+3Hx+7TIt1X58/9tqXpf1drXmzSZWdufQnHAfGU1kd7JsGYWSb4Aq4UOrkdRRexPiu1Ua0Gp1szW8etNqTgC9LNAp6yRoIwM3YRdOEI31eTnLnWUbrdBPTt1Hnijm1JvsNbHuKHJhvGzJUPfoV2mQxGLeMzA4Ng6EEGQixYsVDZZm0TW41GqKCzJvHAS7O0oBuJnWEaD0VsUPUKX0k+pLTbEHbBFTMuOiX5GJVOKnzGdK/W63Gphi4/B/Q42jNmxi643McVs6jyhj1zRrp29TMTCQb/r4RjvFdMeBgzYw+PfC73UZ1mHedXk/EoZXT+TBCJRTpIP6IDbEHRpwDQq0VFsmdpXTN4KoxVT/phiXLtm4UrZUQiPOmKAKa8TZjEDwM+SEY1U/rW4zpArHEkAA6rgP5yu971Bv1/45/XA864YlYkEgJxf7Xpf9K/bG/UbnhPEwXrndg0JyqLg2fdAAEW5iaB+JXX9B9jH7bmN7wvKUaP2vQ2uQk82xrPAX6deILNmV0uPrXrtCaNjbbt9TbwrDUSYEUeEmUhf+e5SS2NTXR+Eni2sxJgZVYSQYDbeV5SS2Oj5w8Dz3aJBNggCwmFag/PSWppbHh+GvChXdJiUV2ajc0plLLQXvquN37HdxreHspCXxtTaWSxtOB5ytAIaL9pIsHA6Bw63p7x9ut5umcZ61yCZ9/GNKoXNfVpIhHOQ7xI/ffXfeyyFXSja2T5z+t5mQnwxNQk9Cop+jzg2W0uAjzRJYm84AsRcEWiCPjCBIqSKAreCYG8JFyAd0YgKwlX4J0SSEvCJXjnBNhhr8qH9GOP/loT32FH8WOP3GmUwdrajfy5zf8bun5GxUuCHgAAAABJRU5ErkJggg==">
<style>
* {
margin: 0;
padding: 0;
list-style: none;
}
body {
color: #696969;
font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif;
}
a {
color: #333;
text-decoration: underline;
}
a:hover {
color: rgb(9, 73, 209);
}
.header {
color: #333;
text-align: center;
padding: 80px 0 60px 0;
min-height: 153px;
font-size: 14px;
}
.header .logo svg {
height: 120px;
width: 120px;
}
.header h1 {
font-size: 42px;
padding: 26px 0 10px 0;
}
.header sup {
font-size: 14px;
margin: 8px 0 0 8px;
position: absolute;
color: #7b7b7b;
}
.info {
color: #999;
font-weight: normal;
max-width: 346px;
margin: 0 auto;
padding: 20px 0;
font-size: 14px;
}
.icons {
max-width: 1190px;
margin: 0 auto;
}
.icons ul {
text-align: center;
}
.icons ul li {
vertical-align: top;
width: 120px;
display: inline-block;
text-align: center;
background-color: rgba(0, 0, 0, .02);
border-radius: 3px;
padding: 29px 0 10px 0;
margin-right: 10px;
margin-top: 10px;
transition: all 0.6s ease;
}
.icons ul li:hover {
background-color: rgba(0, 0, 0, .06);
}
.icons ul li:hover span {
color: #3c75e4;
opacity: 1;
}
.icons ul li .unicode {
color: #8c8c8c;
opacity: 0.3;
}
.icons ul li h4 {
font-weight: normal;
padding: 10px 0 5px 0;
display: block;
color: #8c8c8c;
font-size: 14px;
line-height: 12px;
opacity: 0.8;
}
.icons ul li:hover h4 {
opacity: 1;
}
.icons ul li svg {
width: 24px;
height: 24px;
}
.icons ul li:hover {
color: #3c75e4;
}
.footer {
text-align: center;
padding: 10px 0 90px 0;
}
.footer a {
text-align: center;
padding: 10px 0 90px 0;
color: #696969;
}
.footer a:hover {
color: #0949d1;
}
.links {
text-align: center;
padding: 50px 0 0 0;
font-size: 14px;
}
.icons ul .unicode-icon span {
display: block;
}
.icons ul .unicode-icon h4 {
font-size: 12px;
}
@font-face {
font-family: "svgtofont";
src: url("svgtofont.eot");
/* IE9*/
src: url("svgtofont.eot#iefix") format("embedded-opentype"),
/* IE6-IE8 */
url("svgtofont.woff2?1640615432475") format("woff2"),
url("svgtofont.woff?1640615432475") format("woff"),
/* chrome, firefox */
url("svgtofont.ttf?1640615432475") format("truetype"),
/* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url("svgtofont.svg#svgtofont?1640615432475") format("svg");
/* iOS 4.1- */
}
.iconfont {
font-family: "svgtofont" !important;
font-size: 26px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0.2px;
-moz-osx-font-smoothing: grayscale;
}
</style>
<style>
.github-corner:hover .octo-arm {
animation: octocat-wave 560ms ease-in-out;
}
.github-corner svg {
position: fixed;
z-index: 999;
border: 0px;
top: 0px;
right: 0px;
}
@keyframes octocat-wave {
0%,
100% {
transform: rotate(0);
}
20%,
60% {
transform: rotate(-25deg);
}
40%,
80% {
transform: rotate(10deg);
}
}
@media (max-width:500px) {
.github-corner:hover .octo-arm {
animation: none;
}
.github-corner .octo-arm {
animation: octocat-wave 560ms ease-in-out;
}
}
</style>
</head>
<body>
<a href="https://github.com/jaywcjlove/svgtofont" target="__blank" class="github-corner">
<svg width="62" height="62" viewBox="0 0 250 250" aria-hidden="true"
style="fill: #dc3545; color: rgb(255, 255, 255); ">
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
<path
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
fill="currentColor" class="octo-arm" style="transform-origin: 130px 106px;"></path>
<path
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
fill="currentColor" class="octo-body"></path>
</svg>
</a>
<div class="header">
<div class="logo">
<a href="./"><svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path
d="m2.6 10.59l5.78-5.79 1.69 1.7c-0.24 0.85 0.15 1.78 0.93 2.23v5.54c-0.6 0.34-1 0.99-1 1.73a2 2 0 0 0 2 2 2 2 0 0 0 2 -2c0-0.74-0.4-1.39-1-1.73v-4.86l2.07 2.09c-0.07 0.15-0.07 0.32-0.07 0.5a2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2c-0.18 0-0.35 0-0.5 0.07l-2.57-2.57c0.26-0.93-0.22-1.95-1.15-2.34-0.43-0.16-0.88-0.2-1.28-0.09l-1.7-1.69 0.79-0.78c0.78-0.79 2.04-0.79 2.82 0l7.99 7.99c0.79 0.78 0.79 2.04 0 2.82l-7.99 7.99c-0.78 0.79-2.04 0.79-2.82 0l-7.99-7.99c-0.79-0.78-0.79-2.04 0-2.82z"
fill="#e64a19" />
</svg>
</a>
</div>
<h1>svgtofont<sup>3.13.1</sup></h1>
<div class="info">
Converts SVG fonts to TTF/EOT/WOFF/WOFF2/SVG format.
</div>
<p>
<a href="https://github.com/jaywcjlove/svgtofont">GitHub</a> ·
<a href="https://github.com/jaywcjlove/svgtofont/issues">Feedback</a> ·
<a href="font-class.html">Font Class Demo</a> ·
<a href="symbol.html">Symbol Demo</a> ·
<a href="index.html">Unicode Demo</a>
</p>
</div>
<div class="icons">
<ul>
<li class="unicode-icon"><span class="iconfont"></span>
<h4>adobe</h4><span class="unicode">&amp;#59905;</span>
</li>
<li class="unicode-icon"><span class="iconfont"></span>
<h4>demo</h4><span class="unicode">&amp;#59906;</span>
</li>
<li class="unicode-icon"><span class="iconfont"></span>
<h4>git</h4><span class="unicode">&amp;#59907;</span>
</li>
<li class="unicode-icon"><span class="iconfont"></span>
<h4>left</h4><span class="unicode">&amp;#59908;</span>
</li>
<li class="unicode-icon"><span class="iconfont"></span>
<h4>stylelint</h4><span class="unicode">&amp;#59909;</span>
</li>
<li class="unicode-icon"><span class="iconfont"></span>
<h4>test1 </h4><span class="unicode">&amp;#59910;</span>
</li>
<li class="unicode-icon"><span class="iconfont"></span>
<h4>test2</h4><span class="unicode">&amp;#59911;</span>
</li>
<li class="unicode-icon"><span class="iconfont"></span>
<h4>test3</h4><span class="unicode">&amp;#59912;</span>
</li>
</ul>
</div>
<p class="links">
<a href="https://github.com/jaywcjlove/svgtofont">GitHub</a> ·
<a href="https://github.com/jaywcjlove/svgtofont/issues">Feedback</a> ·
<a href="font-class.html">Font Class Demo</a> ·
<a href="symbol.html">Symbol Demo</a> ·
<a href="index.html">Unicode Demo</a>
</p>
<div class="footer">
Licensed under MIT. (Yes it's free and <a target="_blank"
href="https://github.com/jaywcjlove/svgtofont">open-sourced</a>)
<div><a target="_blank" href="https://github.com/jaywcjlove/svgtofont">Created By svgtofont</a></div>
</div>
</body>
</html>

27
public/dist/svgtofont.css vendored Normal file
View File

@ -0,0 +1,27 @@
@font-face {
font-family: "svgtofont";
src: url('svgtofont.eot?t=1640615432453'); /* IE9*/
src: url('svgtofont.eot?t=1640615432453#iefix') format('embedded-opentype'), /* IE6-IE8 */
url("svgtofont.woff2?t=1640615432453") format("woff2"),
url("svgtofont.woff?t=1640615432453") format("woff"),
url('svgtofont.ttf?t=1640615432453') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('svgtofont.svg?t=1640615432453#svgtofont') format('svg'); /* iOS 4.1- */
}
[class^="svgtofont-"], [class*=" svgtofont-"] {
font-family: 'svgtofont' !important;
font-size:12px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.svgtofont-adobe:before { content: "\ea01"; }
.svgtofont-demo:before { content: "\ea02"; }
.svgtofont-git:before { content: "\ea03"; }
.svgtofont-left:before { content: "\ea04"; }
.svgtofont-stylelint:before { content: "\ea05"; }
.svgtofont-test1 :before { content: "\ea06"; }
.svgtofont-test2:before { content: "\ea07"; }
.svgtofont-test3:before { content: "\ea08"; }

14
public/dist/svgtofont.d.ts vendored Normal file
View File

@ -0,0 +1,14 @@
export enum Svgtofont {
Adobe = "svgtofont-adobe",
Demo = "svgtofont-demo",
Git = "svgtofont-git",
Left = "svgtofont-left",
Stylelint = "svgtofont-stylelint",
Test1 = "svgtofont-test1 ",
Test2 = "svgtofont-test2",
Test3 = "svgtofont-test3"
}
export type SvgtofontClassname = "svgtofont-adobe" | "svgtofont-demo" | "svgtofont-git" | "svgtofont-left" | "svgtofont-stylelint" | "svgtofont-test1 " | "svgtofont-test2" | "svgtofont-test3"
export type SvgtofontIcon = "adobe" | "demo" | "git" | "left" | "stylelint" | "test1 " | "test2" | "test3"
export const SvgtofontPrefix = "svgtofont-"

BIN
public/dist/svgtofont.eot vendored Normal file

Binary file not shown.

10
public/dist/svgtofont.json vendored Normal file
View File

@ -0,0 +1,10 @@
{
"adobe": ["M14.8679444,3 L23,3 L23,22 L14.8679444,3 Z M1,3 L9.13847222,3 L1,22 L1,3 Z M8.44730556,18.1780547 L12.0030556,10.0019303 L17.1852778,21.9988073 L13.7896389,21.9988073 L12.2389444,18.1780547 L8.44730556,18.1780547 Z"],
"demo": ["M2 6C2 4.89543 2.89543 4 4 4H20C21.1046 4 22 4.89543 22 6V18C22 19.1046 21.1046 20 20 20H4C2.89543 20 2 19.1046 2 18V6ZM4 6H6V8H4V6ZM14 6H8V8H14V6ZM4 10H10V12H4V10ZM20 6H16V8H20V6Z"],
"git": ["m2.6 10.59l5.78-5.79 1.69 1.7c-0.24 0.85 0.15 1.78 0.93 2.23v5.54c-0.6 0.34-1 0.99-1 1.73a2 2 0 0 0 2 2 2 2 0 0 0 2 -2c0-0.74-0.4-1.39-1-1.73v-4.86l2.07 2.09c-0.07 0.15-0.07 0.32-0.07 0.5a2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2c-0.18 0-0.35 0-0.5 0.07l-2.57-2.57c0.26-0.93-0.22-1.95-1.15-2.34-0.43-0.16-0.88-0.2-1.28-0.09l-1.7-1.69 0.79-0.78c0.78-0.79 2.04-0.79 2.82 0l7.99 7.99c0.79 0.78 0.79 2.04 0 2.82l-7.99 7.99c-0.78 0.79-2.04 0.79-2.82 0l-7.99-7.99c-0.79-0.78-0.79-2.04 0-2.82z"],
"left": ["M10.1025513,12.7783485 L16.8106554,6.0794438 C17.0871744,5.80330401 17.5303978,5.80851813 17.8006227,6.09108986 C18.0708475,6.37366159 18.0657451,6.82658676 17.7892261,7.10272655 L10.5858152,14.2962587 C10.3114043,14.5702933 9.87226896,14.5675493 9.60115804,14.2901058 L2.2046872,6.72087106 C1.93149355,6.44129625 1.93181183,5.98834118 2.20539811,5.7091676 C2.47898439,5.42999401 2.92223711,5.43031926 3.19543076,5.70989407 L10.1025513,12.7783485 Z"],
"stylelint": ["M129.7408,243.648 C157.7408,143.5392 156.928,143.0848 177.1648,71.7056 L182.0288,74.5216 C184.6784,76.0384 186.8416,74.7904 186.8416,71.744 L186.8416,37.696 C192.2176,18.8928 196.416,4.352 197.6576,0 L219.5776,0 L256,33.728 L232.0768,54.4 L250.1696,73.9648 L130.944,243.648 C130.368,244.608 129.5552,244.3904 129.7408,243.648 L129.7408,243.648 Z M142.7648,27.8656 C143.8528,27.8656 144.7232,28.4608 144.7232,29.2096 L144.7232,46.6496 C144.7232,47.3792 143.8464,47.9744 142.7648,47.9744 L113.3248,47.9744 C112.2368,47.9744 111.36,47.3792 111.36,46.6432 L111.36,29.1968 C111.36,28.4608 112.2368,27.8528 113.3184,27.8528 L142.7584,27.8528 L142.7648,27.8656 Z M179.1168,8.5504 L146.72,27.2512 C147.0912,27.8272 147.3216,28.4864 147.3216,29.2032 L147.3216,46.656 C147.3216,47.552 146.9632,48.3712 146.3872,49.024 L179.1104,67.9168 C181.3376,69.2096 183.168,68.1536 183.168,65.5808 L183.168,10.8928 C183.168,8.3136 181.3504,7.264 179.1168,8.5504 Z M108.7552,46.656 L108.7552,29.1968 C108.7552,28.48 108.9856,27.8208 109.3568,27.2512 L76.96,8.5376 C74.7328,7.2576 72.9024,8.3072 72.9024,10.88 L72.9024,65.568 C72.9024,68.1408 74.7328,69.1968 76.9664,67.904 L109.6832,49.0112 C109.1072,48.352 108.7616,47.5392 108.7616,46.6432 L108.7552,46.656 Z M125.056,243.648 L126.2592,243.648 C98.2656,143.5392 99.072,143.0848 78.8352,71.7056 L73.9712,74.5216 C71.328,76.0384 69.1584,74.7904 69.1584,71.744 L69.1584,37.696 C63.7824,18.8992 59.584,4.352 58.3424,0 L36.4288,0 L0,33.728 L23.9168,54.4 L5.824,73.9712 L125.056,243.648 Z M127.1104,84.4096 C131.995248,84.4096 135.9552,80.4496482 135.9552,75.5648 C135.9552,70.6799518 131.995248,66.72 127.1104,66.72 C122.225552,66.72 118.2656,70.6799518 118.2656,75.5648 C118.2656,80.4496482 122.225552,84.4096 127.1104,84.4096 Z M127.1104,136.9856 C131.995248,136.9856 135.9552,133.025648 135.9552,128.1408 C135.9552,123.255952 131.995248,119.296 127.1104,119.296 C122.225552,119.296 118.2656,123.255952 118.2656,128.1408 C118.2656,133.025648 122.225552,136.9856 127.1104,136.9856 Z M127.1104,189.5744 C131.995248,189.5744 135.9552,185.614448 135.9552,180.7296 C135.9552,175.844752 131.995248,171.8848 127.1104,171.8848 C122.225552,171.8848 118.2656,175.844752 118.2656,180.7296 C118.2656,185.614448 122.225552,189.5744 127.1104,189.5744 Z"],
"test1 ": ["M319.936 243.2h573.504c18.432 0 33.792-21.056 33.792-46.08a39.424 39.424 0 0 0-33.792-43.52H320a39.424 39.424 0 0 0-33.792 43.52c0 25.024 15.36 46.08 33.792 46.08z m573.504 224H320c-18.432 0-33.792 22.016-33.792 44.032S300.992 556.8 320 556.8h573.504c18.432 0 33.792-24.064 33.792-45.568 0-21.504-14.848-43.968-33.792-43.968z m0 313.664H320a38.912 38.912 0 0 0-33.792 41.472c0 21.44 14.848 48.064 33.792 48.064h573.504c18.432 0 33.792-26.624 33.792-48.064a38.912 38.912 0 0 0-33.792-41.984v0.512z m-790.4-627.2a45.504 45.504 0 0 0-45.568 44.992c0.256 24.96 20.544 44.992 45.504 44.992a44.992 44.992 0 1 0 0-90.048z m0 313.6a44.992 44.992 0 1 0 0 89.536 44.992 44.992 0 1 0 0-89.6z m0 313.6a44.992 44.992 0 1 0 0 89.024 44.992 44.992 0 1 0 0-89.536v0.512z"],
"test2": ["M74.304 757.696a34.88 34.88 0 0 0 49.6 0L512 369.6l388.096 388.096a34.88 34.88 0 0 0 49.6 0 34.88 34.88 0 0 0 0-49.6L536.768 295.232a34.944 34.944 0 0 0-49.536 0L74.24 708.096a34.944 34.944 0 0 0 0 49.6z"],
"test3": ["M520.704 502.705231m-502.705231 0a502.705231 502.705231 0 1 0 1005.410462 0 502.705231 502.705231 0 1 0-1005.410462 0Z"]
}

25
public/dist/svgtofont.less vendored Normal file
View File

@ -0,0 +1,25 @@
@font-face {font-family: "svgtofont";
src: url('svgtofont.eot?t=1640615432453'); /* IE9*/
src: url('svgtofont.eot?t=1640615432453#iefix') format('embedded-opentype'), /* IE6-IE8 */
url("svgtofont.woff2?t=1640615432453") format("woff2"),
url("svgtofont.woff?t=1640615432453") format("woff"),
url('svgtofont.ttf?t=1640615432453') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('svgtofont.svg?t=1640615432453#svgtofont') format('svg'); /* iOS 4.1- */
}
[class^="svgtofont-"], [class*=" svgtofont-"] {
font-family: 'svgtofont' !important;
font-size: 12px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.svgtofont-adobe:before { content: "\ea01"; }
.svgtofont-demo:before { content: "\ea02"; }
.svgtofont-git:before { content: "\ea03"; }
.svgtofont-left:before { content: "\ea04"; }
.svgtofont-stylelint:before { content: "\ea05"; }
.svgtofont-test1 :before { content: "\ea06"; }
.svgtofont-test2:before { content: "\ea07"; }
.svgtofont-test3:before { content: "\ea08"; }

28
public/dist/svgtofont.module.less vendored Normal file
View File

@ -0,0 +1,28 @@
@font-face {font-family: "svgtofont";
src: url('svgtofont.eot?t=1640615432453'); /* IE9*/
src: url('svgtofont.eot?t=1640615432453#iefix') format('embedded-opentype'), /* IE6-IE8 */
url("svgtofont.woff2?t=1640615432453") format("woff2"),
url("svgtofont.woff?t=1640615432453") format("woff"),
url('svgtofont.ttf?t=1640615432453') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('svgtofont.svg?t=1640615432453#svgtofont') format('svg'); /* iOS 4.1- */
}
[class^="svgtofont-"], [class*=" svgtofont-"] {
font-family: 'svgtofont' !important;
font-size:12px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
:global {
.svgtofont-adobe:before { content: "\ea01"; }
.svgtofont-demo:before { content: "\ea02"; }
.svgtofont-git:before { content: "\ea03"; }
.svgtofont-left:before { content: "\ea04"; }
.svgtofont-stylelint:before { content: "\ea05"; }
.svgtofont-test1 :before { content: "\ea06"; }
.svgtofont-test2:before { content: "\ea07"; }
.svgtofont-test3:before { content: "\ea08"; }
}

35
public/dist/svgtofont.scss vendored Normal file
View File

@ -0,0 +1,35 @@
@font-face {font-family: "svgtofont";
src: url('svgtofont.eot?t=1640615432453'); /* IE9*/
src: url('svgtofont.eot?t=1640615432453#iefix') format('embedded-opentype'), /* IE6-IE8 */
url("svgtofont.woff2?t=1640615432453") format("woff2"),
url("svgtofont.woff?t=1640615432453") format("woff"),
url('svgtofont.ttf?t=1640615432453') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('svgtofont.svg?t=1640615432453#svgtofont') format('svg'); /* iOS 4.1- */
}
[class^="svgtofont-"], [class*=" svgtofont-"] {
font-family: 'svgtofont' !important;
font-size: 12px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.svgtofont-adobe:before { content: "\ea01"; }
.svgtofont-demo:before { content: "\ea02"; }
.svgtofont-git:before { content: "\ea03"; }
.svgtofont-left:before { content: "\ea04"; }
.svgtofont-stylelint:before { content: "\ea05"; }
.svgtofont-test1 :before { content: "\ea06"; }
.svgtofont-test2:before { content: "\ea07"; }
.svgtofont-test3:before { content: "\ea08"; }
$svgtofont-adobe: "\ea01";
$svgtofont-demo: "\ea02";
$svgtofont-git: "\ea03";
$svgtofont-left: "\ea04";
$svgtofont-stylelint: "\ea05";
$svgtofont-test1 : "\ea06";
$svgtofont-test2: "\ea07";
$svgtofont-test3: "\ea08";

25
public/dist/svgtofont.styl vendored Normal file
View File

@ -0,0 +1,25 @@
@font-face {font-family: "svgtofont";
src: url('svgtofont.eot?t=1640615432453'); /* IE9*/
src: url('svgtofont.eot?t=1640615432453#iefix') format('embedded-opentype'), /* IE6-IE8 */
url("svgtofont.woff2?t=1640615432453") format("woff2"),
url("svgtofont.woff?t=1640615432453") format("woff"),
url('svgtofont.ttf?t=1640615432453') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('svgtofont.svg?t=1640615432453#svgtofont') format('svg'); /* iOS 4.1- */
}
[class^="svgtofont-"], [class*=" svgtofont-"] {
font-family: 'svgtofont' !important;
font-size: 12px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.svgtofont-adobe:before { content: "\ea01"; }
.svgtofont-demo:before { content: "\ea02"; }
.svgtofont-git:before { content: "\ea03"; }
.svgtofont-left:before { content: "\ea04"; }
.svgtofont-stylelint:before { content: "\ea05"; }
.svgtofont-test1 :before { content: "\ea06"; }
.svgtofont-test2:before { content: "\ea07"; }
.svgtofont-test3:before { content: "\ea08"; }

36
public/dist/svgtofont.svg vendored Normal file
View File

@ -0,0 +1,36 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<font id="svgtofont" horiz-adv-x="1044.8979591836735">
<font-face font-family="svgtofont"
units-per-em="1000" ascent="1000"
descent="0" />
<missing-glyph horiz-adv-x="0" />
<glyph glyph-name="adobe"
unicode="&#xEA01;"
horiz-adv-x="1000" d="M619.4976833333334 875L958.3333333333331 875L958.3333333333331 83.3333333333334L619.4976833333334 875zM41.6666666666667 875L380.7696758333334 875L41.6666666666667 83.3333333333334L41.6666666666667 875zM351.971065 242.5810541666667L500.1273166666666 583.2529041666667L716.0532416666667 83.3830291666668L574.5682875 83.3830291666668L509.9560166666666 242.5810541666667L351.971065 242.5810541666667z" />
<glyph glyph-name="demo"
unicode="&#xEA02;"
horiz-adv-x="1000" d="M83.3333333333333 750C83.3333333333333 796.0237500000001 120.6429166666667 833.3333333333334 166.6666666666667 833.3333333333334H833.3333333333333C879.3583333333333 833.3333333333334 916.6666666666666 796.0237500000001 916.6666666666666 750V250C916.6666666666666 203.975 879.3583333333333 166.6666666666668 833.3333333333333 166.6666666666668H166.6666666666667C120.6429166666667 166.6666666666668 83.3333333333333 203.975 83.3333333333333 250V750zM166.6666666666667 750H250V666.6666666666667H166.6666666666667V750zM583.3333333333333 750H333.3333333333333V666.6666666666667H583.3333333333333V750zM166.6666666666667 583.3333333333334H416.6666666666667V500H166.6666666666667V583.3333333333334zM833.3333333333333 750H666.6666666666666V666.6666666666667H833.3333333333333V750z" />
<glyph glyph-name="git"
unicode="&#xEA03;"
horiz-adv-x="1000" d="M108.3333333333333 558.75L349.1666666666667 800L419.5833333333333 729.1666666666667C409.5833333333333 693.75 425.8333333333333 655 458.3333333333333 636.25V405.4166666666668C433.3333333333333 391.2500000000001 416.6666666666667 364.1666666666668 416.6666666666667 333.3333333333334A83.3333333333333 83.3333333333333 0 0 1 500 250A83.3333333333333 83.3333333333333 0 0 1 583.3333333333333 333.3333333333334C583.3333333333333 364.1666666666668 566.6666666666666 391.2500000000001 541.6666666666666 405.4166666666668V607.9166666666667L627.9166666666666 520.8333333333334C625 514.5833333333334 625 507.5 625 500A83.3333333333333 83.3333333333333 0 0 1 708.3333333333333 416.6666666666668A83.3333333333333 83.3333333333333 0 0 1 791.6666666666666 500A83.3333333333333 83.3333333333333 0 0 1 708.3333333333333 583.3333333333334C700.8333333333333 583.3333333333334 693.7499999999999 583.3333333333334 687.5 580.4166666666667L580.4166666666666 687.5C591.25 726.25 571.2499999999999 768.75 532.4999999999999 785C514.5833333333333 791.6666666666667 495.8333333333333 793.3333333333334 479.1666666666666 788.75L408.3333333333333 859.1666666666666L441.25 891.6666666666666C473.7499999999999 924.5833333333331 526.2499999999999 924.5833333333331 558.75 891.6666666666666L891.6666666666665 558.75C924.5833333333331 526.25 924.5833333333331 473.7500000000001 891.6666666666665 441.25L558.7499999999999 108.3333333333335C526.2499999999999 75.4166666666669 473.7499999999999 75.4166666666669 441.2499999999999 108.3333333333335L108.3333333333332 441.2500000000001C75.4166666666666 473.7500000000001 75.4166666666666 526.2500000000001 108.3333333333332 558.7500000000001z" />
<glyph glyph-name="left"
unicode="&#xEA04;"
horiz-adv-x="1000" d="M361.082575 505.127565L696.02781 840.53277C709.8347995 854.35872 709.5740935 876.51989 695.445507 890.0311350000001C681.3169204999999 903.542375 658.670662 903.287255 644.8636725 889.461305L285.187065 529.2907600000001C271.485335 515.570215 271.6225350000001 493.6134479999999 285.4947100000001 480.057902L663.956447 110.2343599999999C677.9351875 96.5746775 700.582941 96.5905915000001 714.54162 110.2699055000001C728.5002995 123.9492195 728.484037 146.1118555000001 714.5052965 159.7715380000001L361.082575 505.127565z" />
<glyph glyph-name="stylelint"
unicode="&#xEA05;"
horiz-adv-x="1000" d="M506.8 5.28125C616.1750000000001 396.3312500000001 613 398.1062500000001 692.0500000000001 676.93125L711.05 665.93125C721.4000000000001 660.00625 729.85 664.8812499999999 729.85 676.78125L729.85 809.78125C750.85 883.23125 767.25 940.03125 772.1 957.03125L857.7249999999999 957.03125L1000 825.28125L906.55 744.53125L977.225 668.10625L511.4999999999999 5.28125C509.25 1.53125 506.075 2.38125 506.8 5.28125L506.8 5.28125zM557.6750000000001 848.18125C561.925 848.18125 565.3249999999999 845.85625 565.3249999999999 842.93125L565.3249999999999 774.80625C565.3249999999999 771.95625 561.9 769.63125 557.6750000000001 769.63125L442.675 769.63125C438.425 769.63125 435 771.95625 435 774.83125L435 842.98125C435 845.85625 438.425 848.23125 442.65 848.23125L557.65 848.23125L557.6750000000001 848.18125zM699.6750000000001 923.63125L573.125 850.58125C574.5749999999999 848.33125 575.4749999999999 845.75625 575.4749999999999 842.95625L575.4749999999999 774.78125C575.4749999999999 771.28125 574.075 768.08125 571.825 765.53125L699.65 691.73125C708.35 686.6812500000001 715.5 690.8062500000001 715.5 700.85625L715.5 914.48125C715.5 924.55625 708.4 928.65625 699.6750000000001 923.63125zM424.825 774.78125L424.825 842.98125C424.825 845.78125 425.725 848.35625 427.175 850.58125L300.625 923.68125C291.925 928.68125 284.775 924.58125 284.775 914.53125L284.775 700.90625C284.775 690.85625 291.925 686.73125 300.65 691.78125L428.45 765.58125C426.2000000000001 768.15625 424.85 771.33125 424.85 774.83125L424.825 774.78125zM488.5 5.28125L493.2 5.28125C383.85 396.3312500000001 387 398.1062500000001 307.95 676.93125L288.95 665.93125C278.625 660.00625 270.15 664.8812499999999 270.15 676.78125L270.15 809.78125C249.15 883.20625 232.75 940.03125 227.9 957.03125L142.3 957.03125L0 825.28125L93.425 744.53125L22.75 668.08125L488.5 5.28125zM496.525 627.3062500000001C515.6064375 627.3062500000001 531.0749999999999 642.77481171875 531.0749999999999 661.85625C531.0749999999999 680.9376882812501 515.6064375 696.40625 496.525 696.40625C477.4435625 696.40625 461.975 680.9376882812501 461.975 661.85625C461.975 642.77481171875 477.4435625 627.3062500000001 496.525 627.3062500000001zM496.525 421.93125C515.6064375 421.93125 531.0749999999999 437.3998125000001 531.0749999999999 456.4812499999999C531.0749999999999 475.5626875 515.6064375 491.03125 496.525 491.03125C477.4435625 491.03125 461.975 475.5626875 461.975 456.4812499999999C461.975 437.3998125000001 477.4435625 421.93125 496.525 421.93125zM496.525 216.50625C515.6064375 216.50625 531.0749999999999 231.9748125 531.0749999999999 251.05625C531.0749999999999 270.1376875 515.6064375 285.60625 496.525 285.60625C477.4435625 285.60625 461.975 270.1376875 461.975 251.05625C461.975 231.9748125 477.4435625 216.50625 496.525 216.50625z" />
<glyph glyph-name="test1 "
unicode="&#xEA06;"
horiz-adv-x="1000" d="M312.4375 762.5H872.5C890.5 762.5 905.5 783.0625 905.5 807.5A38.5 38.5 0 0 1 872.5 850H312.5A38.5 38.5 0 0 1 279.5 807.5C279.5 783.0625 294.5 762.5 312.5 762.5zM872.5 543.75H312.5C294.5 543.75 279.5 522.25 279.5 500.75S293.9375 456.2500000000001 312.5 456.2500000000001H872.5625C890.5624999999999 456.2500000000001 905.5624999999998 479.7500000000001 905.5624999999998 500.7500000000001C905.5624999999998 521.7500000000001 891.0624999999999 543.6875000000001 872.5625 543.6875000000001zM872.5 237.4375H312.5A38 38 0 0 1 279.5 196.9375000000001C279.5 176.0000000000001 294 150.0000000000001 312.5 150.0000000000001H872.5625C890.5624999999999 150.0000000000001 905.5624999999998 176.0000000000001 905.5624999999998 196.9375000000001A38 38 0 0 1 872.5625 237.9375V237.4375zM100.625 849.9375000000001A44.4375 44.4375 0 0 1 56.125 806.0000000000001C56.375 781.6250000000001 76.1875 762.0625000000001 100.5625 762.0625000000001A43.9375 43.9375 0 1 1 100.5625 850.0000000000001zM100.625 543.6875A43.9375 43.9375 0 1 1 100.625 456.2500000000001A43.9375 43.9375 0 1 1 100.625 543.75zM100.625 237.4375A43.9375 43.9375 0 1 1 100.625 150.5000000000001A43.9375 43.9375 0 1 1 100.625 237.9375000000003V237.4375000000003z" />
<glyph glyph-name="test2"
unicode="&#xEA07;"
horiz-adv-x="1000" d="M72.5625 260.0625A34.0625 34.0625 0 0 1 121 260.0625L500 639.0625L879 260.0625A34.0625 34.0625 0 0 1 927.4375 260.0625A34.0625 34.0625 0 0 1 927.4375 308.5L524.1875 711.6875A34.125 34.125 0 0 1 475.8125000000001 711.6875L72.5 308.5A34.125 34.125 0 0 1 72.5 260.0625z" />
<glyph glyph-name="test3"
unicode="&#xEA08;"
horiz-adv-x="1000" d="M508.4999999999999 509.0769228515625M17.5769228515624 509.0769228515625A490.9230771484375 490.9230771484375 0 1 1 999.4230771484376 509.0769228515625A490.9230771484375 490.9230771484375 0 1 1 17.5769228515624 509.0769228515625z" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 8.7 KiB

13
public/dist/svgtofont.symbol.svg vendored Normal file
View File

@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0" style="display:none;"><symbol viewBox="0 0 24 24" id="svgtofont-adobe">
<g fill="none" fill-rule="evenodd" transform="translate(-168 -1104)">
<path fill="#555" d="M14.8679444,3 L23,3 L23,22 L14.8679444,3 Z M1,3 L9.13847222,3 L1,22 L1,3 Z M8.44730556,18.1780547 L12.0030556,10.0019303 L17.1852778,21.9988073 L13.7896389,21.9988073 L12.2389444,18.1780547 L8.44730556,18.1780547 Z" transform="translate(168 1104)"></path>
</g>
</symbol><symbol viewBox="0 0 24 24" id="svgtofont-demo">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 6C2 4.89543 2.89543 4 4 4H20C21.1046 4 22 4.89543 22 6V18C22 19.1046 21.1046 20 20 20H4C2.89543 20 2 19.1046 2 18V6ZM4 6H6V8H4V6ZM14 6H8V8H14V6ZM4 10H10V12H4V10ZM20 6H16V8H20V6Z" fill="black"></path>
</symbol><symbol viewBox="0 0 24 24" id="svgtofont-git">
<path d="m2.6 10.59l5.78-5.79 1.69 1.7c-0.24 0.85 0.15 1.78 0.93 2.23v5.54c-0.6 0.34-1 0.99-1 1.73a2 2 0 0 0 2 2 2 2 0 0 0 2 -2c0-0.74-0.4-1.39-1-1.73v-4.86l2.07 2.09c-0.07 0.15-0.07 0.32-0.07 0.5a2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2c-0.18 0-0.35 0-0.5 0.07l-2.57-2.57c0.26-0.93-0.22-1.95-1.15-2.34-0.43-0.16-0.88-0.2-1.28-0.09l-1.7-1.69 0.79-0.78c0.78-0.79 2.04-0.79 2.82 0l7.99 7.99c0.79 0.78 0.79 2.04 0 2.82l-7.99 7.99c-0.78 0.79-2.04 0.79-2.82 0l-7.99-7.99c-0.79-0.78-0.79-2.04 0-2.82z" fill="#e64a19"></path>
</symbol><symbol viewBox="0 0 20 20" id="svgtofont-left">
<path fill="#555" d="M10.1025513,12.7783485 L16.8106554,6.0794438 C17.0871744,5.80330401 17.5303978,5.80851813 17.8006227,6.09108986 C18.0708475,6.37366159 18.0657451,6.82658676 17.7892261,7.10272655 L10.5858152,14.2962587 C10.3114043,14.5702933 9.87226896,14.5675493 9.60115804,14.2901058 L2.2046872,6.72087106 C1.93149355,6.44129625 1.93181183,5.98834118 2.20539811,5.7091676 C2.47898439,5.42999401 2.92223711,5.43031926 3.19543076,5.70989407 L10.1025513,12.7783485 Z" transform="matrix(0 -1 -1 0 20 20)"></path>
</symbol><symbol viewBox="0 0 256 245" id="svgtofont-stylelint">
<path d="M129.7408,243.648 C157.7408,143.5392 156.928,143.0848 177.1648,71.7056 L182.0288,74.5216 C184.6784,76.0384 186.8416,74.7904 186.8416,71.744 L186.8416,37.696 C192.2176,18.8928 196.416,4.352 197.6576,0 L219.5776,0 L256,33.728 L232.0768,54.4 L250.1696,73.9648 L130.944,243.648 C130.368,244.608 129.5552,244.3904 129.7408,243.648 L129.7408,243.648 Z M142.7648,27.8656 C143.8528,27.8656 144.7232,28.4608 144.7232,29.2096 L144.7232,46.6496 C144.7232,47.3792 143.8464,47.9744 142.7648,47.9744 L113.3248,47.9744 C112.2368,47.9744 111.36,47.3792 111.36,46.6432 L111.36,29.1968 C111.36,28.4608 112.2368,27.8528 113.3184,27.8528 L142.7584,27.8528 L142.7648,27.8656 Z M179.1168,8.5504 L146.72,27.2512 C147.0912,27.8272 147.3216,28.4864 147.3216,29.2032 L147.3216,46.656 C147.3216,47.552 146.9632,48.3712 146.3872,49.024 L179.1104,67.9168 C181.3376,69.2096 183.168,68.1536 183.168,65.5808 L183.168,10.8928 C183.168,8.3136 181.3504,7.264 179.1168,8.5504 Z M108.7552,46.656 L108.7552,29.1968 C108.7552,28.48 108.9856,27.8208 109.3568,27.2512 L76.96,8.5376 C74.7328,7.2576 72.9024,8.3072 72.9024,10.88 L72.9024,65.568 C72.9024,68.1408 74.7328,69.1968 76.9664,67.904 L109.6832,49.0112 C109.1072,48.352 108.7616,47.5392 108.7616,46.6432 L108.7552,46.656 Z M125.056,243.648 L126.2592,243.648 C98.2656,143.5392 99.072,143.0848 78.8352,71.7056 L73.9712,74.5216 C71.328,76.0384 69.1584,74.7904 69.1584,71.744 L69.1584,37.696 C63.7824,18.8992 59.584,4.352 58.3424,0 L36.4288,0 L0,33.728 L23.9168,54.4 L5.824,73.9712 L125.056,243.648 Z M127.1104,84.4096 C131.995248,84.4096 135.9552,80.4496482 135.9552,75.5648 C135.9552,70.6799518 131.995248,66.72 127.1104,66.72 C122.225552,66.72 118.2656,70.6799518 118.2656,75.5648 C118.2656,80.4496482 122.225552,84.4096 127.1104,84.4096 Z M127.1104,136.9856 C131.995248,136.9856 135.9552,133.025648 135.9552,128.1408 C135.9552,123.255952 131.995248,119.296 127.1104,119.296 C122.225552,119.296 118.2656,123.255952 118.2656,128.1408 C118.2656,133.025648 122.225552,136.9856 127.1104,136.9856 Z M127.1104,189.5744 C131.995248,189.5744 135.9552,185.614448 135.9552,180.7296 C135.9552,175.844752 131.995248,171.8848 127.1104,171.8848 C122.225552,171.8848 118.2656,175.844752 118.2656,180.7296 C118.2656,185.614448 122.225552,189.5744 127.1104,189.5744 Z" fill="#000000"></path>
</symbol><symbol id="svgtofont-test1 "></symbol><symbol id="svgtofont-test2"></symbol><symbol id="svgtofont-test3"></symbol></svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
public/dist/svgtofont.ttf vendored Normal file

Binary file not shown.

BIN
public/dist/svgtofont.woff vendored Normal file

Binary file not shown.

BIN
public/dist/svgtofont.woff2 vendored Normal file

Binary file not shown.

209
public/dist/symbol.html vendored Normal file
View File

@ -0,0 +1,209 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>svgtofont</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<meta name="description" content="Converts SVG fonts to TTF/EOT/WOFF/WOFF2/SVG format.">
<meta name="keywords" content="svgtofont,TTF,EOT,WOFF,WOFF2,SVG">
<link rel="icon" type="image/x-icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABUxJREFUaAW9Wk2IHEUUfq9mJiARFfM307NGMEENixIhejAXdwlRdnZXPeTg2RyUgOgl8Tds8D8H9aInvQkRhIDZDKgk8SB4WVHQLOJJE5OemY2YKO4Gs9NVvteTWnp6qnr6pyZ12Op679Wr79vX9arrMQgjaEuz3gNBAHOg4MHQPcJCqQRzm0/4P7peDl079KfqLyDIowqgHPWNgKuI6mC12fogKi/6LIo6iM5vN2ovA8j34uDZRoGqSAXvt6a9g9E5RZ+dReCfGW/jcqAWCfzmYaBQ4KHaSf/oMLs0emcRuGXe/xMqlQlE6AxbWEn1rqtIOIuABu037tyBcO2MUlDVMlvvIhKFItB+ctvA6+I1z/1SEciRaNuAa7mLSOSOQKtRf4025nOiLCarX1z4WYPSfaex9S4JwQ4BsitBPESb+wBFZYvWR/sikchFgFLlqwTodQZBDi4hlierzT/ORkHFn//eN3b78rI8Rvlob1zH47wkMhPwG/VXQMk3oiDIyRKUKpO1+fOLUXn8OSSxIn8CpepxHY/zkMi0B0zgeeEwdQarZ5Zmx7bz2NZu/fzCX7Q3Prbp8+yJ1ARs4DUYJhFIuFuPbT2dyN/adCzPSiIVgfCEjb02JhAI6j+TvE+m1Pq+sWGQhcRQAgyePgHeNKwzIKIs8/CAMCZAKJ+lKLRi4oFhWhKJm7g9XXtJSnhrwLtFwJv5Jqzce1vz/GWLSSi+NOvd0+3CN5SGa0l2rBu2sa0RyAqeF+N9cBVWj3O24bGtbTrh/1ouw4SLSBgJtKe8F7P856NA6TV6ZGWld0ZE5fFnVyQGCITgQb0dXzDLmF6NvrsAz1X7xtfFfbgg0Ueg1fAOyYLg4yD1uLV8ZW5pqr5Tj3VflMQaAQavlHpHO3beo9zQRXWqMzt2f9w3k8BSZXcJcTeimKaNeyQ83eOGNI5np5AApcrnRwpeA1FqQxDI0+3Hx+7TIt1X58/9tqXpf1drXmzSZWdufQnHAfGU1kd7JsGYWSb4Aq4UOrkdRRexPiu1Ua0Gp1szW8etNqTgC9LNAp6yRoIwM3YRdOEI31eTnLnWUbrdBPTt1Hnijm1JvsNbHuKHJhvGzJUPfoV2mQxGLeMzA4Ng6EEGQixYsVDZZm0TW41GqKCzJvHAS7O0oBuJnWEaD0VsUPUKX0k+pLTbEHbBFTMuOiX5GJVOKnzGdK/W63Gphi4/B/Q42jNmxi643McVs6jyhj1zRrp29TMTCQb/r4RjvFdMeBgzYw+PfC73UZ1mHedXk/EoZXT+TBCJRTpIP6IDbEHRpwDQq0VFsmdpXTN4KoxVT/phiXLtm4UrZUQiPOmKAKa8TZjEDwM+SEY1U/rW4zpArHEkAA6rgP5yu971Bv1/45/XA864YlYkEgJxf7Xpf9K/bG/UbnhPEwXrndg0JyqLg2fdAAEW5iaB+JXX9B9jH7bmN7wvKUaP2vQ2uQk82xrPAX6deILNmV0uPrXrtCaNjbbt9TbwrDUSYEUeEmUhf+e5SS2NTXR+Eni2sxJgZVYSQYDbeV5SS2Oj5w8Dz3aJBNggCwmFag/PSWppbHh+GvChXdJiUV2ajc0plLLQXvquN37HdxreHspCXxtTaWSxtOB5ytAIaL9pIsHA6Bw63p7x9ut5umcZ61yCZ9/GNKoXNfVpIhHOQ7xI/ffXfeyyFXSja2T5z+t5mQnwxNQk9Cop+jzg2W0uAjzRJYm84AsRcEWiCPjCBIqSKAreCYG8JFyAd0YgKwlX4J0SSEvCJXjnBNhhr8qH9GOP/loT32FH8WOP3GmUwdrajfy5zf8bun5GxUuCHgAAAABJRU5ErkJggg==">
<style>
*{margin: 0;padding: 0;list-style: none;}
body { color: #696969; font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif; }
a { color: #333; text-decoration: underline; }
a:hover { color: rgb(9, 73, 209); }
.header { color: #333; text-align: center; padding: 80px 0 60px 0; min-height: 153px; font-size: 14px; }
.header .logo svg { height: 120px; width: 120px; }
.header h1 { font-size: 42px; padding: 26px 0 10px 0; }
.header sup {font-size: 14px; margin: 8px 0 0 8px; position: absolute; color: #7b7b7b; }
.info {
color: #999;
font-weight: normal;
max-width: 346px;
margin: 0 auto;
padding: 20px 0;
font-size: 14px;
}
.icons { max-width: 1190px; margin: 0 auto; }
.icons ul { text-align: center; }
.icons ul li {
vertical-align: top;
width: 120px;
display: inline-block;
text-align: center;
background-color: rgba(0,0,0,.02);
border-radius: 3px;
padding: 29px 0 10px 0;
margin-right: 10px;
margin-top: 10px;
transition: all 0.6s ease;
}
.icons ul li:hover { background-color: rgba(0,0,0,.06); }
.icons ul li:hover span { color: #3c75e4; opacity: 1; }
.icons ul li .unicode { color: #8c8c8c; opacity: 0.3; }
.icons ul li h4 {
font-weight: normal;
padding: 10px 0 5px 0;
display: block;
color: #8c8c8c;
font-size: 14px;
line-height: 12px;
opacity: 0.8;
}
.icons ul li:hover h4 { opacity: 1; }
.icons ul li svg { width: 24px; height: 24px; }
.icons ul li:hover { color: #3c75e4; }
.footer { text-align: center; padding: 10px 0 90px 0; }
.footer a { text-align: center; padding: 10px 0 90px 0; color: #696969;}
.footer a:hover { color: #0949d1; }
.links { text-align: center; padding: 50px 0 0 0; font-size: 14px; }
.icons ul li.symbol {padding: 28px 10px 16px 10px; width: 100px;}
.icons ul li.symbol svg {width: 34px; height: 34px;}
.icons ul li.symbol h4 {font-size: 12px;}
</style>
<style>
.github-corner:hover .octo-arm { animation: octocat-wave 560ms ease-in-out; }
.github-corner svg { position: fixed; z-index: 999; border: 0px; top: 0px; right: 0px;}
@keyframes octocat-wave{
0%, 100% { transform: rotate(0); }
20%, 60% { transform: rotate(-25deg); }
40%, 80% { transform: rotate(10deg); }
}
@media (max-width:500px){
.github-corner:hover .octo-arm { animation: none; }
.github-corner .octo-arm { animation: octocat-wave 560ms ease-in-out; }
}
</style>
</head>
<body>
<a href="https://github.com/jaywcjlove/svgtofont" target="__blank" class="github-corner">
<svg width="62" height="62" viewBox="0 0 250 250" aria-hidden="true" style="fill: #dc3545; color: rgb(255, 255, 255); ">
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
<path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" class="octo-arm" style="transform-origin: 130px 106px;"></path>
<path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path>
</svg>
</a>
<div class="header">
<div class="logo">
<a href="./"><svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m2.6 10.59l5.78-5.79 1.69 1.7c-0.24 0.85 0.15 1.78 0.93 2.23v5.54c-0.6 0.34-1 0.99-1 1.73a2 2 0 0 0 2 2 2 2 0 0 0 2 -2c0-0.74-0.4-1.39-1-1.73v-4.86l2.07 2.09c-0.07 0.15-0.07 0.32-0.07 0.5a2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2c-0.18 0-0.35 0-0.5 0.07l-2.57-2.57c0.26-0.93-0.22-1.95-1.15-2.34-0.43-0.16-0.88-0.2-1.28-0.09l-1.7-1.69 0.79-0.78c0.78-0.79 2.04-0.79 2.82 0l7.99 7.99c0.79 0.78 0.79 2.04 0 2.82l-7.99 7.99c-0.78 0.79-2.04 0.79-2.82 0l-7.99-7.99c-0.79-0.78-0.79-2.04 0-2.82z" fill="#e64a19"/>
</svg>
</a>
</div>
<h1>svgtofont<sup>3.13.1</sup></h1>
<div class="info">
Converts SVG fonts to TTF/EOT/WOFF/WOFF2/SVG format.
</div>
<p>
<a href="https://github.com/jaywcjlove/svgtofont">GitHub</a> ·
<a href="https://github.com/jaywcjlove/svgtofont/issues">Feedback</a> ·
<a href="font-class.html">Font Class Demo</a> ·
<a href="symbol.html">Symbol Demo</a> ·
<a href="index.html">Unicode Demo</a>
</p>
</div>
<div class="icons">
<ul>
<li class="symbol">
<svg class="icon" aria-hidden="true">
<use xlink:href="svgtofont.symbol.svg#svgtofont-adobe"></use>
</svg>
<h4>svgtofont-adobe</h4>
</li>
<li class="symbol">
<svg class="icon" aria-hidden="true">
<use xlink:href="svgtofont.symbol.svg#svgtofont-demo"></use>
</svg>
<h4>svgtofont-demo</h4>
</li>
<li class="symbol">
<svg class="icon" aria-hidden="true">
<use xlink:href="svgtofont.symbol.svg#svgtofont-git"></use>
</svg>
<h4>svgtofont-git</h4>
</li>
<li class="symbol">
<svg class="icon" aria-hidden="true">
<use xlink:href="svgtofont.symbol.svg#svgtofont-left"></use>
</svg>
<h4>svgtofont-left</h4>
</li>
<li class="symbol">
<svg class="icon" aria-hidden="true">
<use xlink:href="svgtofont.symbol.svg#svgtofont-stylelint"></use>
</svg>
<h4>svgtofont-stylelint</h4>
</li>
<li class="symbol">
<svg class="icon" aria-hidden="true">
<use xlink:href="svgtofont.symbol.svg#svgtofont-test1 "></use>
</svg>
<h4>svgtofont-test1 </h4>
</li>
<li class="symbol">
<svg class="icon" aria-hidden="true">
<use xlink:href="svgtofont.symbol.svg#svgtofont-test2"></use>
</svg>
<h4>svgtofont-test2</h4>
</li>
<li class="symbol">
<svg class="icon" aria-hidden="true">
<use xlink:href="svgtofont.symbol.svg#svgtofont-test3"></use>
</svg>
<h4>svgtofont-test3</h4>
</li>
</ul>
</div>
<p class="links">
<a href="https://github.com/jaywcjlove/svgtofont">GitHub</a> ·
<a href="https://github.com/jaywcjlove/svgtofont/issues">Feedback</a> ·
<a href="font-class.html">Font Class Demo</a> ·
<a href="symbol.html">Symbol Demo</a> ·
<a href="index.html">Unicode Demo</a>
</p>
<div class="footer">
Licensed under MIT. (Yes it's free and <a target="_blank" href="https://github.com/jaywcjlove/svgtofont">open-sourced</a>)
<div><a target="_blank" href="https://github.com/jaywcjlove/svgtofont">Created By svgtofont</a></div>
</div>
</body>
</html>

View File

@ -11,6 +11,7 @@
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="stylesheet" type="text/css" href="%PUBLIC_URL%css/iconfont.css">
<!-- <link rel="stylesheet" type="text/css" href="%PUBLIC_URL%dist/svgtofont.css"> -->
<link rel="stylesheet" type="text/css" href="%PUBLIC_URL%css/edu-purge.css">
<link rel="stylesheet" type="text/css" href="%PUBLIC_URL%css/editormd.min.css">
<link rel="stylesheet" type="text/css" href="%PUBLIC_URL%css/merge.css">

3159
src/college/iconfont.css Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
.ant-table-wrapper{
::-webkit-scrollbar{
width: 5px;
height: 5px;
}
.ant-table-hide-scrollbar{
margin-bottom: -5px;
overflow-y: hidden !important;
::-webkit-scrollbar{
width: 5px;
height: 5px;
}
}
}

View File

@ -0,0 +1,151 @@
export const exportExcel = (tableClass, fileName) => {
if (getExplorer() === 'ie') {
//创建AX对象excel
const curTbl = document.querySelector(tableClass).cloneNode(true);
// eslint-disable-next-line no-undef
let oXL = new ActiveXObject("Excel.Application");
let oWB = oXL.Workbooks.Add(); //获取workbook对象
let xlSheet = oWB.Worksheets(1); //激活当前sheet
let sel = document.body.createTextRange(); //把表格中的内容移到TextRange中
sel.moveToElementText(curTbl);
sel.select;//全选TextRange中内容
sel.execCommand("Copy");//复制TextRange中内容
xlSheet.Paste(); //粘贴到活动的EXCEL中
oXL.Visible = true; //设置excel可见属性
let fName = null;
try {
fName = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");
} catch (e) {
} finally {
oWB.SaveAs(fName);
// oWB.Close(savechanges = false);
oXL.Quit();
oXL = null;
// 下面代码用于解决IE call Excel的一个BUG, MSDN中提供的方法:
// setTimeout(CollectGarbage, 1);
// 由于不能清除(或同步)网页的受信任状态, 所以将导致SaveAs()等方法在
// 下次调用时无效.
window.location.reload();
}
} else {
tableToExcel(tableClass, fileName, 'worksheet')
}
}
const traverseNodes = (node, newTd) => {
if (node.hasChildNodes) {
const sonNodes = node.childNodes;
const filterElement = ['button'];
for (let sonNode of sonNodes) {
if (!filterElement.includes(sonNode.nodeName.toLowerCase())) { // 对不必要对element过滤
traverseNodes(sonNode, newTd);
}
}
}
return display(node, newTd);
}
const display = (node, newTd) => {
const {nodeName, nodeValue} = node;
let newSpan = document.createElement("span");
newSpan.innerText = nodeValue;
if (nodeName === 'INPUT' || nodeName === 'TEXTAREA') { // 对 input 处理
const {type, checked, value} = node;
newSpan.innerText = value;
if (type === 'radio' || type === 'checkbox') {
console.log("type", type)
newSpan.innerText = type === 'radio' ? (checked ? "●" : "○") : (checked ? "■" : "□");
newSpan.style.fontSize = '16px';
newSpan.style.paddingLeft = '15px';
}
}
if (node.nodeName === 'IMG') {
const {width, height} = node;
newTd.appendChild(node);
newTd.style.height = height + "px";
newTd.style.width = width + "px";
}
if (newSpan.innerText.trim()) {
newTd.appendChild(newSpan);
}
return newTd
}
const tableToExcel = (table, fileName, worksheet) => {
const uri = 'data:application/vnd.ms-excel;base64,';
// 定义文档的类型
const template = '<html><head><meta charset="UTF-8"></head><body><table border="1">{table}</table></body></html>';
const base64 = function (s) {
return window.btoa(unescape(encodeURIComponent(s)))
};
// 将template中的变量替换为页面内容ctx获取到的值
const format = function (s, c) {
return s.replace(/{(\w+)}/g, function (m, p) {
return c[p];
})
}
if (!table.nodeType) {
table = document.querySelector(table).cloneNode(true);
}
let newTable = document.createElement("table");
const trArray = table.getElementsByTagName('tr');
for (let trItem of trArray) {
let newTr = document.createElement("tr");
const thArray = trItem.getElementsByTagName('th');
const tdArray = trItem.getElementsByTagName('td');
for (let thItem of thArray) {
let newTh = document.createElement("th");
const {rowSpan = 1, colSpan = 1, style} = thItem;
traverseNodes(thItem, newTh);
newTh.rowSpan = rowSpan; //跨行
newTh.colSpan = colSpan; //跨列
newTh.style = style; // 样式
newTr.appendChild(newTh);
}
for (let tdItem of tdArray) {
let newTd = document.createElement("td");
const {rowSpan = 1, colSpan = 1, style} = tdItem;
traverseNodes(tdItem, newTd);
newTd.rowSpan = rowSpan; //跨行
newTd.colSpan = colSpan; //跨列
newTd.style = style; // 样式
newTr.appendChild(newTd);
}
if (newTr.childNodes.length > 1) {
newTable.appendChild(newTr);
}
}
const ctx = {worksheet, table: newTable.innerHTML}; // 获取表单的名字和表单查询的内容
const a = document.createElement("a"); // 虚拟一个a 标签
// format()函数:通过格式操作使任意类型的数据转换成一个字符串
// base64():进行编码
a.href = uri + base64(format(template, ctx));
a.download = fileName + ".xls";//设置文件的名字
a.click();// 下载
}
// 获取当前浏览器
const getExplorer = () => {
const explorer = window.navigator.userAgent;
if (explorer.indexOf("MSIE") >= 0) { //ie
return 'ie';
}
else if (explorer.indexOf("Firefox") >= 0) { //firefox
return 'Firefox';
}
else if (explorer.indexOf("Chrome") >= 0) { //Chrome
return 'Chrome';
}
else if (explorer.indexOf("Opera") >= 0) { //Opera
return 'Opera';
}
else if (explorer.indexOf("Safari") >= 0) { //Safari
return 'Safari';
}
}

View File

@ -0,0 +1,200 @@
import React, {Component} from 'react';
import {Button} from 'antd';
import PropTypes from "prop-types";
const propTypes = {
tableClass: PropTypes.string, // tableClass
fileName: PropTypes.string, // 导出文件的名字
worksheet: PropTypes.string, //导出工作簿名字
// colors: PropTypes.string, // button 样式
// size: PropTypes.string, //按钮大小(lg xg sm md)
// style: PropTypes.string, // 按钮样式
// exportIcon: PropTypes.element, // 自定义导出图标
title: PropTypes.element, //名称标题
filterElement: PropTypes.array, //过滤元素
};
const defaultProps = {
tableClass: '',
fileName: "filename",
worksheet: 'worksheet',
// colors: "primary",
// size: 'sm',
// style: '',
exportIcon: null,
title: '导出',
filterElement: ['button']
};
class ExportExcel extends Component {
exportExcel = () => {
const {tableClass, fileName, worksheet} = this.props;
if (this.getExplorer() === 'ie') {
//创建AX对象excel
const curTbl = document.querySelector(tableClass).cloneNode(true);
// eslint-disable-next-line no-undef
let oXL = new ActiveXObject("Excel.Application");
let oWB = oXL.Workbooks.Add(); //获取workbook对象
let xlSheet = oWB.Worksheets(1); //激活当前sheet
let sel = document.body.createTextRange(); //把表格中的内容移到TextRange中
sel.moveToElementText(curTbl);
sel.select;//全选TextRange中内容
sel.execCommand("Copy");//复制TextRange中内容
xlSheet.Paste(); //粘贴到活动的EXCEL中
oXL.Visible = true; //设置excel可见属性
let fName = null;
try {
fName = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");
} catch (e) {
} finally {
oWB.SaveAs(fName);
// oWB.Close(savechanges = false);
oXL.Quit();
oXL = null;
// 下面代码用于解决IE call Excel的一个BUG, MSDN中提供的方法:
// setTimeout(CollectGarbage, 1);
// 由于不能清除(或同步)网页的受信任状态, 所以将导致SaveAs()等方法在
// 下次调用时无效.
window.location.reload();
}
} else {
this.tableToExcel(tableClass, fileName, worksheet)
}
}
traverseNodes = (node, newTd) => {
if (node.hasChildNodes) {
const sonNodes = node.childNodes;
const {filterElement} = this.props;
for (let sonNode of sonNodes) {
if (!filterElement.includes(sonNode.nodeName.toLowerCase())) { // 对不必要对element过滤
this.traverseNodes(sonNode, newTd);
}
}
}
return this.display(node, newTd);
}
display = (node, newTd) => {
const {nodeName, nodeValue} = node;
let newSpan = document.createElement("span");
newSpan.innerText = nodeValue;
if (nodeName === 'INPUT' || nodeName === 'TEXTAREA') { // 对 input 处理
const {type, checked, value} = node;
newSpan.innerText = value;
if (type === 'radio' || type === 'checkbox') {
console.log("type", type)
newSpan.innerText = type === 'radio' ? (checked ? "●" : "○") : (checked ? "■" : "□");
newSpan.style.fontSize = '16px';
newSpan.style.paddingLeft = '15px';
}
}
if (node.nodeName === 'IMG') {
const {width, height} = node;
newTd.appendChild(node);
newTd.style.height = height + "px";
newTd.style.width = width + "px";
}
if (newSpan.innerText.trim()) {
newTd.appendChild(newSpan);
}
return newTd
}
tableToExcel = (table, fileName, worksheet) => {
const uri = 'data:application/vnd.ms-excel;base64,';
// 定义文档的类型
const template = '<html><head><meta charset="UTF-8"></head><body><table border="1">{table}</table></body></html>';
const base64 = function (s) {
return window.btoa(unescape(encodeURIComponent(s)))
};
// 将template中的变量替换为页面内容ctx获取到的值
const format = function (s, c) {
return s.replace(/{(\w+)}/g, function (m, p) {
return c[p];
})
}
if (!table.nodeType) {
table = document.querySelector(table).cloneNode(true);
}
let newTable = document.createElement("table");
const trArray = table.getElementsByTagName('tr');
for (let trItem of trArray) {
let newTr = document.createElement("tr");
const thArray = trItem.getElementsByTagName('th');
const tdArray = trItem.getElementsByTagName('td');
for (let thItem of thArray) {
let newTh = document.createElement("th");
const {rowSpan = 1, colSpan = 1, style} = thItem;
this.traverseNodes(thItem, newTh);
newTh.rowSpan = rowSpan; //跨行
newTh.colSpan = colSpan; //跨列
newTh.style = style; // 样式
newTr.appendChild(newTh);
}
for (let tdItem of tdArray) {
let newTd = document.createElement("td");
const {rowSpan = 1, colSpan = 1, style} = tdItem;
this.traverseNodes(tdItem, newTd);
newTd.rowSpan = rowSpan; //跨行
newTd.colSpan = colSpan; //跨列
newTd.style = style; // 样式
newTr.appendChild(newTd);
}
if (newTr.childNodes.length > 1) {
newTable.appendChild(newTr);
}
}
const ctx = {worksheet, table: newTable.innerHTML}; // 获取表单的名字和表单查询的内容
const a = document.createElement("a"); // 虚拟一个a 标签
// format()函数:通过格式操作使任意类型的数据转换成一个字符串
// base64():进行编码
a.href = uri + base64(format(template, ctx));
a.download = fileName + ".xls";//设置文件的名字
a.click();// 下载
}
// 获取当前浏览器
getExplorer = () => {
const explorer = window.navigator.userAgent;
if (explorer.indexOf("MSIE") >= 0) { //ie
return 'ie';
}
else if (explorer.indexOf("Firefox") >= 0) { //firefox
return 'Firefox';
}
else if (explorer.indexOf("Chrome") >= 0) { //Chrome
return 'Chrome';
}
else if (explorer.indexOf("Opera") >= 0) { //Opera
return 'Opera';
}
else if (explorer.indexOf("Safari") >= 0) { //Safari
return 'Safari';
}
}
render() {
const {colors, exportIcon, size, title} = this.props;
return (
<Button
// colors={colors}
// size={size}
onClick={this.exportExcel}
>
{/*{exportIcon}{title}*/}
导出
</Button>
)
}
}
ExportExcel.propTypes = propTypes;
ExportExcel.defaultProps = defaultProps;
export default ExportExcel;

View File

@ -1,6 +1,7 @@
import React, { useState, useMemo, useEffect } from "react";
import { Input, Select, Button, Form, DatePicker, Table, Pagination, Upload, Modal } from 'antd';
import cookie from 'react-cookies';
import { exportExcel } from '../components/exportExcel.js';
import Paginationtable from "../../components/paginationTable";
import { Info } from '../../components/ModalFun';
import { expertList, registerCheck } from "../api";
@ -15,6 +16,7 @@ const Option = Select.Option;
function RegisterList({ showNotification }) {
const [reload, setReload] = useState();
const [loading, setLoading] = useState(false);
const [downloading, setDownloading] = useState(false);
const [curPage, setCurPage] = useState(1);
const [dataList, setDataList] = useState([]);
const [total, setTotal] = useState(0);
@ -24,12 +26,14 @@ function RegisterList({ showNotification }) {
const [pageSize, setPageSize] = useState(10);
const [uploadExpertList, setUploadExpertList] = useState([]);
const [uploadExpertIds, setUploadExpertIds] = useState([]);
const [dataAll, setDataAll] = useState([]);
const [download, setDownload] = useState();
const columns = useMemo(() => {
return [{
title: '姓名',
dataIndex: 'expertName',
width: 55,
width: 75,
key: 'expertName',
fixed: 'left',
// render: (text, record) => {
@ -39,16 +43,13 @@ function RegisterList({ showNotification }) {
{
title: '最高学历',
dataIndex: 'highestDegree',
width: 100,
key: 'highestDegree',
fixed: 'left',
width: 80,
},
{
title: '手机号码',
dataIndex: 'phone',
width: 100,
key: 'phone',
fixed: 'left',
},
{
title: '工作单位',
@ -57,22 +58,27 @@ function RegisterList({ showNotification }) {
{
title: '单位类别',
dataIndex: 'workplaceType',
width: 80,
},
{
title: '工作性质',
dataIndex: 'workNature',
width: 80,
},
{
title: '专业职称',
dataIndex: 'professionalTitle',
width: 80,
},
{
title: '职称职级',
dataIndex: 'professionalYears',
width: 80,
},
{
title: '专业类别',
dataIndex: 'expertType',
width: 80,
},
{
title: '评审领域1',
@ -97,6 +103,7 @@ function RegisterList({ showNotification }) {
{
title: '身份证号',
dataIndex: 'idNumber',
width: 170,
},
{
title: '邮箱地址',
@ -110,10 +117,11 @@ function RegisterList({ showNotification }) {
title: '银行账号',
dataIndex: 'bankAccount',
},
{
title: '个人简介',
dataIndex: 'resume',
},
// {
// title: '',
// dataIndex: 'resume',
// width:200
// },
// {
// title: '',
// dataIndex: 'titleCertificate',
@ -129,6 +137,8 @@ function RegisterList({ showNotification }) {
];
}, []);
//
useEffect(() => {
console.log('searchReviewArea', searchReviewArea);
@ -142,17 +152,34 @@ function RegisterList({ showNotification }) {
statusString: '1',
};
expertList(params).then(data => {
if (data && Array.isArray(data.rows)) {
for (const item of data.rows) {
item.detail = item.paperDetail && item.paperDetail.content;
}
}
setDataList(data.rows || []);
setLoading(false);
setTotal(data.total);
});
}, [curPage, reload, searchInput, searchReviewArea, expertType]);
//
useEffect(() => {
if(!download){
return;
}
setDownloading(true);
let params = {
searchInput,
reviewArea: searchReviewArea,
expertType,
pageSize: 10000000,
curPage: 1,
statusString: '1',
};
expertList(params).then(data => {
setDataAll(data.rows || []);
setDownloading(false);
exportExcel("#exportList .ant-table-scroll", "专家列表");
});
}, [download]);
function check(record, checkStatus) {
Modal.confirm({
title: "警告",
@ -205,15 +232,6 @@ function RegisterList({ showNotification }) {
}
}
function exportList(){
Info({
title: '提示',
content: <div className="import-important">
hhhh
</div>,
});
}
const upload = {
name: 'file',
action: `${httpUrl}/api/experts/registerByExcel`,
@ -272,7 +290,9 @@ function RegisterList({ showNotification }) {
>
<button className="but41_fill">导入</button>
</Upload>
<button className="but41_fill" onClick={exportList}>导出</button>
<Button loading={downloading} className="but41_fill" onClick={() => { setDownload(Math.random()) }}>导出</Button>
{/* <ExportExcel tableClass=".ant-table-scroll" fileName="专家列表" /> */}
</div>
</div>
<Paginationtable
@ -282,7 +302,15 @@ function RegisterList({ showNotification }) {
total={total}
setCurPage={setCurPage}
current={curPage}
scroll={{ x: 1600, y: 600 }}
scroll={{ x: 2100, y: 600 }}
/>
<Table
id="exportList"
style={{ display: "none" }}
columns={columns}
dataSource={dataAll}
pagination={false}
/>
</div>)
}

View File

@ -23,4 +23,4 @@
color: #df0002;
}
}
}
}

View File

@ -114,4 +114,10 @@
.expert_modal.submit .ant-modal-body{
padding-left: 0;
text-align: center;
}
.has-error .ant-form-explain, .has-error .ant-form-split {
position: absolute;
margin-top: -5px;
font-size: 12px;
}

View File

@ -254,9 +254,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
</p>
}
{
(!lastRegister || (lastRegister && lastRegister.status === 3)) && <p className='fail'>
专家资料
</p>
(!lastRegister || (lastRegister && lastRegister.status === 3)) && <p>专家资料</p>
}
@ -278,7 +276,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
[{ required: true, message: "手机号码不能为空" },
{
validator: (rule, val, callback) => {
const pattern = /^((\+)?86|((\+)?86)?)0?1[3458]\d{9}$/;
const pattern = /^((\+)?86|((\+)?86)?)0?1[3456789]\d{9}$/;
if (pattern.test(val)) {
callback();
} else {
@ -305,7 +303,8 @@ export default Form.create()(({ match, history, showNotification, form, current_
{
helper('专业职称',
'professionalTitle',
[{ required: true, message: "专业职称不能为空" }],
[{ required: true, message: "专业职称不能为空" },
{ max: 50, message: '长度不能超过50个字符' }],
<Input
placeholder="请输入您的专业职称"
/>
@ -334,7 +333,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
}
{
helper('毕业院校',
'graduatedFrom', [],
'graduatedFrom', [{ max: 50, message: '长度不能超过50个字符' }],
<Input
placeholder="请输入您的毕业院校"
/>
@ -342,7 +341,18 @@ export default Form.create()(({ match, history, showNotification, form, current_
}
{
helper('身份证号',
'idNumber', [],
'idNumber', [{
validator: (rule, val, callback) => {
let _IDRe18 = /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
let _IDre15 = /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
//
if (_IDRe18.test(val) || _IDre15.test(val)) {
callback();
} else {
callback('请输入正确的身份证号码!');
}
}
}],
<Input
placeholder="请输入您的身份证号码"
/>
@ -350,7 +360,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
}
{
helper('开户银行',
'bankName', [],
'bankName', [{ max: 50, message: '长度不能超过50个字符' }],
<Input
placeholder="请输入您的开户银行"
/>
@ -359,7 +369,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
<Form.Item className="upload-form" label="个人简介">
<Upload
load={uploadResume}
size={10}
size={100}
showNotification={showNotification}
fileList={resumeList}
/>
@ -367,7 +377,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
<Form.Item className="upload-form" label="学术成果">
<Upload
load={uploadAchievement}
size={10}
size={100}
showNotification={showNotification}
fileList={achievementList}
/>
@ -439,7 +449,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
}
{
helper('院校专业',
'major', [],
'major', [{ max: 50, message: '长度不能超过50个字符' }],
<Input
placeholder="请输入您的专业"
/>
@ -447,7 +457,16 @@ export default Form.create()(({ match, history, showNotification, form, current_
}
{
helper('邮箱地址',
'expertEmail', [],
'expertEmail', [{
validator: (rule, val, callback) => {
const pattern = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if (pattern.test(val)) {
callback();
} else {
callback('请输入正确的邮箱地址!');
}
}
}],
<Input
placeholder="请输入您的常用邮箱地址"
/>
@ -455,7 +474,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
}
{
helper('银行账号',
'bankAccount', [],
'bankAccount', [{ max: 50, message: '长度不能超过50个字符' }],
<Input
placeholder="请输入您的银行卡号"
/>
@ -464,7 +483,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
<Form.Item className="upload-form" label="职称证明">
<Upload
load={uploadTitleCert}
size={10}
size={100}
showNotification={showNotification}
fileList={titleCertList}
/>
@ -472,7 +491,7 @@ export default Form.create()(({ match, history, showNotification, form, current_
<Form.Item className="upload-form" label="荣誉称号">
<Upload
load={uploadHonor}
size={10}
size={100}
showNotification={showNotification}
fileList={honorList}
/>

View File

@ -1,3 +1,11 @@
.iconfont2 {
font-family: "svgtofont" !important;
font-size: 26px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0.2px;
-moz-osx-font-smoothing: grayscale;
}
.centerbox.detail {
font-size: 20px;
.navigation {