Date

研究了一下Linux平台做笔记的软件,发现为知笔记半死不活,bug很多。其他的笔记程序尝试了leanote等各种软件都感觉难以使用,要么功能太弱,要么没有linux客户端。总计一下我想要的笔记软件的要求:

  • 支持Markdown
    • 支持嵌入代码块的语法高亮
    • 支持latex输入一些基本的数学公式
  • 电脑上使用起来方便
  • 方便用手机查看
  • 方便分享给其他人
  • 软件稳定,无明显BUG,体积小,依赖少

最终我发现了NBViewer+Jupyter Notebook+Github/Gist的组合。

注:现在更倾向于用Jupyter Notebook+Pelican的组合了,参见Blogging with Jupyter and Pelican

  • 存在的问题:刷新麻烦,需要手动加?flush=true
  • 解决方案:UserScript脚本Refresh NBViewer Button。具体请看描述。

为了写这个脚本,特意学习了一点js

# 基本知识

  • 获取元素的方法demo=document.getElementById('demo')还有getElementsByTagName, getElementsByClassName
  • 元素的内容innerHTML与属性src, href, style
  • style.dislay='none'可以隐藏元素,block可以显示隐藏的
  • <p id="demo" style="display:none">Hello JavaScript!</p>键值对的方式设置style的子属性
  • type属性有什么用
  • To use an external script, put the name of the script file in the src attribute of a <script> tag

# 输出

  • HTML可以用document.write()直接全部删改,或者修改元素的innerHTML修改文本
  • window.alert()或者直接alert()
  • console.log(),按F12出现控制台,用于调试

# 语法

  • 类似于C语言,分号结尾语句(多个语句可以写在一行),等号初始化变量,注释用///**/
  • 变量类型只有var?动态类型?
  • 函数用function前缀,不需要返回类型。函数体用花括号。
  • 字符串用单双引号都可以,类似于Python,js可以字符串直接相加
  • 首字母小写的驼峰命名
  • 3 equal signs mean "equality without type coercion",双等号只判断转换后
  • 2 + 3 + "5" + 7 + 9等于'5579'
  • ++ -- *= /= += -=
  • typeof instanceof
  • 5/2==.5
  • ** Exponentiation
  • var cars = ["Saab", "Volvo", "BMW"];类似于py的list
  • var x = {firstName:"John", lastName:"Doe"};dict
  • In HTML, all global variables will become window variables.

# 循环

for (var i of l){
    ...
}

Comments

comments powered by Disqus