markdown编辑器

一直想找一个基于 webmarkdown 编辑器,使用过几个,一直不如意。实际来说,Typechomarkdown 编辑器已经很不错了,一直想把它弄下来放在自己项目,奈何,其相关js代码已压缩或有其它依赖,在没有任何文档的情况下,修改起来很麻烦。

最后,我找到一个名为 EpicEditor 的js嵌入式编辑器,使用了一下,很方便。下面是 EpicEditor 官网自我介绍:

EpicEditor is an embeddable JavaScript Markdown editor with split fullscreen editing, live previewing, automatic draft saving, offline support, and more. For developers, it offers a robust API, can be easily themed, and allows you to swap out the bundled Markdown parser with anything you throw at it.

使用后,发现 EpicEditor 不支持IE9以下浏览器,所以,如果你的网站如果需要还支援IE 8浏览器,这个markdown编辑器可能不太适合你。

EpicEditor官网:http://epiceditor.com/

发现一个更好的,大力推荐使用 editor.md

web安全色

何为web安全色?

不同的平台(Mac、PC等)有不同的调色板,不同的浏览器也有自己的调色板。这就意味着对于一幅图,显示在Mac上的Web浏览器中的图像,与它在PC上相同浏览器中显示的效果可能差别很大。

选择特定的颜色时,浏览器会尽量使用本身所用的调色板中最接近的颜色。如果浏览器中没有所选的颜色,就会通过抖动或者混合自身的颜色来尝试重新产生该颜色。

为了解决Web调色板的问题,人们一致通过了一组在所有浏览器中都类似的Web安全颜色。

这些颜色使用了一种颜色模型,在该模型中,可以用相应的16制进制值00、33、66、99、CC和FF来表达三原色(RGB)中的每一种。这种基本的Web调色板将作为所有的Web浏览器和平台的标准,它包括了这些16进制值的组合结果。这就意味着,我们潜在的输出结果包括6种红色调、6种绿色调、6种蓝色调。666的结果就给出了216种特定的颜色,这些颜色就可以安全的应用于所有的Web中,而不需要担心颜色在不同应用程序之间的变化。

256色里有40种颜色在Macintosh和Windows里显示的效果不一样,所以能安全使用的只有216色。为了尽量让用户看到色彩相同的网页,请尽量使用下面的216色。

访问下面网址可以查看216 Web安全色:http://www.bootcss.com/p/websafecolors/

未来开发构想

  1. 继续完善芽丝内容管理框架(yascmf),yascmf 基于 Laravel 构建,基础框架会实现简单的用户和文章管理功能。yascmf 打算在11月底以开源协议的方式开放下载。
  2. 实现一个简单的写作系统,优先考虑使用 markdown 编辑器,暂时命名为芽丝写作(yaswriter)。
  3. 完善自己博客系统,博客系统是在 yascmf 基础上开发的。

JavaScript学习笔记02 —— 表达式和运算符

本系列为阅读《JavaScript权威指南》之后所做的笔记,只供个人学习与参考。

知识要点

  • 一些原始表达式
    1.23  //数字直接量
    "hello"  //字符串直接量
    /pattern/  //正则表达式直接量
    
    true  //布尔值:真
    false  //布尔值:假
    null  //空
    this  //返回“当前”对象
    
    i  //变量“i”
    sum  
    undefined  //undefined是全局变量,和null不同,它不是一个关键字
  • 下面数组包含5个元素,其中三个元素是undefined
var sparseArray = [1,,,,5];
  • 对象初始化
var p = {x:2.3,y:-1.2};//一个拥有两个属性成员的对象
var q = {}; //空对象
  • 函数定义表达式
var square = function(x) { return x*x; }
  • 属性访问表达式
var o = {x:1,y:{z:3}}; // An example object
var a = [o,4,[5,6]]; // An example array that contains the object
o.x // => 1: property x of expression o
o.y.z // => 3: property z of expression o.y
o["x"] // => 1: property x of object o
a[1] // => 4: element at index 1 of expression a
a[2]["1"] // => 6: element at index 1 of expression a[2]
a[0].x // => 1: property x of expression a[0]

- 阅读剩余部分 -