[feat] use id anchors replace NODE tag
All checks were successful
/ deploy (push) Successful in 47s

This commit is contained in:
SouthFox 2024-10-14 23:55:46 +08:00
parent f927a10755
commit db154ee461
6 changed files with 45 additions and 32 deletions

View file

@ -2,7 +2,7 @@
title = 2024-10-08 title = 2024-10-08
author = ["SouthFox"] author = ["SouthFox"]
date = 2024-10-08T23:30:00+08:00 date = 2024-10-08T23:30:00+08:00
lastmod = 2024-10-09T01:03:18+08:00 lastmod = 2024-10-14T23:27:31+08:00
tags = ["publish"] tags = ["publish"]
draft = false draft = false
+++ +++
@ -12,7 +12,7 @@ draft = false
[ReactFlux](https://github.com/electh/ReactFlux) 是一款 [Miniflux]({{< relref "../articles/Miniflux - 一款简约的在线 RSS 阅读器.md" >}}) 的三方阅读器,需要 Miniflux 的 API token (也支持账密)即可登录,支持条目滑过屏幕后标为已读功能,有效解决未读过载问题。因为之前策略是打开主页来看一看有感兴趣的才点进去,而其它的条目就不管了,而只有手动点进去的条目才会标为已读,这就导致未读会越积越多,如果两三天没打开的话也会出现没有翻到上次查看的位置导致漏掉。 [ReactFlux](https://github.com/electh/ReactFlux) 是一款 [Miniflux]({{< relref "../articles/Miniflux - 一款简约的在线 RSS 阅读器.md" >}}) 的三方阅读器,需要 Miniflux 的 API token (也支持账密)即可登录,支持条目滑过屏幕后标为已读功能,有效解决未读过载问题。因为之前策略是打开主页来看一看有感兴趣的才点进去,而其它的条目就不管了,而只有手动点进去的条目才会标为已读,这就导致未读会越积越多,如果两三天没打开的话也会出现没有翻到上次查看的位置导致漏掉。
## AI 降温包 <span class="tag"><span class="NODE">NODE</span></span> {#ai-降温包} ## AI 降温包 {#8fa9cca6-8851-496d-bd3b-ae0721579c2c}
好好鼓捣了番 [RSS]({{< relref "../main/20240927003911-rss.md" >}}) 的阅读设置所以把积压大半年的几千条未读给解决了。发现这半年出现的最多的就是 [AI]({{< relref "../main/20241008234023-ai.md" >}}) 相关了,发现有趣的一点就是从一开始讲发展讲效用慢慢出现了看衰的观点,那就裁剪下来看个乐吧。 好好鼓捣了番 [RSS]({{< relref "../main/20240927003911-rss.md" >}}) 的阅读设置所以把积压大半年的几千条未读给解决了。发现这半年出现的最多的就是 [AI]({{< relref "../main/20241008234023-ai.md" >}}) 相关了,发现有趣的一点就是从一开始讲发展讲效用慢慢出现了看衰的观点,那就裁剪下来看个乐吧。
@ -43,3 +43,12 @@ draft = false
- [OpenAI 的“愚蠢”把戏已经把大型科技企业“彻底毒害”了_OpenAI_Edward Zitron_InfoQ精选文章](https://www.infoq.cn/article/GiyOQvFzRw355bO5kLus) - [OpenAI 的“愚蠢”把戏已经把大型科技企业“彻底毒害”了_OpenAI_Edward Zitron_InfoQ精选文章](https://www.infoq.cn/article/GiyOQvFzRw355bO5kLus)
> 我们可能正处于一场 AI 次贷危机之中,成千上万的公司已经支付了过高的费用来集成 AI 技术,而这些技术可能并不稳定,也不一定能够带来预期的收益或回报。 > 我们可能正处于一场 AI 次贷危机之中,成千上万的公司已经支付了过高的费用来集成 AI 技术,而这些技术可能并不稳定,也不一定能够带来预期的收益或回报。
## 总结 {#总结}
好吧,开始愉快的写起总结了,现在应该没有什么不好了,感觉应该多多的写点,先从摘抄写起,然后一步一步的过渡到读书笔记还有什么更有「希望」的用法之上。
今天去到公司然后就是在弄解决方案的事,王勇好像跟远润似乎也聊过,觉得我们俩之间配合不好,似乎也吹起了枕边风的样子,反正放平心态总之这不是我要管的事了。下午在弄集群的事然后鼓捣鼓捣相关脚本,然后晚上回来躺着睡了一小时好像,现在不怎么累,但首先还是有点进展了吧。
明天把相关书给看一下,最好做点读书笔记吧。

View file

@ -2,7 +2,7 @@
title = "中国文化课" title = "中国文化课"
author = ["SouthFox"] author = ["SouthFox"]
date = 2024-06-04T00:13:00+08:00 date = 2024-06-04T00:13:00+08:00
lastmod = 2024-06-07T23:47:52+08:00 lastmod = 2024-10-14T23:27:02+08:00
tags = ["publish"] tags = ["publish"]
draft = false draft = false
+++ +++
@ -43,7 +43,7 @@ draft = false
[孔子]({{< relref "../main/20240604004229-孔子.md" >}})、[老子]({{< relref "../main/20240604004243-老子.md" >}})、[释迦摩尼]({{< relref "../main/20240604004300-释迦摩尼.md" >}})、[墨子]({{< relref "../main/20240604004316-墨子.md" >}})、[孟子]({{< relref "../main/20240604004332-孟子.md" >}})、[苏格拉底]({{< relref "../main/20240604004348-苏格拉底.md" >}}) …… [孔子]({{< relref "../main/20240604004229-孔子.md" >}})、[老子]({{< relref "../main/20240604004243-老子.md" >}})、[释迦摩尼]({{< relref "../main/20240604004300-释迦摩尼.md" >}})、[墨子]({{< relref "../main/20240604004316-墨子.md" >}})、[孟子]({{< relref "../main/20240604004332-孟子.md" >}})、[苏格拉底]({{< relref "../main/20240604004348-苏格拉底.md" >}}) ……
### 在路上-第 010-012 讲 <span class="tag"><span class="NODE">NODE</span></span> {#在路上-第-010-012-讲} ### 在路上-第 010-012 讲 {#ff7494ae-c03d-4aa9-991e-8052b3775521}
中国先贤总走在路上: 中国先贤总走在路上:

View file

@ -2,7 +2,7 @@
title = "程序员的底层思维" title = "程序员的底层思维"
author = ["SouthFox"] author = ["SouthFox"]
date = 2024-06-23T21:57:00+08:00 date = 2024-06-23T21:57:00+08:00
lastmod = 2024-06-25T00:18:49+08:00 lastmod = 2024-10-14T23:26:48+08:00
tags = ["publish"] tags = ["publish"]
draft = false draft = false
+++ +++
@ -71,7 +71,7 @@ draft = false
## 维度思维 {#维度思维} ## 维度思维 {#维度思维}
### 5.3.4 分析矩阵 P99 <span class="tag"><span class="NODE">NODE</span></span> {#5-dot-3-dot-4-分析矩阵-p99} ### 5.3.4 分析矩阵 P99 {#82e4078d-12b5-46a9-9205-1536d34fa973}
[分析矩阵]({{< relref "../main/20240625000430-分析矩阵.md" >}})是一个分析工具,可以用来将复杂的场景变成「填空题」,选出要用什么策略和模式。例如: [分析矩阵]({{< relref "../main/20240625000430-分析矩阵.md" >}})是一个分析工具,可以用来将复杂的场景变成「填空题」,选出要用什么策略和模式。例如:

View file

@ -2,7 +2,7 @@
title = "SICP 第一课" title = "SICP 第一课"
author = ["SouthFox"] author = ["SouthFox"]
date = 2022-09-02T22:17:00+08:00 date = 2022-09-02T22:17:00+08:00
lastmod = 2022-09-02T22:42:53+08:00 lastmod = 2024-10-14T23:52:36+08:00
tags = ["publish"] tags = ["publish"]
draft = false draft = false
+++ +++
@ -20,7 +20,7 @@ draft = false
- 元语言抽象 - 元语言抽象
## Lisp 基础 <span class="tag"><span class="NODE">NODE</span></span> {#lisp-基础} ## Lisp 基础 {#73b2ba50-6129-442c-9c4c-908e8e1aef07}
### 括号 {#括号} ### 括号 {#括号}

View file

@ -1,7 +1,7 @@
+++ +++
title = "卡片笔记写作法:如何实现从阅读到写作" title = "卡片笔记写作法:如何实现从阅读到写作"
author = ["SouthFox"] author = ["SouthFox"]
lastmod = 2024-06-11T00:00:10+08:00 lastmod = 2024-10-14T23:26:37+08:00
tags = ["publish"] tags = ["publish"]
draft = false draft = false
+++ +++
@ -14,7 +14,7 @@ draft = false
这是由于[必要难度]({{< relref "../main/必要难度理论.md" >}})的存在,而卡片笔记法人为地增加了[存储强度]({{< relref "../main/存储强度.md" >}})。 这是由于[必要难度]({{< relref "../main/必要难度理论.md" >}})的存在,而卡片笔记法人为地增加了[存储强度]({{< relref "../main/存储强度.md" >}})。
#### 卡片笔记中有哪些索引P9 <span class="tag"><span class="NODE">NODE</span></span> {#卡片笔记中有哪些索引-p9} #### 卡片笔记中有哪些索引P9 {#863e0ce8-6825-44b3-9c6e-4dd806ec1b72}
- 主题索引 - 主题索引
- 主题概览 - 主题概览
@ -42,7 +42,7 @@ draft = false
### 关于写作,你需要知道的 {#关于写作-你需要知道的} ### 关于写作,你需要知道的 {#关于写作-你需要知道的}
#### 要如何在心流状态下写作P39 <span class="tag"><span class="NODE">NODE</span></span> {#要如何在心流状态下写作-p39} #### 要如何在心流状态下写作P39 {#de662c2a-5807-4511-8ddb-cecda0872328}
将一个没有定式的任务分解成一个个小又清晰的任务, 将一个没有定式的任务分解成一个个小又清晰的任务,
例如写作可以分解成搜集资料、拟定大纲、修改措辞等, 例如写作可以分解成搜集资料、拟定大纲、修改措辞等,
@ -66,7 +66,7 @@ draft = false
必须让洞见引领方向。 必须让洞见引领方向。
#### 卡片笔记法背后的灵感是什么P47 <span class="tag"><span class="NODE">NODE</span></span> {#卡片笔记法背后的灵感是什么-p47} #### 卡片笔记法背后的灵感是什么P47 {#e40a5ed2-36a5-4b5a-81a9-cbbf2b24afe6}
一个想法或者笔记只有在它的上下文才有意义,而它的上下文不一定是它在文章中的出处。 一个想法或者笔记只有在它的上下文才有意义,而它的上下文不一定是它在文章中的出处。
所以卡片笔记法是要让笔记与不同上下文聚集起来并起到相应的作用。 所以卡片笔记法是要让笔记与不同上下文聚集起来并起到相应的作用。
@ -88,13 +88,13 @@ draft = false
### 关于写作,你需要做的 {#关于写作-你需要做的} ### 关于写作,你需要做的 {#关于写作-你需要做的}
#### 如何使用卡片笔记法撰写论文P61 <span class="tag"><span class="NODE">NODE</span></span> {#如何使用卡片笔记法撰写论文-p61} #### 如何使用卡片笔记法撰写论文P61 {#c4bbcb59-b00d-4971-9c52-eeb3b2cec27d}
- 记下[闪念笔记]({{< relref "../main/闪念笔记.md" >}}),记下脑中闪过的一个想法。 - 记下[闪念笔记]({{< relref "../main/闪念笔记.md" >}}),记下脑中闪过的一个想法。
- 根据闪念笔记,整理成[文献笔记]({{< relref "../main/文献笔记.md" >}}),文献笔记要尽可能简短,并使用自己话语去转写,不能抄写而不去理解它的含义。 - 根据闪念笔记,整理成[文献笔记]({{< relref "../main/文献笔记.md" >}}),文献笔记要尽可能简短,并使用自己话语去转写,不能抄写而不去理解它的含义。
- 浏览前两步产生的笔记(最好每天划分相应时间),仔细研究跟自己的课题、项目、兴趣有何关联。 - 浏览前两步产生的笔记(最好每天划分相应时间),仔细研究跟自己的课题、项目、兴趣有何关联。
- 写下[永久笔记]({{< relref "../main/永久笔记.md" >}}),不是为了收集,而是为了衍生想法、论点和讨论。 - 写下[永久笔记]({{< relref "../main/永久笔记.md" >}}),不是为了收集,而是为了衍生想法、论点和讨论。
- 归档文献笔记和永久笔记,放入到笔记软件中,附上便于以后翻阅的链接和[索引](#卡片笔记中有哪些索引-p9)。 - 归档文献笔记和永久笔记,放入到笔记软件中,附上便于以后翻阅的链接和[索引](#863e0ce8-6825-44b3-9c6e-4dd806ec1b72)。
- 在系统自下而上的发展主题,头脑风暴,检查笔记链、想法群。 - 在系统自下而上的发展主题,头脑风暴,检查笔记链、想法群。
- 积攒一定想法后,就能产生一个写作主题了,将它排列出来,取舍要写出什么。 - 积攒一定想法后,就能产生一个写作主题了,将它排列出来,取舍要写出什么。
- 写成初稿、完善、校对。 - 写成初稿、完善、校对。
@ -106,7 +106,7 @@ draft = false
### 简洁是最重要的 {#简洁是最重要的} ### 简洁是最重要的 {#简洁是最重要的}
#### 记卡片笔记容易产生的混乱是什么? P87 <span class="tag"><span class="NODE">NODE</span></span> {#记卡片笔记容易产生的混乱是什么-p87} #### 记卡片笔记容易产生的混乱是什么? P87 {#985649d2-36af-471a-b83e-0d85df60060e}
- 把所有笔记都当成[永久笔记]({{< relref "../main/永久笔记.md" >}}),这样会导致被没那么好的笔记淹没。 - 把所有笔记都当成[永久笔记]({{< relref "../main/永久笔记.md" >}}),这样会导致被没那么好的笔记淹没。
- 只记与项目有关的笔记,为何要限制自己? - 只记与项目有关的笔记,为何要限制自己?
@ -118,7 +118,7 @@ draft = false
### 让工作推动你前进 {#让工作推动你前进} ### 让工作推动你前进 {#让工作推动你前进}
#### 为什么要拿着笔阅读? P102 <span class="tag"><span class="NODE">NODE</span></span> {#为什么要拿着笔阅读-p102} #### 为什么要拿着笔阅读? P102 {#3838da11-9f02-438a-9d94-1dd85195d458}
阅读中拿着笔写作是检验自己是否理解的最好方法,如果不拿自己的话转写,不理解书中的话就放入卡片盒,那么之后就会遇到阻碍。 阅读中拿着笔写作是检验自己是否理解的最好方法,如果不拿自己的话转写,不理解书中的话就放入卡片盒,那么之后就会遇到阻碍。
@ -143,13 +143,13 @@ draft = false
### 阅读和理解 {#阅读和理解} ### 阅读和理解 {#阅读和理解}
#### 如何避免笔记产生误差? P137 <span class="tag"><span class="NODE">NODE</span></span> {#如何避免笔记产生误差-p137} #### 如何避免笔记产生误差? P137 {#ee9b2095-bc67-42eb-9559-4f092dc4cda5}
要意识到[确认偏差]({{< relref "../main/确认偏差.md" >}}),类似达尔文,看到对自己理论最具批判性的论点就会马上记录下来。 要意识到[确认偏差]({{< relref "../main/确认偏差.md" >}}),类似达尔文,看到对自己理论最具批判性的论点就会马上记录下来。
- 确认是否将任务分解,并是否理解材料中的文本。 - 确认是否将任务分解,并是否理解材料中的文本。
- 确认为阅读的内容做出了准确的笔记。 - 确认为阅读的内容做出了准确的笔记。
- 找到笔记之间的[关联](#卡片笔记法背后的灵感是什么-p47),并建立联系。 - 找到笔记之间的[关联](#e40a5ed2-36a5-4b5a-81a9-cbbf2b24afe6),并建立联系。
笔记应该收集相关不相关的,而不是反对不反对的。 笔记应该收集相关不相关的,而不是反对不反对的。
@ -237,9 +237,9 @@ draft = false
### 完稿和修订 {#完稿和修订} ### 完稿和修订 {#完稿和修订}
#### 两个关键点 P217 <span class="tag"><span class="NODE">NODE</span></span> {#两个关键点-p217} #### 两个关键点 P217 {#939e4765-29b2-4b7d-b4ea-c187cd2a59ee}
- 确保笔记的结构盒灵活性,[如使用笔记写一篇文章](#如何使用卡片笔记法撰写论文-p61)中,勤用卡片笔记法写笔记就能有很多材料去写文章,要挑出真正合适的。 - 确保笔记的结构盒灵活性,[如使用笔记写一篇文章](#c4bbcb59-b00d-4971-9c52-eeb3b2cec27d)中,勤用卡片笔记法写笔记就能有很多材料去写文章,要挑出真正合适的。
- 尝试写多个项目的手稿,如同流水线一样,一个流水线的副产品往往可以被另一条流水线所用(想想沉浸机械!)。 - 尝试写多个项目的手稿,如同流水线一样,一个流水线的副产品往往可以被另一条流水线所用(想想沉浸机械!)。

26
soup.py
View file

@ -6,6 +6,18 @@ from collections import defaultdict
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
UUID_PATTERN = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$"
def match_uuid(headline_id: str | None) ->bool:
if headline_id is None:
return False
result = re.match(UUID_PATTERN, headline_id) # Returns Match object
if result is None:
return False
return True
def get_node_link(node_contend: str): def get_node_link(node_contend: str):
node_soup = BeautifulSoup(node_contend, "lxml") node_soup = BeautifulSoup(node_contend, "lxml")
@ -51,13 +63,14 @@ def soup_link():
i = i.get("href") i = i.get("href")
page_link.add(i) page_link.add(i)
nodes = soup.find_all(class_ = "NODE") _nodes = soup.find_all(["h1", "h2", "h3", "h4", "h5", "h6"])
nodes = [i for i in _nodes if match_uuid(i.get("id"))]
nodes_dict = {} nodes_dict = {}
file_name = file.split('/')[-2] file_name = file.split('/')[-2]
for node in nodes: for node in nodes:
node_dict = {} node_dict = {}
node_element = node.parent.parent node_element = node
node_dict["name"] = node_element.contents[0] node_dict["name"] = node_element.contents[0]
iii = node_element.find_next_sibling() iii = node_element.find_next_sibling()
@ -105,15 +118,6 @@ def build_backlinks_dict(pages_dict):
continue continue
post_link = re.findall(r"public(.*)index.html", pages_dict[page]["path"])[0] post_link = re.findall(r"public(.*)index.html", pages_dict[page]["path"])[0]
if "#" in link[-1]:
if len(link) > 2:
# ['', 'posts', '卡片笔记写作法', '#要如何在心流状态下写作-p39']
link_page = link[-2]
link_node = link[-1][1:]
backlinks_dict[link_page]["nodes"][link_node]["backlinks"].append(post_link)
else:
backlinks_dict[_filter[0]]["backlinks"].append(post_link) backlinks_dict[_filter[0]]["backlinks"].append(post_link)
for node in pages_dict[page]["nodes"]: for node in pages_dict[page]["nodes"]: