Browse Source

build

master
jayho 4 years ago
parent
commit
e08527a496
  1. 35
      web/index.html
  2. 228
      web/static/css/OxFooter.css
  3. 1
      web/static/css/app.22a360ef048a13853e188bdf94d7cc64.css
  4. 1
      web/static/css/app.293e899fb703a5fd4a271a52b46266b8.css
  5. 82
      web/static/css/qietu.css
  6. 333
      web/static/css/responsive.css
  7. 793
      web/static/css/style.css
  8. BIN
      web/static/css/unisans.otf
  9. 7
      web/static/editor.md/editormd.js
  10. 2708
      web/static/editor.md/lib/marked.min.js
  11. 29
      web/static/editor.md/lib/marked.old.js
  12. BIN
      web/static/fonts/unisans.4e8910a.otf
  13. BIN
      web/static/images/bg.jpg
  14. BIN
      web/static/images/code.png
  15. BIN
      web/static/images/icon_right.png
  16. BIN
      web/static/images/logo.png
  17. BIN
      web/static/images/logo_b.png
  18. BIN
      web/static/images/mini.png
  19. BIN
      web/static/images/search.png
  20. BIN
      web/static/img/bg.644f5c4.jpg
  21. BIN
      web/static/img/bg1.97db6cb.png
  22. BIN
      web/static/img/home1.cf81ad2.png
  23. BIN
      web/static/img/home9.7fab5f7.png
  24. BIN
      web/static/img/regbg.5030481.jpg
  25. BIN
      web/static/imgs/Android.png
  26. BIN
      web/static/imgs/Auto.png
  27. BIN
      web/static/imgs/Logo.png
  28. BIN
      web/static/imgs/Mac.png
  29. BIN
      web/static/imgs/Server.png
  30. BIN
      web/static/imgs/Vector 9.png
  31. BIN
      web/static/imgs/Vector.png
  32. BIN
      web/static/imgs/Vector1.png
  33. BIN
      web/static/imgs/Wechat.png
  34. BIN
      web/static/imgs/Windows.png
  35. BIN
      web/static/imgs/bg1.png
  36. BIN
      web/static/imgs/bg2-1.png
  37. BIN
      web/static/imgs/bg2-2.png
  38. BIN
      web/static/imgs/bg2-3.png
  39. BIN
      web/static/imgs/bg2-4.png
  40. BIN
      web/static/imgs/bg2-5.png
  41. BIN
      web/static/imgs/code.png
  42. BIN
      web/static/imgs/home1.png
  43. BIN
      web/static/imgs/home2-1111111.png
  44. BIN
      web/static/imgs/home2-img.png
  45. BIN
      web/static/imgs/home2.png
  46. BIN
      web/static/imgs/home3.png
  47. BIN
      web/static/imgs/home4.png
  48. BIN
      web/static/imgs/home5.png
  49. BIN
      web/static/imgs/home6.png
  50. BIN
      web/static/imgs/home7.png
  51. BIN
      web/static/imgs/home8.png
  52. BIN
      web/static/imgs/home9.png
  53. BIN
      web/static/imgs/iOS.png
  54. BIN
      web/static/imgs/regbg.jpg
  55. 1
      web/static/js/app.2d331ccfa7a38331f49e.js
  56. 1
      web/static/js/app.f469a9d7b4f8ba5c97c2.js
  57. 59
      web/static/lang/en.js
  58. 67
      web/static/lang/zh-CN.js

35
web/index.html

@ -1,19 +1,18 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=renderer content=webkit><meta http-equiv=X-UA-Compatible content=edge><title>ShowDoc</title><meta name=keywords content="在线API文档 技术文档 数据字典 在线手册"><meta name=description content=一个非常适合IT团队的在线API文档、技术文档工具。你可以使用Showdoc来编写在线API文档、技术文档、数据字典、在线手册><script type=text/javascript>var Wwidth = window.innerWidth ;
window.addEventListener('resize', function() {
///宽度变化大于50像素的时候刷新整个窗口以适应新宽度
if ( Math.abs(Wwidth - window.innerWidth) > 50 ) {
//如果不在编辑页面,则在窗口变化后刷新窗口以适应宽度
if(window.location.href.indexOf("/edit") === -1){
window.location.reload();
}
};
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=renderer content=webkit><meta http-equiv=X-UA-Compatible content=edge><title>帮助中心-欧轩智能场馆</title><meta name=keywords content=""><meta name=description content=""><script type=text/javascript>// var Wwidth = window.innerWidth
// window.addEventListener('resize', function() {
// /// 宽度变化大于50像素的时候刷新整个窗口以适应新宽度
// if (Math.abs(Wwidth - window.innerWidth) > 50) {
// // 如果不在编辑页面,则在窗口变化后刷新窗口以适应宽度
// if (window.location.href.indexOf('/edit') === -1) {
// window.location.reload()
// }
// };
// })
});
//挂在window下的全局配置
window.DocConfig = {
//"server":'http://127.0.0.1/showdoc/server/index.php?s=',
"server": window.location.protocol +'//'+ window.location.host + window.location.pathname+ '../server/index.php?s=',
//"lang" :'en'
"lang" :'zh-cn'
}</script><link href=./static/css/app.293e899fb703a5fd4a271a52b46266b8.css rel=stylesheet></head><body class=grey-bg><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.451f9dec262f7b7fd825.js></script><script type=text/javascript src=./static/js/app.2d331ccfa7a38331f49e.js></script></body></html>
// 挂在window下的全局配置
window.DocConfig = {
// "server":'http://127.0.0.1/showdoc/server/index.php?s=',
'server': window.location.protocol + '//' + window.location.host + window.location.pathname + '../server/index.php?s=',
// "lang" :'en'
'lang': 'zh-cn'
}</script><link href=./static/css/app.22a360ef048a13853e188bdf94d7cc64.css rel=stylesheet></head><body class=grey-bg><div id=app></div><div style=display:none>本网站基于开源版showdoc搭建,仅供私人使用。如需访问showdoc官网,请在搜索引擎里搜索showdoc字样或者直接访问showdoc.com.cn</div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.451f9dec262f7b7fd825.js></script><script type=text/javascript src=./static/js/app.f469a9d7b4f8ba5c97c2.js></script></body></html>

228
web/static/css/OxFooter.css

@ -0,0 +1,228 @@
/*reset*/
html{-webkit-text-size-adjust:none; /*解决chrome浏览器下字体不能小于12px*/}
body{ color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif;}
a{outline:none; text-decoration:none;} a:hover{ text-decoration:underline;}
html{zoom:1;}html *{outline:0;zoom:1;} html button::-moz-focus-inner{border-color:transparent!important;}
body{overflow-x: hidden; font-size:12px;} body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
* {
margin: 0;
padding: 0;
-webkit-appearance: none;
/*去掉浏览器默认样式*/
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-touch-callout: none;
box-sizing: border-box;
}
body,
.body {
-webkit-text-size-adjust: 100%;
/*关闭自动调整字体*/
-webkit-overflow-scrolling: touch;
overflow-scrolling: touch;
}
/*pad*/
img {
max-width: 100%;
}
a {
color: inherit;
}
a:hover {
color: inherit;
}
.contactBox {
background: #5CCCB2;
}
.contactBox .wrapperBox {
width: 1200px;
overflow: hidden;
margin: 0 auto;
padding-top: 30px;
padding-bottom: 70px;
color: #000;
font-size: 16px;
line-height: 2;
}
.contactBox .wrapperBox>div {
float: left;
width: 50%;
}
.contactBox .desc {
margin-top: 20px;
}
.contactBox .rightBox {
overflow: hidden;
}
.contactBox .item {
width: 100px;
float: left;
text-align: center;
margin-right: 46px;
}
.contactBox .item img {
width: 100%;
display: block;
margin-bottom: 12px;
}
@font-face {
font-family: "unisans";
src: url("unisans.otf");
/* iOS 4.1- */
font-style: normal;
font-weight: normal;
}
.enText {
font-size: 60px;
font-weight: bold;
font-family: "unisans";
color: #000;
}
.linksBox{
background: #009874;
color: #000;
}
.linksBox .wrapperBox{
width: 1200px;
margin:0 auto;
position: relative;
padding-top: 60px;
padding-bottom: 60px;
}
.links{
overflow: hidden;
font-size: 16px;
margin-bottom: 55px;
}
.links > div{
width: 546px;
float: left;
}
.links h3{
font-size: 30px;
font-weight: bold;
margin-bottom: 30px;
}
.links li{
margin-bottom: 14px;
}
.linksBtm{
font-size: 20px;
}
.linksBtm a{
margin-right: 100px;
font-weight: bold;
}
.rlogo{
width:200px;
position: absolute;
right:0;
top:70px;
}
.footer {
font-size: 16px;
background: #000000;
}
.footer .copyright span {
margin: 0 180px;
}
.footer .copyright {
width: 1200px;
margin: 0 auto;
padding: 30px 0;
}
/* 平板--sm */
@media screen and (max-width:992px) {
.contactBox .wrapperBox{
width:100%;
padding: 20px 0;
font-size: 12px;
}
.enText{
font-size: 22px;
text-align: center;
}
.contactBox .wrapperBox>div{
float: none;
width:100%;
padding: 0 15px;
}
.rightBox .enText{
margin-top: 20px;
margin-bottom: 20px;
}
.contactBox .item{
width:50%;
margin-right: 0;
}
.contactBox .item img{
width: 100px;
margin:0 auto 15px;
}
.linksBox .wrapperBox{
width:100%;
padding: 20px 15px;
}
.rlogo{
display: none;
}
.links{
margin-bottom: 15px;
}
.links > div{
width: 100%;
float: none;
padding: 0;
text-align: center;
}
.links li{
margin:4px 5px ;
display: inline-block;
font-size: 14px;
}
.links h3{
font-size: 18px;
margin:10px 0;
}
.linksBtm{
font-size: 16px;
text-align: center;
}
.linksBtm a{
margin: 5px;
}
.footer .copyright{
width: 100%;
padding: 10px;
font-size: 12px;
text-align: center;
}
.footer .copyright span{
margin: 0;
}
.footer .copyright a:first-child{
display: block;
margin:0 auto 3px;
font-size: 14px;
}
}

