feat: config wizard UI improvements

This commit is contained in:
NGPixel 2017-11-05 01:36:07 -04:00
parent 98d311145b
commit 1658fcbf2e
10 changed files with 180 additions and 194 deletions

1
assets/svg/logo-git.svg Normal file
View File

@ -0,0 +1 @@
<svg width="2500" height="1055" viewBox="0 0 256 108" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet"><path d="M152.984 37.214c-5.597 0-9.765 2.748-9.765 9.362 0 4.983 2.747 8.443 9.463 8.443 5.693 0 9.56-3.355 9.56-8.65 0-6-3.46-9.155-9.258-9.155zm-11.19 46.701c-1.325 1.625-2.645 3.353-2.645 5.39 0 4.067 5.186 5.291 12.31 5.291 5.9 0 13.938-.414 13.938-5.9 0-3.261-3.867-3.462-8.753-3.768l-14.85-1.013zm30.113-46.394c1.828 2.34 3.764 5.597 3.764 10.276 0 11.292-8.851 17.904-21.667 17.904-3.259 0-6.209-.406-8.038-.914l-3.359 5.39 9.969.61c17.602 1.122 27.975 1.632 27.975 15.157 0 11.702-10.272 18.311-27.975 18.311-18.413 0-25.433-4.68-25.433-12.716 0-4.578 2.035-7.015 5.596-10.378-3.358-1.419-4.476-3.961-4.476-6.71 0-2.24 1.118-4.273 2.952-6.208 1.83-1.93 3.864-3.865 6.306-6.103-4.984-2.442-8.75-7.732-8.75-15.262 0-11.697 7.733-19.731 23.295-19.731 4.376 0 7.022.402 9.362 1.017h19.84v8.644l-9.361.713zM199.166 19.034c-5.8 0-9.157-3.36-9.157-9.161 0-5.793 3.356-8.95 9.157-8.95 5.9 0 9.258 3.157 9.258 8.95 0 5.801-3.357 9.161-9.258 9.161zM186.04 80.171v-8.033l5.19-.71c1.425-.205 1.627-.509 1.627-2.038V39.48c0-1.116-.304-1.832-1.325-2.134l-5.492-1.935 1.118-8.238h21.061V69.39c0 1.63.098 1.833 1.629 2.039l5.188.71v8.032H186.04zM255.267 76.227c-4.376 2.135-10.785 4.068-16.586 4.068-12.106 0-16.682-4.878-16.682-16.38V37.264c0-.61 0-1.017-.817-1.017h-7.12V27.19c8.955-1.02 12.513-5.496 13.632-16.585h9.666v14.45c0 .71 0 1.017.815 1.017h14.343v10.173H237.36v24.313c0 6.002 1.426 8.34 6.917 8.34 2.852 0 5.799-.71 8.24-1.626l2.75 8.954" fill="#2F2707"/><path d="M104.529 49.53L58.013 3.017a6.86 6.86 0 0 0-9.703 0l-9.659 9.66 12.253 12.252a8.145 8.145 0 0 1 8.383 1.953 8.157 8.157 0 0 1 1.936 8.434L73.03 47.125c2.857-.984 6.154-.347 8.435 1.938a8.161 8.161 0 0 1 0 11.545 8.164 8.164 0 0 1-13.324-8.88L57.129 40.716l-.001 28.98a8.248 8.248 0 0 1 2.159 1.544 8.164 8.164 0 0 1 0 11.547c-3.19 3.19-8.36 3.19-11.545 0a8.164 8.164 0 0 1 2.672-13.328v-29.25a8.064 8.064 0 0 1-2.672-1.782c-2.416-2.413-2.997-5.958-1.759-8.925l-12.078-12.08L2.011 49.314a6.863 6.863 0 0 0 0 9.706l46.516 46.514a6.862 6.862 0 0 0 9.703 0l46.299-46.297a6.866 6.866 0 0 0 0-9.707" fill="#DE4C36"/></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

