GithubHelp home page GithubHelp logo

zmister2016 / mrdoc Goto Github PK

View Code? Open in Web Editor NEW
2.8K 46.0 530.0 35.05 MB

mrdoc,online document system developed based on python. It is suitable for individuals and small teams to manage documents, wiki, knowledge and notes. 觅思文档,适合于个人和中小型团队的在线文档、知识库系统。

Home Page: https://mrdoc.pro/

License: GNU General Public License v3.0

Python 2.79% CSS 5.09% JavaScript 85.76% XSLT 0.03% HTML 6.30% PHP 0.03% Shell 0.01% Dockerfile 0.01%
python django markdown document-management knowledge-management notes-app wiki

mrdoc's People

Contributors

chinobing avatar debj031634 avatar dependabot[bot] avatar hi-mike avatar hundan2020 avatar jrt101 avatar nhnhwsnh avatar sartoshi-foot-dao avatar zhangwenlong8911 avatar zmister2016 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mrdoc's Issues

NameError: name 'unicode' is not defined

本地部署后,新建文集后可以正常使用,但是文集内有文档时从首页访问就出现这样的报错,请问是什么问题导致的呢?
NameError: name 'unicode' is not defined

如何连接数据库

您好,我们近期需要对所有人提交的文档做一个统计,想咨询一下,数据库连接信息是多少呢?
或者觅道有计划做统计报表功能吗?可以统计周期内每个人提交的文档数量之类的。

图片上传不能正确显示

首先,非常感谢你的付出,给我们带来怎么好的系统。我在使用中发现一个BUG:
版本:0.6.3
现象:上传图片成功,但是在文档中引用,不能正常显示。
情况:图片的文件名中,含有空格的都有以上问题。

在MAC下,很多系统截图的图片,文件名中都含有空格。如:“截屏2020-09-15 上午12.00.03.png”,希望能解决。谢谢。

附件上传问题

当前版本0.6.0
docker版本
附件上传提示“请求上传接口出现异常”,请问是什么原因
image

删除文档出错

使用的mysql+pymysql

