jamdocs[02] 为jamdocs添加上传文件功能
摘要
编写sphinx文档的时候,通常需要插入一些图片。
通过对jamdocs进行二次开发使得可以在jamdocs中上传本地图片和文件。
jamdocs 二次开发特色
jamdocs 是基于jam.py 开发的,jamdocs开发过程中 全程在浏览器中开发就可以了。
开发在 http://118.89.150.227:54322/builder.html 进行编程;
开发在 http://118.89.150.227:54322 预览管理页面效果。
不需要IDE;
builder.html 添加上传按钮
点击task,然后点击index.html,如图:
通过F12 定位到管理页面的 new 按钮。
id: “new-btn”
一共有 3个地方有new-button
- div [ templates -> default view -> form-footer] {模板}
- div [ topics-view -> modal-body -> modal-footer ] {文件列表窗口}
- div [ parameters-view -> -> “form-footer” ] {project 窗口}
1
2
3
4<div class="modal-footer">
<button id="new-upload-btn" class="btn" type="button"><i class="icon-plus"></i> New<small class="muted"> [Ins]</small></button>
<button id="new-btn" class="btn" type="button"><i class="icon-plus"></i> New<small class="muted"> [Ins]</small></button>
</div>
- div [ parameters-view -> -> “form-footer” ] {project 窗口}
在文件列表窗口添加new-upload-btn
保存下,查看管理页面效果,如图:。
在builder.html 页面中开发为upload 按钮添加 点击 功能
点击 task -> Groups -> Journals,选中topics,然后点击client_module 对应的是topic.js1
2
3
4
5
6item.view_form.find("#new-btn").off('click.task').on('click', function() {
new_doc(item);
});
item.view_form.find("#new-upload-btn").off('click.task').on('click', function() {
upload_file(item);
});
1 |
|
在服务端实现 move_image_file 功能;
在builder页面点击task ->server module1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import shutil
def move_image_file(task, dir_id,file_name):
targetdir=task.cur_project.project_path
print(targetdir)
print(file_name)
# /home/czq/rdkitcn
# zl2020-02-05_223632.678159.jpg
topics = task.topics.copy()
topics.set_where(id=dir_id)
topics.open()
path = os.path.join(topics.relative_path.value, topics.file_name.value)
srcpath=os.path.join(os.getcwd(),'static/files',file_name)
targetpath=os.path.join(targetdir,path,file_name)
# copyfile(srcpath,targetpath)
shutil.move(srcpath,targetpath)
topics.open()
return topics.id.value
def create_doc(task, dir_id, file_info):
file_name = file_info['file_name']
title = file_info['title']
topics = task.topics.copy()
topics.set_where(id=dir_id)
topics.open()
... ...
到这里,上传文件的功能就已经实现了。
编程技巧
光标必须定位在代码中,
ctrl+alt+f 在项目中查找,
ctrl+f 在当前编辑的页面中查找 。