抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

前言

上一篇文章写了怎么部署standardnotes的自建笔记本,在使用过程中发现还需要很多的插件来配合更好的使用standardnotes,来做数据备份以及更好的编辑文档。
standardnotes的插件是可插拔的,简而言之就是将静态页面加载到页面中,来使用其中的功能,达到增强的目的。

关于

standardnotes 作为开源软件和服务提供商,它本身的写笔记和同步笔记是不收费的,提供了mac/win的客户端和web端应用,所以多端同步是它最大的优势之一,但它对于插件是使用的收费订阅的模式,每个月基本在3美金以内,但是我都自建服务了,
为啥还需要去用它本身的服务了,所以参考了一些文档,调查了一些插件的接入步骤,陆续接入了很多插件。

接入插件步骤

查看对应的插件接入文档

作为开发人员,一般了解到一个不太熟悉的内容,或者需要接入某些组件,第一件事就是查看对应的文档,自己了解到一些细节点,文档地址:https://docs.standardnotes.org/extensions/intro/

查看github上大牛帮你收集好的插件集合

github上有很多各种领域的大牛,能让你减少很多的收集软件的时间,这个大牛将standardnotes的一些常用的组件都进行了收集,并且还写成了脚本帮助我们将对应的插件一次性生成到某个地方,来供我们直接使用,减去很多繁琐的步骤,大牛对应的github地址:https://github.com/iganeshk/standardnotes-extensions
由于大牛的仓库没有及时更新,所以我根据最新的版本库,fork了一下大牛的仓库并且完成了对应的最新适配:https://github.com/dislazy/standardnotes-extensions 可以直接使用我fork的仓库,下面的文档基于dislazy的仓库进行构建过程

拉取github的代码并且生成对应的插件文件夹

  • 查看 插件接入文档 了解插入的接入方式
  • 查看 github上集成对应插件的文档
  • 将对应github的代码拉取到本地服务器中,然后以env.simple文件作为模板,创建自己的插件生成配置,包括插件的对应域名和你的github-token,github-token用于拉取githun上的代码时不受速度等的限制
  • 创建并配置好.env文件后,我是直接运行docker生成对应的public的插件文件夹,运行在插件文件夹中运行docker run -v $PWD/.env:/build/.env -v $PWD/extensions:/build/extensions -v $PWD/public:/build/public mtoohey/standardnotes-extensions
  • 当public文件夹配置完成了之后,直接将之前配置过sync服务器对应的反向代理配置一下即可,代码块中是nginx的配置文件。
  • 当配置完成了重新reload一下nginx的配置文件完成配置,直接可以在网页中应用了。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    location ^~ /extensions {
    autoindex off;
    alias /path/to/standardnotes-extensions/public; -- 此处修改为你自己的public路径即可
    # CORS HEADERS
    if ($request_method = 'OPTIONS') {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    #
    # Custom headers and headers various browsers *should* be OK with but aren't
    #
    add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
    #
    # Tell client that this pre-flight info is valid for 20 days
    #
    add_header 'Access-Control-Max-Age' 1728000;
    add_header 'Content-Type' 'text/plain; charset=utf-8';
    add_header 'Content-Length' 0;
    return 204;
    }
    if ($request_method = 'POST') {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
    add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
    }
    if ($request_method = 'GET') {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
    add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
    }
    }

需要注意的点

  • 按需在extensions-reposity文件夹中选择合适的插件配置复制到extension 文件夹中,尽量按需选用,否则构建的时间会很长
  • 在yaml文件中有一项配置github: sn-extensions/xxxx 中的sn-extensions地址已被官方修改为:standardnotes即可,在dislazy仓库中已被修复
  • 由于大牛的更新不是特别及时,所以很多插件的版本比较过时,或者插件被原作者删除,及时根据对应的github地址去看看release版本,将插件的版本更新最新的版本
  • 可以在github上的standardnotes组织中找到一些未被收录的其他好用的插件,集成到你的插件库中,根据文档:https://docs.standardnotes.org/extensions/intro/ 进行操作

结语

我的插件库主要是将markdown的编辑器,以及推送github的插件集成了,为了更好的编辑文档和推送文档更新。尤其对github推送点赞,直接一键推送,真的太棒了。
如果有更好用的插件库或者插件,欢迎给我推荐,如果想要联系我,也可以直接给我发邮件:songbo2021@outlook.com

评论