Traceback (most recent call last):
 File "/opt/product/mrdoc_env/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
   return self.cursor.execute(sql, params)
          │    │      │       │    └ (3, '2020-12-04 15:02:11.076410', 1)
          │    │      │       └ 'UPDATE `app_doc_doc` SET `status` = %s, `modify_time` = %s WHERE `app_doc_doc`.`parent_doc` IN (SELECT U0.`id` FROM `app_doc...
          │    │      └ <function CursorWrapper.execute at 0x7f342ceee3b0>
          │    └ <django.db.backends.mysql.base.CursorWrapper object at 0x7f3421498c50>
          └ <django.db.backends.utils.CursorWrapper object at 0x7f3421498f90>
 File "/opt/product/mrdoc_env/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 71, in execute
   return self.cursor.execute(query, args)
          │    │      │       │      └ (3, '2020-12-04 15:02:11.076410', 1)
          │    │      │       └ 'UPDATE `app_doc_doc` SET `status` = %s, `modify_time` = %s WHERE `app_doc_doc`.`parent_doc` IN (SELECT U0.`id` FROM `app_doc...
          │    │      └ <function Cursor.execute at 0x7f342dee15f0>
          │    └ <pymysql.cursors.Cursor object at 0x7f3421498d90>
          └ <django.db.backends.mysql.base.CursorWrapper object at 0x7f3421498c50>
 File "/opt/product/mrdoc_env/lib/python3.7/site-packages/pymysql/cursors.py", line 163, in execute
   result = self._query(query)
            │    │      └ "UPDATE `app_doc_doc` SET `status` = 3, `modify_time` = '2020-12-04 15:02:11.076410' WHERE `app_doc_doc`.`parent_doc` IN (SEL...
            │    └ <function Cursor._query at 0x7f342dee1a70>
            └ <pymysql.cursors.Cursor object at 0x7f3421498d90>
 File "/opt/product/mrdoc_env/lib/python3.7/site-packages/pymysql/cursors.py", line 321, in _query
   conn.query(q)
   │    │     └ "UPDATE `app_doc_doc` SET `status` = 3, `modify_time` = '2020-12-04 15:02:11.076410' WHERE `app_doc_doc`.`parent_doc` IN (SEL...
   │    │     └ "UPDATE `app_doc_doc` SET `status` = 3, `modify_time` = '2020-12-04 15:02:50.042289' WHERE `app_doc_doc`.`parent_doc` IN (SEL...
   │    └ <function Connection.query at 0x7f342de949e0>
   └ <pymysql.connections.Connection object at 0x7f34213e8810>
 File "/opt/product/mrdoc_env/lib/python3.7/site-packages/pymysql/connections.py", line 505, in query
   self._affected_rows = self._read_query_result(unbuffered=unbuffered)
   │    │                │    │                             └ False
   │    │                │    └ <function Connection._read_query_result at 0x7f342de95050>
   │    │                └ <pymysql.connections.Connection object at 0x7f34213e8810>
   │    └ 0
   └ <pymysql.connections.Connection object at 0x7f34213e8810>
 File "/opt/product/mrdoc_env/lib/python3.7/site-packages/pymysql/connections.py", line 724, in _read_query_result
   result.read()
   │      └ <function MySQLResult.read at 0x7f342de95830>
   └ <pymysql.connections.MySQLResult object at 0x7f34214aa1d0>
 File "/opt/product/mrdoc_env/lib/python3.7/site-packages/pymysql/connections.py", line 1069, in read
   first_packet = self.connection._read_packet()
                  │    └ None
                  └ <pymysql.connections.MySQLResult object at 0x7f34214aa1d0>
 File "/opt/product/mrdoc_env/lib/python3.7/site-packages/pymysql/connections.py", line 676, in _read_packet
   packet.raise_for_error()
   │      └ <function MysqlPacket.raise_for_error at 0x7f342de8d440>
   └ <pymysql.protocol.MysqlPacket object at 0x7f34213c7f90>
 File "/opt/product/mrdoc_env/lib/python3.7/site-packages/pymysql/protocol.py", line 223, in raise_for_error
   err.raise_mysql_exception(self._data)
   │   │                     │    └ <member '_data' of 'MysqlPacket' objects>
   │   │                     └ <pymysql.protocol.MysqlPacket object at 0x7f34213c7f90>
   │   └ <function raise_mysql_exception at 0x7f342df13d40>
   └ <module 'pymysql.err' from '/opt/product/mrdoc_env/lib/python3.7/site-packages/pymysql/err.py'>
 File "/opt/product/mrdoc_env/lib/python3.7/site-packages/pymysql/err.py", line 107, in raise_mysql_exception
   raise errorclass(errno, errval)
         │          │      └ "You can't specify target table 'app_doc_doc' for update in FROM clause"
         │          └ 1093
         └ <class 'pymysql.err.OperationalError'>

django.db.utils.OperationalError: (1093, "You can't specify target table 'app_doc_doc' for update in FROM clause")

Server Error (500)

已经按照步骤进行,但是在浏览器中打开http://127.0.0.1:8000/ 时,浏览器显示

Server Error (500)

控制台全部信息

r:\MrDoc-master>L:\prg\py\Anaconda3_64\python.exe manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
April 23, 2020 - 11:55:41
Django version 3.1, using settings 'MrDoc.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[23/Apr/2020 11:56:51] "GET / HTTP/1.1" 500 145

发现私密文集游客可搜索

docker部署方式,新建第一个私密文集,新建文档。
以游客模式可以搜索到该文档和摘要
0.6.2版本,看了下今天docker pull jonnyan404/mrdoc-alpine下来的,菜单提示0.6.2而不是3

页面样式增加

你好!
请问是否可以增加多种页面风格的选择,现阶段白色占据了很大的范围(可能有风格调整的按钮,而我没有找到),这样子会很刺眼(不同的人可能不同的感觉吧)。
但是如果可以有暗黑风格之类的,我想应该会更吸引人吧。
望采纳,谢谢~

疑问

