Skip to content

Commit 78ed34c

Browse files
committed
source code and license
1 parent e5381ac commit 78ed34c

File tree

7 files changed

+327
-3
lines changed

7 files changed

+327
-3
lines changed

README.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## keystart
2+
3+
A minimized site classification navigation
4+
5+
### License
6+
```text
7+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
8+
Version 2, December 2004
9+
10+
Copyright (C) 2004 Sam Hocevar <[email protected]>
11+
12+
Everyone is permitted to copy and distribute verbatim or modified
13+
copies of this license document, and changing it is allowed as long
14+
as the name is changed.
15+
16+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
17+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
18+
19+
0. You just DO WHAT THE FUCK YOU WANT TO.
20+
```

css.css

+126-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,126 @@
1-
blockquote,body,button,code,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,input,legend,li,pre,textarea,ul{margin:0;padding:0}img{border:0;display:block}ul{list-style:none}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400},button,input{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit}a{color:#666;text-decoration:none}html{background:url(images/bg.gif)}body{font:12px 'Microsoft YaHei',SimSun,Helvetica,Tahoma,Arial,sans-serif!important;color:#666}#main{margin-top:150px}#main ul{padding:10px 20px;height:50px;text-align:center}#main li{position:relative;display:inline;margin-right:1em;font-family:Frutiger,Helvetica,sans-serif;font-size:16px;padding:1em 1.5em;color:#999;text-decoration:none;text-shadow:0 1px 0 rgba(255,255,255,.75);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border-top:1px solid #fff;border-bottom:1px solid #eee;-webkit-box-shadow:inset 0 0 2em rgba(0,0,0,.05),0 3px 0 #ddd,0 3px 2px rgba(0,0,0,.5);-moz-box-shadow:inset 0 0 2em rgba(0,0,0,.05),0 3px 0 #ddd,0 3px 2px rgba(0,0,0,.5);box-shadow:inset 0 0 2em rgba(0,0,0,.05),0 3px 0 #ddd,0 3px 2px rgba(0,0,0,.5);background:#fff;background:-moz-radial-gradient(center,ellipse cover,#fff 16%,#f6f6f6 75%,#ededed 100%);background:-webkit-gradient(radial,center center,0,center center,100%,color-stop(16%,#fff),color-stop(75%,#f6f6f6),color-stop(100%,#ededed));background:-webkit-radial-gradient(center,ellipse cover,#fff 16%,#f6f6f6 75%,#ededed 100%);background:-o-radial-gradient(center,ellipse cover,#fff 16%,#f6f6f6 75%,#ededed 100%);background:-ms-radial-gradient(center,ellipse cover,#fff 16%,#f6f6f6 75%,#ededed 100%);background:radial-gradient(center,ellipse cover,#fff 16%,#f6f6f6 75%,#ededed 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed', GradientType=1)}#main li:hover{margin-top:5px;border-top:1px solid #eee;border-bottom:1px solid #ccc;-webkit-box-shadow:inset 0 0 2em rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.5);-moz-box-shadow:inset 0 0 2em rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.5);box-shadow:inset 0 0 2em rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.5)}#main img.fav{position:absolute;bottom:3px;left:3px;width:16px;height:16px;opacity:.3;border-radius:10px;box-shadow:0 1px 2px #333 inset}#main li div{position:absolute;left:0;top:0}#main div a{display:inline-block;width:16px;height:16px;line-height:16px;margin-left:3px;cursor:pointer}#message{height:30px;text-align:center;color:#ccc}#hidden{display:none}
1+
blockquote,body,button,code,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,input,legend,li,pre,textarea,ul {
2+
margin: 0;
3+
padding: 0;
4+
}
5+
6+
img {
7+
border: 0;
8+
display: block;
9+
}
10+
11+
ul {
12+
list-style: none;
13+
}
14+
15+
h1,h2,h3,h4,h5,h6 {
16+
font-size: 100%;
17+
font-weight: 400;
18+
}
19+
20+
button,input {
21+
font-family: inherit;
22+
font-size: inherit;
23+
font-style: inherit;
24+
font-weight: inherit;
25+
}
26+
27+
a {
28+
color: #666;
29+
text-decoration: none;
30+
}
31+
32+
html {
33+
background: url(images/bg.gif);
34+
}
35+
36+
body {
37+
font: 12px 'Microsoft YaHei',SimSun,Helvetica,Tahoma,Arial,sans-serif!important;
38+
color: #666;
39+
}
40+
41+
#main {
42+
margin-top: 150px;
43+
}
44+
45+
#main ul {
46+
padding: 10px 20px;
47+
height: 50px;
48+
text-align: center;
49+
}
50+
51+
#main li {
52+
position: relative;
53+
display: inline;
54+
margin-right: 1em;
55+
font-family: Frutiger,Helvetica,sans-serif;
56+
font-size: 16px;
57+
padding: 1em 1.5em;
58+
color: #999;
59+
text-decoration: none;
60+
text-shadow: 0 1px 0 rgba(255,255,255,.75);
61+
-moz-border-radius: 5px;
62+
-webkit-border-radius: 5px;
63+
border-radius: 5px;
64+
border-top: 1px solid #fff;
65+
border-bottom: 1px solid #eee;
66+
-webkit-box-shadow: inset 0 0 2em rgba(0,0,0,.05),0 3px 0 #ddd,0 3px 2px rgba(0,0,0,.5);
67+
-moz-box-shadow: inset 0 0 2em rgba(0,0,0,.05),0 3px 0 #ddd,0 3px 2px rgba(0,0,0,.5);
68+
box-shadow: inset 0 0 2em rgba(0,0,0,.05),0 3px 0 #ddd,0 3px 2px rgba(0,0,0,.5);
69+
background: #fff;
70+
background: -moz-radial-gradient(center,ellipse cover,#fff 16%,#f6f6f6 75%,#ededed 100%);
71+
background: -webkit-gradient(radial,center center,0,center center,100%,color-stop(16%,#fff),color-stop(75%,#f6f6f6),color-stop(100%,#ededed));
72+
background: -webkit-radial-gradient(center,ellipse cover,#fff 16%,#f6f6f6 75%,#ededed 100%);
73+
background: -o-radial-gradient(center,ellipse cover,#fff 16%,#f6f6f6 75%,#ededed 100%);
74+
background: -ms-radial-gradient(center,ellipse cover,#fff 16%,#f6f6f6 75%,#ededed 100%);
75+
background: radial-gradient(center,ellipse cover,#fff 16%,#f6f6f6 75%,#ededed 100%);
76+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed', GradientType=1);
77+
}
78+
79+
#main li:hover {
80+
margin-top: 5px;
81+
border-top: 1px solid #eee;
82+
border-bottom: 1px solid #ccc;
83+
-webkit-box-shadow: inset 0 0 2em rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.5);
84+
-moz-box-shadow: inset 0 0 2em rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.5);
85+
box-shadow: inset 0 0 2em rgba(0,0,0,.075),0 0 2px rgba(0,0,0,.5);
86+
}
87+
88+
#main li.active {
89+
background: #ccf;
90+
}
91+
92+
#main img.fav {
93+
position: absolute;
94+
bottom: 3px;
95+
left: 3px;
96+
width: 16px;
97+
height: 16px;
98+
opacity: .3;
99+
border-radius: 10px;
100+
box-shadow: 0 1px 2px #333 inset;
101+
}
102+
103+
#main li div {
104+
position: absolute;
105+
left: 0;
106+
top: 0;
107+
}
108+
109+
#main div a {
110+
display: inline-block;
111+
width: 16px;
112+
height: 16px;
113+
line-height: 16px;
114+
margin-left: 3px;
115+
cursor: pointer;
116+
}
117+
118+
#message {
119+
height: 30px;
120+
text-align: center;
121+
color: #ccc;
122+
}
123+
124+
#hidden {
125+
display: none;
126+
}