107
assets/svg/logo-wikijs.svg Normal file
View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 282 82" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<path d="M85.83,1.976c-1.317,1.317 -1.975,2.934 -1.975,4.854c-0.001,1.922 0.658,3.554 1.975,4.897c1.316,1.346 2.935,2.016 4.855,2.016c1.92,0 3.552,-0.67 4.896,-2.016c1.344,-1.343 2.016,-2.975 2.016,-4.897c0,-1.92 -0.672,-3.537 -2.016,-4.854c-1.344,-1.317 -2.976,-1.976 -4.896,-1.976c-1.92,0 -3.539,0.659 -4.855,1.976Zm0.371,16.005c-1.235,1.234 -1.852,2.73 -1.852,4.485l0,33.328c0,0.879 0.164,1.716 0.493,2.51c0.329,0.797 0.782,1.482 1.359,2.058c0.575,0.576 1.247,1.029 2.015,1.359c0.768,0.328 1.591,0.492 2.47,0.492c1.754,0 3.263,-0.63 4.526,-1.892c1.26,-1.261 1.892,-2.77 1.892,-4.527l0,-33.328c0,-0.876 -0.164,-1.7 -0.493,-2.469c-0.33,-0.768 -0.783,-1.44 -1.358,-2.016c-0.576,-0.576 -1.263,-1.029 -2.058,-1.357c-0.796,-0.329 -1.633,-0.494 -2.509,-0.494c-1.757,0 -3.251,0.617 -4.485,1.851Z" style="fill:url(#_Linear1);fill-rule:nonzero;"/>
<path d="M150.511,1.976c-1.318,1.317 -1.975,2.934 -1.975,4.854c0,1.922 0.657,3.554 1.975,4.897c1.317,1.346 2.935,2.016 4.855,2.016c1.92,0 3.552,-0.67 4.897,-2.016c1.343,-1.343 2.016,-2.975 2.016,-4.897c0,-1.92 -0.673,-3.537 -2.016,-4.854c-1.345,-1.317 -2.977,-1.976 -4.897,-1.976c-1.92,0 -3.538,0.659 -4.855,1.976Zm0.37,16.005c-1.234,1.234 -1.852,2.73 -1.852,4.485l0,33.328c0,0.879 0.164,1.716 0.495,2.51c0.329,0.797 0.781,1.482 1.357,2.058c0.575,0.576 1.247,1.029 2.017,1.359c0.767,0.328 1.59,0.492 2.468,0.492c1.755,0 3.263,-0.63 4.527,-1.892c1.26,-1.261 1.892,-2.77 1.892,-4.527l0,-33.328c0,-0.876 -0.164,-1.7 -0.494,-2.469c-0.33,-0.768 -0.782,-1.44 -1.357,-2.016c-0.576,-0.576 -1.263,-1.029 -2.057,-1.357c-0.796,-0.329 -1.633,-0.494 -2.511,-0.494c-1.756,0 -3.25,0.617 -4.485,1.851Z" style="fill:url(#_Linear2);fill-rule:nonzero;"/>
<path d="M171.494,46.784c-0.988,0.411 -1.838,0.987 -2.551,1.728c-0.714,0.741 -1.276,1.592 -1.687,2.55c-0.411,0.961 -0.618,1.99 -0.618,3.087c0,2.25 0.768,4.155 2.305,5.72c1.535,1.563 3.429,2.344 5.677,2.344c2.249,0 4.157,-0.781 5.721,-2.344c1.562,-1.565 2.345,-3.47 2.345,-5.72c0,-1.097 -0.206,-2.126 -0.617,-3.087c-0.412,-0.958 -0.988,-1.809 -1.728,-2.55c-0.74,-0.741 -1.605,-1.317 -2.593,-1.728c-0.987,-0.411 -2.03,-0.618 -3.128,-0.618c-1.097,0 -2.139,0.207 -3.126,0.618Z" style="fill:url(#_Linear3);fill-rule:nonzero;"/>
<path d="M188.94,1.976c-1.317,1.317 -1.976,2.934 -1.976,4.854c0,1.922 0.659,3.554 1.976,4.897c1.316,1.346 2.933,2.016 4.855,2.016c1.919,0 3.551,-0.67 4.897,-2.016c1.343,-1.343 2.015,-2.975 2.015,-4.897c0,-1.92 -0.672,-3.537 -2.015,-4.854c-1.346,-1.317 -2.978,-1.976 -4.897,-1.976c-1.922,0 -3.539,0.659 -4.855,1.976Zm0.37,16.005c-1.235,1.234 -1.852,2.73 -1.852,4.485l0,39.747c0,1.536 -0.22,2.73 -0.659,3.58c-0.44,0.851 -0.974,1.564 -1.603,2.14c-0.632,0.577 -1.317,1.042 -2.058,1.399c-0.741,0.356 -1.426,0.795 -2.058,1.317c-0.63,0.521 -1.165,1.179 -1.605,1.975c-0.437,0.794 -0.658,1.879 -0.658,3.251c0,1.755 0.645,3.085 1.934,3.99c1.29,0.906 2.84,1.359 4.65,1.359c2.029,0 3.95,-0.399 5.76,-1.194c1.81,-0.795 3.387,-1.975 4.733,-3.538c1.343,-1.564 2.398,-3.539 3.167,-5.926c0.769,-2.386 1.152,-5.171 1.152,-8.353l0,-39.747c0,-0.876 -0.164,-1.7 -0.494,-2.469c-0.328,-0.768 -0.78,-1.44 -1.357,-2.016c-0.576,-0.576 -1.264,-1.029 -2.058,-1.357c-0.795,-0.329 -1.633,-0.494 -2.509,-0.494c-1.758,0 -3.252,0.617 -4.485,1.851Z" style="fill:url(#_Linear4);fill-rule:nonzero;"/>
<clipPath id="_clip5">
<path d="M3.991,1.192c-0.905,0.468 -1.645,1.058 -2.222,1.771c-0.577,0.714 -1.016,1.495 -1.317,2.346c-0.302,0.85 -0.452,1.659 -0.452,2.427c0,0.823 0.109,1.564 0.329,2.221l14.629,46.475c2.349,-6.486 4.885,-13.534 7.493,-20.85l-8.461,-30.069c-0.44,-1.534 -1.29,-2.756 -2.552,-3.661c-1.262,-0.905 -2.688,-1.358 -4.279,-1.358c-1.207,0 -2.263,0.234 -3.168,0.698Z"/>
</clipPath>
<g clip-path="url(#_clip5)">
<path d="M10.488,-2.093l24.438,48.454l-19.968,10.07l-24.438,-48.453l19.968,-10.071Z" style="fill:url(#_Linear6);fill-rule:nonzero;"/>
</g>
<clipPath id="_clip7">
<path d="M35.839,1.769c-1.18,0.851 -2.072,2.072 -2.676,3.663l-10.698,30.201l-0.014,-0.051c-2.608,7.316 -5.144,14.364 -7.493,20.85l0.266,0.845c0.494,1.536 1.317,2.743 2.468,3.62c1.153,0.878 2.523,1.316 4.116,1.316c1.591,0 2.962,-0.423 4.114,-1.275c1.152,-0.849 2.002,-2.043 2.551,-3.579l11.604,-32.671l11.456,32.257c1.978,-6.628 4.096,-13.997 6.094,-21.482l-10.637,-30.031c-0.55,-1.591 -1.428,-2.812 -2.634,-3.663c-1.208,-0.849 -2.634,-1.275 -4.279,-1.275c-1.646,0 -3.059,0.426 -4.238,1.275Z"/>
</clipPath>
<g clip-path="url(#_clip7)">
<path d="M2.293,10.447l45.028,-12.402l15.376,55.825l-45.029,12.402l-15.375,-55.825Z" style="fill:url(#_Linear8);fill-rule:nonzero;"/>
</g>
<clipPath id="_clip9">
<path d="M68.714,1.852c-1.263,0.905 -2.112,2.127 -2.551,3.661l-8.476,30.12l-0.06,-0.17c-1.998,7.485 -4.116,14.854 -6.094,21.482l0.146,0.414c0.549,1.536 1.4,2.73 2.552,3.579c1.151,0.852 2.522,1.275 4.115,1.275c1.591,0 2.962,-0.438 4.115,-1.316c1.151,-0.877 1.974,-2.084 2.468,-3.62l14.896,-47.32c0.218,-0.657 0.328,-1.398 0.328,-2.221c0,-0.768 -0.152,-1.577 -0.452,-2.427c-0.303,-0.851 -0.741,-1.632 -1.317,-2.346c-0.575,-0.713 -1.316,-1.303 -2.222,-1.771c-0.905,-0.464 -1.962,-0.698 -3.168,-0.698c-1.592,0 -3.017,0.453 -4.28,1.358Z"/>
</clipPath>
<g clip-path="url(#_clip9)">
<path d="M48.492,59.544l19.898,-61.054l14.197,4.626l-19.898,61.055l-14.197,-4.627Z" style="fill:url(#_Linear10);fill-rule:nonzero;"/>
</g>
<clipPath id="_clip11">
<path d="M133.889,17.611l-17.12,13.743l0,11.855l15.556,16.7c0.712,0.77 1.549,1.345 2.51,1.729c0.959,0.384 1.906,0.575 2.839,0.575c0.603,0 1.261,-0.108 1.975,-0.328c0.713,-0.218 1.37,-0.576 1.976,-1.07c0.602,-0.494 1.11,-1.153 1.522,-1.975c0.411,-0.823 0.617,-1.811 0.617,-2.963c0,-0.823 -0.152,-1.646 -0.453,-2.469c-0.301,-0.822 -0.781,-1.535 -1.439,-2.139l-14.32,-13.826l14.484,-10.286c0.768,-0.548 1.317,-1.234 1.645,-2.057c0.329,-0.823 0.494,-1.673 0.494,-2.551c0,-1.153 -0.22,-2.14 -0.658,-2.963c-0.44,-0.823 -0.975,-1.494 -1.606,-2.016c-0.63,-0.521 -1.303,-0.891 -2.014,-1.111c-0.714,-0.219 -1.373,-0.329 -1.976,-0.329c-1.482,0 -2.827,0.494 -4.032,1.481Z"/>
</clipPath>
<g clip-path="url(#_clip11)">
<path d="M143.974,62.251l-27.364,-0.142l0.238,-46.092l27.364,0.142l-0.238,46.092Z" style="fill:url(#_Linear12);fill-rule:nonzero;"/>
</g>
<g>
<g opacity="0.100006">
<clipPath id="_clip13">
<rect x="13.204" y="35.633" width="9.261" height="20.798"/>
</clipPath>
<g clip-path="url(#_clip13)">
<path d="M22.466,35.633l-7.508,20.798l-1.753,-5.569l9.261,-15.229Z" style="fill-rule:nonzero;"/>
</g>
</g>
</g>
<g>
<g opacity="0.100006">
<clipPath id="_clip14">
<rect x="49.558" y="35.633" width="8.129" height="21.311"/>
</clipPath>
<g clip-path="url(#_clip14)">
<path d="M57.687,35.633l-6.154,21.312l-1.974,-5.559l8.128,-15.753Z" style="fill-rule:nonzero;"/>
</g>
</g>
</g>
<g>
<g opacity="0.100006">
<clipPath id="_clip15">
<rect x="116.769" y="31.272" width="4.02" height="16.242"/>
</clipPath>
<g clip-path="url(#_clip15)">
<path d="M116.854,31.272l3.936,16.242l-4.021,-4.305l0.085,-11.937Z" style="fill-rule:nonzero;"/>
</g>
</g>
</g>
<clipPath id="_clip16">
<path d="M105.949,2.345c-1.233,1.235 -1.851,2.73 -1.851,4.485l0,48.964c0,0.879 0.165,1.716 0.495,2.51c0.329,0.797 0.781,1.482 1.356,2.058c0.576,0.576 1.248,1.029 2.017,1.359c0.767,0.328 1.591,0.492 2.468,0.492c1.756,0 3.265,-0.63 4.527,-1.892c1.262,-1.261 1.893,-2.77 1.893,-4.527l0,-12.508l0,-12.015l0,-24.441c0,-0.876 -0.165,-1.7 -0.494,-2.469c-0.329,-0.767 -0.781,-1.44 -1.357,-2.016c-0.576,-0.576 -1.262,-1.029 -2.058,-1.357c-0.797,-0.329 -1.634,-0.494 -2.511,-0.494c-1.755,0 -3.25,0.618 -4.485,1.851Z"/>
</clipPath>
<g clip-path="url(#_clip16)">
<path d="M96.722,60.505l8.101,-60.875l19.396,2.581l-8.102,60.875l-19.395,-2.581Z" style="fill:url(#_Linear17);fill-rule:nonzero;"/>
</g>
<clipPath id="_clip18">
<path d="M207.661,45.549c-1.126,1.07 -1.688,2.703 -1.688,4.897c0,1.811 0.645,3.457 1.934,4.937c1.288,1.482 2.893,2.771 4.815,3.868c1.919,1.099 3.976,1.948 6.171,2.551c2.194,0.603 4.198,0.906 6.007,0.906c2.523,0 4.896,-0.33 7.12,-0.987c2.221,-0.66 4.181,-1.632 5.883,-2.923c0.636,-0.482 1.206,-1.025 1.741,-1.6c-0.842,-4.69 -4.288,-9.214 -12.489,-12.483c0.54,0.239 1.043,0.488 1.49,0.752c1.07,0.632 1.605,1.469 1.605,2.51c0,1.099 -0.523,1.879 -1.563,2.345c-1.043,0.467 -2.113,0.7 -3.21,0.7c-1.263,0 -2.429,-0.371 -3.497,-1.112c-1.071,-0.74 -2.113,-1.548 -3.128,-2.427c-1.015,-0.876 -2.072,-1.686 -3.168,-2.428c-1.098,-0.74 -2.251,-1.11 -3.456,-1.11c-1.921,0 -3.444,0.535 -4.567,1.604Z"/>
</clipPath>
<g clip-path="url(#_clip18)">
<path d="M241.491,56.676l-23.361,15.071l-15.168,-23.511l23.361,-15.072l15.168,23.512Z" style="fill:url(#_Linear19);fill-rule:nonzero;"/>
</g>
<g>
<g opacity="0.100006">
<clipPath id="_clip20">
<rect x="227.156" y="44.711" width="12.489" height="13.886"/>
</clipPath>
<g clip-path="url(#_clip20)">
<path d="M239.645,57.194c-0.843,-4.69 -4.289,-9.213 -12.489,-12.483c0.538,0.24 1.042,0.489 1.489,0.753c0.251,0.147 0.467,0.309 0.659,0.48c0,0 -0.001,-0.001 -0.002,-0.001c0.001,0 0.002,0.001 0.003,0.001c0.025,0.023 0.049,0.045 0.073,0.068c5.003,4.422 7.687,8.647 8.759,12.586c0.54,-0.434 1.041,-0.903 1.508,-1.404" style="fill-rule:nonzero;"/>
</g>
</g>
</g>
<clipPath id="_clip21">
<path d="M217.165,16.706c-1.921,0.714 -3.526,1.7 -4.814,2.962c-1.29,1.263 -2.235,2.744 -2.839,4.444c-0.605,1.701 -0.906,3.568 -0.906,5.596c0,2.58 0.535,4.664 1.606,6.255c1.07,1.592 2.4,2.894 3.99,3.908c1.591,1.016 3.333,1.798 5.226,2.346c1.893,0.549 3.635,1.069 5.225,1.563c0.927,0.288 1.753,0.601 2.502,0.935c8.201,3.269 11.647,7.793 12.489,12.483c0.898,-0.961 1.673,-2.035 2.292,-3.255c0.987,-1.947 1.48,-4.238 1.48,-6.871c0,-2.742 -0.534,-4.951 -1.605,-6.625c-1.068,-1.673 -2.399,-3.004 -3.99,-3.992c-1.592,-0.987 -3.32,-1.74 -5.185,-2.262c-1.865,-0.521 -3.594,-1.014 -5.184,-1.482c-1.593,-0.465 -2.922,-1.014 -3.991,-1.645c-1.07,-0.63 -1.605,-1.577 -1.605,-2.839c0,-0.603 0.205,-1.07 0.617,-1.399c0.411,-0.33 0.918,-0.494 1.523,-0.494c1.041,0 1.933,0.206 2.674,0.617c0.741,0.412 1.493,0.851 2.263,1.317c0.767,0.467 1.604,0.905 2.51,1.316c0.905,0.412 2.017,0.618 3.333,0.618c1.535,0 2.839,-0.548 3.909,-1.646c1.034,-1.06 1.557,-2.305 1.591,-3.724l-6.638,0c-1.412,0 -2.567,-1.155 -2.567,-2.567l0,-5.811c-0.152,-0.039 -0.295,-0.082 -0.451,-0.119c-2.003,-0.466 -4.211,-0.699 -6.624,-0.699c-2.634,0 -4.911,0.357 -6.831,1.07Z"/>
</clipPath>
<g clip-path="url(#_clip21)">
<path d="M250.155,20.875l-8.547,36.779l-38.046,-8.841l8.548,-36.78l38.045,8.842Z" style="fill:url(#_Linear22);fill-rule:nonzero;"/>
</g>
<path d="M245.311,17.359c0,1.239 1.015,2.254 2.255,2.254l6.792,0c1.24,0 2.255,-1.015 2.255,-2.254l0,-6.792c0,-1.241 -1.015,-2.255 -2.255,-2.255l-6.792,0c-1.24,0 -2.255,1.014 -2.255,2.255l0,6.792Z" style="fill:#3f51b5;fill-rule:nonzero;"/>
<path d="M263.904,19.728c0,1.24 1.015,2.255 2.255,2.255l3.511,0c1.24,0 2.255,-1.015 2.255,-2.255l0,-3.511c0,-1.24 -1.015,-2.255 -2.255,-2.255l-3.511,0c-1.24,0 -2.255,1.015 -2.255,2.255l0,3.511Z" style="fill:#3f51b5;fill-rule:nonzero;"/>
<path d="M256.613,37.774c0,1.24 1.015,2.255 2.254,2.255l4.97,0c1.24,0 2.254,-1.015 2.254,-2.255l0,-4.969c0,-1.24 -1.014,-2.255 -2.254,-2.255l-4.97,0c-1.239,0 -2.254,1.015 -2.254,2.255l0,4.969Z" style="fill:#3f51b5;fill-rule:nonzero;"/>
<path d="M276.299,28.478c0,1.24 1.015,2.254 2.255,2.254l0.959,0c1.241,0 2.255,-1.014 2.255,-2.254l0,-0.959c0,-1.24 -1.014,-2.255 -2.255,-2.255l-0.959,0c-1.24,0 -2.255,1.015 -2.255,2.255l0,0.959Z" style="fill:#3f51b5;fill-rule:nonzero;"/>
<defs>
<linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,62.2136,-62.2136,0,90.7262,5.565e-05)"><stop offset="0" style="stop-color:#3f51b5;stop-opacity:1"/><stop offset="1" style="stop-color:#313a78;stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,62.2136,-62.2136,0,155.407,5.565e-05)"><stop offset="0" style="stop-color:#3f51b5;stop-opacity:1"/><stop offset="1" style="stop-color:#313a78;stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear3" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,-61.8634,61.8634,0,174.662,60.3315)"><stop offset="0" style="stop-color:#2196f3;stop-opacity:1"/><stop offset="1" style="stop-color:#00c0f3;stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear4" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,-61.8634,61.8634,0,189.762,60.3315)"><stop offset="0" style="stop-color:#2196f3;stop-opacity:1"/><stop offset="1" style="stop-color:#00c0f3;stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear6" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(18.6063,36.8918,-36.8918,18.6063,0.331477,2.78559)"><stop offset="0" style="stop-color:#3f51b5;stop-opacity:1"/><stop offset="1" style="stop-color:#313a78;stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear8" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(25.2361,-6.95063,6.95063,25.2361,15.8848,36.8025)"><stop offset="0" style="stop-color:#3f51b5;stop-opacity:1"/><stop offset="1" style="stop-color:#313a78;stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear10" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(12.5111,-38.3889,38.3889,12.5111,61.3712,44.1966)"><stop offset="0" style="stop-color:#3f51b5;stop-opacity:1"/><stop offset="1" style="stop-color:#313a78;stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear12" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-20.7541,-0.107534,0.107534,-20.7541,138.569,39.1756)"><stop offset="0" style="stop-color:#3f51b5;stop-opacity:1"/><stop offset="1" style="stop-color:#313a78;stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear17" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(7.69916,-57.8506,57.8506,7.69916,106.898,58.1964)"><stop offset="0" style="stop-color:#3f51b5;stop-opacity:1"/><stop offset="1" style="stop-color:#313a78;stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear19" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-13.2597,8.55462,-8.55462,-13.2597,234.138,44.8197)"><stop offset="0" style="stop-color:#2196f3;stop-opacity:1"/><stop offset="1" style="stop-color:#00c0f3;stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear22" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-7.05756,30.3689,-30.3689,-7.05756,231.634,14.1955)"><stop offset="0" style="stop-color:#2196f3;stop-opacity:1"/><stop offset="1" style="stop-color:#00c0f3;stop-opacity:1"/></linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -13,8 +13,7 @@ import { ApolloClient } from 'apollo-client'
import { HttpLink } from 'apollo-link-http' import { HttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory' import { InMemoryCache } from 'apollo-cache-inmemory'
import store from './store' import store from './store'
import icons from '../svg/nc-icons.svg' import icons from '../svg/icons.svg'
// ==================================== // ====================================
// Load Modules // Load Modules
// ==================================== // ====================================

View File

@ -1,153 +0,0 @@
'use strict'
/* global $, siteConfig */
/* eslint-disable no-new */
import Vue from 'vue'
import VueResource from 'vue-resource'
import VueClipboards from 'vue-clipboards'
import VueLodash from 'vue-lodash'
import store from './store'
import i18next from 'i18next'
import i18nextXHR from 'i18next-xhr-backend'
import VueI18Next from '@panter/vue-i18next'
import 'jquery-contextmenu'
import 'jquery-simple-upload'
import 'jquery-smooth-scroll'
import 'jquery-sticky'
// ====================================
// Load Helpers
// ====================================
import helpers from './helpers'
import _ from './helpers/lodash'
// ====================================
// Load Vue Components
// ====================================
import alertComponent from './components/alert.vue'
import anchorComponent from './components/anchor.vue'
import colorPickerComponent from './components/color-picker.vue'
import editorCodeblockComponent from './components/editor-codeblock.vue'
import editorFileComponent from './components/editor-file.vue'
import editorVideoComponent from './components/editor-video.vue'
import historyComponent from './components/history.vue'
import loadingSpinnerComponent from './components/loading-spinner.vue'
import modalCreatePageComponent from './components/modal-create-page.vue'
import modalCreateUserComponent from './components/modal-create-user.vue'
import modalDeleteUserComponent from './components/modal-delete-user.vue'
import modalDiscardPageComponent from './components/modal-discard-page.vue'
import modalMovePageComponent from './components/modal-move-page.vue'
import modalProfile2faComponent from './components/modal-profile-2fa.vue'
import modalUpgradeSystemComponent from './components/modal-upgrade-system.vue'
import pageLoaderComponent from './components/page-loader.vue'
import searchComponent from './components/search.vue'
import toggleComponent from './components/toggle.vue'
import treeComponent from './components/tree.vue'
import adminEditUserComponent from './pages/admin-edit-user.component.js'
import adminProfileComponent from './pages/admin-profile.component.js'
import adminSettingsComponent from './pages/admin-settings.component.js'
import adminThemeComponent from './pages/admin-theme.component.js'
import contentViewComponent from './pages/content-view.component.js'
import editorComponent from './components/editor.component.js'
import sourceViewComponent from './pages/source-view.component.js'
// ====================================
// Initialize Vue Modules
// ====================================
Vue.use(VueResource)
Vue.use(VueClipboards)
Vue.use(VueI18Next)
Vue.use(VueLodash, _)
Vue.use(helpers)
// ====================================
// Register Vue Components
// ====================================
Vue.component('alert', alertComponent)
Vue.component('adminEditUser', adminEditUserComponent)
Vue.component('adminProfile', adminProfileComponent)
Vue.component('adminSettings', adminSettingsComponent)
Vue.component('adminTheme', adminThemeComponent)
Vue.component('anchor', anchorComponent)
Vue.component('colorPicker', colorPickerComponent)
Vue.component('contentView', contentViewComponent)
Vue.component('editor', editorComponent)
Vue.component('editorCodeblock', editorCodeblockComponent)
Vue.component('editorFile', editorFileComponent)
Vue.component('editorVideo', editorVideoComponent)
Vue.component('history', historyComponent)
Vue.component('loadingSpinner', loadingSpinnerComponent)
Vue.component('modalCreatePage', modalCreatePageComponent)
Vue.component('modalCreateUser', modalCreateUserComponent)
Vue.component('modalDeleteUser', modalDeleteUserComponent)
Vue.component('modalDiscardPage', modalDiscardPageComponent)
Vue.component('modalMovePage', modalMovePageComponent)
Vue.component('modalProfile2fa', modalProfile2faComponent)
Vue.component('modalUpgradeSystem', modalUpgradeSystemComponent)
Vue.component('pageLoader', pageLoaderComponent)
Vue.component('search', searchComponent)
Vue.component('sourceView', sourceViewComponent)
Vue.component('toggle', toggleComponent)
Vue.component('tree', treeComponent)
// ====================================
// Load Localization strings
// ====================================
i18next
.use(i18nextXHR)
.init({
backend: {
loadPath: siteConfig.path + '/js/i18n/{{lng}}.json'
},
lng: siteConfig.lang,
fallbackLng: siteConfig.lang
})
$(() => {
// ====================================
// Notifications
// ====================================
$(window).bind('beforeunload', () => {
store.dispatch('startLoading')
})
$(document).ajaxSend(() => {
store.dispatch('startLoading')
}).ajaxComplete(() => {
store.dispatch('stopLoading')
})
// ====================================
// Bootstrap Vue
// ====================================
const i18n = new VueI18Next(i18next)
if (document.querySelector('#root')) {
window.wikijs = new Vue({
mixins: [helpers],
components: {},
store,
i18n,
el: '#root',
methods: {
changeTheme(opts) {
this.$el.className = `has-stickynav is-primary-${opts.primary} is-alternate-${opts.alt}`
this.$refs.header.className = `nav is-${opts.primary}`
this.$refs.footer.className = `footer is-${opts.footer}`
}
},
mounted() {
$('a:not(.toc-anchor)').smoothScroll({ speed: 500, offset: -50 })
$('#header').sticky({ topSpacing: 0 })
$('.sidebar-pagecontents').sticky({ topSpacing: 15, bottomSpacing: 75 })
}
})
}
})

View File

@ -13,24 +13,11 @@
fill: none; fill: none;
} }
&.is-16 { @each $size in 16,18,20,24,48,64,96,128 {
width: 16px; &.is-#{$size} {
height: 16px; width: #{$size}px;
} height: #{$size}px;
}
&.is-18 {
width: 18px;
height: 18px;
}
&.is-20 {
width: 20px;
height: 20px;
}
&.is-24 {
width: 24px;
height: 24px;
} }
&.has-right-pad { &.has-right-pad {

View File

@ -1,5 +1,6 @@
.config-manager { .config-manager {
background-image: linear-gradient(to right, mc('indigo', '400'), mc('indigo', '600')); background-image: linear-gradient(to right, mc('indigo', '400'), mc('indigo', '600'));
background-repeat: no-repeat;
width: 100%; width: 100%;
min-height: 100%; min-height: 100%;
padding-top: 1rem; padding-top: 1rem;
@ -22,6 +23,10 @@
border-bottom: 1px solid mc('indigo', '50'); border-bottom: 1px solid mc('indigo', '50');
margin-bottom: 1rem; margin-bottom: 1rem;
img {
max-height: 100px;
}
h2 { h2 {
margin: 0; margin: 0;
color: mc('indigo', '700'); color: mc('indigo', '700');
@ -30,6 +35,27 @@
} }
.is-logo {
text-align: center;
padding: .5rem 0 1.5rem 0;
border-bottom: 1px solid mc('indigo', '50');
margin-bottom: 1rem;
display: flex;
justify-content: center;
align-items: center;
img {
max-height: 64px;
}
h4 {
font-size: 1.2rem;
font-weight: 600;
margin-left: 1.5rem;
color: mc('grey', '700');
}
}
i.icon-loader { i.icon-loader {
display: inline-block; display: inline-block;
color: mc('indigo', '500') color: mc('indigo', '500')

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -77,10 +77,10 @@ module.exports = () => {
Promise.mapSeries([ Promise.mapSeries([
() => { () => {
const semver = require('semver') const semver = require('semver')
if (!semver.satisfies(semver.clean(process.version), '>=8.8.1')) { if (!semver.satisfies(semver.clean(process.version), '>=8.9.0')) {
throw new Error('Node.js version is too old. Minimum is 8.8.1.') throw new Error('Node.js version is too old. Minimum is 8.9.0.')
} }
return 'Node.js ' + process.version + ' detected. Minimum is 8.8.1.' return 'Node.js ' + process.version + ' detected. Minimum is 8.9.0.'
}, },
() => { () => {
return Promise.try(() => { return Promise.try(() => {

View File

@ -19,7 +19,7 @@ block body
i(v-if='loading') i(v-if='loading')
.panel-content.is-text .panel-content.is-text
.welcome .welcome
img(src='/images/logo.png', alt='Wiki.js') img(src='svg/logo-wikijs.svg', alt='Wiki.js Logo')
h2 A modern, lightweight and powerful wiki app built on NodeJS, Git and Markdown h2 A modern, lightweight and powerful wiki app built on NodeJS, Git and Markdown
p This installation wizard will guide you through the steps needed to get your wiki up and running in no time! p This installation wizard will guide you through the steps needed to get your wiki up and running in no time!
p Detailed information about installation and usage can be found on the #[a(href='https://wiki.requarks.io/docs') official documentation site]. #[br] Should you have any question or would like to report something that doesn't look right, feel free to create a new issue on the #[a(href='https://github.com/Requarks/wiki/issues') GitHub project]. p Detailed information about installation and usage can be found on the #[a(href='https://wiki.requarks.io/docs') official documentation site]. #[br] Should you have any question or would like to report something that doesn't look right, feel free to create a new issue on the #[a(href='https://github.com/Requarks/wiki/issues') GitHub project].
@ -48,9 +48,12 @@ block body
template(v-else-if='state === "syscheck"') template(v-else-if='state === "syscheck"')
.panel .panel
h2.panel-title.is-featured h2.panel-title.is-featured
span System Check span Wiki.js
i(v-if='loading') i(v-if='loading')
.panel-content.is-text .panel-content.is-text
.is-logo
svg.icons.is-64: use(xlink:href='#nc-metrics')
h4 System Check
p(v-if='loading') #[svg.icons.is-24.is-text: use(xlink:href='#nc-ms-dots')] Checking your system for compatibility... p(v-if='loading') #[svg.icons.is-24.is-text: use(xlink:href='#nc-ms-dots')] Checking your system for compatibility...
p(v-if='!loading && syscheck.ok') p(v-if='!loading && syscheck.ok')
ul ul
@ -73,25 +76,17 @@ block body
template(v-else-if='state === "general"') template(v-else-if='state === "general"')
.panel .panel
h2.panel-title.is-featured h2.panel-title.is-featured
span General span Wiki.js
i(v-if='loading') i(v-if='loading')
.panel-content.form-sections .panel-content.form-sections
section section
.is-logo
svg.icons.is-64: use(xlink:href='#nc-butterfly')
h4 General Information
p.control.is-fullwidth p.control.is-fullwidth
label.label Site Title label.label Site Title
input(type='text', placeholder='e.g. Wiki', v-model='conf.title', data-vv-scope='general', name='ipt-title', v-validate='{ required: true, min: 2 }') input(type='text', placeholder='e.g. Wiki', v-model='conf.title', data-vv-scope='general', name='ipt-title', v-validate='{ required: true, min: 2 }')
span.desc The site title will appear in the top left corner on every page and within the window title bar. span.desc The site title will appear in the top left corner on every page and within the window title bar.
section.columns
.column.is-half
p.control
label.label Port
input(type='text', placeholder='e.g. 80', v-model.number='conf.port', data-vv-scope='general', name='ipt-port', v-validate='{ required: true }')
span.desc The port on which Wiki.js will listen to. Usually port 80 if connecting directly, or a random port (e.g. 3000) if using a web server in front of it. Set #[strong $(PORT)] to use the PORT environment variable.
.column.is-half
p.control.is-fullwidth
label.label Site Relative Path
input(type='text', placeholder='/', v-model='conf.path', data-vv-scope='general', name='ipt-path', v-validate='{ required: true, min: 1 }')
span.desc The relative path to your wiki. Unless you configure a reverse proxy in front of Wiki.js to handle requests made to a sub-directory, #[strong it is recommended to leave the default value].
section.columns section.columns
.column.is-half .column.is-half
p.control p.control
@ -100,6 +95,17 @@ block body
each lg in data.langs each lg in data.langs
option(value=lg.id)= lg.name option(value=lg.id)= lg.name
span.desc The language in which navigation, help and other UI elements will be displayed. span.desc The language in which navigation, help and other UI elements will be displayed.
.column.is-half
p.control.is-fullwidth
label.label Site Relative Path
input(type='text', placeholder='/', v-model='conf.path', data-vv-scope='general', name='ipt-path', v-validate='{ required: true, min: 1 }')
span.desc The relative path to your wiki. Unless you configure a reverse proxy in front of Wiki.js to handle requests made to a sub-directory, #[strong it is recommended to leave the default value].
section.columns
.column.is-half
p.control
label.label Server Port
input(type='text', placeholder='e.g. 80', v-model.number='conf.port', data-vv-scope='general', name='ipt-port', v-validate='{ required: true }')
span.desc The port on which Wiki.js will listen to. Usually port 80 if connecting directly, or a random port (e.g. 3000) if using a web server in front of it. Set #[strong $(PORT)] to use the PORT environment variable.
.column.is-half .column.is-half
p.control.is-fullwidth p.control.is-fullwidth
input#ipt-public(type='checkbox', v-model='conf.public', data-vv-scope='general', name='ipt-public') input#ipt-public(type='checkbox', v-model='conf.public', data-vv-scope='general', name='ipt-public')
@ -107,7 +113,7 @@ block body
span.desc Should the site be accessible (read only) without login. span.desc Should the site be accessible (read only) without login.
section section
p.control.is-fullwidth p.control.is-fullwidth
label.label Local Repository Path label.label Local Server Repository Path
input(type='text', placeholder='e.g. ./repo', v-model='conf.pathRepo', data-vv-scope='general', name='ipt-repopath', v-validate='{ required: true, min: 2 }') input(type='text', placeholder='e.g. ./repo', v-model='conf.pathRepo', data-vv-scope='general', name='ipt-repopath', v-validate='{ required: true, min: 2 }')
span.desc The path where the local git repository will be created, used to store content in markdown files and uploads.#[br] #[strong It is recommended to leave the default value]. span.desc The path where the local git repository will be created, used to store content in markdown files and uploads.#[br] #[strong It is recommended to leave the default value].
.panel-footer .panel-footer
@ -122,9 +128,12 @@ block body
template(v-else-if='state === "considerations"') template(v-else-if='state === "considerations"')
.panel .panel
h2.panel-title.is-featured h2.panel-title.is-featured
span Important Considerations span Wiki.js
i(v-if='loading') i(v-if='loading')
.panel-content.is-text .panel-content.is-text
.is-logo
svg.icons.is-64: use(xlink:href='#nc-radar')
h4 Important Considerations
h3 Is Wiki.js going to be behind a web server (e.g. nginx / apache / IIS) or proxy? h3 Is Wiki.js going to be behind a web server (e.g. nginx / apache / IIS) or proxy?
p p
ul ul
@ -149,9 +158,12 @@ block body
template(v-else-if='state === "git"') template(v-else-if='state === "git"')
.panel .panel
h2.panel-title.is-featured h2.panel-title.is-featured
span Git Repository span Wiki.js
i(v-if='loading') i(v-if='loading')
.panel-content.is-text .panel-content.is-text
.is-logo
img(src='svg/logo-git.svg', alt='Git Logo')
h4 Git Repository
p Wiki.js stores article content and uploads locally on disk. All content is then regularly kept in sync with a remote git repository. This acts a backup protection and provides history / revert features. While optional, it is <strong>HIGHLY</strong> recommended to setup the remote git repository connection. p Wiki.js stores article content and uploads locally on disk. All content is then regularly kept in sync with a remote git repository. This acts a backup protection and provides history / revert features. While optional, it is <strong>HIGHLY</strong> recommended to setup the remote git repository connection.
.panel-content.form-sections .panel-content.form-sections
section.columns section.columns

View File

@ -68,5 +68,12 @@ module.exports = Promise.mapSeries([
() => { () => {
console.info(colors.white(' └── ') + colors.green('Clearing fuse-box cache...')) console.info(colors.white(' └── ') + colors.green('Clearing fuse-box cache...'))
return fs.emptyDirAsync('./.fusebox') return fs.emptyDirAsync('./.fusebox')
},
/**
* Delete Test Results
*/
() => {
console.info(colors.white(' └── ') + colors.green('Clearing test results...'))
return fs.remove('./test_results')
} }
], f => { return f() }) ], f => { return f() })