From bddfe15cee008a8a3e064194cec7709f4f4b69e1 Mon Sep 17 00:00:00 2001 From: Ember Date: Sat, 13 Jul 2024 12:03:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8D=89=E7=A8=BF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/submission.js | 53 +++++++++++++++++++++++++++++++++++++++++++ submission/index.html | 14 ++++++++---- 2 files changed, 63 insertions(+), 4 deletions(-) diff --git a/js/submission.js b/js/submission.js index e2c53ba..ec408b8 100644 --- a/js/submission.js +++ b/js/submission.js @@ -628,3 +628,56 @@ async function uploadData() { }; + +document.getElementById('SaveDraft').addEventListener('click', async () => { + if (!s) { + alert("非法操作!请先登录。"); + return; + } + + if (confirm("确认保存草稿吗?如您之前有草稿内容,此操作会覆盖前一次的草稿内容。")) { + const draftContent = document.getElementById('input').value; + const currentPostId = submitted + 1; + const filePath = `upload/${curemail}/${currentPostId}/draft.json`; + + const draftData = new Blob([JSON.stringify({ content: draftContent }, null, 2)], { type: 'application/json' }); + + try { + await client.put(filePath, draftData); + alert("草稿已保存!"); + } catch (error) { + console.error("保存草稿时出错:", error); + alert("保存草稿失败,请稍后再试。"); + } + } +}); + +document.getElementById('LoadDraft').addEventListener('click', async () => { + if (!s) { + alert("非法操作!请先登录。"); + return; + } + + const currentPostId = submitted + 1; + const draftURL = `https://emberimg.oss-cn-beijing.aliyuncs.com/upload/${curemail}/${currentPostId}/draft.json`; + + try { + const response = await fetch(draftURL); + if (!response.ok) { + if (response.status === 404) { + alert("没有草稿记录!"); + } else { + throw new Error("无法加载草稿内容"); + } + } else { + const draftData = await response.json(); + document.getElementById('input').value = draftData.content; + preview.innerHTML = marked.parse(draftData.content); + alert("草稿已加载!"); + } + } catch (error) { + console.error("加载草稿时出错:", error); + alert("加载草稿失败,请稍后再试。"); + } +}); + diff --git a/submission/index.html b/submission/index.html index a5ef6dd..bf0650a 100644 --- a/submission/index.html +++ b/submission/index.html @@ -14,17 +14,21 @@ 2. 单个文件大小不能超过2MB,一次投稿最多上传10个文件。若上传文件有压缩文件,则只允许上传单个.zip或.rar格式压缩文件,大小不得超过20MB。 3. 若超过大小限制,请填写网盘外链。如有提取密码,请填写网盘提取密码。直接上传文件和网盘外链只能选择一种,禁止同时上传文件和填写网盘外链! 网盘外链: 网盘提取密码: 备注: 备注中可以填写自己想获得的用于访问加密内容的自定义密码。如已经获取过,请勿再次填写。 -内容详情 内容详情主要用于新生指南板块。如果您想投稿至资源共享板块,可以把此部分留空。 内容详情使用 markdown 语法。本页底部提供了一些基本的语法教程,已经熟悉此语法的投稿者可以跳过教程内容。 如需在内容详情上传图片,请在此处上传图片以获取标签,以直接粘贴到 markdown 中进行引用。我们推荐使用HTML标签以手动控制图片大小。 如果您的内容较多,建议您在编辑预览时将文本内容同步做好本地保存,或使用本地 markdown 编辑器(如Visual Studio Code、Typora等)编辑完成后再进行预览、投稿操作。 若您使用本地 markdown 编辑器,如需引用图片,请务必使用从此处获取的图片标签进行引用。请您放心:若图片不违规,您在此处上传的图片将在我们的服务器中长期保存,您获取的图片标签也长期有效,随时都能进行预览。 严禁上传任何与内容无关的图片! +内容详情 内容详情主要用于新生指南板块。如果您想投稿至资源共享板块,可以把此部分留空。 内容详情使用 markdown 语法。本页底部提供了一些基本的语法教程,已经熟悉此语法的投稿者可以跳过教程内容。 如需在内容详情上传图片,请在此处上传图片以获取标签,以直接粘贴到 markdown 中进行引用。我们推荐使用HTML标签以手动控制图片大小。 保存草稿功能只会保存“内容详情”的编辑内容,前面上传的文件等内容将不会保存! 请您务必在一次编辑未完成时保存草稿,否则您编辑的内容将在刷新页面后全部丢失! 严禁上传任何与内容无关的图片! 图片HTML引用标签: 复制引用标签 提交 +保存草稿 +加载草稿内容 markdown 基本语法教程 空格与换行 markdown 语法对于空格与换行并不敏感。您即使输入多个空格,markdown 也只会渲染一个空格。例如: 这是一个 示例文本,含有多个空格。 效果: 这是一个 示例文本,含有多个空格。 要创建换行,请在行末尾增加一个额外的行,例如: 这是第一行。 这是第二行。 效果: 这是第一行。 -这是第二行。"> +这是第二行。 +加粗与斜体 使用**文本**和*文本*来分别表示加粗和斜体。例如: +**加粗** *斜体* 效果:"> 基本的语法教程,已经熟悉此语法的投稿者可以跳过教程内容。
  • 如需在内容详情上传图片,请在此处上传图片以获取标签,以直接粘贴到 markdown 中进行引用。我们推荐使用HTML标签以手动控制图片大小。
  • -
  • 如果您的内容较多,建议您在编辑预览时将文本内容同步做好本地保存,或使用本地 markdown 编辑器(如Visual Studio Code、Typora等)编辑完成后再进行预览、投稿操作。
  • -
  • 若您使用本地 markdown 编辑器,如需引用图片,请务必使用从此处获取的图片标签进行引用。请您放心:若图片不违规,您在此处上传的图片将在我们的服务器中长期保存,您获取的图片标签也长期有效,随时都能进行预览。
  • +
  • 保存草稿功能只会保存“内容详情”的编辑内容,前面上传的文件等内容将不会保存!
  • +
  • 请您务必在一次编辑未完成时保存草稿,否则您编辑的内容将在刷新页面后全部丢失!
  • 严禁上传任何与内容无关的图片!

    图片HTML引用标签:

    @@ -554,6 +558,8 @@ async function fetchNoCache(url) {

    +
    +

    markdown 基本语法教程

    空格与换行