images/bg.gif

-25.2 KB
Binary file not shown.

images/delete-icon.png

-796 Bytes
Binary file not shown.

images/edit-icon.png

-720 Bytes
Binary file not shown.

index.html

+62-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,63 @@
11
<!DOCTYPE html>
2-
<html lang="zh"><head><meta charset="utf-8"><title>可能是世界上最小的导航网站</title><link rel="stylesheet" href="css.css"><script src="//libs.baidu.com/jquery/1.9.1/jquery.min.js"></script></head><body><div id="main"><ul><li id="LI_1">1</li><li id="LI_2">2</li><li id="LI_3">3</li><li id="LI_4">4</li><li id="LI_5">5</li><li id="LI_6">6</li><li id="LI_7">7</li><li id="LI_8">8</li><li id="LI_9">9</li><li id="LI_0">0</li></ul><ul><li id="LI_Q">Q</li><li id="LI_W">W</li><li id="LI_E">E</li><li id="LI_R">R</li><li id="LI_T">T</li><li id="LI_Y">Y</li><li id="LI_U">U</li><li id="LI_I">I</li><li id="LI_O">O</li><li id="LI_P">P</li></ul><ul><li id="LI_A">A</li><li id="LI_S">S</li><li id="LI_D">D</li><li id="LI_F">F</li><li id="LI_G">G</li><li id="LI_H">H</li><li id="LI_J">J</li><li id="LI_K">K</li><li id="LI_L">L</li></ul><ul><li id="LI_Z">Z</li><li id="LI_X">X</li><li id="LI_C">C</li><li id="LI_V">V</li><li id="LI_B">B</li><li id="LI_N">N</li><li id="LI_M">M</li></ul><div id="message"></div><input type="hidden" id="tempdate" value=""></div><div id="hidden"><img src="images/edit-icon.png"><img src="images/delete-icon.png"></div><script src="js.js"></script></body></html>
2+
<html lang="zh">
3+
4+
<head>
5+
<meta charset="utf-8">
6+
<title>可能是世界上最小的导航网站</title>
7+
<link rel="stylesheet" href="css.css">
8+
<script src="//libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
9+
</head>
10+
11+
<body>
12+
<div id="main">
13+
<ul>
14+
<li id="LI_1">1</li>
15+
<li id="LI_2">2</li>
16+
<li id="LI_3">3</li>
17+
<li id="LI_4">4</li>
18+
<li id="LI_5">5</li>
19+
<li id="LI_6">6</li>
20+
<li id="LI_7">7</li>
21+
<li id="LI_8">8</li>
22+
<li id="LI_9">9</li>
23+
<li id="LI_0">0</li>
24+
</ul>
25+
<ul>
26+
<li id="LI_Q">Q</li>
27+
<li id="LI_W">W</li>
28+
<li id="LI_E">E</li>
29+
<li id="LI_R">R</li>
30+
<li id="LI_T">T</li>
31+
<li id="LI_Y">Y</li>
32+
<li id="LI_U">U</li>
33+
<li id="LI_I">I</li>
34+
<li id="LI_O">O</li>
35+
<li id="LI_P">P</li>
36+
</ul>
37+
<ul>
38+
<li id="LI_A">A</li>
39+
<li id="LI_S">S</li>
40+
<li id="LI_D">D</li>
41+
<li id="LI_F">F</li>
42+
<li id="LI_G">G</li>
43+
<li id="LI_H">H</li>
44+
<li id="LI_J">J</li>
45+
<li id="LI_K">K</li>
46+
<li id="LI_L">L</li>
47+
</ul>
48+
<ul>
49+
<li id="LI_Z">Z</li>
50+
<li id="LI_X">X</li>
51+
<li id="LI_C">C</li>
52+
<li id="LI_V">V</li>
53+
<li id="LI_B">B</li>
54+
<li id="LI_N">N</li>
55+
<li id="LI_M">M</li>
56+
</ul>
57+
<div id="message"></div>
58+
<input type="hidden" id="tempdate" value="">
59+
</div>
60+
<script src="js.js"></script>
61+
</body>
62+
63+
</html>

