{"id":6267,"date":"2022-04-06T13:51:30","date_gmt":"2022-04-06T05:51:30","guid":{"rendered":"https:\/\/egonlin.com\/?p=6267"},"modified":"2022-04-16T19:58:53","modified_gmt":"2022-04-16T11:58:53","slug":"%e7%ac%ac%e4%b8%83%e8%8a%82%ef%bc%9a%e6%96%87%e7%ab%a0%e8%af%a6%e6%83%85%e9%a1%b5%e9%9d%a2","status":"publish","type":"post","link":"https:\/\/egonlin.com\/?p=6267","title":{"rendered":"\u7b2c\u4e03\u8282\uff1a\u6587\u7ae0\u8be6\u60c5\u9875\u9762"},"content":{"rendered":"<h1>\u6587\u7ae0\u8be6\u60c5\u9875\u9762<\/h1>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/egonlin.com\/wp-content\/uploads\/2022\/04\/\u6587\u7ae0\u8be6\u60c5\u9875\u97621.jpg'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  data-original=\"https:\/\/egonlin.com\/wp-content\/uploads\/2022\/04\/\u6587\u7ae0\u8be6\u60c5\u9875\u97621.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/p>\n<p>\u672c\u529f\u80fd\u9700\u6c42\uff1a<\/p>\n<p>-\u6587\u7ae0\u8be6\u60c5\u9875\u5c55\u793a<\/p>\n<p>-\u70b9\u8d5e\u70b9\u8e29\u529f\u80fd\uff08\u540c\u4e00\u7528\u6237\u53ea\u80fd\u70b9\u4e00\u6b21\uff09<\/p>\n<p>-\u8bc4\u8bba\u529f\u80fd\uff08\u5305\u542b\u5b50\u8bc4\u8bba\uff09<\/p>\n<p>\u62d3\u5c55\u529f\u80fd:<\/p>\n<p>-\u5f15\u5165md\u7f16\u8f91\u5668<\/p>\n<h2>\u4e00\u3001\u6dfb\u52a0\u8def\u7531<\/h2>\n<p>\u6587\u7ae0\u8be6\u60c5 urls.py<\/p>\n<pre><code class=\"language-python\">re_path(&#039;^(?P&lt;name&gt;\\w+)\/article\/(?P&lt;id&gt;\\d+).html$&#039;, views.article_detail)<\/code><\/pre>\n<p>\u70b9\u8d5e\u70b9\u8e29\u529f\u80fdurls.py<\/p>\n<pre><code class=\"language-python\">path(&#039;upanddown\/&#039;, views.upanddown, name=&#039;upanddown&#039;)<\/code><\/pre>\n<p>\u8bc4\u8bba\u529f\u80fd urls.py<\/p>\n<pre><code class=\"language-bash\">path(&#039;comment\/&#039;, views.comment, name=&#039;comment&#039;)<\/code><\/pre>\n<h2>\u4e8c\u3001\u6dfb\u52a0\u89c6\u56fe\u51fd\u6570<\/h2>\n<p>\u6587\u7ae0\u8be6\u60c5\u5c55\u793a\u529f\u80fd\u89c6\u56fe\u51fd\u6570article_detail<\/p>\n<pre><code class=\"language-python\">def article_detail(request, name, id):\n    user = models.UserInfo.objects.get(username=name)\n    article = models.Article.objects.get(id=id)\n    md = markdown.Markdown(extensions=[\n        &#039;markdown.extensions.extra&#039;,\n        &#039;markdown.extensions.codehilite&#039;,\n        &#039;markdown.extensions.toc&#039;,\n    ])\n    content = md.convert(article.markdown)\n    toc = md.toc\n    # article.toc = article.markdown.toc\n    n = content.count(&#039;&lt;div class=&quot;codehilite&quot;&gt;&#039;, 0, len(content))\n    for i in range(n):\n        content = re.sub(r&#039;&lt;div class=&quot;codehilite&quot;&gt;&#039;,\n                         &#039;&lt;button id=&quot;ecodecopy&quot; class=&quot;copybtn btn btn-outline-light btn-sm&quot; &#039;\n                         &#039;data-clipboard-action=&quot;copy&quot; &#039;\n                         &#039;data-clipboard-target=&quot;#code{}&quot;&gt;\u590d\u5236&lt;\/button&gt; &#039;\n                         &#039;&lt;div class=&quot;codehilite&quot; id=&quot;code{}&quot;&gt;&#039;.format(i, i), content, 1)\n    comment_list = models.Comment.objects.filter(article=article)\n    return render(request, &#039;article\/Article_Detail.html&#039;, locals())<\/code><\/pre>\n<p>\u70b9\u8d5e\u70b9\u8e29\u529f\u80fd \u89c6\u56fe\u51fd\u6570 upanddown<\/p>\n<pre><code class=\"language-python\">@login_required(login_url=&#039;\/login\/&#039;)\ndef upanddown(request):\n    res = {&#039;code&#039;: 100, &#039;msg&#039;: &#039;&#039;}\n    if request.user.is_authenticated:\n        article_id = request.POST.get(&#039;article_id&#039;)\n        user_id = request.user.id\n        is_up = json.loads(request.POST.get(&#039;is_up&#039;))\n        article_obj = models.Article.objects.filter(pk=article_id).first()\n        clicked = models.UpAndDown.objects.filter(article_id=article_id, user_id=user_id).first()\n        if not request.user == article_obj.blog.userinfo:\n            if clicked:\n                res[&#039;code&#039;] = 101\n                res[&#039;msg&#039;] = &#039;\u60a8\u5df2\u7ecf\u652f\u6301\u8fc7&#039; if clicked.is_up else &#039;\u60a8\u5df2\u7ecf\u53cd\u5bf9\u8fc7&#039;\n            else:\n                with transaction.atomic():\n                    models.UpAndDown.objects.create(article_id=article_id, user_id=user_id, is_up=is_up)\n                    if is_up:\n                        models.Article.objects.filter(pk=article_id).update(up_num=F(&#039;up_num&#039;) + 1)\n                        res[&#039;msg&#039;] = &#039;\u70b9\u8d5e\u6210\u529f&#039;\n                    else:\n                        models.Article.objects.filter(pk=article_id).update(down_num=F(&#039;down_num&#039;) + 1)\n                        res[&#039;msg&#039;] = &#039;\u70b9\u8e29\u6210\u529f&#039;\n        else:\n            res[&#039;code&#039;] = 103\n            res[&#039;msg&#039;] = &#039;\u4e0d\u80fd\u63a8\u8350\u81ea\u5df1\u7684\u5185\u5bb9&#039; if is_up else &#039;\u4e0d\u80fd\u53cd\u5bf9\u81ea\u5df1\u7684\u5185\u5bb9&#039;\n    else:\n        res[&#039;code&#039;] = 104\n        res[&#039;msg&#039;] = &#039;\u8bf7\u5148&lt;a href=&quot;\/login\/&quot;&gt;\u767b\u5f55&lt;\/a&gt;&#039;\n    return JsonResponse(res)<\/code><\/pre>\n<p>\u8bc4\u8bba\u529f\u80fd\u89c6\u56fe\u51fd\u6570 comment<\/p>\n<pre><code class=\"language-python\">@login_required(login_url=&#039;\/login\/&#039;)\ndef comment(request):\n    res = {&#039;code&#039;: 100, &#039;msg&#039;: &#039;&#039;}\n    if request.is_ajax():\n        article_id = request.POST.get(&#039;article_id&#039;)\n        content = request.POST.get(&#039;content&#039;)\n        parent = request.POST.get(&#039;parent&#039;)\n        if request.user.is_authenticated:\n            article = models.Comment.objects.create(user=request.user, article_id=article_id, content=content,\n                                                    comment_id_id=parent)\n            models.Article.objects.filter(pk=article_id).update(comment_num=F(&#039;comment_num&#039;) + 1)\n            res[&#039;msg&#039;] = &#039;\u8bc4\u8bba\u6210\u529f&#039;\n            res[&#039;username&#039;] = article.user.username\n            res[&#039;content&#039;] = article.content\n            if parent:\n                res[&#039;parent_name&#039;] = article.comment_id.user.username\n        else:\n            res[&#039;code&#039;] = 109\n            res[&#039;msg&#039;] = &#039;\u8bf7\u5148\u767b\u5f55&#039;\n\n    return JsonResponse(res)<\/code><\/pre>\n<h2>\u4e09\u3001\u6587\u7ae0\u8be6\u60c5\u529f\u80fd\u6d89\u53ca\u7684\u6a21\u578b\u5c42\u64cd\u4f5c<\/h2>\n<p>\u663e\u7136,\u6e32\u67d3\u6587\u7ae0\u8be6\u60c5\u9700\u8981\u64cd\u4f5c\u6587\u7ae0\u8868Article<\/p>\n<p>\u70b9\u8d5e\u70b9\u8e29\u8981\u64cd\u4f5c\u8868UpAndDown,\u8bc4\u8bba\u8981\u64cd\u4f5c\u8868Comment<\/p>\n<p>\u5c24\u5176\u9700\u8981\u6ce8\u610f\u7684\u662f,\u56e0\u4e3a\u8bc4\u8bba\u53ef\u80fd\u6d89\u53ca\u5b50\u8bc4\u8bba,\u6240\u4ee5\u8bc4\u8bba\u8868\u8fd8\u6709\u5b50\u5173\u8054\u7684\u4e00\u5bf9\u591a\u5173\u7cfb<\/p>\n<h2>\u56db\u3001\u6587\u7ae0\u8be6\u60c5\u529f\u80fd\u524d\u7aef\u6a21\u677f<\/h2>\n<p>\u6587\u7ae0\u8be6\u60c5\u9875\u9762 \u5728templates\u6587\u4ef6\u5939\u4e2d\u65b0\u5efaArticle_Detail.html(\u7ee7\u627f\u524d\u9762\u63d0\u5230\u8fc7\u7684\u57fa\u7840\u6a21\u677fbase.html)<\/p>\n<pre><code class=\"language-python\">{% extends &#039;template_base\/base.html&#039; %}\n\n{% block title %}\n    {{ article.title }}\n{% endblock %}\n\n{% block content %}\n    &lt;div class=&quot;row&quot;&gt;\n        &lt;div class=&quot;col-md-2&quot;&gt;\n            {% load sideBar %}\n            {% left name %}\n        &lt;\/div&gt;\n        &lt;div class=&quot;col-md-8&quot;&gt;\n            &lt;nav aria-label=&quot;breadcrumb&quot;&gt;\n                &lt;ol class=&quot;breadcrumb&quot;&gt;\n                    \u5f53\u524d\u4f4d\u7f6e\uff1a\n                    &lt;li class=&quot;breadcrumb-item&quot;&gt;&lt;a href=&quot;\/index\/&quot;&gt;\u9996\u9875&lt;\/a&gt;&lt;\/li&gt;\n                    &lt;li class=&quot;breadcrumb-item&quot;&gt;&lt;a\n                            href=&quot;\/{{ article.blog.userinfo.username }}&quot;&gt;{{ article.blog.title }}&lt;\/a&gt;\n                    &lt;\/li&gt;\n                    &lt;li class=&quot;breadcrumb-item active&quot; aria-current=&quot;page&quot;&gt;{{ article.title }}&lt;\/li&gt;\n                    {% if request.user.username == article.blog.userinfo.username %}\n                        &lt;a href=&quot;\/update_article\/{{ article.pk }}&quot; class=&quot;ml-auto btn btn-outline-secondary btn-sm m-0&quot;&gt;\u7f16\u8f91&lt;\/a&gt;\n                    {% endif %}\n                &lt;\/ol&gt;\n            &lt;\/nav&gt;\n            &lt;div class=&quot;row mx-1&quot;&gt;\n                &lt;span class=&quot;alert alert-warning col-md-4&quot;&gt;&lt;strong&gt;\u53d1\u5e03\u4e8e\uff1a&lt;\/strong&gt;{{ article.create_time }}&lt;\/span&gt;\n                &lt;span class=&quot;alert alert-info col-md-4&quot;&gt;&lt;strong&gt;\u5f53\u524d\u65f6\u95f4\uff1a&lt;\/strong&gt;&lt;span\n                        id=&quot;c_time&quot;&gt;&lt;\/span&gt;&lt;\/span&gt;\n                &lt;span class=&quot;alert alert-success col-md-4&quot;&gt;&lt;strong&gt;\u66f4\u65b0\u4e8e\uff1a&lt;\/strong&gt;{{ article.modify_time }}&lt;\/span&gt;\n            &lt;\/div&gt;\n            &lt;div class=&quot;bg-white-95 radius-5 p-2&quot;&gt;\n                &lt;h1 class=&quot;text-center&quot;&gt;{{ article.title }}&lt;\/h1&gt;\n                &lt;hr&gt;\n                &lt;div class=&quot;mb-2 article-content&quot;&gt;\n                    {{ content|safe }}\n                &lt;\/div&gt;\n\n                &lt;!-- \u70b9\u8d5e\u70b9\u8e29 --&gt;\n                {% if request.user.username %}\n                    &lt;hr&gt;\n                    &lt;div class=&quot;row&quot;&gt;\n                        &lt;div id=&quot;div_digg&quot; class=&quot;ml-auto mr-4&quot;&gt;\n                            &lt;div class=&quot;diggit action btn btn-success&quot;&gt;\n                            &lt;span class=&quot;diggnum&quot; id=&quot;digg_count&quot;&gt;\n                                &lt;i class=&quot;fa fa-thumbs-o-up&quot;&gt;&lt;\/i&gt;\n                                &lt;span&gt;{{ article.up_num }}&lt;\/span&gt;\n                            &lt;\/span&gt;\n                            &lt;\/div&gt;\n                            &lt;div class=&quot;buryit action btn btn-danger&quot;&gt;\n                            &lt;span class=&quot;burynum&quot; id=&quot;bury_count&quot;&gt;\n                                &lt;i class=&quot;fa fa-thumbs-o-down&quot;&gt;&lt;\/i&gt;\n                                &lt;span&gt;{{ article.down_num }}&lt;\/span&gt;\n                            &lt;\/span&gt;\n                            &lt;\/div&gt;\n                        &lt;\/div&gt;\n                    &lt;\/div&gt;\n                {% endif %}\n\n                &lt;hr&gt;\n                &lt;!-- \u8bc4\u8bba --&gt;\n                &lt;div style=&quot;width: 100%&quot; class=&quot;mt-2&quot;&gt;\n                    &lt;h1 class=&quot;text-center&quot;&gt;\u8bc4\u8bba\u533a&lt;\/h1&gt;\n                    &lt;ul class=&quot;list-group&quot;&gt;\n                        {% for comment in comment_list %}\n                            &lt;li class=&quot;list-group-item&quot;&gt;\n                                &lt;div class=&quot;p-0&quot;&gt;\n                                    &lt;span&gt;#{{ forloop.counter }}\u697c&lt;\/span&gt;\n                                    &lt;span&gt;{{ comment.comment_time|date:&#039;Y-m-d H:i:s&#039; }}&lt;\/span&gt;\n                                    &lt;span class=&quot;&quot;&gt;\u7528\u6237\uff1a&lt;a\n                                            href=&quot;\/{{ comment.user.username }}&quot;&gt;{{ comment.user.username }}&lt;\/a&gt;\n                                    &lt;\/span&gt;\n                                    {% if request.user.username %}\n                                        &lt;button class=&quot;id_replay btn btn-outline-secondary btn-sm ml-auto d-block&quot;\n                                                username=&quot;{{ comment.user.username }} &quot; style=&quot;margin-top: -28px&quot;\n                                                parent=&quot;{{ comment.pk }}&quot;&gt;\u56de\u590d\n                                        &lt;\/button&gt;\n                                    {% endif %}\n\n                                &lt;\/div&gt;\n                                &lt;hr class=&quot;my-2&quot;&gt;\n                                &lt;div&gt;\n                                    {% if comment.comment_id_id %}\n                                        &lt;p&gt;@{{ comment.comment_id.userinfo.username }}&lt;\/p&gt;\n                                        &lt;p&gt;{{ comment.content }}&lt;\/p&gt;\n                                    {% else %}\n                                        {{ comment.content }}\n                                    {% endif %}\n\n                                &lt;\/div&gt;\n                            &lt;\/li&gt;\n                        {% empty %}\n                            &lt;div class=&quot;alert alert-warning&quot;&gt;&lt;h2 class=&quot;text-center&quot;&gt;\u5f53\u524d\u6682\u65e0\u8bc4\u8bba\u5185\u5bb9&lt;\/h2&gt;&lt;\/div&gt;\n                        {% endfor %}\n                    &lt;\/ul&gt;\n\n                &lt;\/div&gt;\n                {% if request.user.is_authenticated %}\n                    &lt;div class=&quot;mt-2&quot;&gt;\n                        &lt;p&gt;&lt;textarea name=&quot;&quot; class=&quot;width-b100 radius-5 p-2&quot; id=&quot;id_text&quot; rows=&quot;10&quot;\n                                     placeholder=&quot;\u6765\u90fd\u6765\u4e86\uff0c\u8bf4\u4e24\u53e5\u5457\uff01&quot; required&gt;&lt;\/textarea&gt;&lt;\/p&gt;\n                        &lt;button class=&quot;btn btn-success btn-block mb-2&quot; id=&quot;id_comment&quot;&gt;\u53d1\u8868\u8bc4\u8bba&lt;\/button&gt;\n                    &lt;\/div&gt;\n                {% else %}\n                    &lt;div class=&quot;mt-2 ml-1 alert alert-warning&quot;&gt;\n                        \u767b\u5f55\u540e\u624d\u80fd\u53d1\u8868\u8bc4\u8bba\uff0c\u7acb\u5373 &lt;a href=&quot;\/login\/&quot; class=&quot;btn btn-outline-primary btn-sm&quot;&gt;\u767b\u5f55&lt;\/a&gt; \u6216 &lt;a\n                            href=&quot;\/register\/&quot; class=&quot;btn btn-outline-success btn-sm&quot;&gt;\u6ce8\u518c&lt;\/a&gt;\uff0c \u8bbf\u95ee \u7f51\u7ad9\u9996\u9875\n                    &lt;\/div&gt;\n                {% endif %}\n            &lt;\/div&gt;\n        &lt;\/div&gt;\n        &lt;div class=&quot;col-md-2 p-0&quot;&gt;\n            {{ toc|safe }}\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n{% endblock %}\n\n{% block js %}\n    &lt;script src=&quot;\/static\/js\/highlight.js&quot;&gt;&lt;\/script&gt;\n    &lt;script src=&quot;\/static\/js\/highlight-lines.js&quot;&gt;&lt;\/script&gt;\n    &lt;script src=&quot;\/static\/js\/clipboard.js&quot;&gt;&lt;\/script&gt;\n    &lt;script&gt;\n        hljs.initHighlightingOnLoad();\n        hljs.initLineNumbersOnLoad();\n    &lt;\/script&gt;\n    &lt;script&gt;\n        var clipboard = new Clipboard(&#039;.copybtn&#039;);\n        clipboard.on(&#039;success&#039;, function (e) {\n            swal({\n                title: &#039;\u590d\u5236\u6210\u529f\uff01&#039;,\n                text: &#039;\u5982\u9700\u8f6c\u8f7d\uff0c\u8bf7\u6ce8\u660e\u51fa\u5904&#039;,\n                type: &#039;success&#039;,\n                timer: 1000,\n                showConfirmButton: false,\n            })\n        });\n        clipboard.on(&#039;error&#039;, function (e) {\n            swal({\n                title: &#039;\u590d\u5236\u5931\u8d25\uff01&#039;,\n                text: &#039;\u5728\u8bd5\u4e00\u8bd5\u5427\uff01&#039;,\n                type: &#039;danger&#039;,\n                timer: 1000,\n                showConfirmButton: false,\n            })\n        });\n    &lt;\/script&gt;\n    &lt;script&gt;\n        \/\/\u9875\u9762\u52a0\u8f7d\u8c03\u7528\n        window.onload = function () {\n            \/\/\u6bcf1\u79d2\u5237\u65b0\u65f6\u95f4\n            setInterval(&quot;NowTime()&quot;, 1000);\n        }\n\n        function NowTime() {\n            var myDate = new Date();\n            var y = myDate.getFullYear();\n            var M = myDate.getMonth() + 1;     \/\/\u83b7\u53d6\u5f53\u524d\u6708\u4efd(0-11,0\u4ee3\u88681\u6708)\n            var d = myDate.getDate();        \/\/\u83b7\u53d6\u5f53\u524d\u65e5(1-31)\n            var h = myDate.getHours();       \/\/\u83b7\u53d6\u5f53\u524d\u5c0f\u65f6\u6570(0-23)\n            var m = myDate.getMinutes();     \/\/\u83b7\u53d6\u5f53\u524d\u5206\u949f\u6570(0-59)\n            var s = myDate.getSeconds();     \/\/\u83b7\u53d6\u5f53\u524d\u79d2\u6570(0-59)\n\n            \/\/\u68c0\u67e5\u662f\u5426\u5c0f\u4e8e10\n            M = check(M);\n            d = check(d);\n            h = check(h);\n            m = check(m);\n            s = check(s);\n            var timestr = y + &quot;\u5e74&quot; + M + &quot;\u6708&quot; + d + &quot;\u65e5 &quot; + h + &quot;:&quot; + m + &quot;:&quot; + s;\n            document.getElementById(&quot;c_time&quot;).innerHTML = timestr;\n        }\n\n        \/\/\u65f6\u95f4\u6570\u5b57\u5c0f\u4e8e10\uff0c\u5219\u5728\u4e4b\u524d\u52a0\u4e2a\u201c0\u201d\u8865\u4f4d\u3002\n        function check(i) {\n            var num = (i &lt; 10) ? (&quot;0&quot; + i) : i;\n            return num;\n        }\n    &lt;\/script&gt;\n    &lt;script&gt;\n        var parent_id = &#039;&#039;\n        $(&quot;.action&quot;).click(function () {\n            var is_up = $(this).hasClass(&#039;diggit&#039;)\n            var span = $(this).children(&#039;span&#039;).children(&#039;span&#039;)\n            $.ajax({\n                url: &#039;\/upanddown\/&#039;,\n                method: &#039;post&#039;,\n                data: {\n                    article_id: &#039;{{ article.id }}&#039;,\n                    is_up: is_up,\n                    csrfmiddlewaretoken: &#039;{{ csrf_token }}&#039;\n                },\n                success: function (data) {\n                    swal({\n                        title: data.msg,\n                    })\n                    if (data.code === 100) {\n                        var num = Number(span.html()) + 1\n                        span.html(num)\n                    }\n                }\n            })\n        })\n\n        $(&#039;#id_comment&#039;).click(function () {\n            let content = $(&#039;#id_text&#039;).val()\n            if (parent_id) {\n                let i = content.indexOf(&#039;\\n&#039;) + 1\n                content = content.slice(i)\n            }\n            $.ajax({\n                url: &#039;\/comment\/&#039;,\n                method: &#039;post&#039;,\n                data: {\n                    article_id: &#039;{{ article.id }}&#039;,\n                    content: content,\n                    parent: parent_id,\n                    csrfmiddlewaretoken: &#039;{{ csrf_token }}&#039;\n                },\n                success: function (data) {\n                    if (data.code === 100) {\n                        let username = data.username\n                        let res_content = data.content\n                        let parent_name = data.parent_name\n                        let ss = ``\n                        if (parent_id) {\n                            ss = `&lt;li class=&quot;list-group-item&quot;&gt;\n                                &lt;div&gt;\n                                    &lt;span&gt;${username}&lt;\/span&gt;\n                                &lt;\/div&gt;\n                                &lt;div&gt;\n                                &lt;p&gt;@${parent_name}&lt;\/p&gt;\n                                    ${res_content}\n                                &lt;\/div&gt;\n                            &lt;\/li&gt;`\n                        } else {\n                            ss = `&lt;li class=&quot;list-group-item&quot;&gt;\n                                &lt;div&gt;\n                                    &lt;span&gt;${username}&lt;\/span&gt;\n\n                                &lt;\/div&gt;\n                                &lt;div&gt;\n                                    ${res_content}\n                                &lt;\/div&gt;\n                            &lt;\/li&gt;`\n                        }\n                        $(&#039;#id_text&#039;).val(&#039;&#039;)\n                        $(&#039;.list-group&#039;).append(ss)\n                        parent_id = &#039;&#039;\n                    }\n                }\n            })\n        })\n\n        $(&#039;.id_replay&#039;).click(function () {\n            let username = $(this).attr(&#039;username&#039;)\n            parent_id = $(this).attr(&#039;parent&#039;)\n            $(&#039;#id_text&#039;).val(&#039;@&#039; + username + &#039;\\n&#039;).focus()\n        })\n    &lt;\/script&gt;\n    &lt;script&gt;\n        $(&#039;body&#039;).attr(&#039;style&#039;, &#039;background:url(\/media\/{{ article.blog.userinfo.bg_img }}) !important;background-attachment: fixed !important;background-size: cover !important;&#039;)\n    &lt;\/script&gt;\n{% endblock %}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u6587\u7ae0\u8be6\u60c5\u9875\u9762 \u672c\u529f\u80fd\u9700\u6c42\uff1a -\u6587\u7ae0\u8be6\u60c5\u9875\u5c55\u793a -\u70b9\u8d5e\u70b9\u8e29\u529f\u80fd\uff08\u540c\u4e00\u7528\u6237\u53ea\u80fd\u70b9\u4e00\u6b21\uff09 -\u8bc4\u8bba\u529f\u80fd\uff08\u5305\u542b\u5b50\u8bc4\u8bba\uff09  [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":6814,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,406],"tags":[],"_links":{"self":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/6267"}],"collection":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6267"}],"version-history":[{"count":0,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/6267\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/media\/6814"}],"wp:attachment":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}