研究了一下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
**
Exponentiationvar cars = ["Saab", "Volvo", "BMW"];
类似于py的listvar 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