Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
210 righe
9.2 KiB
210 righe
9.2 KiB
{{template "header" .}}
|
|
<meta name="keywords" content="{{.Blog.Title}}">
|
|
<meta name="description" content="{{.Blog.Title}}">
|
|
<title>{{.Blog.Title}} - 云悦</title>
|
|
<link type="text/css" rel="styleSheet" href="/static/css/blog.css"/>
|
|
<!--<link href="https://cdn.bootcss.com/highlight.js/9.15.6/styles/default.min.css" rel="stylesheet">-->
|
|
<link href="https://cdn.bootcss.com/highlight.js/9.15.6/styles/school-book.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.bootcss.com/highlight.js/9.15.6/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%" 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>
|