v0.6.0 更新内容详见changes.md

This commit is contained in:
yangjian 2020-10-18 08:05:41 +08:00
parent a2f991d88e
commit c55c8e3e0a
72 changed files with 747 additions and 329 deletions

View File

@ -1,5 +1,17 @@
## 版本更新记录
### v0.6.0 2020-10-18
- 新增站点名称、副标题、备案号、关键词等站点信息配置功能;
- 新增文集转让功能;
- 新增后台对文档图片缩略显示的配置;
- 新增Vditor编辑器模式插入文档模板功能
- 新增Editormd编辑器模式下时间线语法的支持
- 新增首页文集的排序配置,支持升序和降序配置;
- 修复导入文集的文档内容无法搜索的问题;
- 前台页面和后台页面默认显示用户昵称,用户昵称为空时显示用户名;
- 升级Vditor组件库版本至3.5.5
### v0.5.9 2020-09-26
- 新增对Vditor编辑器的支持个人中心可选择编辑器

View File

@ -40,7 +40,7 @@ SECRET_KEY = '5&71mt9@^58zdg*_!t(x6g14q*@84d%ptr%%s6e0l50zs0we3d'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = CONFIG.getboolean('site','debug')
VERSIONS = '0.5.9'
VERSIONS = '0.6.0'
ALLOWED_HOSTS = ['*']

View File

