码农笔录博客源码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

209 lines
9.2 KiB

{{template "header" .}}
<meta name="keywords" content="{{.Blog.Title}}-【码农随笔】">
<meta name="description" content="{{.Blog.BlogDesc}}">
<title>{{.Blog.Title}} - 码农随笔</title>
<!--<link href="https://cdn.bootcdn.net/ajax/libs/highlight.js/11.2.0/styles/androidstudio.min.css" rel="stylesheet">-->
<link href="https://cdn.bootcdn.net/ajax/libs/highlight.js/11.2.0/styles/atom-one-dark.min.css" rel="stylesheet">
<!--<link href="https://cdn.bootcss.com/highlight.js/9.15.6/styles/atelier-dune-light.min.css" rel="stylesheet">-->
<script src="https://cdn.bootcdn.net/ajax/libs/highlight.js/11.2.0/highlight.min.js"></script>
</head>
<body>
<div class="root-container">
{{template "nav" .}}
<div class="blog-root">
<h1 class="blog-title">{{.Blog.Title}}</h1>
<div class="blog-info">
<div class="blog-author">
<div class="author-headimg">
<a href="/u/{{.Blog.User.Id}}"><img src="{{.Blog.User.Headimg}}" alt="头像" class="img-circle"></a>
</div>
<div class="author-info">
<a href="/u/{{.Blog.User.Id}}">{{.Blog.User.NickName}}</a><br>
<span>{{.Blog.Ctime.Format "2006-01-02"}}</span><span>阅读 {{.Blog.Browses}}</span>
</div>
<div class="blog-label">
{{range .Blog.Lables}}
<label>{{.Title}}</label>
{{end}}
</div>
</div>
</div>
<div style="width: 100%;height: 100%" class="blog-detaile">
{{str2html .Blog.BlogHtml}}
</div>
</div>
<div class="comms-root">
<textarea name="desc" placeholder="请输入内容" id="commval" class="layui-textarea"></textarea>
<div style="text-align: end">
<button type="button" class="btn btn-info btn-bordered" id="commBtn">发表评论</button>
</div>
<div class="comm-container">
{{range .Blog.Comms}}
<div style="font-size: 14px;margin-top: 10px" class="pcomm-{{.Id}}">
<span><a href="/u/{{.CUser.Id}}">{{.CUser.NickName}}</a>:</span>
<span>{{.ComVal}}</span>
<span onclick="recomm({{.Id}},0,this)" style="font-size: 10px"><a
href="javascript:void(0)">回复</a></span>
<hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 5px"/>
<div class="child-container">
{{range .Childs}}
<div style="margin-left: 18px" class="ccomm-{{.Id}}">
<span>
<a href="/u/{{.CUser.Id}}">{{.CUser.NickName}}</a> 回复
<a href="/u/{{.BUser.Id}}">{{.BUser.NickName}}</a>:
</span>
<span>{{.ComVal}}</span>
<span onclick="recomm({{.Id}},1)" style="font-size: 10px"><a
href="javascript:void(0)">回复</a></span>
</div>
{{end}}
</div>
</div>
{{end}}
</div>
<div class="blog-referral">
{{range .Top}}
<div>
<a href="/blog/{{.Id}}">
<p>
{{.Title}}
</p>
</a>
</div>
{{end}}
</div>
</div>
<div class="footer-container">
{{template "footer"}}
</div>
</div>
</div>
</body>
<script>
hljs.initHighlightingOnLoad();
$(function () {
$("#commBtn").click(function () {
var commval = $("#commval").val()
if (!commval || commval.trim().length < 3) {
layer.msg('评论最少三个字', function () {
});
return
}
$.post('/api/comms/save', {
blog: {{.Blog.Id}},
commval: commval
},
function (data) {
if (data.Status == 0) {
var res = ' <div style="font-size: 14px;margin-top: 10px" class="pcomm-' + data.Data.Id + '">\n' +
' <span><a href="/u/' + data.Data.CuserId + '">' + data.Data.CUser.NickName + '</a>:</span>\n' +
' <span>' + commval + '</span>\n' +
'<span onclick="recomm(' + data.Data.Id + ',0)" style="font-size: 10px"><a href="javascript:void(0)">回复</a></span>' +
' <hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 5px"/>\n' +
' <div class="child-container"></div> </div>'
$(".comm-container").append(res)
$("#commval").val("")
layer.msg("保存成功", {icon: 6});
} else if (data.Status == 401) {
window.location.href = "/login"
} else {
layer.msg("保存失败", {icon: 5});
window.location.href = "/"
}
}, 'json')
})
/*百度收录*/
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
/*360收录*/
var qihuo = document.createElement('script');
if (curProtocol === 'https') {
qihuo.src = 'https://jspassport.ssl.qhimg.com/11.0.1.js?d33b14200fa89b7ecd3780341cd234c';
}
else {
qihuo.src = 'http://js.passport.qihucdn.com/11.0.1.js?d33b14200fa89b7ecd3780341cd234c4';
}
qihuo.id = "sozz"
var s = document.getElementsByTagName("script")[1];
s.parentNode.insertBefore(qihuo, s);
})
function recomm(pid, flag) {
layer.prompt({title: '请输入评论内容', value: name, formType: 2}, function (val, index) {
if (val.trim().length < 3) {
layer.msg('评论最少三个字', function () {
});
layer.close(index);
return
}
$.post('/api/comms/save', {blog: {{.Blog.Id}},commval: val,pid: pid},
function (data) {
if (data.Status == 0) {
var res = '<div style="margin-left: 18px" class="ccomm-' + data.Data.Id + '">\n' +
' <span>\n' +
' <a href="/u/' + data.Data.CUser.Id + '">' + data.Data.CUser.NickName + '</a> 回复\n' +
' <a href="/u/' + data.Data.BUser.Id + '">' + data.Data.BUser.NickName + '</a>:\n' +
' </span>\n' +
' <span>' + val + '</span>\n' +
' <span onclick="recomm(' + data.Data.Id + ',1)" style="font-size: 10px"><a href="javascript:void(0)">回复</a></span>\n' +
' </div>'
if (flag == 0) {
$(".pcomm-" + pid + " .child-container").append(res)
} else {
$($(".ccomm-" + pid)[0]).parent().append(res)
}
$("#commval").val("")
layer.close(index);
layer.msg("保存成功", {icon: 6});
} else if (data.Status == 401) {
window.location.href = "/login"
} else {
layer.msg("保存失败", {icon: 5});
window.location.href = "/"
}
}, 'json')
});
}
function like(id) {
$.get('/api/like/' + id,
function (data) {
if (data.Status == 0) {
window.location.href = window.location.href
} else if (data.Status == 401) {
window.location.href = "/login"
} else {
layer.msg("服务器异常", {icon: 5});
}
}, 'json')
}
function unlike(id) {
$.get('/api/unlike/' + id,
function (data) {
if (data.Status == 0) {
window.location.href = window.location.href
} else if (data.Status == 401) {
window.location.href = "/login"
} else if (data.Status == 403) {
layer.msg("暂无权限", {icon: 5});
} else {
layer.msg("服务器异常", {icon: 5});
}
}, 'json')
}
</script>
</html>