zoukankan      html  css  js  c++  java
  • KindEditor的使用

    KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。 KindEditor 使用 JavaScript 编写,可以无缝地与 Java、.NET、PHP、ASP 等程序集成,比较适合在 CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。

    http://kindeditor.net/doc.php

    一、编辑器使用方法

    1. 下载编辑器

    下载 KindEditor 最新版本,下载之后打开 examples/index.html 就可以看到演示。
    
    下载页面: http://www.kindsoft.net/down.php

    2. 部署编辑器

    解压 kindeditor-x.x.x.zip 文件,将所有文件上传到您的网站程序目录里,例如:http://您的域名/editor/
    
    Note
    
    您可以根据需求删除以下目录后上传到服务器。
    
    asp - ASP程序
    asp.net - ASP.NET程序
    php - PHP程序
    jsp - JSP程序
    examples - 演示文件

    3. 修改HTML页面

    1. 在需要显示编辑器的位置添加textarea输入框。
    <textarea id="editor_id" name="content" style="700px;height:300px;">
    &lt;strong&gt;HTML内容&lt;/strong&gt;
    </textarea>
    1. 在该HTML页面添加以下脚本。
    <script charset="utf-8" src="/editor/kindeditor.js"></script>
    <script charset="utf-8" src="/editor/lang/zh-CN.js"></script>
    <script>
            KindEditor.ready(function(K) {
                    window.editor = K.create('#editor_id');
            });
    </script>

    二、在博客中使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            *{
                margin: 0;
            }
            .header{
                height: 50px;
                background-color: #2e6da4;
                line-height: 50px;
                color: white;
            }
            .header span{
                margin-left: 50px;
                font-size: 25px;
            }
            .add_body{
                width: 80%;
                margin: 0 auto;
            }
            #artical_title{
                width: 300px;
            }
        </style>
        <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.css">
    
    </head>
    <body>
        <div class="header">
            <span>博客后台</span>
        </div>
    
        <div class="add_body">
            <h1>文章添加</h1>
            <label for="artical_title">添加文章:</label>
    
            <div>
                <form method="post" action="">
                    {% csrf_token %}
                    <input id="artical_title" name="artical_title" class="form-control" type="text">
                    <p><label for="artical_content">文章内容</label></p>
                    <textarea id="artical_content" name="artical_content" style="700px;height:300px;">
                    &lt;strong&gt;HTML内容&lt;/strong&gt;
                    </textarea>
                    <p><input type="submit" class="btn btn-info" value="提交"></p>
                </form>
            </div>
        </div>
    
    
        <script charset="utf-8" src="/static/kindeditor/kindeditor-all.js"></script>
        <script charset="utf-8" src="/static/kindeditor/lang/zh-CN.js"></script>
        <script src="/static/bootstrap-3.3.7-dist/js/jquery-1.12.4.js"></script>
        <script>
    
    
    
    
                KindEditor.ready(function(K) {
                        window.editor = K.create('#artical_content', { //这里定义需要对哪个textarea进行装饰
                            resizeType:0,
                            uploadJson:"/blog/backend/upload/", //定义文件的上传路由
                            extraFileUploadParams:{
                                csrfmiddlewaretoken:$("[name='csrfmiddlewaretoken']").val()
                            },
                            filePostName:"upload_img", //定义上传后的文件"name"属性名称,便于后台request获取
                        });
                });
        </script>
    </body>
    </html>
    add_artical.html
    def add_artical(request, username):
        if request.method == "POST":
            user = request.user
            artical_title = request.POST.get("artical_title")
            artical_content = request.POST.get("artical_content")
            # desc = artical_content[0:150]
    
            # 解释html标签
            from bs4 import BeautifulSoup
            # html.parser为解析器,是python标准库
            bs = BeautifulSoup(artical_content, "html.parser")
            desc = bs.text[0:150] + "..."
    
            # 过滤非法标签
            for tag in bs.find_all():
                if tag.name in ["script", "link"]:
                    # 将该非法标签从对象中移除
                    tag.decompose()
    
            # 打印结果为"123 <class 'bs4.BeautifulSoup'>"
            print(bs,type(bs))
    
            try:
                artical_obj = models.Artical.objects.create(user=user, desc=desc, title=artical_title)
                models.ArticalDetail.objects.create(content=str(bs), artical=artical_obj)
            except:
                return HttpResponse("更新文章失败 ")
            return HttpResponse("添加成功")
    
        return render(request, "add_artical.html")
    
    
    from Hero import settings
    import os, json
    def upload(request):
        obj = request.FILES.get("upload_img")
        # print("name", obj.name)
    
        path = os.path.join(settings.MEDIA_ROOT, "add_artical_img", obj.name)
    
        with open(path, "wb") as f:
            for line in obj:
                f.write(line)
    
        res = {
            "error": 0,
            "url": "/media/add_artical_img/" + obj.name
        }
    
        return HttpResponse(json.dumps(res))
    views.py
    re_path('backend/add_artical/(?P<username>w+)', views.add_artical),
        path('backend/upload/', views.upload),
    urls.py
     
  • 相关阅读:
    js对于Select的删除操作时需要注意的问题
    [转]使IIS支持PHP的配制方法
    Web工作流
    创建新的DOM节点以后,如何增加事件,和属性。
    Javascript attachEvent传递参数的办法
    [转]Javascript 操作Cookies类
    ASP SESSION莫名其妙丢失的原因及解决方法
    DataTable的2个方法;
    [推荐]美国网站兵败中国的10大思路性执行错误
    Blog from Office Word 2007
  • 原文地址:https://www.cnblogs.com/ttyypjt/p/10796805.html
Copyright © 2011-2022 走看看