不知是我操作问题还是
在执行git pull
发现即使做migrate
仍然是个全新的环境
原来内容都不见了 ;(!

渲染出来的代码复制后会丢失空行,影响代码分块

我一直在寻找开源的 wiki 和 笔记,Mrdoc 的确很简洁,很喜欢。但是,该有的通病同样有。比如:

import datetime

print(datetime.date.today())

这样的代码块,很多类似的项目复制后都会丢失中间的空白行,变为如下:

import datetime
print(datetime.date.today())

这让本来写的很好的代码,一下子失去了分块,体验不好。能否做下优化。我只是一个后端,前端不懂,不知为啥绝大多数开源wiki和笔记都有这个问题。

文档下载导出

1、后台可以看到导出电子书、pdf,但是实际并不能
2、可以看入word,但是无法导出word

目前功能都很齐全,博主非常优秀。希望能优先把导入导出搞靓,那就是真的好了。

页面显示问题

作者你好,感谢你们团队的开发
我用mrdoc-alpine的image起了一个容器,然后页面内容和你使用手册的界面不同,主要体现在文集的文档大纲的不同,我只能创建二级文档,请问这是我配置的问题,还是这个docker image版本的问题呢?

图片上传后缀大小写问题

app_doc/util_upload_img.py 中的img_upload函数
if file_suffix.lower() not in allow_suffix: return {"success": 0, "message": "图片格式不正确"}
上传过程问有些图片的后缀是大写,也需要支持。

UnboundLocalError at /search/ local variable 'data_list' referenced before assignment

Python 3.7.3
MrDoc version 0.6.0

首页-->搜索框输入内容 --->点击搜索跳到搜索页--->点击标签--->报错

exceptions

Request Method: | GET
-- | --
http://192.168.1.100:8080/search/?kw=%E4%BB%8B%E7%BB%8D&type=tag&d_range=
2.2.13
UnboundLocalError
local variable 'data_list' referenced before assignment
/MrDoc/app_doc/views.py in search, line 2275
/usr/bin/python3
3.7.3
['/MrDoc',  '/usr/local/bin',  '/usr/lib/python37.zip',  '/usr/lib/python3.7',  '/usr/lib/python3.7/lib-dynload',  '/usr/local/lib/python3.7/dist-packages',  '/usr/lib/python3/dist-packages',  '/MrDoc']
星期六, 14 十一月 2020 11:01:15 +0800

Traceback

Environment:


Request Method: GET
Request URL: http://192.168.1.100:8080/search/?kw=%E4%BB%8B%E7%BB%8D&type=tag&d_range=

Django Version: 2.2.13
Python Version: 3.7.3
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'app_admin',
 'app_doc',
 'app_api',
 'django.contrib.sitemaps',
 'rest_framework']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'whitenoise.middleware.WhiteNoiseMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'app_admin.middleware.require_login_middleware.RequiredLoginMiddleware']



Traceback:

File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/exception.py" in inner
  34.             response = get_response(request)

File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py" in _get_response
  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/MrDoc/app_doc/views.py" in search
  2275.         paginator = Paginator(data_list, 12)

Exception Type: UnboundLocalError at /search/
Exception Value: local variable 'data_list' referenced before assignment

左右区域的同步滚动在Markdown中有多张图片时严重错位

当Markdown中插入很多图片后,preview区域和edit区域会严重错位,当前编辑区的内容会跑到预览的下一页。
可以参考
https://maxiang.io/
https://stackedit.io/editor
的实现

实现起来可能相对困难,但希望先提供一个能取消同步滚动的接口,不然就只能反复滚动降低效率。

跟下面的这个issues是相同的问题,属于editor.md的遗留问题了。
pandao/editor.md#56

小建议

文集文章创立后分类应当可以修改啊

设置可见和协作权限时,更快捷地选择用户

比如我用一个普通权限的账户创建的文集,如果要设置可见和协作,似乎只能按照用户名一个个手动添加。
而问题在于普通账户又看不到后台的用户列表,很痛苦。

比较理想的是,管理员账号能够在后台给用户分组,设置组织或者角色。然后设置可见和协作时,能够统一添加。
或者权宜之计是,在添加用户时,能够按已经输入的字母去搜索匹配,然后点选。
目前添加可见时,似乎添加的用户不存在也可以设置通过,而添加协作时,最后会检查一下合法性,不存在的用户无法添加,不太清楚内部的逻辑是怎样的。

增加用户错误

if username != '' and password != '' and email != '' and \
                '@' in email and re.match(r'^[0-9a-z]',username) and len(username) >= 6 :

用户名只能大写吗?

文集管理> 文集文档排序,排序出现bug