js.js

+119-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,119 @@
1-
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7(\'V\'!=I("W")){8("1x","h://m.1y.n");8("1z","h://m.1A.n");8("1B","h://m.1C.n");8("1D","h://m.1E.n");8("1F","h://m.1G.n");8("1H","h://m.1I.n");8("1J","h://m.1K.n");8("W","V")};5 j={};1L(5 i=1M;i<=1N;i++){5 q=X.Y(i);5 v=I("J"+q);7(v!=1O&&v!=\'\'&&K(v)!=\'L\'){j[q]=v;$("#k"+q).Z(\'<t w="\'+q+\'" r="10" x="\'+M(v)+\'" 11="12">\')}};$(N).1P(g(a){7(a.1Q){l O}5 b=X.Y(a.1R);$("#k"+b).y(\'A\',\'#13\');14(\'$("#k\'+b+\'").y("A","#15");\',1S);7(j[b]==\'\'||K(j[b])==\'L\'){$("#16").17(\'找不到这个按键的配置,注意切换您的输入法哦~~~\');14(\'$("#16").17("");\',1T)}18{P.19.1a=j[b]}});$("#1b 1c").1U(g(){$("#B").C($(Q).1d(\'w\').1e("k",""));$(Q).1V(\'<1f r="1g"><D><a 1h="R()" r="R" 1i="删除"><t x="1j/1W-1k.1l"></a></D><D><a 1h="1m()" r="1n" 1i="编辑"><t x="1j/1n-1k.1l"></a></D></1f>\')}).1X(g(){$("#B").C(\'\');$(".1g").S()});$("#1b 1c").1Y(g(){5 a=$(Q).1d(\'w\').1e(\'k\',\'\');7(j[a]==\'\'||K(j[a])==\'L\'){}18{P.19.1a=j[a]}});g R(){5 a=$("#B").C();j[a]=\'\';$("#"+a).S();1o("J"+a);l O};g 1m(){5 a=$("#B").C();$("#k"+a).y(\'A\',\'#13\');5 u=P.1Z("请输入键位["+a+"]对应的网站地址","");$("#k"+a).y(\'A\',\'#15\');7(u.p(\'h://\')==-1&&u.p(\'1p://\')==-1){u=\'h://\'+u};7(!1q(u)){20(\'网站地址输入错误!请核对\');l};j[a]=u;$("#"+a).S();$("#k"+a).Z(\'<t w="\'+a+\'" r="10" x="\'+M(u)+\'" 11="12">\');8("J"+a,u);l O};g M(a){5 s=a.p("//");T=a.E(s+2);5 b=T.p("/");7(b==-1){b=T.F};l a.E(0,b+s+2)+\'/21.22\'};g 8(a,b,c,d,e){5 f=U 1r();f.1s(f.1t()+(23*25*24*1u*1u*1v));N.1w=a+"="+26(b)+((f)?"; 27="+f.28():"")+"; 29=/"};g 1o(a){G=U 1r();G.1s(G.1t()-(2a*1v));8(a,"",G)};g I(a){5 b=N.1w;a+="=";5 i=0;2b(i<b.F){5 c=i+a.F;7(b.E(i,c)==a){5 d=b.p(";",c);7(d==-1)d=b.F;l 2c(b.E(c,d))};i=b.p(" ",i)+1;7(i==0)2d};l};g 1q(a){5 b="^((1p|h|2e|2f|2g)?://)"+"?(([0-o-H!~*\'().&=+$%-]+: )?[0-o-H!~*\'().&=+$%-]+@)?"+"(([0-9]{1,3}.){3}[0-9]{1,3}"+"|"+"([0-o-H!~*\'()-]+.)*"+"([0-o-z][0-o-z-]{0,2h})?[0-o-z]."+"[a-z]{2,6})"+"(:[0-9]{1,4})?"+"((/?)|"+"(/[0-o-H!~*\'().;?:@&=+$,%#-]+)+/?)$";5 c=U 2i(b);l!!c.2j(a)};',62,144,'|||||var||if|setCookie||||||||function|http||urlcache|LI_|return|www|com|9a|indexOf|code|class||img|||id|src|css||background|tempdate|val|span|substring|length|expdate|z_|getCookie|_|typeof|undefined|getico|document|false|window|this|del|remove|temp|new|OVER|FIRSTTIME|String|fromCharCode|prepend|fav|align|center|ccf|setTimeout|fff|message|html|else|location|href|main|li|attr|replace|div|oper|onclick|title|images|icon|png|update|edit|deleteCookie|https|IsURL|Date|setTime|getTime|60|1000|cookie|_B|baidu|_G|google|_Q|qq|_T|taobao|_V|v2ex|_W|weibo|_Y|youku|for|48|90|null|keyup|ctrlKey|keyCode|300|2000|mouseenter|append|delete|mouseleave|click|prompt|alert|favicon|ico|100||365|escape|expires|toGMTString|path|86400|while|decodeURIComponent|break|ftp|rtsp|mms|61|RegExp|test'.split('|'),0,{}))
1+
if ( 'OVER' != getCookie("FIRSTTIME") ) {
2+
setCookie("_B", "http://www.baidu.com");
3+
setCookie("_G", "http://www.google.com");
4+
setCookie("_Q", "http://www.qq.com");
5+
setCookie("_T", "http://www.taobao.com");
6+
setCookie("_V", "http://www.v2ex.com");
7+
setCookie("_W", "http://www.weibo.com");
8+
setCookie("_Y", "http://www.youku.com");
9+
setCookie("FIRSTTIME", "OVER");
10+
};
11+
12+
var urlcache = {};
13+
14+
for (var i = 48; i <= 90; i++) {
15+
var code = String.fromCharCode(i);
16+
var v = getCookie("_" + code);
17+
if (v != null && v != '' && typeof(v) != 'undefined') {
18+
urlcache[code] = v;
19+
$("#LI_" + code).prepend('<img id="' + code + '" class="fav" src="' + getico(v) + '" align="center">')
20+
}
21+
};
22+
23+
$(document).keyup(function(ev) {
24+
if (ev.ctrlKey) return false;
25+
var code = String.fromCharCode(ev.keyCode);
26+
$("#LI_" + code).addClass("active");
27+
setTimeout('$("#LI_' + code + '").removeClass("active");', 300);
28+
if (urlcache[code] == '' || typeof(urlcache[code]) == 'undefined') {
29+
$("#message").html('找不到这个按键的配置,注意切换您的输入法哦~~~');
30+
setTimeout('$("#message").html("");', 2000)
31+
} else window.location.href = urlcache[code];
32+
});
33+
34+
$("#main li").mouseenter(function() {
35+
$("#tempdate").val($(this).attr('id').replace("LI_", ""));
36+
$(this).append('<div class="oper"><span><a onclick="return del()" class="del" title="删除"><img src="images/delete-icon.png"></a></span><span><a onclick="return update()" class="edit" title="编辑"><img src="images/edit-icon.png"></a></span></div>')
37+
}).mouseleave(function() {
38+
$("#tempdate").val('');
39+
$(".oper").remove()
40+
});
41+
42+
$("#main li").click(function() {
43+
var code = $(this).attr('id').replace('LI_', '');
44+
if (urlcache[code] != '' && typeof(urlcache[code]) != 'undefined') {
45+
window.location.href = urlcache[code];
46+
}
47+
});
48+
49+
function del() {
50+
var code = $("#tempdate").val();
51+
urlcache[code] = '';
52+
$("#" + code).remove();
53+
deleteCookie("_" + code);
54+
return false;
55+
};
56+
57+
function update() {
58+
var code = $("#tempdate").val();
59+
$("#LI_" + code).css('background', '#ccf');
60+
var u = window.prompt("请输入键位 [" + code + "] 对应的网站地址", "");
61+
$("#LI_" + code).css('background', '#fff');
62+
if (u.indexOf('http://') == -1 && u.indexOf('https://') == -1) {
63+
u = 'http://' + u
64+
};
65+
if (!IsURL(u)) {
66+
alert('网站地址输入错误!请核对');
67+
return false;
68+
};
69+
urlcache[code] = u;
70+
$("#" + code).remove();
71+
$("#LI_" + code).prepend('<img id="' + code + '" class="fav" src="' + getico(u) + '" align="center">');
72+
setCookie("_" + code, u);
73+
return true;
74+
};
75+
76+
function getico(url) {
77+
var s = url.indexOf("//");
78+
temp = url.substring(s + 2);
79+
var s1 = temp.indexOf("/");
80+
if (s1 == -1) {
81+
s1 = temp.length
82+
};
83+
return url.substring(0, s1 + s + 2) + '/favicon.ico'
84+
};
85+
86+
function setCookie(name, value, path, domain, secure) {
87+
var expdate = new Date();
88+
expdate.setTime(expdate.getTime() + (100 * 365 * 24 * 60 * 60 * 1000));
89+
document.cookie = name + "=" + escape(value) + ((expdate) ? "; expires=" + expdate.toGMTString() : "") + "; path=/";
90+
};
91+
92+
function deleteCookie(name) {
93+
expdate = new Date();
94+
expdate.setTime(expdate.getTime() - (86400 * 1000));
95+
setCookie(name, "", expdate)
96+
};
97+
98+
function getCookie(name) {
99+
var bikky = document.cookie;
100+
name += "=";
101+
var i = 0;
102+
while (i < bikky.length) {
103+
var offset = i + name.length;
104+
if (bikky.substring(i, offset) == name) {
105+
var endstr = bikky.indexOf(";", offset);
106+
if (endstr == -1) endstr = bikky.length;
107+
return decodeURIComponent(bikky.substring(offset, endstr))
108+
};
109+
i = bikky.indexOf(" ", i) + 1;
110+
if (i == 0) break
111+
};
112+
return
113+
};
114+
115+
function IsURL(str_url) {
116+
var strRegex = "^((https|http|ftp|rtsp|mms)?://)" + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" + "(([0-9]{1,3}.){3}[0-9]{1,3}" + "|" + "([0-9a-z_!~*'()-]+.)*" + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." + "[a-z]{2,6})" + "(:[0-9]{1,4})?" + "((/?)|" + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
117+
var re = new RegExp(strRegex);
118+
return !!re.test(str_url);
119+
};

0 commit comments

Comments
 (0)