Mrdoc/template/app_doc/create_base.html
2020-03-07 09:30:11 +08:00

202 lines
8.0 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% load staticfiles %}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edgechrome=1">
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>{% block title %}{% endblock %} - MrDoc</title>
<link href="{% static 'layui/css/layui.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link rel="stylesheet" href="{% static 'editor.md/css/editormd.css' %}?version={{mrdoc_version}}" />
<link href="{% static 'mrdoc.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link rel="icon" href="{% static 'favicon_16.png' %}"/>
<style>
.markdown-body ul li{
list-style:disc;
}
.markdown-body ul > li > ul > li{
list-style-type: circle;
}
.markdown-body ol li{
list-style-type: decimal;
}
.markdown-body ol ol ul,.markdown-body ol ul ul,.markdown-body ul ol ul,.markdown-body ul ul ul li{
list-style-type: square;
}
</style>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
{% block custom_style %}{% endblock %}
</head>
<body class="layui-container">
<!-- 页头 -->
{% include 'app_doc/head_base.html' %}
<!-- 页头结束 -->
<!-- 主体开始 -->
<div class="layui-container">
{% block content %}
{% endblock %}
</div>
<!-- 主体结束 -->
<script src="{% static 'jquery/3.1.1/jquery.min.js' %}"></script>
<script src="{% static 'layui/layui.all.js' %}"></script>
<script src="{% static 'editor.md/editormd.min.js' %}"></script>
<script>
$.ajaxSetup({
data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
});
var layer = layui.layer;
var form = layui.form;
var md_changed = false; //初始化一个变量,用于判断编辑器是否修改
//初始化editormd
var editor = editormd("editor-md", {
width : "100%",
height : "1000px;",
placeholder : "开始使用Markdown书写MrDoc文档编辑器支持以下功能\n1.粘贴上传图片\n2.六级标题\n3.代码高亮\n4.本地图片和外链图片\n5.表格\n6.多级列表和任务列表\n7.Katex公式\n8.流程图\n9.时序图\n……",
toolbarIcons : function() {
return [
"undo", "redo", "|",
"bold", "del", "italic", "quote", "ucwords", "uppercase", "lowercase","kaiSpan", "|",
"h1", "h2", "h3", "h4", "h5", "h6", "|",
"list-ul", "list-ol", "hr", "|",
"link", "reference-link", "image", "code", "preformatted-text", "code-block", "table", "datetime", "emoji", "html-entities", "pagebreak", "|",
"watch", "preview", "|",
"help"
]
},
//自定义工具栏添加楷体按钮
toolbarIconTexts : {
kaiSpan : "楷"
},
//设置自定义工具栏按钮的事件
toolbarHandlers : {
/**
* @param {Object} cm CodeMirror对象
* @param {Object} icon 图标按钮jQuery元素对象
* @param {Object} cursor CodeMirror的光标对象可获取光标所在行和位置
* @param {String} selection 编辑器选中的文本
*/
kaiSpan : function(cm, icon, cursor, selection) {
//var cursor = cm.getCursor(); //获取当前光标对象同cursor参数
//var selection = cm.getSelection(); //获取当前选中的文本同selection参数
// 替换选中文本,如果没有选中文本,则直接插入
cm.replaceSelection('<span style="font-family:楷体">' + selection + "</span>");
// 如果当前没有选中的文本,将光标移到要输入的位置
if(selection === "") {
cm.setCursor(cursor.line, cursor.ch + 29);
}
// this == 当前editormd实例
//console.log("testIcon =>", this, cm, icon, cursor, selection);
},
},
//设置语言
lang : {
toolbar : {
kaiSpan : "添加楷体span标签",
}
},
//配置项
pageBreak : true, //分页符
path : "/static/editor.md/lib/",
saveHTMLToTextarea : true,
atLink : false,//禁用@链接
tex : true,//开启科学公式
tocm : true,//开启下拉目录
taskList : true,//开启任务列表
tocTitle : '文章导读',//目录标题
tocContainer: '',
tocDropdown : false,
emoji : true,//开启Emoji
flowChart : true, //开启流程图
sequenceDiagram : true, //开启序列图
imageUpload : true, //开启图片上传
htmlDecode : "link,style,script,iframe|on*", //解析部分HTML标签
imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
imageUploadURL : "{% url 'upload_doc_img' %}",
onchange:function(){
md_changed = true
},
});
//粘贴上传图片
$("#editor-md").on('paste', function (ev) {
var data = ev.clipboardData;
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
for (var index in items) {
var item = items[index];
if (item.kind === 'file') {
var blob = item.getAsFile();
var reader = new FileReader();
reader.onload = function (event) {
var base64 = event.target.result;
//ajax上传图片
$.post("{% url 'upload_doc_img' %}",{base:base64}, function (ret) {
layer.msg(ret.message);
if (ret.success === 1) {
//新一行的图片显示
editor.insertValue("\n![](" + ret.url + ")");
}
});
}; // data url!
var url = reader.readAsDataURL(blob);
}
}
});
//未保存离开提示
window.onbeforeunload =function() {
   if(md_changed){
//console.log("页面未保存数据")
return 1;
}else{
return null;
}
}
</script>
<script src="{% static 'mrdoc.js?version={{mrdoc_version}}' %}"></script>
{% block custom_script %}
{% endblock %}
</body>
{% block custom_div %}
<div class="doctemp-list" id="doctemp-list" style="display: none;width: 500px;">
<div style="margin: 10px 0 0 10px;">
<a class="layui-btn layui-btn-normal" href="{% url 'create_doctemp' %}" target="_blank">创建新模板</a>
<a class="layui-btn layui-btn-normal" href="{% url 'manage_doctemp' %}" target="_blank">管理文档模板</a>
</div>
<table class="layui-table" style="margin: 10px;">
<colgroup>
<col width="150">
<col width="200">
<col>
</colgroup>
<thead>
<tr>
<th>模板名称</th>
<th>创建时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for temp in doctemp_list %}
<tr>
<td>{{ temp.name }}</td>
<td>{{ temp.create_time }}</td>
<td>
<a href="javascript:void(0);" onclick="insertTemp('{{temp.id}}');">选择模板</a>
{# <a href="javascript:void(0);" onclick="modifyTemp();">修改</a>#}
{# <a href="javascript:void(0);" onclick="delTemp();">删除</a>#}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}
</html>