文集管理> 文集文档排序

假设文集中的文档出现父子类的排序,在文集管理> 文集文档排序 里将子类变为与父类同级,或者父子类关系互换后,这个文集的toc目录会消失或者不发生改变。

具体的js error如下:

Uncaught ReferenceError: index is not defined
    at Object.<anonymous> ((index):220)
    at f (layui.all.js:5)
    at layui.all.js:5

开发者入伙

之前我和楼主想法一样,准备使用django + gitbook构建一个文档网站,后来忙起来就搁置了,让我成为维护者吧,我2年后端开发,看看还要些啥条件的(头条上看到这个项目的)

MySQLdb._exceptions.OperationalError: (1061, "Duplicate key name 'app_admin_syssetting_name_9bb32e3f_uniq'")

mysql --version
mysql  Ver 15.1 Distrib 10.5.8-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

MrDoc version :v0.6.2
run python3 manage.py migrate get errors

root@93f4f7fef541:/MrDoc# python3 manage.py makemigrations
/usr/local/lib/python3.7/dist-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.26.2) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
Migrations for 'app_admin':
  app_admin/migrations/0009_auto_20201207_0932.py
    - Alter field name on syssetting
root@93f4f7fef541:/MrDoc# python3 manage.py migrate
/usr/local/lib/python3.7/dist-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.26.2) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
Operations to perform:
  Apply all migrations: admin, app_admin, app_api, app_doc, auth, contenttypes, sessions
Running migrations:
  Applying app_admin.0009_auto_20201207_0932...Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/mysql/base.py", line 71, in execute
    return self.cursor.execute(query, args)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/cursors.py", line 206, in execute
    res = self._query(query)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/cursors.py", line 319, in _query
    db.query(q)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/connections.py", line 259, in query
    _mysql.connection.query(self, query)
