diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/_inst.sh b/_inst.sh old mode 100644 new mode 100755 diff --git a/_setup.sh b/_setup.deb.sh old mode 100644 new mode 100755 similarity index 100% rename from _setup.sh rename to _setup.deb.sh diff --git a/static/public/dnfs.html b/static/public/dnfs.html index 59160d2..83295a3 100644 --- a/static/public/dnfs.html +++ b/static/public/dnfs.html @@ -9,20 +9,6 @@
-
- -

title

- - - -
- 浏览:999 - 点赞:999 - 分享:999 -
-
hello
@@ -32,6 +18,7 @@
+
diff --git a/static/public/favicon.ico b/static/public/favicon.ico new file mode 100644 index 0000000..7c07ec0 Binary files /dev/null and b/static/public/favicon.ico differ diff --git a/static/public/js/dnfs.js b/static/public/js/dnfs.js index 4960e91..52aa2cb 100644 --- a/static/public/js/dnfs.js +++ b/static/public/js/dnfs.js @@ -85,6 +85,8 @@ async function addNode(token, pid, title, content) { throw new Error(result.message || `添加节点失败(HTTP ${res.status})`); } + getNode(token, stack[stack.length - 1]).then(load_notes); + //if (result.success) { console.log(`添加节点成功`, result); return result @@ -96,18 +98,60 @@ async function addNode(token, pid, title, content) { } catch (err) { alert(err.message || '接口请求失败,请检查后端服务是否启动'); - console.error('获取节点请求异常:', err); + console.error('添加节点请求异常:', err); } finally { } } +async function deleteNode(token, id) { + try { + obj = {"id": String(id)}; + jsonBody = JSON.stringify(obj); + console.log(jsonBody); + + const res = await fetch('/delete_note', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}`, + 'Target-Url': 'http://127.0.0.1:8006' + }, + body: jsonBody + }); + + const responseText = await res.text(); + let result; + + try { + result = JSON.parse(responseText); + } catch { + console.error(`删除笔记接口返回非 JSON 内容(HTTP ${res.status}):`, responseText); + throw new Error('服务器响应格式异常,请稍后重试'); + } + + if (!res.ok) { + throw new Error(result.message || `删除节点失败(HTTP ${res.status})`); + } + + stack.pop(); + getNode(token, stack[stack.length - 1]).then(load_notes); + + console.log(`删除节点成功`); + return result + + } catch (err) { + alert(err.message || '接口请求失败,请检查后端服务是否启动'); + console.error('删除节点请求异常:', err); + } +} + /* by shufeng2012 */ function renderMarkdown(element, content) { /* Markdown渲染 */ const md = window.markdownit(); - element.innerHTML = md.render(content); + element.innerHTML = md.render(content, {html: false}); } /* ---- by qing ---- */ @@ -119,6 +163,7 @@ var input_note_content = document.getElementById('input-note-content'); var input_note_submit = document.getElementById('input-note-submit'); var input_note_clear = document.getElementById('input-note-clear'); var recommend_list = document.getElementById('recommend-list'); +var delete_note = document.getElementById('delete-note'); input_note_submit.addEventListener('click', function(event) { var title = input_note_title.value @@ -136,9 +181,37 @@ input_note_clear.addEventListener('click', function(event) { input_note_content.value = ""; }) +delete_note.addEventListener('click', (event) => { + var id = (stack.length == 0) ? 0 : stack[stack.length - 1]; + if (id == 0) { + alert('无法删除根节点'); + console.log("节点未删除"); + } + else { + deleteNode(token, id); + } +}) + function load_notes(main_node) { - article_title.textContent = ""; - article_content.textContent = ""; + + /* 这个不能设置为空的 */ + //article_title.textContent = ""; + //article_content.textContent = ""; + + if (input_note_title.value != "" || input_note_content.value != "") { + if (confirm("是否放弃当前输入的内容?") == true) { + input_note_title.value = ""; + input_note_content.value = ""; + } else { + if (stack.length != 0) { + return; + } + } + } else { + input_note_title.value = ""; + input_note_content.value = ""; + } + recommend_list.replaceChildren(); //alert(stack.length) @@ -155,29 +228,29 @@ function load_notes(main_node) { recommend_list.appendChild(bak) } for (let i in main_node) { - item = main_node[i] - var card = document.createElement('div'); + let item = main_node[i] + let card = document.createElement('div'); card.className = "card"; card.addEventListener('click', function(event) { var id = Number(item.id) stack.push(id) getNode(token, id).then(load_notes) }); - var ttl = document.createElement('center'); - var ttl1 =document.createElement('h3'); + let ttl = document.createElement('center'); + let ttl1 =document.createElement('h3'); ttl1.textContent = item.title; ttl.appendChild(ttl1); card.appendChild(ttl); - var vit_div = document.createElement('p'); - var lke_div = document.createElement('p'); - var srd_div = document.createElement('p'); + let vit_div = document.createElement('p'); + let lke_div = document.createElement('p'); + let srd_div = document.createElement('p'); vit_div.textContent = "观看数:" + item.visit_count; lke_div.textContent = "点赞数:" + item.like_count; srd_div.textContent = "分享数:" + item.share_count; ttl.appendChild(vit_div); ttl.appendChild(lke_div); ttl.appendChild(srd_div); - var ctt = document.createElement('p'); + let ctt = document.createElement('p'); renderMarkdown(ctt, item.content); card.appendChild(ctt) recommend_list.appendChild(card)