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
-
-
-
- 发布时间:2026-1-1
-
-
- 浏览:999
- 点赞:999
- 分享:999
-
-
hello
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)