@ -1,6 +1,6 @@
## MrDoc觅道文档 - 记录文档,汇聚思想 - [English](./README_ENG.md)
![mrdoc](https://img.shields.io/badge/MrDoc-v0.5.9-brightgreen.svg) ![python](https://img.shields.io/badge/Python-3.5+-blue.svg) ![mrdoc](https://img.shields.io/badge/Django-v2.2-important.svg)
![mrdoc](https://img.shields.io/badge/MrDoc-v0.6.0-brightgreen.svg) ![python](https://img.shields.io/badge/Python-3.5+-blue.svg) ![mrdoc](https://img.shields.io/badge/Django-v2.2-important.svg)
![Mrdoc首页](./captrue/mrdoc-index.webp)

View File

@ -1,6 +1,6 @@
## MrDoc - Writing documents, gathering ideas
![mrdoc](https://img.shields.io/badge/MrDoc-v0.5.9-brightgreen.svg) ![python](https://img.shields.io/badge/Python-3.5+-blue.svg) ![mrdoc](https://img.shields.io/badge/Django-v2.2-important.svg)
![mrdoc](https://img.shields.io/badge/MrDoc-v0.6.0-brightgreen.svg) ![python](https://img.shields.io/badge/Python-3.5+-blue.svg) ![mrdoc](https://img.shields.io/badge/Django-v2.2-important.svg)
![Mrdoc首页](./captrue/mrdoc-index.webp)

View File

@ -564,16 +564,27 @@ def admin_setting(request):
types = request.POST.get('type',None)
# 基础设置
if types == 'basic':
site_name = request.POST.get('site_name',None) # 站点名称
site_sub_name = request.POST.get('site_sub_name', None) # 站点子标题
site_keywords = request.POST.get('site_keywords', None) # 站点关键词
site_desc = request.POST.get('site_desc', None) # 站点描述
beian_code = request.POST.get('beian_code', None) # 备案号
index_project_sort = request.POST.get('index_project_sort','1') # 首页文集默认排序
close_register = request.POST.get('close_register',None) # 禁止注册
require_login = request.POST.get('require_login',None) # 全站登录
static_code = request.POST.get('static_code',None) # 统计代码
ad_code = request.POST.get('ad_code',None) # 广告位1
ad_code_2 = request.POST.get('ad_code_2',None) # 广告位2
ad_code_3 = request.POST.get('ad_code_3', None) # 广告位3
beian_code = request.POST.get('beian_code',None) # 备案号
enbale_email = request.POST.get("enable_email",None) # 启用邮箱
img_scale = request.POST.get('img_scale',None) # 图片缩略
enable_register_code = request.POST.get('enable_register_code',None) # 注册邀请码
enable_project_report = request.POST.get('enable_project_report',None) # 文集导出
# 更新首页文集默认排序
SysSetting.objects.update_or_create(
name='index_project_sort',
defaults={'value': index_project_sort, 'types': 'basic'}
)
# 更新开放注册状态
SysSetting.objects.update_or_create(
name='require_login',
@ -608,6 +619,32 @@ def admin_setting(request):
name='beian_code',
defaults={'value':beian_code,'types':'basic'}
)
# 更新站点名称
SysSetting.objects.update_or_create(
name='site_name',
defaults={'value': site_name, 'types': 'basic'}
)
# 更新站点子标题
SysSetting.objects.update_or_create(
name='site_sub_name',
defaults={'value': site_sub_name, 'types': 'basic'}
)
# 更新站点关键词
SysSetting.objects.update_or_create(
name='site_keywords',
defaults={'value': site_keywords, 'types': 'basic'}
)
# 更新站点描述
SysSetting.objects.update_or_create(
name='site_desc',
defaults={'value': site_desc, 'types': 'basic'}
)
# 更新图片缩略状态
SysSetting.objects.update_or_create(
name='img_scale',
defaults={'value': img_scale, 'types': 'basic'}
)
# 更新邮箱启用状态
SysSetting.objects.update_or_create(
name='enable_email',

View File

@ -21,6 +21,7 @@ urlpatterns = [
path('manage_pro_colla_self/',views.manage_pro_colla_self,name="manage_pro_colla_self"), # 我协作的文集
path('manage_project_import/',import_views.import_project,name="import_project"), # 导入文集
path('manage_project_doc_sort/',import_views.project_doc_sort,name='project_doc_sort'), # 导入文集文档排序
path('manage_project_transfer/<int:pro_id>/',views.manage_project_transfer,name='manage_pro_transfer'), # 文集转让
#################文档相关
path('project-<int:pro_id>/doc-<int:doc_id>/', views.doc, name='doc'), # 文档浏览页
path('create_doc/', views.create_doc, name="create_doc"), # 新建文档

View File

@ -21,12 +21,14 @@ from app_admin.models import UserOptions,SysSetting
from app_admin.decorators import check_headers,allow_report_file
import os.path
# 替换前端传来的非法字符
def validateTitle(title):
rstr = r"[\/\\\:\*\?\"\<\>\|\[\]]" # '/ \ : * ? " < > |'
new_title = re.sub(rstr, "_", title) # 替换为下划线
return new_title
# 获取文集的文档目录
def get_pro_toc(pro_id):
# try:
@ -101,16 +103,26 @@ def get_pro_toc(pro_id):
# else:
return (doc_list,n)
# 文集列表(首页)
@logger.catch()
def project_list(request):
kw = request.GET.get('kw','') # 搜索词
sort = request.GET.get('sort',0) # 排序,0表示按时间升序排序1表示按时间降序排序默认为0
sort = request.GET.get('sort','') # 排序,0表示按时间升序排序1表示按时间降序排序''表示按后台配置排序,默认为''
role = request.GET.get('role',-1) # 筛选文集权限,默认为显示所有可显示的文集
# 是否排序
if sort in ['',0,'0']:
if sort in [0,'0']:
sort_str = ''
elif sort == '':
try:
index_project_sort = SysSetting.objects.get(name='index_project_sort')
if index_project_sort.value == '-1':
sort_str = '-'
else:
sort_str = ''
except:
sort_str = ''
else:
sort_str = '-'
@ -249,6 +261,7 @@ def project_list(request):
projects = paginator.page(paginator.num_pages)
return render(request, 'app_doc/pro_list.html', locals())
# 创建文集
@login_required()
@require_http_methods(['POST'])
@ -345,6 +358,7 @@ def modify_project(request):
if request.method == 'GET':
pro_id = request.GET.get('pro_id', None)
pro = Project.objects.get(id=pro_id)
project_files = ProjectReportFile.objects.filter(project=pro) # 文集的导出文件列表
# 验证用户有权限修改文集
if (request.user == pro.create_user) or request.user.is_superuser:
return render(request,'app_doc/manage_project_options.html',locals())
@ -386,27 +400,31 @@ def modify_project_role(request,pro_id):
elif request.method == 'POST':
role_type = request.POST.get('role','')
if role_type != '':
if int(role_type) in [0,1]:# 公开或私密
Project.objects.filter(id=int(pro_id)).update(
role = role_type,
modify_time = datetime.datetime.now()
)
if int(role_type) == 2: # 指定用户可见
role_value = request.POST.get('tagsinput','')
Project.objects.filter(id=int(pro_id)).update(
role=role_type,
role_value = role_value,
modify_time = datetime.datetime.now()
)
if int(role_type) == 3: # 访问码可见
role_value = request.POST.get('viewcode','')
Project.objects.filter(id=int(pro_id)).update(
role=role_type,
role_value=role_value,
modify_time=datetime.datetime.now()
)
pro = Project.objects.get(id=int(pro_id))
return render(request, 'app_doc/manage_project_role.html', locals())
try:
if int(role_type) in [0,1]:# 公开或私密
Project.objects.filter(id=int(pro_id)).update(
role = role_type,
modify_time = datetime.datetime.now()
)
if int(role_type) == 2: # 指定用户可见
role_value = request.POST.get('tagsinput','')
Project.objects.filter(id=int(pro_id)).update(
role=role_type,
role_value = role_value,
modify_time = datetime.datetime.now()
)
if int(role_type) == 3: # 访问码可见
role_value = request.POST.get('viewcode','')
Project.objects.filter(id=int(pro_id)).update(
role=role_type,
role_value=role_value,
modify_time=datetime.datetime.now()
)
pro = Project.objects.get(id=int(pro_id))
# return render(request, 'app_doc/manage_project_role.html', locals())
return JsonResponse({'status':True,'data':'ok'})
except:
return JsonResponse({'status':False,'data':'出错'})
else:
return Http404
@ -528,7 +546,8 @@ def modify_project_download(request,pro_id):
ProjectReport.objects.update_or_create(
project=pro, defaults={'allow_pdf': pdf_status}
)
return render(request,'app_doc/manage_project_download.html',locals())
# return render(request,'app_doc/manage_project_download.html',locals())
return JsonResponse({'status':True,'data':'ok'})
# 文集协作管理
@ -609,6 +628,38 @@ def manage_pro_colla_self(request):
return render(request,'app_doc/manage_project_self_colla.html',locals())
# 转让文集
@login_required()
@require_http_methods(['GET',"POST"])
def manage_project_transfer(request,pro_id):
try:
pro = Project.objects.get(id=pro_id)
except ObjectDoesNotExist:
return Http404
if (pro.create_user != request.user) and (request.user.is_superuser is False):
return render(request,'403.html')
else:
if request.method == 'GET':
user_list = User.objects.filter(~Q(username=request.user.username))
return render(request,'app_doc/manage_project_transfer.html',locals())
elif request.method == 'POST':
user_name = request.POST.get('username',None)
try:
transfer_user = User.objects.get(username=user_name)
init_user = pro.create_user
# 修改文集的创建者
pro.create_user = transfer_user
pro.save()
# 修改文集文档的创建者
Doc.objects.filter(create_user=init_user,top_doc=pro_id).update(
create_user=transfer_user
)
return JsonResponse({'status':True,'data':'ok'})
except:
return JsonResponse({'status':False,'data':'用户不存在'})
# 文档浏览页
@require_http_methods(['GET'])
def doc(request,pro_id,doc_id):
@ -898,8 +949,11 @@ def del_doc(request):
colla_user_role = 0
except ObjectDoesNotExist:
return JsonResponse({'status': False, 'data': '文档不存在'})
# 如果请求用户为文档创建者、高级权限的协作者、文集的创建者,可以删除
if (request.user == doc.create_user) or (colla_user_role == 1) or (request.user == project.create_user):
# 如果请求用户为站点管理员、文档创建者、高级权限的协作者、文集的创建者,可以删除
if (request.user == doc.create_user) \
or (colla_user_role == 1) \
or (request.user == project.create_user)\
or (request.user.is_superuser):
# 修改状态为删除
doc.status = 3
doc.modify_time = datetime.datetime.now()
@ -1309,6 +1363,7 @@ def fast_publish_doc(request):
else:
return JsonResponse({'status':False,'data':'非法请求'})
# 创建文档模板
@login_required()
@require_http_methods(['GET',"POST"])
@ -2158,14 +2213,14 @@ def search(request):
data_list = Doc.objects.filter(
Q(top_doc__in=view_list), # 包含用户可浏览到的文集
Q(create_time__gte=start_date, create_time__lte=end_date), # 筛选创建时间
Q(name__icontains=kw) | Q(content__icontains=kw) # 筛选文档标题和内容中包含搜索词
Q(name__icontains=kw) | Q(content__icontains=kw) | Q(pre_content__icontains=kw) # 筛选文档标题和内容中包含搜索词
).order_by('-create_time')
else:
view_list = [i.id for i in Project.objects.filter(role=0)]
data_list = Doc.objects.filter(
Q(top_doc__in=view_list),
Q(create_time__gte=start_date, create_time__lte=end_date), # 筛选创建时间
Q(name__icontains=kw) | Q(content__icontains=kw) # 筛选文档标题和内容中包含搜索词
Q(name__icontains=kw) | Q(content__icontains=kw) | Q(pre_content__icontains=kw) # 筛选文档标题和内容中包含搜索词
).order_by('-create_time')
# 搜索文集

View File

@ -3853,6 +3853,30 @@
return "<div class='echart' style='width:100%;min-height:350px;height:"+ custom_height +"px;' id='echart-"+ map_id +"'>"+code+"</div>";
}
else if(/^timeline/i.test(lang)){ // 时间线
var time_line = '<ul class="layui-timeline">'
// console.log(code)
var timeline_code = code.split(/[(\r\n)\r\n]+/);
// console.log(timeline_code)
timeline_code.forEach(function(item,index){
// console.log(item,index)
if(item.match(/^# /)){ // 时间标题
time_line += '<li class="layui-timeline-item" style="list-style:none;">'
time_line += '<i class="layui-icon layui-timeline-axis">&#xe63f;</i>'
time_line += '<div class="layui-timeline-content layui-text">'
time_line += '<h3 class="layui-timeline-title" style="margin-top:0px;">'
time_line += item.replace('# ','')
time_line += '</h3>'
}else if(/^[=]{4,}$/.test(item)){
time_line += '</div></li>'
}else{
time_line += marked(item)
}
})
time_line += '</ul>'
return time_line;
}
else
{
return marked.Renderer.prototype.code.apply(this, arguments);

View File

@ -360,6 +360,8 @@ li.active > a,li.active > div > a{
font-size: 28px;
font-weight: 700;
}
/* 文档右侧悬浮工具 */
/* 返回顶部 */
.toTop {
width: 40px;
@ -371,14 +373,14 @@ li.active > a,li.active > div > a{
/*返回顶部标签固定定位*/
position: fixed;
right: 35px;
bottom: 35px;
bottom: 45px;
z-index: 999;
font-size: 14px;
font-size: 12px;
}
.toTop:hover {
background: #eeeeee;
font-size: 16px;
font-size: 14px;
cursor: pointer;
color: red;
}
@ -395,17 +397,32 @@ li.active > a,li.active > div > a{
right: 35px;
bottom: 90px;
z-index: 999;
font-size: 14px;
font-size: 12px;
}
.tocMenu:hover {
.tocMenu:hover,.shareDoc:hover {
background: #eeeeee;
font-size: 16px;
font-size: 14px;
cursor: pointer;
color: red;
}
.doc-toc-hide{
display: none;
}
/* 分享按钮 */
.shareDoc{
width: 40px;
height: 40px;
border-radius: 50%;
background: #f6f6f6;
text-align: center;
line-height: 40px;
/*返回顶部标签固定定位*/
position: fixed;
right: 35px;
bottom: 135px;
z-index: 999;
font-size: 14px;
}
/*切换字号*/
.switch-font{

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>拒绝访问 - 觅道文档MrDoc</title>
<title>拒绝访问 - {% if site_name != None %}{{site_name}} {% else %}觅道文档MrDoc{% endif %}</title>
<link href="{% static 'layui/css/layui.css' %}" rel="stylesheet">
<link href="{% static 'mrdoc/mrdoc.css' %}" rel="stylesheet">
<link rel="icon" href="{% static 'search/mrdoc_logo_300.png' %}" sizes="192x192" />

View File

@ -3,7 +3,7 @@
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>404 页面未找到 - 觅道文档MrDoc</title>
<title>404 页面未找到 - {% if site_name != None %}{{site_name}} {% else %}觅道文档MrDoc{% endif %}</title>
<link href="{% static 'layui/css/layui.css' %}" rel="stylesheet">
<link href="{% static 'mrdoc/mrdoc.css' %}" rel="stylesheet">
<link rel="icon" href="{% static 'search/mrdoc_logo_300.png' %}" sizes="192x192" />

View File

@ -1,32 +1,31 @@
{% load staticfiles %}
{% load static %}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %} - 后台管理 - 觅道文档MrDoc</title>
<title>{% block title %}{% endblock %} - 后台管理 {% if site_name != None %}- {{site_name}} {% endif %} - 觅道文档MrDoc</title>
<link rel="icon" href="{% static 'search/mrdoc_logo_300.png' %}" sizes="192x192" />
<link href="{% static 'layui/css/layui.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link href="{% static 'mrdoc/mrdoc-admin.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link href="{% static 'tagsInput/tagsinput.css' %}" rel="stylesheet" type="text/css"/>
<style>
</style>
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<div class="layui-logo">
<a class="logo" href="{% url 'pro_list' %}">
<h1 style="color: white;">
<strong>MrDoc</strong>
<span style="font-size: 14px;" class="layui-badge-rim">后台管理</span>
</h1>
</a>
<a class="logo" href="{% url 'pro_list' %}">
<h1 style="color: white;">
<strong>MrDoc</strong>
<span style="font-size: 14px;" class="layui-badge-rim">后台管理</span>
</h1>
</a>
</div>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item">
<a href="javascript:void(0);">
<i class="layui-icon layui-icon-username"></i> {{request.user.username}}
<i class="layui-icon layui-icon-username"></i> {% if request.user.first_name != '' %} {{request.user.first_name}} {% else %} {{request.user.username}}{% endif %}
</a>
<dl class="layui-nav-child">
<!-- <dd><a href="">基本资料</a></dd> -->
@ -86,7 +85,7 @@
当前版本:<a href="https://gitee.com/zmister/MrDoc/tree/{{mrdoc_version}}/" target="_blank">{{mrdoc_version}}</a>&nbsp;-&nbsp;
<a href="https://github.com/zmister2016/MrDoc" target="_blank">GitHub</a>&nbsp;-&nbsp;
<a href="https://gitee.com/zmister/MrDoc" target="_blank">码云</a>&nbsp;-&nbsp;
<a class="register-link" id="dashang" href="javascript:void(0);">打赏作者</a>
<a class="register-link" id="dashang" href="javascript:void(0);">打赏项目</a>
</div>
</div>

View File

@ -1,5 +1,5 @@
{% extends 'app_admin/admin_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文档管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">
@ -57,7 +57,7 @@
<a href="{% url 'modify_doc' doc_id=doc.id %}" target="_blank" class="layui-btn layui-btn-normal layui-btn-xs">
<i class="layui-icon layui-icon-edit"></i>修改
</a>
<a href="javascript:void(0);" onclick="delDoc('{{doc.id}}');" class="layui-btn layui-btn-danger layui-btn-xs">
<a href="javascript:void(0);" onclick="delDoc('{{doc.id}}');" class="layui-btn layui-btn-warm layui-btn-xs">
<i class="layui-icon layui-icon-delete"></i>删除
</a>
</td>
@ -97,7 +97,7 @@
title:'删除文档',
area:'300px;',
id:'delPro',//配置ID
content:'<div style="margin-left:10px;">警告:此操作将删除此文档!</div>',
content:'<div style="margin-left:10px;">警告:将删除此文档!</div>',
btn:['确定','取消'], //添加按钮
btnAlign:'c', //按钮居中
yes:function (index,layero) {

View File

@ -1,5 +1,5 @@
{% extends 'app_admin/admin_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文档模板管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">

View File

@ -1,5 +1,5 @@
{% extends 'app_admin/admin_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文集管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">
@ -23,9 +23,9 @@
<table class="layui-table" id="doctemp-list" lay-skin="nob" lay-size='' lay-even>
<colgroup>
<col width="90">
<col width="120">
<col width="100">
<col width="40">
<col width="50">
<col width="60">
<col width="90">
<col width="30">
<col width="50">
@ -68,10 +68,10 @@
<i class="layui-icon layui-icon-read"></i>查看
</a> -->
<a href="javascript:void(0);" onclick="modifyProject('{{pro.id}}','{{pro.name}}','{{pro.intro}}')" class="layui-btn layui-btn-normal layui-btn-xs">
<i class="layui-icon layui-icon-edit"></i>修改
<i class="layui-icon layui-icon-edit"></i>
</a>
<a href="javascript:void(0);" onclick="delProject('{{pro.id}}');" class="layui-btn layui-btn-danger layui-btn-xs">
<i class="layui-icon layui-icon-delete"></i>删除
<a href="javascript:void(0);" onclick="delProject('{{pro.id}}');" class="layui-btn layui-btn-warm layui-btn-xs">
<i class="layui-icon layui-icon-delete"></i>
</a>
</td>
</tr>

View File

@ -1,5 +1,5 @@
{% extends 'app_admin/admin_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文集权限管理{% endblock %}
{% block content %}
<link href="{% static 'tagsInput/tagsinput.css' %}" rel="stylesheet" type="text/css"/>

View File

@ -1,5 +1,5 @@
{% extends 'app_admin/admin_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}注册码管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">

View File

@ -1,10 +1,10 @@
{% extends 'app_admin/admin_base.html' %}
{% load staticfiles %}
{% block title %}应用设置{% endblock %}
{% block title %}站点设置{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">
<div class="layui-row">
<span style="font-size:18px;">应用设置
<span style="font-size:18px;">站点设置
</span>
</div>
</div>
@ -20,7 +20,58 @@
<div class="layui-tab-item layui-show">
<form class="layui-form" action="{% url 'sys_setting' %}" method="post">
{% csrf_token %}
<input type="text" name="type" hidden value="basic">
<input type="text" name="type" hidden value="basic">
<!-- 站点名称 -->
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">站点名称</label>
<div class="layui-input-inline">
<input name="site_name" placeholder="请输入站点标题" class="layui-input" value="{% if site_name != None %}{{site_name}}{% endif %}"></input>
</div>
</div>
<!-- 站点子标题 -->
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">子标题</label>
<div class="layui-input-block">
<input name="site_sub_name" placeholder="请输入站点的子标题" class="layui-input" value="{% if site_sub_name != None %}{{site_sub_name}}{% endif %}"></input>
</div>
</div>
<!-- 站点关键词 -->
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">关键词</label>
<div class="layui-input-block">
<input name="site_keywords" placeholder="多个关键词请使用使用英文逗号,进行分隔" class="layui-input" value="{% if site_keywords != None %}{{site_keywords}}{% endif %}"></input>
</div>
</div>
<!-- 站点描述 -->
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">站点描述</label>
<div class="layui-input-block">
<input name="site_desc" placeholder="请用简短的文字描述你的MrDoc站点" class="layui-input" value="{% if site_desc != None %}{{site_desc}}{% endif %}"></input>
</div>
</div>
<!-- 备案号 -->
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备案号</label>
<div class="layui-input-inline">
<input name="beian_code" placeholder="请输入网站的备案号" class="layui-input" value="{% if beian_code != None %}{{beian_code}}{% endif %}"></input>
</div>
</div>
<hr>
<!-- 首页文集排序 -->
<div class="layui-form-item">
<label class="layui-form-label">首页排序</label>
<div class="layui-input-inline">
{% if index_project_sort == '-1' %}
<input type="radio" name="index_project_sort"" value="1" title="升序" >
<input type="radio" name="index_project_sort" value="-1" title="降序" checked>
{% else %}
<input type="radio" name="index_project_sort"" value="1" title="升序" checked>
<input type="radio" name="index_project_sort" value="-1" title="降序" >
{% endif %}
</div>
<div class="layui-form-mid layui-word-aux">首页文集列表的排序方式</div>
</div>
<!-- 站点注册开关 -->
<div class="layui-form-item">
<label class="layui-form-label">禁止注册</label>
<div class="layui-input-inline">
@ -28,7 +79,7 @@
</div>
<div class="layui-form-mid layui-word-aux">开启此选项将禁止新用户注册</div>
</div>
<!-- 站点强制登录开关 -->
<div class="layui-form-item">
<label class="layui-form-label">全站登录</label>
<div class="layui-input-inline">
@ -36,7 +87,7 @@
</div>
<div class="layui-form-mid layui-word-aux">开启此选项,除注册、登录页面外的所有页面的访问都需要登录</div>
</div>
<!-- 站点注册码开关 -->
<div class="layui-form-item">
<label class="layui-form-label">启用注册码</label>
<div class="layui-input-inline">
@ -44,7 +95,7 @@
</div>
<div class="layui-form-mid layui-word-aux">开启此选项,新用户注册将需要填写注册码</div>
</div>
<!-- 文集导出开关 -->
<div class="layui-form-item">
<label class="layui-form-label">文集下载</label>
<div class="layui-input-inline">
@ -52,16 +103,25 @@
</div>
<div class="layui-form-mid layui-word-aux">开启此选项文集允许导出为EPUB和DOCX等格式文件以供下载文集拥有者可进行进一步控制特定文集是否开放导出</div>
</div>
<div class="layui-form-item">
<!-- 邮箱开关 -->
<div class="layui-form-item">
<label class="layui-form-label">启用邮箱</label>
<div class="layui-input-inline">
<input type="checkbox" name="enable_email" lay-skin="switch" lay-text="开启|关闭" {% if enable_email %}checked{% endif %}>
</div>
<div class="layui-form-mid layui-word-aux">开启此选项后还需进行邮箱信息配置</div>
</div>
<!-- 图片缩略开关 -->
<div class="layui-form-item">
<label class="layui-form-label">图片缩略</label>
<div class="layui-input-inline">
<input type="checkbox" name="img_scale" lay-skin="switch" lay-text="开启|关闭" {% if img_scale %}checked{% endif %}>
</div>
<div class="layui-form-mid layui-word-aux">开启后文档中的图片将显示为最大宽度350px的缩略图</div>
</div>
<hr>
<div class="layui-form-item layui-form-text">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">统计代码</label>
<div class="layui-input-block">
<textarea name="static_code" placeholder="如果需要调用第三方的统计功能,请将第三方统计工具代码输入至此,可以包含<script>标签" class="layui-textarea">{{static_code}}</textarea>

View File

@ -1,5 +1,5 @@
{% extends 'app_admin/admin_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}用户管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">
@ -9,8 +9,6 @@
</div>
</div>
<div class="layui-row">
{# <form action="{% url 'user_manage' %}" method="post">#}
{# {% csrf_token %}#}
<div class="layui-form-item">
<div class="layui-input-inline">
<input type="text" name="username" id="username" required lay-verify="required" placeholder="输入用户名" autocomplete="off" class="layui-input">
@ -19,7 +17,6 @@
<button class="layui-btn layui-btn-normal layui-btn-sm" onclick="createUser()" type="button"><i class="layui-icon layui-icon-addition"></i>新增用户</button>
<button class="layui-btn layui-btn-normal layui-btn-sm" onclick="createSuperUser()" type="button"><i class="layui-icon layui-icon-addition"></i>添加管理员</button>
</div>
{# </form>#}
</div>
<div class="layui-row" lay-skin="line">
<table class="layui-table" id="user-list"></table>

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}用户Token管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">

View File

@ -1,4 +1,4 @@
{% load staticfiles %}
{% load static %}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
@ -9,10 +9,9 @@
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta name="referrer" content="no-referrer">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="{{ doc.name }},{{ project.name }},mrdoc"/>
<meta name="keywords" content="{{ doc.name }},{{ project.name }},{{site_keywords}}"/>
<meta name="description" content="{{doc.pre_content | slice:"0:100"}}" />
<title>{{ doc.name }} - {{ project.name }} - 觅道文档MrDoc</title>
<title>{{ doc.name }} - {{ project.name }} - {% if site_name != None and site_name != '' %}{{site_name}}{% else %}觅道文档MrDoc{% endif %}</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 rel="stylesheet" href="{% static 'katex/katex.min.css' %}?version={{mrdoc_version}}" />

View File

@ -1,4 +1,4 @@
{% load staticfiles %}
{% load static %}
<!DOCTYPE html>
<html lang='zh-CN'>
<head>
@ -9,14 +9,13 @@
<meta http-equiv="Cache-Control" content="max-age=7200" />
<link rel="icon" href="{% static 'favicon_16.png' %}"/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>请输入访问码 - 觅道文档MrDoc</title>
<title>请输入访问码 - {% if site_name != None and site_name != '' %}{{site_name}} {% else %}站点标题{% endif %}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="{% static 'layui/css/layui.css' %}" crossorigin="anonymous">
<style>
body{
background-color: #fafafa;
/*text-align: center;*/
}
.container{
display: flex;

View File

@ -1,4 +1,4 @@
{% load staticfiles %}
{% load static %}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
@ -9,9 +9,7 @@
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta name="referrer" content="no-referrer">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="{% block keyword %}{% endblock %}mrdoc"/>
<meta name="description" content="{% block description %}{% endblock %}" />
<title>{% block title %}{% endblock %} - 觅道文档MrDoc</title>
<title>{% block title %}{% endblock %} - {% if site_name != None and site_name != '' %}{{site_name}} {% else %}站点标题{% endif %}</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 rel="stylesheet" href="{% static 'katex/katex.min.css' %}?version={{mrdoc_version}}" />

View File

@ -1,4 +1,4 @@
{% load staticfiles %}
{% load static %}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
@ -9,9 +9,7 @@
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta name="referrer" content="no-referrer">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="{% block keyword %}{% endblock %}mrdoc"/>
<meta name="description" content="{% block description %}{% endblock %}" />
<title>{% block title %}{% endblock %} - 觅道文档MrDoc</title>
<title>{% block title %}{% endblock %} - {% if site_name != None and site_name != '' %}{{site_name}} {% else %}站点标题{% endif %}</title>
<link href="{% static 'layui/css/layui.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link rel="stylesheet" href="{% static 'editor.md/css/font-awesome.min.css' %}?version={{mrdoc_version}}" />
<link rel="stylesheet" href="{% static 'vditor/dist/index.css' %}?version={{mrdoc_version}}" />

View File

@ -1,6 +1,6 @@
{% extends 'app_doc/create_base_2.html' %}
{% load staticfiles %}
{% block title %}新建文档{% endblock %}
{% load static %}
{% block title %}新建文档 - Editormd编辑模式{% endblock %}
{% block editor_type %}新建文档{% endblock %}
{% block head_toolbar %}
@ -21,12 +21,12 @@
<div class="layui-row">
<div class="layui-btn-container" style="margin-bottom: 0px;">
<button class="layui-btn layui-btn-primary layui-btn-sm mrdoc-btn-default" id="sel-doctemp" title="插入模板内容">
<i class="fa fa-clipboard"></i> 选择模板
<i class="fa fa-clipboard"></i>
</button>
<input type="file" id="insert-local-file" onchange="insertLocalFile(this)" style="display:none;">
<button class="layui-btn layui-btn-primary layui-btn-sm mrdoc-btn-default" id="sel-local" onclick="selectLocalFile()" title="插入本地文本文件内容">
<i class="fa fa-upload"></i> 导入文本
<i class="fa fa-upload"></i>
</button>
</div>
@ -101,11 +101,11 @@
<h2 class="layui-colla-title">发布</h2>
<div class="layui-colla-content layui-show">
<div class="layui-row layui-col-space5" style="padding: 5px;background-color: #fff;">
<button class="layui-btn layui-btn-primary mrdoc-btn-default" onclick="saveDoc()" title="保存当前内容为草稿文档">
<i class="fa fa-save"></i> 保存为草稿
<button class="layui-btn layui-btn-primary layui-btn-sm mrdoc-btn-default" onclick="saveDoc()" title="保存当前内容为草稿文档">
<i class="fa fa-save"></i> 保存
</button>
<button class="layui-btn layui-btn-normal" onclick="createDoc()" id="create_doc" title="发布当前内容">
<i class="fa fa-save"></i> 发布文档
<button class="layui-btn layui-btn-normal layui-btn-sm" onclick="createDoc()" id="create_doc" title="发布当前内容">
<i class="fa fa-save"></i> 发布
</button>
</div>
</div>

View File

@ -1,6 +1,6 @@
{% extends 'app_doc/create_base_vditor.html' %}
{% load staticfiles %}
{% block title %}新建文档{% endblock %}
{% load static %}
{% block title %}新建文档 - Vditor编辑模式{% endblock %}
{% block editor_type %}新建文档{% endblock %}
{% block head_toolbar %}
@ -20,9 +20,9 @@
<div class="layui-form" style="padding: 0 10px 10px 10px;">
<div class="layui-row">
<div class="layui-btn-container" style="margin-bottom: 0px;">
<!-- <button class="layui-btn layui-btn-primary layui-btn-sm mrdoc-btn-default" id="sel-doctemp" title="插入模板内容">
<button class="layui-btn layui-btn-primary layui-btn-sm mrdoc-btn-default" id="sel-doctemp" title="插入模板内容">
<i class="fa fa-clipboard"></i> 选择模板
</button> -->
</button>
<!-- <input type="file" id="insert-local-file" onchange="insertLocalFile(this)" style="display:none;">
<button class="layui-btn layui-btn-primary layui-btn-sm mrdoc-btn-default" id="sel-local" onclick="selectLocalFile()" title="插入本地文本文件内容">
@ -334,7 +334,8 @@
$.post("{% url 'get_doctemp' %}",{'doctemp_id':doctemp_id},function(r){
if(r.status){
console.log(r.data)
editor.insertValue(r.data);
// editor.insertValue(r.data);
editor.setValue(r.data);
layer.closeAll()
}else{
layer.msg(r.data)

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/create_base_2.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}新建文档模板{% endblock %}
{% block editor_type %}新建模板{% endblock %}

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/create_base_vditor.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}新建文档模板{% endblock %}
{% block editor_type %}新建模板{% endblock %}

View File

@ -1,4 +1,4 @@
{% load staticfiles %}
{% load static %}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="{% block keyword %}{% endblock %}mrdoc"/>
<meta name="description" content="{% block description %}{% endblock %}" />
<title>文档历史版本对比:{{ doc.name }} - MrDoc</title>
<title>文档历史版本对比:{{ doc.name }} - {% if site_name != None and site_name != '' %}{{site_name}} {% else %}觅道文档MrDoc{% endif %}</title>
<link href="{% static 'layui/css/layui.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link rel="icon" href="{% static 'favicon_16.png' %}"/>
<link href="{% static 'mrdoc/mrdoc.css' %}?version={{mrdoc_version}}" rel="stylesheet">

View File

@ -1,7 +1,7 @@
<!-- 继承自模板app_doc/docs_base.html -->
{% extends 'app_doc/docs_base.html' %}
<!-- 引入静态文件 -->
{% load staticfiles %}
{% load static %}
{% block keyword %}{{ doc.name }},{{ project.name }},{% endblock %}
{% block description %}{{doc.pre_content | slice:"0:100"}}{% endblock %}
@ -62,7 +62,7 @@
<div class="layui-row layui-col-space20" style="padding-left: 20px;">
<span>
<i class="fa fa-user"></i> {{ doc.create_user.username }}
<i class="fa fa-user"></i> {% if doc.create_user.first_name != '' %} {{doc.create_user.first_name}} {% else %} {{doc.create_user.username}}{% endif %}
</span>
<span tooltip="更新于:{{doc.modify_time}}">
<i class="fa fa-clock-o"></i> {{ doc.modify_time }}
@ -104,7 +104,12 @@
{% endblock %}
{% block right_widget %}
<div class="tocMenu" style="display: none;">目录</div>
<!-- 目录 -->
<div class="tocMenu" style="display: none;"><i class="fa fa-list"></i></div>
<!-- 分享按钮 -->
<!-- {% if project.role == 1 and request.user == doc.create_user %}
<div class="shareDoc" id="shareDoc" ><i class="fa fa-share"></i></div>
{% endif %} -->
{% endblock %}
{% block custom_script %}
@ -122,7 +127,7 @@
var layer = layui.layer;
// 手机屏幕上默认最小化目录
if(window.outerWidth < 1300){
console.log('最小化目录');
// console.log('最小化目录');
// setTimeout(function(){
$(".sidebar").toggleClass("doc-toc-hide");
// },300)
@ -161,6 +166,14 @@
content: $('#download_div')
});
});
// 分享文档
$("#shareDoc").click(function(){
layer.open({
type:1,
title:'分享文档',
})
})
</script>

View File

@ -9,18 +9,15 @@
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta name="referrer" content="no-referrer">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="{% block keyword %}{% endblock %}mrdoc"/>
<meta name="keywords" content="{% block keyword %}{% endblock %}{{site_keywords}}"/>
<meta name="description" content="{% block description %}{% endblock %}" />
<title>{% block title %}{% endblock %} - 觅道文档MrDoc</title>
<title>{% block title %}{% endblock %} - {% if site_name != None and site_name != '' %}{{site_name}} {% else %}站点标题{% endif %}</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 rel="stylesheet" href="{% static 'katex/katex.min.css' %}?version={{mrdoc_version}}" /> -->
{% if doc.editor_mode == 2 %}
<link rel="stylesheet" href="{% static 'vditor/dist/index.css' %}?version={{mrdoc_version}}" />
{% endif %}
<!-- <link href="{% static 'viewerjs/viewer.css' %}?version={{mrdoc_version}}" rel="stylesheet"> -->
<link href="{% static 'viewerjs/viewer.min.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link rel="icon" href="{% static 'search/mrdoc_logo_300.png' %}" sizes="192x192" />
<link href="{% static 'mrdoc/mrdoc.css' %}?version={{mrdoc_version}}" rel="stylesheet">
@ -85,9 +82,11 @@
.markdown-body h6{
font-size: .85em;
}
{% if img_scale %}
.markdown-body p img{
max-width: 350px;
}
{% endif %}
#url_qrcode img{
margin: auto;
}
@ -295,8 +294,11 @@
</div>
</div>
<!-- 右侧文档栏结束 -->
<div class="toTop"><i class="layui-icon layui-icon-top" style="font-size: 40px;"></i></div>
{% block right_widget %} {% endblock %}
<!-- 右下角工具按钮 -->
<div>
<div class="toTop" ><i class="fa fa-arrow-up"></i></div>
{% block right_widget %} {% endblock %}
</div>
</div>
<script src="{% static 'jquery/3.1.1/jquery.min.js' %}"></script>
@ -413,16 +415,6 @@
<script src="{% static 'editor.md/lib/prettify.min.js' %}"></script>
<script src="{% static 'editor.md/lib/raphael.min.js' %}"></script>
<script src="{% static 'editor.md/lib/underscore.min.js' %}"></script>
<!-- <script src="{% static 'editor.md/lib/sequence-diagram.min.js' %}"></script> -->
<!-- <script src="{% static 'editor.md/lib/flowchart.min.js' %}"></script> -->
<!-- <script src="{% static 'editor.md/lib/jquery.flowchart.min.js' %}"></script> -->
<!-- <script src="{% static 'editor.md/lib/echarts.min.js' %}"></script> -->
<!-- 脑图开始 -->
<!-- <script src="{% static 'mindmap/d3@5.js' %}"></script> -->
<!-- <script src="{% static 'mindmap/transform.min.js' %}"></script> -->
<!-- <script src="{% static 'mindmap/view.min.js' %}"></script> -->
<!-- 脑图结束 -->
<!-- <script src="{% static 'editor.md/editormd.min.js' %}?version={{mrdoc_version}}"></script> -->
<script src="{% static 'editor.md/editormd.js' %}?version={{mrdoc_version}}"></script>
{% endif %}
@ -524,7 +516,7 @@
$(".toTop").hide();
$(window).scroll(function() {
// 若滚动的高度,超出指定的高度后,“返回顶部”的标签出现。
if($(document).scrollTop() >= 150) {
if($(document).scrollTop() >= 140) {
$(".toTop").show();
} else {
$(".toTop").hide();

View File

@ -4,4 +4,9 @@
<a href="https://zmister.com" target="_blank">州的先生</a>出品 |
<a href="{% url 'sitemap' %}" target="_blank">网站地图</a>
</div>
{% if beian_code != None %}
<div style="margin-top:5px;margin-bottom: 5px;">
<a href="http://beian.miit.gov.cn/" target="_blank">{{beian_code}}</a>
</div>
{% endif %}
</div>

View File

@ -57,7 +57,8 @@
{% if request.user.is_authenticated %}
<li class="layui-nav-item">
<a href="javascript:void(0);">
<i class="layui-icon layui-icon-friends"></i> <span class="layui-hide-xs">{{request.user.username}}</span>
<i class="layui-icon layui-icon-friends"></i>
<span class="layui-hide-xs">{% if request.user.first_name != '' %} {{request.user.first_name}} {% else %} {{request.user.username}}{% endif %}</span>
</a>
<dl class="layui-nav-child">
<!-- <dd><a href="">基本资料</a></dd> -->

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}附件管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">

View File

@ -1,10 +1,10 @@
{# 文档、文集、文档模板管理基础HTML模板 #}
{% load staticfiles %}
<!-- 文档、文集、文档模板管理基础HTML模板 -->
{% load static %}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %} - 个人中心 - 觅道文档MrDoc</title>
<title>{% block title %}{% endblock %} - 个人中心{% if site_name != None and site_name != '' %}- {{site_name}} {% endif %} - 觅道文档MrDoc</title>
<link href="{% static 'layui/css/layui.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link href="{% static 'mrdoc/mrdoc-admin.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link rel="icon" href="{% static 'search/mrdoc_logo_300.png' %}" sizes="192x192" />
@ -28,7 +28,7 @@
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item">
<a href="javascript:;">
<i class="layui-icon layui-icon-username"></i> {{request.user.username}}
<i class="layui-icon layui-icon-username"></i> {% if request.user.first_name != '' %} {{request.user.first_name}} {% else %} {{request.user.username}}{% endif %}
</a>
<dl class="layui-nav-child">
{% if request.user.is_superuser %}
@ -91,7 +91,7 @@
当前版本:<a href="https://gitee.com/zmister/MrDoc/tree/{{mrdoc_version}}/" target="_blank">{{mrdoc_version}}</a>&nbsp;-&nbsp;
<a href="https://github.com/zmister2016/MrDoc" target="_blank">GitHub</a>&nbsp;-&nbsp;
<a href="https://gitee.com/zmister/MrDoc" target="_blank">码云</a>&nbsp;-&nbsp;
<a class="register-link" id="dashang" href="javascript:void(0);">打赏作者</a>
<a class="register-link" id="dashang" href="javascript:void(0);">打赏项目</a>
</div>
</div>

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文档管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文档历史版本管理{% endblock %}
{% block content %}
<div class="layui-row" style="margin-bottom: 10px;padding-left:15px;">

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文档回收站管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文档标签管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文档模板管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}图片素材管理{% endblock %}
{% block custom_link %}

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}图片分组管理{% endblock %}
{% block content %}
<div class="layui-row" style="margin-bottom: 10px;padding-left:15px;">

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}仪表盘{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文集管理{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;background-color: #fff;">
@ -53,20 +53,20 @@
<a href="{% url 'pro_index' pro_id=pro.id %}" target="_blank" title='{{pro.name}}'>{{ pro.name }}</a>
<!-- 文集阅读权限 -->
{% if pro.role == 0 %}
<a href="{% url 'modify_pro_role' pro.id %}" title="公开文集,点击修改权限"><img src="{% static 'icon_img/manage-eye-icon.svg' %}" height="14px" width="14px" /></a>
<a href="javascript:void(0);" title="公开文集"><img src="{% static 'icon_img/manage-eye-icon.svg' %}" height="14px" width="14px" /></a>
{% elif pro.role == 1 %}
<a href="{% url 'modify_pro_role' pro.id %}" title="私密文集,点击修改权限"><i class="layui-icon layui-icon-password"></i></a>
<a href="javascript:void(0);" title="私密文集"><i class="layui-icon layui-icon-password"></i></a>
{% elif pro.role == 2 %}
<a href="{% url 'modify_pro_role' pro.id %}" title="指定用户可见,点击修改权限"><i class="layui-icon layui-icon-user"></i></a>
<a href="javascript:void(0);" title="指定用户可见"><i class="layui-icon layui-icon-user"></i></a>
{% elif pro.role == 3 %}
<a href="{% url 'modify_pro_role' pro.id %}" title="访问码可见,点击修改权限"><i class="layui-icon layui-icon-key"></i></a>
<a href="javascript:void(0);" title="访问码可见"><i class="layui-icon layui-icon-key"></i></a>
{% endif %}
<!-- 文集前台下载权限 -->
{% if pro.id|report_status_epub == 1 or pro.id|report_status_pdf == 1 %}
<a href="{% url 'modify_pro_download' pro.id %}" title="允许前台下载,点击配置"><img src="{% static 'icon_img/manage-download-yes.svg' %}" height="14px" width="14px" /></a>
<a href="javascript:void(0);" title="允许前台下载"><img src="{% static 'icon_img/manage-download-yes.svg' %}" height="14px" width="14px" /></a>
{% else %}
<a href="{% url 'modify_pro_download' pro.id %}" title="禁止前台下载,点击配置"><img src="{% static 'icon_img/manage-download-no.svg' %}" height="14px" width="14px" /></a>
<a href="javascript:void(0);" title="禁止前台下载"><img src="{% static 'icon_img/manage-download-no.svg' %}" height="14px" width="14px" /></a>
{% endif %}
</td>
@ -74,20 +74,20 @@
<td>{{ pro.id | get_doc_count }}</td>
<td>{{ pro.create_time }}</td>
<td>{{ pro.id | project_collaborator_cnt }} <a href="{% url 'manage_pro_colla' pro.id %}" title="管理文集协作"><i class="layui-icon layui-icon-set"></i></a></td>
<td>
<a href="javascript:void(0);" title="修改文集" onclick="modifyProject('{{pro.id}}','{{pro.name}}','{{pro.intro}}')" class="layui-btn layui-btn-xs layui-btn-normal">
<i class="layui-icon layui-icon-edit"></i>
</a>
<!-- <a href="{% url 'modify_project' %}?pro_id={{pro.id}}" title="修改文集" class="layui-btn layui-btn-xs layui-btn-normal">
<td>
<!-- <a href="javascript:void(0);" title="修改文集" onclick="modifyProject('{{pro.id}}','{{pro.name}}','{{pro.intro}}')" class="layui-btn layui-btn-xs layui-btn-normal">
<i class="layui-icon layui-icon-edit"></i>
</a> -->
<a href="javascript:void(0);" title="导出文集" onclick="reportMd('{{pro.id}}')" class="layui-btn layui-btn-xs layui-btn-normal">
<i class="layui-icon layui-icon-export"></i>
</a>
<a href="javascript:void(0);" title="删除文集" onclick="delProject('{{pro.id}}');" class="layui-btn layui-btn-xs layui-btn-warm">
<i class="layui-icon layui-icon-delete"></i>
</a>
</td>
</a> -->
<a href="{% url 'modify_project' %}?pro_id={{pro.id}}" title="修改文集配置" class="layui-btn layui-btn-xs layui-btn-normal">
<i class="layui-icon layui-icon-set"></i>
</a>
<!-- <a href="javascript:void(0);" title="导出文集" onclick="reportMd('{{pro.id}}')" class="layui-btn layui-btn-xs layui-btn-normal">
<i class="layui-icon layui-icon-export"></i>
</a>
<a href="javascript:void(0);" title="删除文集" onclick="delProject('{{pro.id}}');" class="layui-btn layui-btn-xs layui-btn-warm">
<i class="layui-icon layui-icon-delete"></i>
</a> -->
</td>
</tr>
{% endfor %}
</tbody>

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文集协作管理{% endblock %}
{% block content %}
<link href="{% static 'tagsInput/tagsinput.css' %}" rel="stylesheet" type="text/css"/>

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文集下载状态管理 - {{pro.name}}{% endblock %}
{% block content %}
{% if enable_project_report %}
@ -92,17 +92,17 @@
<script>
var form = layui.form;
reportFile = function(pro_id,types){
layer.load(1)
var data = {'pro_id':pro_id,'types':types};
$.post("{% url 'genera_project_file' %}",data,function(r){
layer.closeAll('loading');
if(r.status){
layer.msg("生成完成")
window.location.reload();
}else{
layer.msg("生成出错,请稍后重试")
}
})
}
layer.load(1)
var data = {'pro_id':pro_id,'types':types};
$.post("{% url 'genera_project_file' %}",data,function(r){
layer.closeAll('loading');
if(r.status){
layer.msg("生成完成")
window.location.reload();
}else{
layer.msg("生成出错,请稍后重试")
}
})
}
</script>
{% endblock %}

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}导入文集{% endblock %}
{% block content %}
<div class="layui-row" style="margin-bottom: 10px;padding-left:15px;">

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文集设置{% endblock %}
{% block content %}
<link href="{% static 'tagsInput/tagsinput.css' %}" rel="stylesheet" type="text/css"/>
@ -16,12 +16,17 @@
</span>
</div>
</div>
<!-- 文集基本信息 -->
<div class="layui-row" style="margin-top: 10px;">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">基本信息</h2>
<div class="layui-colla-content layui-show">
<div class="layui-tab">
<ul class="layui-tab-title">
<li class="layui-this">基础信息</li>
<li>权限配置</li>
<li>下载配置</li>
<li>管理控制</li>
</ul>
<div class="layui-tab-content">
<!-- 文集基础信息配置 -->
<div class="layui-tab-item layui-show">
<div>
<div class="layui-form-item">
<label class="layui-form-label">文集名称</label>
@ -37,23 +42,14 @@
</div>
<div class="layui-form-item" style="margin-top: 10px;">
<div class="layui-input-block">
<button class="layui-btn layui-btn-primary layui-btn-sm"><i class="layui-icon layui-icon-edit"></i>修改</button>
<button class="layui-btn layui-btn-primary layui-btn-sm" id="modify-project-btn"><i class="layui-icon layui-icon-edit"></i>立即修改</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 文集权限配置 -->
<div class="layui-row" style="margin-top: 10px;">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">权限控制</h2>
<div class="layui-colla-content layui-show">
<form action="{% url 'modify_pro_role' pro.id %}" method="post" class="layui-form">
{% csrf_token %}
<!-- 文集权限配置 -->
<div class="layui-tab-item">
<div class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">浏览权限</label>
<div class="layui-input-block">
@ -67,7 +63,7 @@
<div class="layui-form-item" style="{% if pro.role == 3 %}{% else %}display:none;{% endif %}" id="role-pwd">
<label class="layui-form-label">访问码</label>
<div class="layui-input-inline">
<input type="text" name="viewcode" placeholder="请输入访问码" autocomplete="off" class="layui-input" value="{% if pro.role_value != None %}{{pro.role_value}}{% endif %}">
<input type="text" name="viewcode" id="viewcode" placeholder="请输入访问码" autocomplete="off" class="layui-input" value="{% if pro.role_value != None %}{{pro.role_value}}{% endif %}">
</div>
<div class="layui-form-mid layui-word-aux">不少于4位数</div>
</div>
@ -83,22 +79,14 @@
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn layui-btn-primary layui-btn-sm" lay-submit lay-filter="formDemo">保存权限</button>
<button class="layui-btn layui-btn-primary layui-btn-sm" id="modify-project-role">修改权限</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- 文集下载和导出配置 -->
<div class="layui-row" style="margin-top: 10px;">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">下载和导出</h2>
<div class="layui-colla-content layui-show">
<form action="{% url 'modify_pro_download' pro.id %}" method="post" class="layui-form">
{% csrf_token %}
<!-- 下载和导出 -->
<div class="layui-tab-item">
<div class="layui-form">
{% load project_filter %}
<div class="layui-form-item">
<blockquote class="layui-elem-quote">注意开启某类型文件下载后请先点击“生成或更新XXX文件”文集文档中如果包含公式、流程图、时序图、脑图等内容将会延长生成时间请耐心等待</blockquote>
@ -107,11 +95,11 @@
<label class="layui-form-label">EPUB下载</label>
<div class="layui-input-block">
<input type="checkbox" name="download_epub"
{% if pro.id|report_status_epub == 1 %} checked {%endif%}
{% if pro.id|report_status_epub == 1 %} checked {% endif %}
lay-skin="switch" lay-text="允许|禁止">
<!-- 判断后台是否开启导出,如果开启,则显示 -->
{% if enable_project_report %}
<a href="javascript:void(0);" onclick="reportFile('{{pro.id}}','epub')" style=""><i class="layui-icon layui-icon-refresh"></i><u>生成或更新EPUB文件</u></a>
<a href="javascript:void(0);" onclick="reportFile('{{pro.id}}','epub')"><i class="layui-icon layui-icon-refresh"></i><u>生成或更新EPUB文件</u></a>
{% if project_files %}
{% for file in project_files %}
{% if file.file_type == 'epub' %}
@ -153,30 +141,40 @@
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn layui-btn-primary layui-btn-sm" lay-submit lay-filter="formDemo">保存文集导出配置</button>
<button class="layui-btn layui-btn-primary layui-btn-sm">导出Markdown</button>
<button class="layui-btn layui-btn-primary layui-btn-sm" id="modify-project-download">保存文集导出配置</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- 删除文集 -->
<div class="layui-row" style="margin-top: 10px;">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">删除文集</h2>
<div class="layui-colla-content layui-show">
<div>
<div class="layui-form-item" style="margin-top: 10px;">
<button class="layui-btn layui-btn-warm layui-btn-sm"><i class="layui-icon layui-icon-delete"></i>删除文集</button>
</div>
</div>
</div>
</div>
</div>
<!-- 文集删除和转让 -->
<div class="layui-tab-item">
<div class="layui-row">
<div style="float: left;">
<strong>导出文集</strong>
<p>将文集内的文档以Markdown.md的形式导出为zip压缩文件</p>
</div>
<button class="layui-btn layui-btn-primary" style="float: right;" id="export-project">导出文集</button>
</div>
<hr>
<div class="layui-row">
<div style="float: left;">
<strong>转让文集</strong>
<p>将文集的管理权限和文集下自己创建的文档转让给站点的其他用户</p>
</div>
<a class="layui-btn layui-btn-primary" style="float: right;" id="transfer-project" href="{% url 'manage_pro_transfer' pro.id %}">转让文集</a>
</div>
<hr>
<div class="layui-row">
<div style="float: left;">
<strong>删除文集</strong>
<p>删除文集及文集下的所有文档</p>
</div>
<button class="layui-btn layui-btn-warm" style="float: right;" id="delete-project">删除文集</button>
</div>
</div>
</div>
</div>
{% endblock %}
{% block custom_script %}
@ -201,5 +199,175 @@
$("#role-pwd").css("display","block");
}
});
//修改文集基础信息
modifyProject = function(pro_id,pro_name,pro_intro){
layer.load(1);
var project_data = {
'pro_id':'{{pro.id}}',
'name':$("#pname").val(),
'desc':$("#desc").val(),
}
$.post("{% url 'modify_project' %}",project_data,function(r){
layer.closeAll('loading'); //关闭loading
if(r.status){
//修改成功
//window.location.reload();
layer.msg("修改成功")
}else{
//修改失败,提示
// console.log(r)
layer.msg(r.data)
}
})
};
$("#modify-project-btn").click(function(){
modifyProject();
});
// 修改文集权限
modifyProjectRole = function(){
layer.load(1);
var role_data = {
'role':$("input[name='role']:checked").val(),
'tagsinput':$("#tagsinputval").val(),
'viewcode':$("#viewcode").val(),
}
$.post("{% url 'modify_pro_role' pro.id %}",role_data,function(r){
layer.closeAll('loading'); //关闭loading
if(r.status){
//修改成功
//window.location.reload();
layer.msg("修改成功")
}else{
//修改失败,提示
// console.log(r)
layer.msg(r.data)
}
})
};
$('#modify-project-role').click(function(){
modifyProjectRole();
});
// 修改文集导出配置
modifyProjectDownload = function(){
layer.load(1);
var download_data = {
'download_epub':$("input[name='download_epub']:checked").val(),
'download_pdf':$("input[name='download_pdf']:checked").val(),
}
$.post("{% url 'modify_pro_download' pro.id %}",download_data,function(r){
layer.closeAll('loading'); //关闭loading
if(r.status){
//修改成功
layer.msg("修改成功")
}else{
//修改失败,提示
// console.log(r)
layer.msg(r.data)
}
})
};
$('#modify-project-download').click(function(){
modifyProjectDownload();
});
// 生成文集文件
reportFile = function(pro_id,types){
layer.load(1)
var data = {'pro_id':pro_id,'types':types};
$.post("{% url 'genera_project_file' %}",data,function(r){
layer.closeAll('loading');
if(r.status){
layer.msg("生成完成")
window.location.reload();
}else{
layer.msg("生成出错,请稍后重试")
}
})
}
// 删除文集
delProject = function(pro_id){
layer.open({
type:1,
title:'删除文集',
area:'300px;',
id:'delPro',//配置ID
content:'<div style="margin-left:10px;">警告:此操作将删除文集及文集下所有文档!</div>',
btn:['确定','取消'], //添加按钮
btnAlign:'c', //按钮居中
yes:function (index,layero) {
layer.load(1);
data = {
'pro_id':pro_id,
}
$.post("{% url 'del_project' %}",data,function(r){
layer.closeAll('loading'); //关闭loading
if(r.status){
//删除成功
layer.msg('删除成功,即将返回文集列表……',function(){
window.location.href = "{% url 'manage_project' %}"
})
//layer.close(index)
}else{
//删除失败,提示
console.log(r)
layer.msg(r.data)
}
})
},
});
};
$('#delete-project').click(function(){
delProject('{{pro.id}}')
})
//导出MD
reportMd = function(pro_id){
layer.open({
type:1,
title:"导出文集",
area:"300px",
id:"reportMd",
content:'<div style="margin-left:10px;">将此文集下所有文档导出为MD文件并打包</div>',
btn:['确定','取消'], //添加按钮
btnAlign:'c', //按钮居中
yes:function (index,layero) {
var load = layer.load()
data = {
'project_id':pro_id,
}
$.post("{% url 'report_md' %}",data,function(r){
layer.closeAll('loading'); //关闭loading
if(r.status){
//导出成功
//文件下载提示
downloadMd(r.data)
}else{
//导出失败,提示
// console.log(r)
layer.msg(r.data)
}
layer.close(load)
})
},
})
};
$("#export-project").click(function(){
reportMd('{{pro.id}}');
});
//下载文件弹出框
downloadMd = function(download_link){
layer.open({
type:1,
title:"下载导出文档",
area:"300px",
id:"downloadMd",
content:'<p style="text-align:center;color:red;">请尽快下载,避免失效!</p><br><a class="layui-btn layui-btn-fluid download-md-link" href="'+ download_link + '" download="mrdoc_report_md.zip" >点击下载文件(zip)</a>',
//btn:['确定','取消'], //添加按钮
//btnAlign:'c', //按钮居中
success: function (layero, index) {
$(layero).find('.download-md-link').click(function () {
layer.closeAll();
})
}
})
};
</script>
{% endblock %}

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}文集权限管理{% endblock %}
{% block content %}
<link href="{% static 'tagsInput/tagsinput.css' %}" rel="stylesheet" type="text/css"/>

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}我协作的文集{% endblock %}
{% block content %}
<link href="{% static 'tagsInput/tagsinput.css' %}" rel="stylesheet" type="text/css"/>

View File

@ -0,0 +1,64 @@
{% extends 'app_doc/manage_base.html' %}
{% load static %}
{% block title %}文集设置{% endblock %}
{% block content %}
<div class="layui-row" style="margin-bottom: 10px;padding-left:15px;">
<span class="layui-breadcrumb" lay-separator=">">
<a href="{% url 'manage_project' %}">文集管理</a>
<a href="{% url 'modify_project' %}?pro_id={{pro.id}}">文集设置</a>
<a><cite>转让文集</cite></a>
</span>
</div>
<div class="layui-card-header" style="margin-bottom: 10px;">
<div class="layui-row">
<span style="font-size:18px;">转让文集:{{pro.name}}
</span>
</div>
<div class="layui-row">
<div class="layui-form">
<select name="user-select" id="user-select" lay-verify="" lay-search>
<option value="">选择用户,可搜索</option>
{% for user in user_list %}
<option value="{{user.username}}">{{user.first_name}}({{user.username}})</option>
{% endfor %}
</select>
</div>
</div>
<div class="layui-row" style="margin-top: 5px;">
<button class="layui-btn layui-btn-normal" id="transfer-project"><i class="layui-icon layui-icon-transfer"></i> 转让文集的管理权限及文档</button>
</div>
</div>
{% endblock %}
{% block custom_script %}
<script src="{% static '/tagsInput/tagsinput.js' %}" type="text/javascript" charset="utf-8"></script>
<script>
$.ajaxSetup({
data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
});
var form = layui.form;
// 转让文集
transferProject = function(){
layer.load(1);
data = {
'username':$("#user-select").val(),
}
$.post("{% url 'manage_pro_transfer' pro.id %}",data,function(r){
layer.closeAll('loading'); //关闭loading
if(r.status){
//转让成功
layer.msg('转让成功,即将返回文集列表……',function(){
window.location.href = "{% url 'manage_project' %}"
})
//layer.close(index)
}else{
//转让失败,提示
console.log(r)
layer.msg(r.data)
}
})
}
$("#transfer-project").click(function(){
transferProject();
})
</script>
{% endblock %}

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/manage_base.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}个人设置{% endblock %}
{% block content %}
<div class="layui-card-header" style="margin-bottom: 10px;">

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/create_base_2.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}修改文档{% endblock %}
{% block editor_type %}修改文档{% endblock %}

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/create_base_vditor.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}修改文档{% endblock %}
{% block editor_type %}修改文档{% endblock %}

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/create_base_2.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}修改文档模板{% endblock %}
{% block editor_type %}修改文档模板{% endblock %}

View File

@ -1,5 +1,5 @@
{% extends 'app_doc/create_base_vditor.html' %}
{% load staticfiles %}
{% load static %}
{% block title %}修改文档模板{% endblock %}
{% block editor_type %}修改文档模板{% endblock %}

View File

@ -1,4 +1,4 @@
{% load staticfiles %}
{% load static %}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
@ -7,10 +7,10 @@
<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="keywords" content="觅道文档,mrdoc,markdown,文档写作,在线教程,Python文档系统,django应用"/>
<meta name="description" content="MrDoc觅道文档是一个开源的在线文档系统由州的先生zmister.com基于 Python 的 Django 进行开发框架,适合作为个人和小型团队的文档、笔记和知识管理工具。" />
<meta name="keywords" content="{% if site_keywords != None %}{{site_keywords}}{% endif %}"/>
<meta name="description" content="{% if site_desc != None %}{{site_desc}}{% endif %}" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>MrDoc觅道文档 - 一个简单的开源在线文档系统</title>
<title>{% if site_name != None and site_name != '' %}{{site_name}} {% else %}站点标题{% endif %} - {% if site_sub_name != None %}{{site_sub_name}} {% else %}又一个MrDoc站点{% endif %}</title>
<link href="{% static 'layui/css/layui.css' %}" rel="stylesheet">
<link href="{% static 'mrdoc/mrdoc.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link rel="icon" href="{% static 'search/mrdoc_logo_300.png' %}" sizes="192x192" />
@ -145,7 +145,7 @@
{% endif %}
</div>
<div class="layui-card-body" style="font-size: 12px;">
<p class="layui-word-aux layui-elip">作者:{{p.create_user}}</p>
<p class="layui-word-aux layui-elip">作者:{% if p.create_user.first_name != '' %} {{p.create_user.first_name}} {% else %} {{p.create_user}}{% endif %}</p>
<p class="layui-word-aux layui-elip">最新:{{p.id | get_new_doc}}</p>
<p class="tooltip layui-word-aux">简介:
{% if p.intro == "" %}
@ -248,7 +248,7 @@
/*
scrollTop() 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
*/
footerTop = ($(window).scrollTop() + $(window).height() - footerHeight - 35)+"px";
footerTop = ($(window).scrollTop() + $(window).height() - footerHeight - 20)+"px";
// console.log("页脚高度:",footerHeight)
// console.log(footerTop)
// console.log($(".layui-header").height()+$(".layui-container").height())
@ -275,9 +275,6 @@
layui.form.render('select');
});
// 侦听Select下拉框的选择事件
form.on('select()', function(data){
var filter_data = form.val("filter-project-form");

View File

@ -1,7 +1,7 @@
<!-- 继承自模板app_doc/docs_base.html -->
{% extends 'app_doc/docs_base.html' %}
<!-- 引入静态文件 -->
{% load staticfiles %}
{% load static %}
{% block title %}{{ project.name }}{% endblock %}
@ -23,7 +23,7 @@
<h1>{{ project.name }}</h1><hr>
<p style="" class="project-doc-content-head">
<!--<i class="fa fa-th-large"></i> 发表:{{ doc.create_time }}-->
<i class="fa fa-user"></i> 创建人:{{ project.create_user.username }}
<i class="fa fa-user"></i> 创建人:{% if project.create_user.first_name != '' %} {{project.create_user.first_name}} {% else %} {{project.create_user}}{% endif %}
&nbsp;&nbsp;&nbsp;&nbsp;<i class="fa fa-timer"></i> 创建于:{{ project.create_time }}
</p>
{% endblock %}

View File

@ -1,7 +1,7 @@
<!-- 继承自模板app_doc/docs_base.html -->
{% extends 'app_doc/docs_base.html' %}
<!-- 引入静态文件 -->
{% load staticfiles %}
{% load static %}
{% block title %}搜索“{{kw}}”的结果 - {{ project.name }}{% endblock %}

View File

@ -21,7 +21,7 @@
<!--QQ强制全屏-->
<meta name="x5-page-mode" content="app">
<!--QQ应用模式-->
<title>觅道搜索</title>
<title>觅道搜索{% if site_name != None and site_name != '' %} - {{site_name}}{% endif %}</title>
<style>
* {
padding: 0;

View File

@ -1,4 +1,4 @@
{% load staticfiles %}
{% load static %}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
@ -7,10 +7,10 @@
<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="keywords" content="觅道文档,mrdoc,markdown,文档写作,在线教程,Python文档系统,django应用"/>
<meta name="description" content="MrDoc觅道文档是一个开源的在线文档系统由州的先生zmister.com基于 Python 的 Django 进行开发框架,适合作为个人和小型团队的文档、笔记和知识管理工具。" />
<meta name="keywords" content="{% if site_keywords != None %}{{site_keywords}}{% endif %}"/>
<meta name="description" content="{% if site_desc != None %}{{site_desc}}{% endif %}" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>{{ kw }} - 觅道搜索 - MrDoc觅道文档</title>
<title>{{ kw }} - 觅道搜索 - {% if site_name != None and site_name != '' %}{{ site_name }}{% endif %}</title>
<link href="{% static 'layui/css/layui.css' %}" rel="stylesheet">
<link href="{% static 'mrdoc/mrdoc.css' %}?version={{mrdoc_version}}" rel="stylesheet">
<link rel="icon" href="{% static 'search/mrdoc_logo_300.png' %}" sizes="192x192" />
@ -148,7 +148,8 @@
{% if request.user.is_authenticated %}
<li class="layui-nav-item">
<a href="javascript:void(0);">
<i class="layui-icon layui-icon-friends"></i> <span class="layui-hide-xs">{{request.user.username}}</span>
<i class="layui-icon layui-icon-friends"></i>
<span class="layui-hide-xs">{% if request.user.first_name != '' %}{{request.user.first_name}}{% else %}{{request.user.username}}{% endif %}</span>
</a>
<dl class="layui-nav-child">
<!-- <dd><a href="">基本资料</a></dd> -->

View File

@ -9,9 +9,9 @@
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta name="referrer" content="no-referrer">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords" content="{% block keyword %}{% endblock %}mrdoc"/>
<meta name="description" content="{% block description %}{% endblock %}" />
<title>{% block title %}标签:{{tag.name}}{% endblock %} - 觅道文档MrDoc</title>
<meta name="keywords" content="{% if site_keywords != None %}{{site_keywords}}{% endif %}"/>
<meta name="description" content="{% if site_desc != None %}{{site_desc}}{% endif %}" />
<title>{% block title %}标签:{{tag.name}}{% endblock %} - {% if site_name != None and site_name != '' %}{{ site_name }}{% else %}站点标题{% endif %}</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}}" />

View File

@ -1,7 +1,7 @@
<!-- 继承自模板app_doc/tag_doc_base.html -->
{% extends 'app_doc/tag_doc_base.html' %}
<!-- 引入静态文件 -->
{% load staticfiles %}
{% load static %}
{% block keyword %}{{ doc.name }},{{ project.name }},{% endblock %}
{% block description %}{{doc.pre_content | slice:"0:100"}}{% endblock %}

View File

@ -1,7 +1,7 @@
<!-- 继承自模板app_doc/tag_doc_base.html -->
{% extends 'app_doc/tag_doc_base.html' %}
<!-- 引入静态文件 -->
{% load staticfiles %}
{% load static %}
{% block keyword %}{{ tag.name }},{% endblock %}
{% block title %}标签:{{ tag.name }}{% endblock %}

View File

@ -1,10 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>

View File

@ -2,7 +2,7 @@
<!DOCTYPE html>
<html lang='zh-CN'>
<head>
<title>忘记密码 - MrDoc</title>
<title>忘记密码 - {% if site_name != None %}{{site_name}} {% else %}觅道文档MrDoc{% endif %}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="{% static 'layui/css/layui.css' %}" crossorigin="anonymous">

View File

@ -8,7 +8,7 @@
<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>用户登录 - MrDoc觅道文档</title>
<title>用户登录 - {% if site_name != None %}{{site_name}} {% else %}觅道文档MrDoc{% endif %}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="{% static 'layui/css/layui.css' %}" crossorigin="anonymous">
@ -59,7 +59,7 @@
<form class="layui-form" action="{% url 'login' %}" method='POST'>
{% csrf_token %}
<div class="layui-form-item">
<h2><strong>登录 - <a href="/">MrDoc</a></strong></h2>
<h2><strong>登录 - <a href="/">{% if site_name != None %}{{site_name}} {% else %}觅道文档{% endif %}</a></strong></h2>
</div>
<span style='color:red;margin-bottom: 10px;'>{{ errormsg }}</span>
<div class="layui-form-item">

View File

@ -2,7 +2,7 @@
<!DOCTYPE html>
<html lang='zh-CN'>
<head>
<title>用户注册 - MrDoc</title>
<title>用户注册 - {% if site_name != None %}{{site_name}} {% else %}觅道文档MrDoc{% endif %}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="{% static 'layui/css/layui.css' %}" crossorigin="anonymous">
@ -53,7 +53,7 @@
<form class="layui-form" action="{% url 'register' %}" method='POST'>
{% csrf_token %}
<div class="layui-form-item">
<h2><strong>注册 - MrDoc</strong></h2>
<h2><strong>注册 - {% if site_name != None %}{{site_name}} {% else %}觅道文档{% endif %}</strong></h2>
</div>
<span style='color:red;margin-bottom: 10px;'>{{ errormsg }}</span>
{% if enable_register_code %}