1
web/static/css/app.22a360ef048a13853e188bdf94d7cc64.css
File diff suppressed because it is too large
View File

1
web/static/css/app.293e899fb703a5fd4a271a52b46266b8.css
File diff suppressed because it is too large
View File

82
web/static/css/qietu.css

@ -0,0 +1,82 @@
/*reset*/
html{-webkit-text-size-adjust:none; /*解决chrome浏览器下字体不能小于12px*/}
body{ color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif;}
a{outline:none; text-decoration:none;} a:hover{ text-decoration:underline;}
html{zoom:1;}html *{outline:0;zoom:1;} html button::-moz-focus-inner{border-color:transparent!important;}
body{overflow-x: hidden; font-size:12px;} body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;} table{/*border-collapse:collapse;border-spacing:0;*/} fieldset,a img{border:0;} address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:normal;} li{list-style:none;} caption,th{text-align:left;} h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;} q:before,q:after{content:'';}
input[type="submit"], input[type="reset"], input[type="button"], button { -webkit-appearance: none; /*去掉苹果的默认UI来渲染按钮*/} em,i{ font-style:normal;}
/*common*/
.clearfix:after {content:"."; display:block; height:0; clear:both; visibility:hidden; }.clearfix {display:block;}.clear{ clear:both;}
.colwrapper { overflow:hidden; zoom:1 /*for ie*/; margin:5px auto; }
.strong{ font-weight: bold;} .left{ float: left;} .right{ float: right;} .center{ margin:0 auto; text-align:center;}
.show{ display:block; visibility:visible;}.hide{ display: none; visibility:hidden;}
.block{ display:block;} .inline{ display:inline;}
.break{ word-wrap:break-word;overflow:hidden; /*word-break:break-all;*/}
.tal{ text-align:left} .tar{ text-align:right;}
/*文字两侧对齐*/
.justify {
text-align:justify;
text-justify:distribute-all-lines;/*ie6-8*/
text-align-last:justify;/* ie9*/
-moz-text-align-last:justify;/*ff*/
-webkit-text-align-last:justify;/*chrome 20+*/
}
.toe{
/*超出省略号*/
word-break:keep-all;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
@media screen and (-webkit-min-device-pixel-ratio:0){/* chrome*/
.justify:after{
content:".";
display: inline-block;
width:100%;
overflow:hidden;
height:0;
}
}
a{ color:inherit; text-decoration: none;}
a:hover{ color:#3e6ed4; text-decoration: none;}
body{font-family: "Microsoft YaHei",sans-serif;}
.css3{
/*transition: all 0.3s ease-in-out 0s;*/
-webkit-transform:translate3d(0, -20px, 0);
-ms-transform:translate3d(0, -20px, 0);
transform:translate3d(0, -20px, 0);
-webkit-transition-property:opacity, -webkit-transform;
transition-property:opacity, transform;
-webkit-transition-duration:1000ms;
transition-duration:1000ms;
-webkit-transition-timing-function:cubic-bezier(0.25, 0.46, 0.33, 0.98);
transition-timing-function:cubic-bezier(0.25, 0.46, 0.33, 0.98);
-webkit-transition-delay:800ms;
transition-delay:800ms
}
.css3.animated{
-webkit-transform:translate3d(0, 0, 0);
-ms-transform:translate3d(0, 0, 0);
transform:translate3d(0, 0, 0);
}
@media screen and (max-width: 650px) {
}
@media screen and (max-width: 480px) {
}

333
web/static/css/responsive.css

@ -0,0 +1,333 @@
* {
margin: 0;
padding: 0;
-webkit-appearance: none;
/*去掉浏览器默认样式*/
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-touch-callout: none;
box-sizing: border-box;
}
body,
.body {
-webkit-text-size-adjust: 100%;
/*关闭自动调整字体*/
-webkit-overflow-scrolling: touch;
overflow-scrolling: touch;
}
/*pad*/
img {
max-width: 100%;
}
input[type="submit"],
input[type="reset"],
input[type="button"],
button {
-webkit-appearance: none;
/*去掉苹果的默认UI来渲染按钮*/
}
@media only screen and (max-width:1480px) {
.wrapper {
width: 1240px;
}
.hbanner .wrapper {
background-size: 650px auto;
}
.hrow .txt h2 {
font-size: 36px;
}
.hrow .txt p {
font-size: 18px;
}
}
/* 电脑小屏--md */
@media screen and (max-width:1200px) {
.wrapper {
width: 1170px;
}
/*价格*/
.mprice-main .wrapper {
padding-left: 150px;
position: relative;
margin-right: 20px;
}
.mprice-main {
background-size: cover;
padding-bottom: 40px;
padding-top: 100px;
}
.mprice-main .itemwrap {
white-space: nowrap;
overflow-x: scroll;
padding-top: 80px;
}
.mprice-main .item {
float: none;
display: inline-block;
vertical-align: top;
width: 200px;
}
.mprice-main .item ul.tit {
padding-left: 20px;
}
.mprice-main .itemtit {
position: absolute;
left: 0;
top: 0;
}
.mprice-main .item .btn a {
width: 120px;
height: 45px;
line-height: 45px;
font-size: 14px;
}
.mprice-explain {
padding: 60px 0;
}
.mprice-explain .wrapper {
padding: 0 20px;
}
}
/* 平板--sm */
@media screen and (max-width:992px) {
.wrapper {
width: auto;
}
.hbanner .wrapper {
background-size: 300px auto;
background-position: center 100px;
padding-top: 400px;
height: auto;
padding-bottom: 100px;
}
.hbanner-txt .btns a {
width: auto;
min-width: 120px;
height: 45px;
line-height: 45px;
}
.hbanner-txt {
padding-left: 40px;
/*text-align: center;*/
}
.hbanner-txt h2 {
font-size: 24px;
}
.hbanner-txt .list li {
margin-bottom: 15px;
}
.hrow .img {
width: auto;
float: none;
text-align: center;
padding-top: 0;
}
.hrow {
height: auto !important;
padding-bottom: 100px;
padding-top: 100px;
}
.hrow .txt {
width: auto;
float: none;
padding-top: 40px;
}
.hrow .img>img {
max-width: 220px;
}
.hrow .txt h2 {
font-size: 24px;
margin-bottom: 20px;
}
.hrow .txt p {
font-size: 14px;
padding-bottom: 10px;
}
.hfoot {
padding-top: 100px;
height: auto;
padding-bottom: 120px;
background-size: cover;
}
.hfoot h2 {
font-size: 24px;
}
.hfoot h2 br {
display: block;
}
.hfoot .btn {
width: auto;
min-width: 120px;
height: 45px;
line-height: 45px;
}
/*下载*/
.downpage {
width: auto;
margin-left: 20px;
margin-right: 20px;
margin-top: 100px;
margin-bottom: 100px;
}
.downlist {
padding: 40px 0;
}
.downlist .body {
margin-top: 40px;
}
.downlist .body li {
display: block;
margin-bottom: 40px;
}
.downlist .body .btn a {
width: auto;
min-width: 120px;
height: 45px;
line-height: 45px;
font-size: 14px;
}
/*注册*/
.form-box {
width: auto;
margin-left: 20px;
margin-right: 20px;
margin-top: 150px;
margin-bottom: 100px;
}
.form {
padding: 20px;
padding-top: 70px;
}
.form-btns button {
height: 45px;
line-height: 45px;
font-size: 14px;
}
.form-list .text {
height: 45px;
}
.form-list .textcode+img {
height: 45px;
width: 100px;
}
/*帮助中心*/
.searchBox {
height: auto;
padding-top: 20px;
padding-bottom: 20px;
}
.searchBox .wrapperBox {
width: 100%;
padding: 0 15px;
}
.tip-text {
font-size: 18px;
}
.input-group {
height: 40px;
padding-left: 40px;
border-radius: 20px;
}
.input-group .btn {
font-size: 18px;
line-height: 36px;
width: 80px
}
.input-group>img {
width: 24px;
top: 6px;
left: 10px;
}
.input-group .form-control {
line-height: 38px;
font-size: 16px;
}
h2.title {
font-size: 20px;
margin-bottom: 30px;
}
.docListBox {
width: 100%;
padding: 20px 15px;
}
.docListBox a {
width: 100%;
height: auto;
padding-top: 10px;
padding-bottom: 10px;
float:none;
font-size: 14px;
margin: 0;
border-top: 1px solid#EDEDED;
}
.docListBox a::before{
top:50%;
margin-top: -20px;
}
}
@media screen and (max-width:768px) {
/*.wrapper{
width: 750px;
}*/
}

793
web/static/css/style.css

@ -0,0 +1,793 @@
* {
box-sizing: border-box;
}
.body,
body,
select,
input,
view,
text,
button,
textarea {
font-family: 'PingFang SC', 'microsoft yahei', arial, 'helvetica neue', 'hiragino sans gb', sans-serif;
}
body,
.body {
font-size: 14px;
color: #fff;
background-color: #fff;
overflow-x: hidden;
line-height: 1.6;
}
a {
color: inherit;
}
a:hover {
color: inherit;
}
img {
max-width: 100%;
}
.clearfix:after {
content: "";
display: table;
clear: both;
height: 0;
visibility: hidden;
}
.fl {
float: left;
}
.fr {
float: right;
}
.form-box {
width: 400px;
margin: 200px auto 170px;
}
.form-tit {
text-align: center;
font-size: 22px;
margin-bottom: 20px;
}
.form {
background: #202020;
border-radius: 4px;
padding: 55px 55px 55px 55px;
position: relative;
}
.form-err {
background: #FF6A6A;
border-radius: 4px 4px 0 0;
position: absolute;
left: 0;
right: 0;
top: 0;
padding: 10px;
font-style: normal;
font-weight: normal;
font-size: 12px;
text-align: center;
}
.form-list li {
margin-bottom: 15px;
}
.form-list .text {
width: 100%;
height: 52px;
background: #111111;
border-radius: 4px;
border: 0;
font-size: 14px;
color: #989898;
padding: 0 15px;
border: #111111 solid 1px;
}
.form-list .text-err {
border-color: #FF6A6A;
}
.form-list .textcode {
width: 160px;
}
.form-list .textcode+img {
vertical-align: middle;
width: 116px;
height: 52px;
}
.form-list .text:focus {
border: #369FFF solid 1px;
}
.form-list a:hover {
color: #369FFF;
}
.form-btns {
margin-top: 50px;
text-align: center;
}
.form-btns li+li {
margin-top: 10px;
}
.form-btns .btn {
width: 100%;
height: 55px;
background: #FFFFFF;
font-size: 16px;
color: #111111;
border: 1px solid #FFFFFF;
box-sizing: border-box;
border-radius: 4px;
cursor: pointer;
display: inline-block;
line-height: 55px;
}
.form-btns .btn:hover {
background: #369FFF !important;
border-color: #369FFF !important;
color: #fff !important;
}
.form-btns .btn.btn1 {
background: transparent;
color: #fff;
}
.form-other {
text-align: center;
margin-top: 15px;
}
.form-other .hd {
color: #4E4E4E;
}
.form-other .bd {
margin-top: 15px;
}
/*首页*/
.wrapper {
width: 1440px;
margin: 0 auto;
}
.searchBox {
height: 366px;
background-image: url(../images/bg.jpg);
background-size: contain;
margin-top: 59px;
padding-top: 60px;
}
.searchBox .wrapperBox {
width: 900px;
margin: 0 auto;
}
.tip-text {
font-size: 50px;
text-align: center;
color: #000;
}
.input-group {
margin-top: 30px;
position: relative;
border: 2px solid #009874;
height: 60px;
border-radius: 30px;
background: #fff;
padding-left: 60px;
padding-right: 100px;
overflow: hidden;
}
.input-group .btn {
background: #009874;
font-size: 24px;
text-align: center;
width: 100px;
height: 100%;
line-height: 56px;
position: absolute;
right: 0;
top: 0;
border: none;
color: #fff;
cursor: pointer;
}
.input-group>img {
width: 30px;
position: absolute;
left: 18px;
top: 14px;
}
.input-group .form-control {
width: 100%;
font-size: 20px;
line-height: 56px;
height: 100%;
border: none;
background: none;
}
.docListBox {
min-height: 200px;
color: #000;
padding-top: 80px;
padding-bottom: 20px;
width: 1200px;
overflow: hidden;
margin: 0 auto;
}
.docListBox a {
display: block;
width: 319px;
height: 173px;
margin: 0 35px;
float: left;
font-size: 20px;
padding-top: 22px;
padding-right: 70px;
border-top: 2px solid #000;
position: relative;
}
.docListBox a::before {
content: '';
width: 40px;
height: 40px;
position: absolute;
right: 10px;
top: 20px;
background: url(../images/icon_right.png);
background-size: 100%;
}
.docListBox a.active,
.docListBox a:hover {
background: #76EACF;
}
.resListBox {
width:1100px;
padding:40px 0;
}
.resListBox a {
width: 100%;
height: auto;
padding-top: 20px;
padding-bottom: 20px;
float: none;
font-size: 20px;
margin: 0;
border-top: 1px solid#EDEDED;
}
.resListBox a small {
display: block;
font-size: 70%;
color:#999999
}
.resListBox a:last-child {
border-bottom: 1px solid#EDEDED;
}
.resListBox a::before {
top: 50%;
margin-top: -20px;
}
h2.title {
font-size: 32px;
text-align: center;
margin-bottom: 91px;
font-weight: bold;
}
.hbanner .wrapper {
background: url(../imgs/home1.png) no-repeat right center;
height: 940px;
padding-top: 305px;
}
.hbanner-txt {
padding-left: 155px;
}
.hbanner-txt h2 {
font-size: 40px;
line-height: 160%;
color: #fff;
font-weight: bold;
margin-bottom: 55px;
}
.hbanner-txt h2 font {
color: #369FFF;
}
.hbanner-txt .list {
font-size: 14px;
line-height: 20px;
}
.hbanner-txt .list li {
margin-bottom: 24px;
}
.hbanner-txt .list li:last-child {
margin-bottom: 0;
}
.hbanner-txt .list .num {
background: #333333;
border-radius: 1px;
margin-left: 5px;
padding: 0 3px;
font-family: 'Barlow-Regular';
}
.hbanner-txt .btns {
margin-top: 60px;
}
.hbanner-txt .btns a {
width: 130px;
height: 55px;
line-height: 55px;
text-align: center;
display: inline-block;
border: 1px solid #FFFFFF;
box-sizing: border-box;
border-radius: 4px;
margin-right: 24px;
/*transition: 0.4s;*/
}
.hbanner-txt .btns a:hover {
background: #369FFF !important;
color: #fff !important;
border-color: #369FFF;
}
.hbanner-txt .btns a.on {
color: #111111;
background: #fff;
}
.hrow {
height: 634px;
}
.hrow .wrapper {
/*overflow: hidden;*/
padding: 0 10%;
}
.hrow .fl {
float: left;
}
.hrow .fr {
float: right;
}
.hrow .txt {
/*padding-left: 155px;*/
padding-top: 210px;
/*width: 570px;*/
width: 53%;
}
.hrow .txt h2 {
font-weight: 600;
font-size: 40px;
line-height: 160%;
margin-bottom: 50px;
}
.hrow .txt p {
font-size: 22px;
line-height: 1.4;
padding-bottom: 30px;
}
.hrow .txt p img {
margin-right: 13px;
}
.hrow .img {
/*padding-top: 120px;*/
padding-top: 110px;
/*width: 500px;*/
width: 43%;
}
.hrow1 {
background: #202020;
height: 634px;
}
.hrow1 .img {
position: relative;
}
.hrow1 .img>.box {
position: absolute;
left: 0;
top: -50px;
}
.hrow1 .img>img {
position: relative;
z-index: 2;
}
.hrow2 {
background: #369FFF;
height: 634px;
}
.hrow3 {
background: #111111;
height: 634px;
}
.hrow4 {
background: #202020;
height: 570px;
}
.hrow5 {
background: #369FFF;
height: 634px;
}
.hrow6 {
background: #111111;
height: 617px;
}
.hrow7 {
background: #202020;
height: 617px;
}
.hfoot {
height: 594px;
background: url(../imgs/home9.png) no-repeat center top #fff;
color: #111111;
text-align: center;
padding-top: 280px;
position: relative;
}
.hfoot h2 {
font-size: 40px;
line-height: 160%;
font-weight: bold;
}
.hfoot h2 br {
display: none;
}
.hfoot .num {
background: #DFF0FF;
color: #369FFF;
font-weight: bold;
border-radius: 1px;
margin-right: 1px;
padding: 0 6px;
font-family: 'Barlow-Regular';
}
.hfoot .btn {
display: inline-block;
width: 130px;
height: 55px;
line-height: 55px;
background: #111111;
border-radius: 4px;
margin-top: 24px;
font-size: 16px;
color: #fff;
/*transition: 0.4s;*/
}
.hfoot .btn:hover {
background: #369FFF;
}
.hfoot .copyright {
color: #9C9C9C;
position: absolute;
left: 0;
right: 0;
text-align: center;
bottom: 35px;
}
/*价格*/
.mprice-main {
background: #111111 url(../imgs/bg1.png) no-repeat center top;
padding-top: 200px;
padding-bottom: 210px;
text-align: center;
}
.mprice-main .wrapper {
overflow: hidden;
/*padding-left: 140px;*/
padding-top: 80px;
}
.mprice-main .item {
width: 218px;
/*float: left;*/
display: inline-block;
vertical-align: top;
text-align: center;
margin-right: 24px;
cursor: pointer;
transition: 0.4s;
-webkit-transition: 0.4s;
}
.mprice-main .item:hover {
transform: translateY(-20px);
-webkit-transform: translateY(-20px);
}
.mprice-main .itemtit:hover {
transform: translateY(0);
-webkit-transform: translateY(0);
}
.mprice-main .item .title {
font-style: normal;
font-weight: 600;
font-size: 22px;
height: 60px;
}
.mprice-main .itembox {
background: #202020;
border-radius: 4px;
height: 902px;
padding-top: 46px;
position: relative;
padding-bottom: 130px;
}
.mprice-main .itembox-bgnone {
background: none;
}
.mprice-main .itembox-border {
background: #111111;
border: 1px solid #202020;
}
.mprice-main .itembox-border li {
border-bottom: #202020 solid 1px;
}
.mprice-main .itembox-highlight {
background: #369FFF;
}
.mprice-main .item ul {
padding: 0 25px;
}
.mprice-main .item ul.tit {
color: #989898;
text-align: left;
padding-left: 50px;
}
.mprice-main .item li {
padding: 20px 0;
}
.mprice-main .item li.num {
height: 90px;
padding: 0;
border: none;
font-family: "Barlow-Regular";
}
.mprice-main .item li.num big {
font-size: 40px;
font-weight: bold;
}
.mprice-main .item .btn {
position: absolute;
left: 0;
right: 0;
bottom: 35px;
}
.mprice-main .item .btn a {
width: 130px;
height: 55px;
line-height: 55px;
text-align: center;
border: 1px solid #FFFFFF;
box-sizing: border-box;
border-radius: 4px;
display: inline-block;
}
.mprice-main .item .btn a:hover {
background: #369FFF;
border-color: #369FFF;
}
.mprice-main .itembox-highlight .btn a {
color: #369FFF;
background: #fff;
}
.mprice-main .itembox-highlight .btn a:hover {
border-color: #fff;
color: #fff;
}
.mprice-explain {
background: #202020;
padding: 60px 0 150px;
}
.mprice-explain .wrapper {
padding: 0 155px;
}
.mprice-explain h3 {
font-style: normal;
font-weight: 600;
font-size: 22px;
margin-bottom: 60px;
}
.mprice-explain p {
margin-bottom: 24px;
font-size: 14px;
}
/*下载*/
.downpage {
width: 736px;
/*height: 821px;*/
background: #202020;
border-radius: 4px;
margin: 0 auto;
margin-top: 210px;
margin-bottom: 270px;
padding: 24px;
}
.downlist {
border-bottom: #333333 solid 1px;
padding: 60px 0;
}
.downlist .head {
font-style: normal;
font-weight: 600;
font-size: 22px;
text-align: center;
}
.downlist .dbody {
margin-top: 60px;
text-align: center;
}
.downlist .dbody li {
display: inline-block;
margin: 0 30px;
}
.downlist .dbody .txt {
font-style: normal;
font-weight: normal;
font-size: 14px;
color: #989898;
margin-top: 15px;
}
.downlist .dbody .btn {
margin-top: 20px;
}
.downlist .dbody .btn a {
width: 130px;
height: 55px;
line-height: 55px;
text-align: center;
border: 1px solid #FFFFFF;
box-sizing: border-box;
border-radius: 4px;
display: inline-block;
font-style: normal;
font-weight: 500;
font-size: 16px;
}
.downlist .dbody .btn a.on {
background: #fff;
color: #111111;
}
.downlist .dbody .btn a:hover {
background: #369FFF;
border-color: #369FFF;
color: #fff;
}
.downlist .dbody .link {
margin-top: 20px;
}
.downlist .dbody .link a {
text-decoration: underline;
font-style: normal;
font-weight: 500;
font-size: 16px;
}
.downlist+.downlist {
border: none;
}
.downtip {
font-style: normal;
font-weight: normal;
font-size: 12px;
line-height: 17px;
color: #666666;
padding-top: 24px;
}
.regbg {
background: #111111 url(../imgs/regbg.jpg) no-repeat center top;
}

BIN
web/static/css/unisans.otf

7
web/static/editor.md/editormd.js

@ -3602,7 +3602,7 @@
})
} else if (attrs === 'filterXSS') {
var tags = ['a', 'abbr', 'address',
'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blockquote', 'br', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'dd', 'del', 'details', 'div', 'dl', 'dt', 'em', 'font', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'i', 'img', 'ins', 'li', 'mark', 'nav', 'ol', 'p', 'pre', 's', 'section', 'small', 'span', 'sub', 'sup', 'strong', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'tt', 'u', 'ul', 'video', 'input'],
'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blockquote', 'br', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'dd', 'del', 'details', 'div', 'dl', 'dt', 'em', 'font', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'i', 'img', 'ins', 'li', 'mark', 'nav', 'ol', 'p', 'pre', 's', 'section', 'small', 'span', 'sub', 'sup', 'strong', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'tt', 'u', 'ul', 'video', 'input'],
tagAttrs = ['target', 'title', 'shape', 'coords', 'href', 'alt', 'autoplay', 'controls', 'loop', 'preload', 'src', 'dir', 'cite', 'align', 'valign', 'span', 'width', 'height', 'datetime', 'open', 'color', 'size', 'face', 'border', 'rowspan', 'colspan', 'style', 'class', 'id', 'name', 'type', 'checked', 'disabled'],
whiteList = (function () {
var result = {}
@ -3706,8 +3706,9 @@
smartypants: true
}
markdownDoc = new String(markdownDoc)
// markdownDoc = new String(markdownDoc)
// console.log(saveTo.val())
// console.log(markdownDoc)
var markdownParsed = marked(markdownDoc, markedOptions)
markdownParsed = editormd.filterHTMLTags(markdownParsed, settings.htmlDecode)

2708
web/static/editor.md/lib/marked.min.js
File diff suppressed because it is too large
View File

29
web/static/editor.md/lib/marked.old.js

@ -0,0 +1,29 @@
/**
* marked v0.3.3 - a markdown parser
* Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed)
* https://github.com/chjj/marked
*/
(function() {
var block = {newline: /^\n+/, code: /^( {4}[^\n]+\n*)+/, fences: noop, hr: /^( *[-*_]){3,} *(?:\n+|$)/, heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/, nptable: noop, lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, blockquote: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/, list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, html: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/, def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/, table: noop, paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/, text: /^[^\n]+/}; block.bullet = /(?:[*+-]|\d+\.)/; block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; block.item = replace(block.item, 'gm')(/bull/g, block.bullet)(); block.list = replace(block.list)(/bull/g, block.bullet)('hr', '\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))')('def', '\\n+(?=' + block.def.source + ')')(); block.blockquote = replace(block.blockquote)('def', block.def)(); block._tag = '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b'; block.html = replace(block.html)('comment', /<!--[\s\S]*?-->/)('closed', /<(tag)[\s\S]+?<\/\1>/)('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g, block._tag)(); block.paragraph = replace(block.paragraph)('hr', block.hr)('heading', block.heading)('lheading', block.lheading)('blockquote', block.blockquote)('tag', '<' + block._tag)('def', block.def)(); block.normal = merge({}, block); block.gfm = merge({}, block.normal, {fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/, paragraph: /^/}); block.gfm.paragraph = replace(block.paragraph)('(?!', '(?!' + block.gfm.fences.source.replace('\\1', '\\2') + '|' + block.list.source.replace('\\1', '\\3') + '|')(); block.tables = merge({}, block.gfm, {nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/, table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}); function Lexer(options) { this.tokens = []; this.tokens.links = {}; this.options = options || marked.defaults; this.rules = block.normal; if (this.options.gfm) { if (this.options.tables) { this.rules = block.tables } else { this.rules = block.gfm } } }Lexer.rules = block; Lexer.lex = function(src, options) { var lexer = new Lexer(options); return lexer.lex(src) }; Lexer.prototype.lex = function(src) { src = src.replace(/\r\n|\r/g, '\n').replace(/\t/g, ' ').replace(/\u00a0/g, ' ').replace(/\u2424/g, '\n'); return this.token(src, true) }; Lexer.prototype.token = function(src, top, bq) {
var src = src.replace(/^ +$/gm, ''), next, loose, cap, bull, b, item, space, i, l; while (src) {
if (cap = this.rules.newline.exec(src)) { src = src.substring(cap[0].length); if (cap[0].length > 1) { this.tokens.push({type: 'space'}) } } if (cap = this.rules.code.exec(src)) { src = src.substring(cap[0].length); cap = cap[0].replace(/^ {4}/gm, ''); this.tokens.push({type: 'code', text: !this.options.pedantic ? cap.replace(/\n+$/, '') : cap}); continue } if (cap = this.rules.fences.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'code', lang: cap[2], text: cap[3]}); continue } if (cap = this.rules.heading.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'heading', depth: cap[1].length, text: cap[2]}); continue } if (top && (cap = this.rules.nptable.exec(src))) { src = src.substring(cap[0].length); item = {type: 'table', header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), cells: cap[3].replace(/\n$/, '').split('\n')}; for (i = 0; i < item.align.length; i++) { if (/^ *-+: *$/.test(item.align[i])) { item.align[i] = 'right' } else { if (/^ *:-+: *$/.test(item.align[i])) { item.align[i] = 'center' } else { if (/^ *:-+ *$/.test(item.align[i])) { item.align[i] = 'left' } else { item.align[i] = null } } } } for (i = 0; i < item.cells.length; i++) { item.cells[i] = item.cells[i].split(/ *\| */) } this.tokens.push(item); continue } if (cap = this.rules.lheading.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'heading', depth: cap[2] === '=' ? 1 : 2, text: cap[1]}); continue } if (cap = this.rules.hr.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'hr'}); continue } if (cap = this.rules.blockquote.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'blockquote_start'}); cap = cap[0].replace(/^ *> ?/gm, ''); this.token(cap, top, true); this.tokens.push({type: 'blockquote_end'}); continue } if (cap = this.rules.list.exec(src)) {
src = src.substring(cap[0].length); bull = cap[2]; this.tokens.push({type: 'list_start', ordered: bull.length > 1}); cap = cap[0].match(this.rules.item); next = false; l = cap.length; i = 0; for (;i < l; i++) {
item = cap[i]; space = item.length; item = item.replace(/^ *([*+-]|\d+\.) +/, ''); if (~item.indexOf('\n ')) { space -= item.length; item = !this.options.pedantic ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') : item.replace(/^ {1,4}/gm, '') } if (this.options.smartLists && i !== l - 1) { b = block.bullet.exec(cap[i + 1])[0]; if (bull !== b && !(bull.length > 1 && b.length > 1)) { src = cap.slice(i + 1).join('\n') + src; i = l - 1 } }loose = next || /\n\n(?!\s*$)/.test(item); if (i !== l - 1) { next = item.charAt(item.length - 1) === '\n'; if (!loose) { loose = next } } this.tokens.push({type: loose ? 'loose_item_start' : 'list_item_start'}); this.token(item, false, bq)
this.tokens.push({type: 'list_item_end'})
} this.tokens.push({type: 'list_end'}); continue
} if (cap = this.rules.html.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: this.options.sanitize ? 'paragraph' : 'html', pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style', text: cap[0]}); continue } if ((!bq && top) && (cap = this.rules.def.exec(src))) { src = src.substring(cap[0].length); this.tokens.links[cap[1].toLowerCase()] = {href: cap[2], title: cap[3]}; continue } if (top && (cap = this.rules.table.exec(src))) { src = src.substring(cap[0].length); item = {type: 'table', header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')}; for (i = 0; i < item.align.length; i++) { if (/^ *-+: *$/.test(item.align[i])) { item.align[i] = 'right' } else { if (/^ *:-+: *$/.test(item.align[i])) { item.align[i] = 'center' } else { if (/^ *:-+ *$/.test(item.align[i])) { item.align[i] = 'left' } else { item.align[i] = null } } } } for (i = 0; i < item.cells.length; i++) { item.cells[i] = item.cells[i].replace(/^ *\| *| *\| *$/g, '').split(/ *\| */) } this.tokens.push(item); continue } if (top && (cap = this.rules.paragraph.exec(src))) { src = src.substring(cap[0].length); this.tokens.push({type: 'paragraph', text: cap[1].charAt(cap[1].length - 1) === '\n' ? cap[1].slice(0, -1) : cap[1]}); continue } if (cap = this.rules.text.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({type: 'text', text: cap[0]}); continue } if (src) { throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)) }
} return this.tokens
}; var inline = {escape: /^\\([\\`*{}\[\]()#+\-.!_>])/, autolink: /^<([^ >]+(@|:\/)[^ >]+)>/, url: noop, tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/, link: /^!?\[(inside)\]\(href\)/, reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/, nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/, em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/, br: /^ {2,}\n(?!\s*$)/, del: noop, text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/}; inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/; inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/; inline.link = replace(inline.link)('inside', inline._inside)('href', inline._href)(); inline.reflink = replace(inline.reflink)('inside', inline._inside)(); inline.normal = merge({}, inline); inline.pedantic = merge({}, inline.normal, {strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}); inline.gfm = merge({}, inline.normal, {escape: replace(inline.escape)('])', '~|])')(), url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/, del: /^~~(?=\S)([\s\S]*?\S)~~/, text: replace(inline.text)(']|', '~]|')('|', '|https?://|')()}); inline.breaks = merge({}, inline.gfm, {br: replace(inline.br)('{2,}', '*')(), text: replace(inline.gfm.text)('{2,}', '*')()}); function InlineLexer(links, options) { this.options = options || marked.defaults; this.links = links; this.rules = inline.normal; this.renderer = this.options.renderer || new Renderer(); this.renderer.options = this.options; if (!this.links) { throw new Error('Tokens array requires a `links` property.') } if (this.options.gfm) { if (this.options.breaks) { this.rules = inline.breaks } else { this.rules = inline.gfm } } else { if (this.options.pedantic) { this.rules = inline.pedantic } } }InlineLexer.rules = inline; InlineLexer.output = function(src, links, options) { var inline = new InlineLexer(links, options); return inline.output(src) }; InlineLexer.prototype.output = function(src) {
var out = '', link, text, href, cap; while (src) {
if (cap = this.rules.escape.exec(src)) { src = src.substring(cap[0].length); out += cap[1]; continue } if (cap = this.rules.autolink.exec(src)) { src = src.substring(cap[0].length); if (cap[2] === '@') { text = cap[1].charAt(6) === ':' ? this.mangle(cap[1].substring(7)) : this.mangle(cap[1]); href = this.mangle('mailto:') + text } else { text = escape(cap[1]); href = text }out += this.renderer.link(href, null, text); continue } if (!this.inLink && (cap = this.rules.url.exec(src))) { src = src.substring(cap[0].length); text = escape(cap[1]); href = text; out += this.renderer.link(href, null, text); continue } if (cap = this.rules.tag.exec(src)) { if (!this.inLink && /^<a /i.test(cap[0])) { this.inLink = true } else { if (this.inLink && /^<\/a>/i.test(cap[0])) { this.inLink = false } }src = src.substring(cap[0].length); out += this.options.sanitize ? escape(cap[0]) : cap[0]; continue } if (cap = this.rules.link.exec(src)) { src = src.substring(cap[0].length); this.inLink = true; out += this.outputLink(cap, {href: cap[2], title: cap[3]}); this.inLink = false; continue } if ((cap = this.rules.reflink.exec(src)) || (cap = this.rules.nolink.exec(src))) { src = src.substring(cap[0].length); link = (cap[2] || cap[1]).replace(/\s+/g, ' '); link = this.links[link.toLowerCase()]; if (!link || !link.href) { out += cap[0].charAt(0); src = cap[0].substring(1) + src; continue } this.inLink = true; out += this.outputLink(cap, link); this.inLink = false; continue } if (cap = this.rules.strong.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.strong(this.output(cap[2] || cap[1])); continue } if (cap = this.rules.em.exec(src)) {
src = src.substring(cap[0].length); out += this.renderer.em(this.output(cap[2] || cap[1])); continue
} if (cap = this.rules.code.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.codespan(escape(cap[2], true)); continue } if (cap = this.rules.br.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.br(); continue } if (cap = this.rules.del.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.del(this.output(cap[1])); continue } if (cap = this.rules.text.exec(src)) { src = src.substring(cap[0].length); out += escape(this.smartypants(cap[0])); continue } if (src) { throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)) }
} return out
}; InlineLexer.prototype.outputLink = function(cap, link) { var href = escape(link.href), title = link.title ? escape(link.title) : null; return cap[0].charAt(0) !== '!' ? this.renderer.link(href, title, this.output(cap[1])) : this.renderer.image(href, title, escape(cap[1])) }; InlineLexer.prototype.smartypants = function(text) { if (!this.options.smartypants) { return text } return text.replace(/--/g, '\u2014').replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018').replace(/'/g, '\u2019').replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c').replace(/"/g, '\u201d').replace(/\.{3}/g, '\u2026') }; InlineLexer.prototype.mangle = function(text) { var out = '', l = text.length, i = 0, ch; for (;i < l; i++) { ch = text.charCodeAt(i); if (Math.random() > 0.5) { ch = 'x' + ch.toString(16) }out += '&#' + ch + ';' } return out }; function Renderer(options) { this.options = options || {} }Renderer.prototype.code = function(code, lang, escaped) { if (this.options.highlight) { var out = this.options.highlight(code, lang); if (out != null && out !== code) { escaped = true; code = out } } if (!lang) { return '<pre><code>' + (escaped ? code : escape(code, true)) + '\n</code></pre>' } return '<pre><code class="' + this.options.langPrefix + escape(lang, true) + '">' + (escaped ? code : escape(code, true)) + '\n</code></pre>\n' }; Renderer.prototype.blockquote = function(quote) { return '<blockquote>\n' + quote + '</blockquote>\n' }; Renderer.prototype.html = function(html) { return html }; Renderer.prototype.heading = function(text, level, raw) { return '<h' + level + ' id="' + this.options.headerPrefix + raw.toLowerCase().replace(/[^\w]+/g, '-') + '">' + text + '</h' + level + '>\n' }; Renderer.prototype.hr = function() { return this.options.xhtml ? '<hr/>\n' : '<hr>\n' }; Renderer.prototype.list = function(body, ordered) { var type = ordered ? 'ol' : 'ul'; return '<' + type + '>\n' + body + '</' + type + '>\n' }; Renderer.prototype.listitem = function(text) { return '<li>' + text + '</li>\n' }; Renderer.prototype.paragraph = function(text) { return '<p>' + text + '</p>\n' }; Renderer.prototype.table = function(header, body) { return '<table>\n' + '<thead>\n' + header + '</thead>\n' + '<tbody>\n' + body + '</tbody>\n' + '</table>\n' }; Renderer.prototype.tablerow = function(content) { return '<tr>\n' + content + '</tr>\n' }; Renderer.prototype.tablecell = function(content, flags) { var type = flags.header ? 'th' : 'td'; var tag = flags.align ? '<' + type + ' style="text-align:' + flags.align + '">' : '<' + type + '>'; return tag + content + '</' + type + '>\n' }; Renderer.prototype.strong = function(text) { return '<strong>' + text + '</strong>' }; Renderer.prototype.em = function(text) { return '<em>' + text + '</em>' }; Renderer.prototype.codespan = function(text) { return '<code>' + text + '</code>' }; Renderer.prototype.br = function() { return this.options.xhtml ? '<br/>' : '<br>' }; Renderer.prototype.del = function(text) { return '<del>' + text + '</del>' }; Renderer.prototype.link = function(href, title, text) { if (this.options.sanitize) { try { var prot = decodeURIComponent(unescape(href)).replace(/[^\w:]/g, '').toLowerCase() } catch (e) { return '' } if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0) { return '' } } var out = '<a href="' + href + '"'; if (title) { out += ' title="' + title + '"' }out += '>' + text + '</a>'; return out }; Renderer.prototype.image = function(href, title, text) { var out = '<img src="' + href + '" alt="' + text + '"'; if (title) { out += ' title="' + title + '"' }out += this.options.xhtml ? '/>' : '>'; return out }; function Parser(options) { this.tokens = []; this.token = null; this.options = options || marked.defaults; this.options.renderer = this.options.renderer || new Renderer(); this.renderer = this.options.renderer; this.renderer.options = this.options }Parser.parse = function(src, options, renderer) { var parser = new Parser(options, renderer); return parser.parse(src) }; Parser.prototype.parse = function(src) { this.inline = new InlineLexer(src.links, this.options, this.renderer); this.tokens = src.reverse(); var out = ''; while (this.next()) { out += this.tok() } return out }; Parser.prototype.next = function() { return this.token = this.tokens.pop() }; Parser.prototype.peek = function() { return this.tokens[this.tokens.length - 1] || 0 }; Parser.prototype.parseText = function() { var body = this.token.text; while (this.peek().type === 'text') { body += '\n' + this.next().text } return this.inline.output(body) }; Parser.prototype.tok = function() {
switch (this.token.type) {
case 'space':return ''; case 'hr':return this.renderer.hr(); case 'heading':return this.renderer.heading(this.inline.output(this.token.text), this.token.depth, this.token.text); case 'code':return this.renderer.code(this.token.text, this.token.lang, this.token.escaped); case 'table':var header = '', body = '', i, row, cell, flags, j; cell = ''; for (i = 0; i < this.token.header.length; i++) {
flags = {header: true, align: this.token.align[i]}; cell += this.renderer.tablecell(this.inline.output(this.token.header[i]), {header: true, align: this.token.align[i]})
}header += this.renderer.tablerow(cell); for (i = 0; i < this.token.cells.length; i++) { row = this.token.cells[i]; cell = ''; for (j = 0; j < row.length; j++) { cell += this.renderer.tablecell(this.inline.output(row[j]), {header: false, align: this.token.align[j]}) }body += this.renderer.tablerow(cell) } return this.renderer.table(header, body); case 'blockquote_start':var body = ''; while (this.next().type !== 'blockquote_end') { body += this.tok() } return this.renderer.blockquote(body); case 'list_start':var body = '', ordered = this.token.ordered; while (this.next().type !== 'list_end') { body += this.tok() } return this.renderer.list(body, ordered); case 'list_item_start':var body = ''; while (this.next().type !== 'list_item_end') { body += this.token.type === 'text' ? this.parseText() : this.tok() } return this.renderer.listitem(body); case 'loose_item_start':var body = ''; while (this.next().type !== 'list_item_end') { body += this.tok() } return this.renderer.listitem(body); case 'html':var html = !this.token.pre && !this.options.pedantic ? this.inline.output(this.token.text) : this.token.text; return this.renderer.html(html); case 'paragraph':return this.renderer.paragraph(this.inline.output(this.token.text)); case 'text':return this.renderer.paragraph(this.parseText())
}
}; function escape(html, encode) { return html.replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#39;') } function unescape(html) { return html.replace(/&([#\w]+);/g, function(_, n) { n = n.toLowerCase(); if (n === 'colon') { return ':' } if (n.charAt(0) === '#') { return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1)) } return '' }) } function replace(regex, opt) { regex = regex.source; opt = opt || ''; return function self(name, val) { if (!name) { return new RegExp(regex, opt) }val = val.source || val; val = val.replace(/(^|[^\[])\^/g, '$1'); regex = regex.replace(name, val); return self } } function noop() {}noop.exec = noop; function merge(obj) { var i = 1, target, key; for (;i < arguments.length; i++) { target = arguments[i]; for (key in target) { if (Object.prototype.hasOwnProperty.call(target, key)) { obj[key] = target[key] } } } return obj } function marked(src, opt, callback) { if (callback || typeof opt === 'function') { if (!callback) { callback = opt; opt = null }opt = merge({}, marked.defaults, opt || {}); var highlight = opt.highlight, tokens, pending, i = 0; try { tokens = Lexer.lex(src, opt) } catch (e) { return callback(e) }pending = tokens.length; var done = function(err) { if (err) { opt.highlight = highlight; return callback(err) } var out; try { out = Parser.parse(tokens, opt) } catch (e) { err = e }opt.highlight = highlight; return err ? callback(err) : callback(null, out) }; if (!highlight || highlight.length < 3) { return done() } delete opt.highlight; if (!pending) { return done() } for (;i < tokens.length; i++) { (function(token) { if (token.type !== 'code') { return --pending || done() } return highlight(token.text, token.lang, function(err, code) { if (err) { return done(err) } if (code == null || code === token.text) { return --pending || done() }token.text = code; token.escaped = true; --pending || done() }) })(tokens[i]) } return } try { if (opt) { opt = merge({}, marked.defaults, opt) } return Parser.parse(Lexer.lex(src, opt), opt) } catch (e) { e.message += '\nPlease report this to https://github.com/chjj/marked.'; if ((opt || marked.defaults).silent) { return '<p>An error occured:</p><pre>' + escape(e.message + '', true) + '</pre>' } throw e } }marked.options = marked.setOptions = function(opt) { merge(marked.defaults, opt); return marked }; marked.defaults = {gfm: true, tables: true, breaks: false, pedantic: false, sanitize: false, smartLists: false, silent: false, highlight: null, langPrefix: 'lang-', smartypants: false, headerPrefix: '', renderer: new Renderer(), xhtml: false}; marked.Parser = Parser; marked.parser = Parser.parse; marked.Renderer = Renderer; marked.Lexer = Lexer; marked.lexer = Lexer.lex; marked.InlineLexer = InlineLexer; marked.inlineLexer = InlineLexer.output; marked.parse = marked; if (typeof module !== 'undefined' && typeof exports === 'object') { module.exports = marked } else { if (typeof define === 'function' && define.amd) { define(function() { return marked }) } else { this.marked = marked } }
}).call(function() { return this || (typeof window !== 'undefined' ? window : global) }())

BIN
web/static/fonts/unisans.4e8910a.otf

BIN
web/static/images/bg.jpg

After

Width: 3840  |  Height: 804  |  Size: 23 KiB

BIN
web/static/images/code.png

After

Width: 200  |  Height: 200  |  Size: 16 KiB

BIN
web/static/images/icon_right.png

After

Width: 80  |  Height: 80  |  Size: 287 B

BIN
web/static/images/logo.png

After

Width: 378  |  Height: 82  |  Size: 4.8 KiB

BIN
web/static/images/logo_b.png

After

Width: 400  |  Height: 290  |  Size: 12 KiB

BIN
web/static/images/mini.png

After

Width: 200  |  Height: 200  |  Size: 22 KiB

BIN
web/static/images/search.png

After

Width: 60  |  Height: 60  |  Size: 1.2 KiB

BIN
web/static/img/bg.644f5c4.jpg

After

Width: 3840  |  Height: 804  |  Size: 23 KiB

BIN
web/static/img/bg1.97db6cb.png

After

Width: 1440  |  Height: 805  |  Size: 60 KiB

BIN
web/static/img/home1.cf81ad2.png

After

Width: 799  |  Height: 652  |  Size: 80 KiB

BIN
web/static/img/home9.7fab5f7.png

After

Width: 1337  |  Height: 594  |  Size: 75 KiB

BIN
web/static/img/regbg.5030481.jpg

After

Width: 1439  |  Height: 1029  |  Size: 49 KiB

BIN
web/static/imgs/Android.png

After

Width: 34  |  Height: 34  |  Size: 649 B

BIN
web/static/imgs/Auto.png

After

Width: 155  |  Height: 55  |  Size: 7.2 KiB

BIN
web/static/imgs/Logo.png

After

Width: 162  |  Height: 38  |  Size: 1.8 KiB

BIN
web/static/imgs/Mac.png

After

Width: 34  |  Height: 34  |  Size: 204 B

BIN
web/static/imgs/Server.png

After

Width: 34  |  Height: 34  |  Size: 419 B

BIN
web/static/imgs/Vector 9.png

After

Width: 204  |  Height: 146  |  Size: 1.6 KiB

BIN
web/static/imgs/Vector.png

After

Width: 19  |  Height: 15  |  Size: 342 B

BIN
web/static/imgs/Vector1.png

After

Width: 19  |  Height: 15  |  Size: 241 B

BIN
web/static/imgs/Wechat.png

After

Width: 38  |  Height: 38  |  Size: 1.2 KiB

BIN
web/static/imgs/Windows.png

After

Width: 34  |  Height: 34  |  Size: 439 B

BIN
web/static/imgs/bg1.png

After

Width: 1440  |  Height: 805  |  Size: 60 KiB

BIN
web/static/imgs/bg2-1.png

After

Width: 922  |  Height: 586  |  Size: 15 KiB

BIN
web/static/imgs/bg2-2.png

After

Width: 462  |  Height: 263  |  Size: 9.4 KiB

BIN
web/static/imgs/bg2-3.png

After

Width: 364  |  Height: 208  |  Size: 9.2 KiB

BIN
web/static/imgs/bg2-4.png

After

Width: 384  |  Height: 220  |  Size: 7.5 KiB

BIN
web/static/imgs/bg2-5.png

After

Width: 929  |  Height: 530  |  Size: 25 KiB

BIN
web/static/imgs/code.png

After

Width: 116  |  Height: 52  |  Size: 12 KiB

BIN
web/static/imgs/home1.png

After

Width: 799  |  Height: 652  |  Size: 80 KiB

BIN
web/static/imgs/home2-1111111.png

After

Width: 740  |  Height: 513  |  Size: 12 KiB

BIN
web/static/imgs/home2-img.png

After

Width: 531  |  Height: 197  |  Size: 15 KiB

BIN
web/static/imgs/home2.png

After

Width: 500  |  Height: 362  |  Size: 34 KiB

BIN
web/static/imgs/home3.png

After

Width: 500  |  Height: 402  |  Size: 38 KiB

BIN
web/static/imgs/home4.png

After

Width: 500  |  Height: 326  |  Size: 17 KiB

BIN
web/static/imgs/home5.png

After

Width: 500  |  Height: 382  |  Size: 68 KiB

BIN
web/static/imgs/home6.png

After

Width: 500  |  Height: 326  |  Size: 20 KiB

BIN
web/static/imgs/home7.png

After

Width: 500  |  Height: 356  |  Size: 26 KiB

BIN
web/static/imgs/home8.png

After

Width: 500  |  Height: 287  |  Size: 46 KiB

BIN
web/static/imgs/home9.png

After

Width: 1337  |  Height: 594  |  Size: 75 KiB

BIN
web/static/imgs/iOS.png

After

Width: 34  |  Height: 34  |  Size: 601 B

BIN
web/static/imgs/regbg.jpg

After

Width: 1439  |  Height: 1029  |  Size: 49 KiB

1
web/static/js/app.2d331ccfa7a38331f49e.js
File diff suppressed because it is too large
View File

1
web/static/js/app.f469a9d7b4f8ba5c97c2.js
File diff suppressed because it is too large
View File

59
web/static/lang/en.js

@ -7,25 +7,42 @@ exports.default = {
my_item: 'My items',
section_title1: 'ShowDoc',
section_description1: ' A tool greatly applicable for an IT team',
section_description1_1: 'A tool greatly applicable',
section_description1_2: 'for an IT team',
section_title2: 'API Document',
section_description2:
'ShowDoc can compile exquisite API documents <br>in a very fast and convenient way',
section_description2_1:
'ShowDoc can compile exquisite API documents',
section_description2_2:
'in a very fast and convenient way',
section_title3: 'Data Dictionary',
section_description3:
'A good Data Dictionary can easily exhibit database structure to other people<br>ShowDoc can compile exquisite Data Dictionary',
section_description3_1:
'A good Data Dictionary can easily exhibit database structure to other people',
section_description3_2:
'ShowDoc can compile exquisite Data Dictionary',
section_title4: 'Explanation Document',
section_description4:
section_description4_1:
'You can absolutely use ShowDoc to compile the explanation documents for some tools',
section_description4_2:
'You can absolutely use ShowDoc to compile the explanation documents for some tools',
section_title5: 'Team Work',
section_description5: 'Your team will work with ShowDoc together very well ',
section_title6: 'Open Source',
section_description6:
'ShowDoc is a free, open source tool that <br>you can deploy it to your own server',
section_title7: 'Hosted online',
section_description7:
'Www.showdoc.cc provide security and stability of the document hosting service',
section_title8: 'Try it now',
section_description8: 'Over 10000+ IT team is using ShowDoc',
section_title6: 'Document Automation',
section_description6_1:
'Documents can be generated automatically from code comments',
section_description6_2:
'With the runapi client, you can debug the interface and automatically generate documents',
section_title7: 'Open Source',
section_description7_1:
'ShowDoc is a free, open source tool',
section_description7_2:
'You can deploy it to your own server',
section_title8: 'Hosted online',
section_description8_1:
'www.showdoc.com.cn provide security and stability of the document hosting service',
section_description8_2:
'You can safely choose to host your document data in the cloud',
section_title9: 'Try it now',
section_description9: 'Over 100000+ IT team is using ShowDoc',
// user
login: 'Login',
@ -88,7 +105,7 @@ exports.default = {
// item/export
export_all: 'Export all',
export_cat: 'export catalog',
export_cat: 'export catalog/page',
select_cat_2: 'Select catalog level2',
select_cat_3: 'Select catalog level3',
begin_export: 'Begin to export',
@ -349,6 +366,7 @@ exports.default = {
oss_open: 'Image/attachment saved to cloud',
oss_server: 'cloud server',
tencent: 'tencent',
aliyun: 'aliyun',
qiniu: 'qiniu',
oss_domain: 'domain(optional)',
@ -389,5 +407,16 @@ exports.default = {
visit_times: 'visit times',
my_attachment: 'My attachment',
accumulated_used_sapce: 'Accumulated used space',
month_flow: 'Traffic has been used this month'
month_flow: 'Traffic has been used this month',
all_pages: 'All pages',
cancelSingle: 'Are you sure you want to cancel the single page link? After cancellation, the original link will be invalid immediately',
cancelSingleYes: 'Unlink single page',
cancelSingleNo: 'Keep single page',
from_file_gub: 'From FileHub',
file_gub: 'FileHub',
select: 'select'
}

67
web/static/lang/zh-CN.js

@ -6,26 +6,42 @@ exports.default = {
index_login_or_register: '登录 / 注册',
my_item: '我的项目',
section_title1: 'ShowDoc',
section_description1: '一个非常适合IT团队的在线API文档、技术文档工具',
section_description1_1: '一个非常适合IT团队的',
section_description1_2: '在线API文档、技术文档工具',
section_title2: 'API文档',
section_description2:
' APP、web前端与服务器常用API来进行交互<br>用ShowDoc可以非常方便快速地编写出美观的API文档',
section_description2_1:
'APP、web前端与服务器常用API来进行交互',
section_description2_2:
'ShowDoc可以非常方便快速地编写出美观的API文档',
section_title3: '数据字典',
section_description3:
'好的数据字典可以很方便地向别人描述你的数据库结构<br>用ShowDoc可以编辑出美观的数据字典',
section_description3_1:
'好的数据字典可以方便地向别人描述你的数据库结构',
section_description3_2:
'用ShowDoc可以编辑出美观的数据字典',
section_title4: '说明文档',
section_description4:
'你完全可以使用 ShowDoc来编写一些工具的说明书<br>也可以编写一些技术规范说明文档以供团队查阅',
section_description4_1:
'你完全可以使用 ShowDoc来编写一些工具的说明书',
section_description4_2:
'也可以编写一些技术规范说明文档以供团队查阅',
section_title5: '团队协作',
section_description5: '团队权限管理机制让团队良好地协同编写文档',
section_title6: '免费开源',
section_description6:
'ShowDoc提供免费开源的版本<br>你可以选择将ShowDoc部署到你的服务器',
section_title7: '在线托管',
section_description7:
'www.showdoc.cc 提供安全稳定的在线文档托管服务<br>你可以放心地选择托管你的文档数据在云端',
section_title8: '立即体验',
section_description8: '超过10000+互联网团队正在使用ShowDoc',
section_title6: '文档自动化',
section_description6_1:
'可从代码注释中自动生成文档',
section_description6_2:
'搭配的RunApi客户端,可调试接口和自动生成文档',
section_title7: '免费开源',
section_description7_1:
'ShowDoc提供免费开源的版本',
section_description7_2:
'你可以选择将ShowDoc部署到你的服务器',
section_title8: '在线托管',
section_description8_1:
'www.showdoc.com.cn 安全稳定的在线文档托管服务',
section_description8_2:
'你可以放心地选择托管你的文档数据在云端',
section_title9: '立即体验',
section_description9: '超过100000+互联网团队正在使用ShowDoc',
// user
login: '登录',
@ -86,7 +102,7 @@ exports.default = {
// item/export
export_all: '导出全部',
export_cat: '按目录导出',
export_cat: '按目录/页面',
select_cat_2: '选择二级目录:',
select_cat_3: '选择三级目录:',
begin_export: '开始导出',
@ -342,6 +358,7 @@ exports.default = {
oss_open: '图片附件储存到云',
oss_server: '云服务商',
tencent: '腾讯云',
aliyun: '阿里云',
qiniu: '七牛云',
oss_domain: 'oss绑定域名(选填)',
@ -369,16 +386,26 @@ exports.default = {
attachment_manage: '附件管理',
op_success: '操作成功',
display_name: '展示名字',
all_attachment_type: '全部件类型',
all_attachment_type: '全部件类型',
image: '图片',
general_attachment: '普通附件',
general_attachment: '其它文件',
uploader: '上传者',
file_id: '文件id',
file_type: '文件类型',
file_size_m: '文件大小/mb',
visit: '查看',
visit_times: '访问次数',
my_attachment: '我的附件',
my_attachment: '文件库',
accumulated_used_sapce: '累计已使用空间',
month_flow: '本月已使用流量'
month_flow: '本月已使用流量',
all_pages: '全部页面',
cancelSingle: '是否确定取消单页链接?取消后,原链接会立马失效',
cancelSingleYes: '取消单页链接',
cancelSingleNo: '保留单页链接',
from_file_gub: '从文件库选择',
file_gub: '文件库',
select: '选择'
}
Loading…
Cancel
Save