概述

notes 是一个基于文件系统的笔记工具,笔记使用 markdown 格式以纯文本的形式保存。 笔记以分类进行组织。分类与文件系统的目录结构一一对应 除了分类外,笔记有一些基本的元数据,包括:

  1. 标题
  2. 创建日期
  3. 描述
  4. 标签
  5. 是否公开

    ---
    title: 标题
    date: '2017-02-16'
    description:
    type: draft ## 移除这个字段,笔记才会公开发布
    ---
    
    正文
    

除了基本元数据外,笔记的元数据是可扩展的。 比如可以增加作者字段

创建

提供命令行接口用于创建笔记

notes new <(category title)/title>
  Create a new note. Specific category and title or just title. if no title will create quick note

该命令将在目标目录创建 如下笔记文件模板

---
title: 
date: ''
description:
type: draft ## 移除这个字段,笔记才会公开发布
---

笔记模板应该是易于配置的。

创建笔记的时候考虑可以增加自定义元数据,比如 --author Tiou,可以在模板增加author: Tiou 字段。

命令行接口

另外还有一些优先级较低的命令行接口。

notes drafts
  List all drafts.
notes empty
  List all empty content notes.
notes list
  List all resources.

展示

笔记的展示,

  • 个人网站(博客)的链接
  • 导航栏,所以笔记的导航,以分类分层
  • 内文导航, TOC
  • 评论,默认隐藏起来的评论
  • 搜索

分类与笔记组织

笔记以纯文本形式保存于文件系统,目录用于表示笔记的分类。目录内有子目录和笔记文件和特殊文件,子目录表示子分类,分类间存在父子关系。

文件夹名称作为分类的 id, 另外分类还拥有显示名称,若分类未指明显示名称,则取分类的 id 名。

文件夹内的特殊文件:

  1. index.md,当作特殊的分类索引文件处理,该文件的标题将会当成分类的显示名称。若 index.md 没有内容,则只取标题作为显示名称,不作索引文件处理。
  2. 分类名.md,ruhoh 版的作用等同于 index ,Jekyll 版将其当成普通笔记文件。

标签

笔记可以拥有多个标签,标签之间没有相关关系,提供一个页面来显示所有标签和标签相关的笔记列表。

多媒体文件

便签

便签作为一个分类

notes new <(category title)/title>
  Create a new note. Specific category and title or just title. if no title will create quick note

创建笔记命令如果没有带任何参数,那么将创建一个便签,便签归于 Quick 分类,笔记名为当前日期。

扩展

plot

由 jqplot 替换为 plotly,和生成标签云一样,都是基于 d3,目前只有一篇文章用到,暂不提取成插件。

mathjax

数学公式的展示,karmdown 默认支持数学公式,语法与原先 ruhoh 的有区别,需要重新替换。