打造 Linked Notes

# 构建自己的信息网络

受到了别人信息系统[1]的启发,打算模仿地做一个类似的系统出来。 从阅读地角度讲,就可以从一个根节点出发,然后不断深入,进行思考,同时整个系统就是一个巨大的树或是网络,以这种方式来组织自己的想法和思路。

# 优势

比较有趣的是,可以根据思考的过程来组织知识与信息。 给阅读的人也可以顺着这个思路往下去理解。

# 劣势

可不太有趣的事便是,如何检索呢? 如果我只需要寻找某一个信息,那只用这种方式便有些吃力。

# Roadmap

系统最后的形式,最好是一个静态页面,不需要与后端进行交互。 看了看vurpress,明白了系统的架构,但总觉得与目前要做的还不太一样。

# update 2020-7-29

# 静态文件的获取

目前用脚手架搭起来的是一个SPA的框架,不太容易与node集成在一起。 为了方便起见呢,暂时将所需要的markdown文件放置于public文件夹下,然后直接通过网络请求获取。 但其实,有一些朴素,等后续更改整个框架的时候再进行修改吧。

在应用启动前,会对所有markdown文件做一次处理:

  1. 更改文件名,变为固定长度的字符串
  2. 替换文中的链接为React组件

# 页面的搭建

为了模仿原始网页的效果,看了一下原始网页使用的css, 发现关键是使用了 position: sticky; 来实现网页的移动效果。

# 链接的处理

在使用了 markdown-it, react-markdownmarkdown-to-jsx之后,我还是选择了markdown-to-jsx,因为它可以很方便地将字面值转换为React组件。 通过这种方式,我把markdown源文件中所有的链接转换为了React中的Link组件,方便后续的操作。

# 滚动的处理

滚动的实现主要是通过计算每个NoteContainer的位置,来得到当前的滚动位置。 然后利用一个滚动库来实现了滚动的动画。

# update 2020-7-31

经过了一些处理,notes可以投入使用了。 主要是改进了一些界面上的效果,看起来更舒服一些。 然后调整了一下滑动的部分,也加入了一些其他的动画,给标题添加了点击事件。 另外也对移动端进行了适配,采取了不同的显示模式,来让移动端看起来整洁一些。 今天也添加了首页,总算是一个可以正常使用的系统了。

不过也还需要思考一下到底要怎么使用这个系统,要好好利用起来啊。 具体的笔记模式,其实还是要参考How to Take Smart Notes[2],先把书读一遍。


  1. Notes by Andy (opens new window) ↩︎

  2. How to Take Smart Notes (opens new window) ↩︎