# 构建自己的信息网络
受到了别人信息系统[1]的启发,打算模仿地做一个类似的系统出来。 从阅读地角度讲,就可以从一个根节点出发,然后不断深入,进行思考,同时整个系统就是一个巨大的树或是网络,以这种方式来组织自己的想法和思路。
# 优势
比较有趣的是,可以根据思考的过程来组织知识与信息。 给阅读的人也可以顺着这个思路往下去理解。
# 劣势
可不太有趣的事便是,如何检索呢? 如果我只需要寻找某一个信息,那只用这种方式便有些吃力。
# Roadmap
系统最后的形式,最好是一个静态页面,不需要与后端进行交互。 看了看vurpress,明白了系统的架构,但总觉得与目前要做的还不太一样。
# update 2020-7-29
# 静态文件的获取
目前用脚手架搭起来的是一个SPA的框架,不太容易与node集成在一起。 为了方便起见呢,暂时将所需要的markdown文件放置于public文件夹下,然后直接通过网络请求获取。 但其实,有一些朴素,等后续更改整个框架的时候再进行修改吧。
在应用启动前,会对所有markdown文件做一次处理:
- 更改文件名,变为固定长度的字符串
- 替换文中的链接为React组件
# 页面的搭建
为了模仿原始网页的效果,看了一下原始网页使用的css,
发现关键是使用了 position: sticky;
来实现网页的移动效果。
# 链接的处理
在使用了 markdown-it
, react-markdown
和markdown-to-jsx
之后,我还是选择了markdown-to-jsx
,因为它可以很方便地将字面值转换为React组件。
通过这种方式,我把markdown源文件中所有的链接转换为了React中的Link组件,方便后续的操作。
# 滚动的处理
滚动的实现主要是通过计算每个NoteContainer的位置,来得到当前的滚动位置。 然后利用一个滚动库来实现了滚动的动画。
# update 2020-7-31
经过了一些处理,notes可以投入使用了。 主要是改进了一些界面上的效果,看起来更舒服一些。 然后调整了一下滑动的部分,也加入了一些其他的动画,给标题添加了点击事件。 另外也对移动端进行了适配,采取了不同的显示模式,来让移动端看起来整洁一些。 今天也添加了首页,总算是一个可以正常使用的系统了。
不过也还需要思考一下到底要怎么使用这个系统,要好好利用起来啊。 具体的笔记模式,其实还是要参考How to Take Smart Notes[2],先把书读一遍。