MySQLdb._exceptions.OperationalError: (1061, "Duplicate key name 'app_admin_syssetting_name_9bb32e3f_uniq'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/base.py", line 83, in wrapped
    res = handle_func(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/commands/migrate.py", line 234, in handle
    fake_initial=fake_initial,
  File "/usr/local/lib/python3.7/dist-packages/django/db/migrations/executor.py", line 117, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/usr/local/lib/python3.7/dist-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/usr/local/lib/python3.7/dist-packages/django/db/migrations/executor.py", line 245, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/usr/local/lib/python3.7/dist-packages/django/db/migrations/migration.py", line 124, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/usr/local/lib/python3.7/dist-packages/django/db/migrations/operations/fields.py", line 249, in database_forwards
    schema_editor.alter_field(from_model, from_field, to_field)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/base/schema.py", line 535, in alter_field
    old_db_params, new_db_params, strict)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/base/schema.py", line 715, in _alter_field
    self.execute(self._create_unique_sql(model, [new_field.column]))
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/base/schema.py", line 137, in execute
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 99, in execute
    return super().execute(sql, params)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 67, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/dist-packages/django/db/utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/mysql/base.py", line 71, in execute
    return self.cursor.execute(query, args)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/cursors.py", line 206, in execute
    res = self._query(query)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/cursors.py", line 319, in _query
    db.query(q)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/connections.py", line 259, in query
    _mysql.connection.query(self, query)
django.db.utils.OperationalError: (1061, "Duplicate key name 'app_admin_syssetting_name_9bb32e3f_uniq'")

MySQLdb._exceptions.OperationalError: (1280, "Incorrect index name 'app_admin_syssetting_name_9bb32e3f_uniq'")

mysql --version
mysql  Ver 15.1 Distrib 10.4.12-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

MrDoc version :v0.5.5

run python3 manage.py migrate get errors

root@30be98703e52:/MrDoc# python3 manage.py migrate
Operations to perform:
  Apply all migrations: admin, app_admin, app_api, app_doc, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying app_admin.0001_initial... OK
  Applying app_admin.0002_auto_20191117_0808...Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/mysql/base.py", line 71, in execute
    return self.cursor.execute(query, args)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/cursors.py", line 206, in execute
    res = self._query(query)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/cursors.py", line 319, in _query
    db.query(q)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/connections.py", line 259, in query
    _mysql.connection.query(self, query)
MySQLdb._exceptions.OperationalError: (1280, "Incorrect index name 'app_admin_syssetting_name_9bb32e3f_uniq'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/base.py", line 83, in wrapped
    res = handle_func(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/core/management/commands/migrate.py", line 234, in handle
    fake_initial=fake_initial,
  File "/usr/local/lib/python3.7/dist-packages/django/db/migrations/executor.py", line 117, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/usr/local/lib/python3.7/dist-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/usr/local/lib/python3.7/dist-packages/django/db/migrations/executor.py", line 245, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/usr/local/lib/python3.7/dist-packages/django/db/migrations/migration.py", line 124, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/usr/local/lib/python3.7/dist-packages/django/db/migrations/operations/fields.py", line 249, in database_forwards
    schema_editor.alter_field(from_model, from_field, to_field)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/base/schema.py", line 535, in alter_field
    old_db_params, new_db_params, strict)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/base/schema.py", line 735, in _alter_field
    self.execute(self._create_primary_key_sql(model, new_field))
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/base/schema.py", line 137, in execute
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 99, in execute
    return super().execute(sql, params)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 67, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/dist-packages/django/db/utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/dist-packages/django/db/backends/mysql/base.py", line 71, in execute
    return self.cursor.execute(query, args)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/cursors.py", line 206, in execute
    res = self._query(query)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/cursors.py", line 319, in _query
    db.query(q)
  File "/usr/local/lib/python3.7/dist-packages/MySQLdb/connections.py", line 259, in query
    _mysql.connection.query(self, query)
django.db.utils.OperationalError: (1280, "Incorrect index name 'app_admin_syssetting_name_9bb32e3f_uniq'")

nginx+uwsgi 部署完成后无法创建文档,一直在转圈圈,有遇到过吗?

image

GET /create_doc/ => generated 52748 bytes in 263 msecs (HTTP/1.1 200) 6 headers in 332 bytes (1 switches on core 1)
POST /create_project/ => generated 1889 bytes in 184 msecs (HTTP/1.1 403) 5 headers in 155 bytes (1 switches on core 0)
POST /create_project/ => generated 1889 bytes in 232 msecs (HTTP/1.1 403) 5 headers in 155 bytes (1 switches on core 1)
POST /create_project/ => generated 1889 bytes in 181 msecs (HTTP/1.1 403) 5 headers in 155 bytes (1 switches on core 0)
POST /create_project/ => generated 1889 bytes in 172 msecs (HTTP/1.1 403) 5 headers in 155 bytes (1 switches on core 1)
POST /create_project/ => generated 1889 bytes in 172 msecs (HTTP/1.1 403) 5 headers in 155 bytes (1 switches on core 0)
POST /create_project/ => generated 1889 bytes in 216 msecs (HTTP/1.1 403) 5 headers in 155 bytes (1 switches on core 1)
POST /create_project/ => generated 1889 bytes in 184 msecs (HTTP/1.1 403) 5 headers in 155 bytes (1 switches on core 0)
POST /create_project/ => generated 1889 bytes in 171 msecs (HTTP/1.1 403) 5 headers in 155 bytes (1 switches on core 1)
POST /create_project/ => generated 1889 bytes in 193 msecs (HTTP/1.1 403) 5 headers in 155 bytes (1 switches on core 0)
POST /create_doc/ => generated 1889 bytes in 182 msecs (HTTP/1.1 403) 5 headers in 155 bytes (1 switches on core 1)

mindmap思维导图增加设置自定义高度

editormd.js
改2行

else if (/^mindmap/i.test(lang)){
    var svgheight = lang.match(/mindmap(\S*)/)[1];    //截取数字作为图形高度
   //....
   return "<svg class='mindmap' style='width: 100%;min-height: 150px;height: "+ svgheight + "px;' id='mindmap-"+ map_id +"'>"+code+"</svg>";

在mindmap后紧跟数值,思维导图就可以使用高度参数了:

```mindmap300
# a
## b
## c
```

http正常,但是用https刷不出来大纲

在群呼上用docker搭建,在局域网用ip访问创建了几个文件,后用fpr映射到公网,用域名访问发现https协议时不能正常获取到文档的大纲。

用 https 时无法正常获取大纲

title

但是用 http 是正常获的

title

无法保存文档

我在部署之后,新建文集可以,但是点进文集去页面上就会一直转圈卡住,页面上的其它按钮也点不了。保存文档也会卡住。我看uwsgi的日志中有这样的错误:

[Sun Oct 25 11:31:14 2020] POST /get_pro_doc_tree/ => generated 1885 bytes in 3 msecs (HTTP/2.0 403) 3 headers in 102 bytes (1 switches on core 0)

不知如何解决?

关于新功能和贡献的疑问

  • 新功能:看到公众号说有tag功能,但是没有在commit历史中没有看到对应的commit,请问是还没有release么?
  • 我们这边有在使用mrdoc作为文档共享工具,修改了部分bug,不知道这边对于PR的接收程度是如何的?

加密文章

你好,提个建议:
我觉得可以加入一个新的功能(可通过插件方式实现):就是文章中的资料可能非常私密,但是又不是私密到自己的银行卡密码啥的,比如某个问题的算法解决(这个可能对自己来说非常私密,不想让别人知道),但是如果外人能登入我的mrdoc网站,那就能随便看数据了,不管你建立的是私密、公开文档,有admin账号密码就能为所欲为了。这种情况下,是否可以考虑加入一个类似于 vuepress 的 加密插件vuepress-plugin-encrypt(阿里的语雀文档也有该功能),后台写入读取存储都是加密后的数据,只有在前端查看时输入对应的解密秘钥才能看到文章中加密的部分内容。当然为了提高体验性,在前端可以设置秘钥解密所有文章,可以设置有效时间等等,省的每看下私密内容都要输入秘钥等等。参考下:https://www.imaegoo.com/2020/vuepress-encrypt/

建议增加登录验证码功能

建议师傅增加登陆验证码功能防止破暴力破解的风险,一般都会放到公网上,如果没有验证码就可以一直爆破,一来有风险二来莫名就增加了服务器的负载,希望采纳,谢谢

TODO:功能和优化

  1. 可通过api获取 公开/分享 文档名称(或系统生成并提供唯一序号也可)的 text/markdown/json 等格式的文本,便于命令行直接操作.
  2. 音视频 iframe 标签域名白名单模式/不限制模式选项.
  3. 音视频本地流式加载.
  4. 文档评论和钉钉/webhook通知功能.
  5. 时间线
  6. window打包免安装包迭代
  7. 文档附件常见格式预览
  8. 文档内容块权限
  9. 文集转让
  10. 文集关注
  11. 个人文集批量导出
  12. 移动端阅读体验优化
  13. 附件格式增加支持通配符,例如*
  14. 首页视图切换(文集视图/文档视图)
  15. 首页置顶文集
  16. 站点信息配置
  17. 文集大纲配置,拖动排序
  18. 文档水印
  19. 文档模糊搜索
  20. 单页文档分享链接功能+分享链接统一管理(批量取消)页面,有个分享按钮,可参考语雀
  21. 文档打印PDF功能,有个打印按钮,可参考语雀
  22. 可设置某个文集作为首页,即输入站点域名默认打开此文集
  23. 个人后台文档批量操作(删除、移动、复制、层级改变)
  24. 搜索多关键词匹配
  25. 搜索支持正则表达式
  26. 导入的文集,全局搜索问题优化
  27. 文集内搜索结果高亮
  28. 在线编辑excel,js版本 https://mengshukeji.github.io/LuckysheetDocs/
  29. 文档编辑导航栏固定OR样式调整,原型图参考6楼图片
  30. 文集文章倒序排列
  31. 目录栏默认收起
  32. 搜索页面左右布局,左边显示搜索结果,右边预览并实现浏览器的CTRL+F高亮效果
  33. 用户组
  34. 权限组
  35. 文集回收站/文集删除二次确认(类似GitHub删除repo效果)
  36. 用户登陆/操作/等等日志记录
  37. 标签动态更新
  38. 搜索页面优化
  39. 附件格式区分大小写优化为不区分大小写
  40. editormd编辑器,代码块嵌套结束符判断优化
  41. emoji表情语法去除?可以通过网站复制emoji,选择更丰富.
  42. 文档内容大于一定数值,内容分页处理或者前端采用懒加载方式加载.(某些单篇文档大小500K,全量加载会导致页面响应迟钝.)

暂时这么多,后续想到再继续添加.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.