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
     
  • 相关阅读:
    网络管理 之 Fedora Core 网络配置工具systemconfignetwork介绍
    文件系统管理 之 在Fedora core 4.0 加载NTFS和FAT32分区详述
    系统引导管理 之 系统引导管理器GRUB,为初学者指南
    文件系统管理 之 reiserfs文件系统反删除(Undelete)操作的实践
    文件系统管理 之 Linux 文件系统概述
    安装配置管理 之 apt+synaptic 为Fedora core 4.0 中安装Nvida芯片显示卡及Ati 卡显示驱动
    安装配置管理 之 安装和配置 JPackage Java
    安装配置管理 之 Fedora 6.0 蓝牙bluebooth传送文件的问题解决方法
    软件包管理 之 关于Fedora Core 5.0 通过Yum在线升级说明
    软件包管理 之 文件解压缩
  • 原文地址:https://www.cnblogs.com/ttyypjt/p/10796805.html
Copyright © 2011-2022 走看看