Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的 HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。

  • GitHub支持的语法在标准markdown语法的基础上做了修改,称为Github Flavored Markdown,简称GFM。
  • We believe that writing is about content, about what you want to say – not about fancy formatting. – 我们坚信写作写的是内容,所思所想,而不是花样格式。
  • 标题( #、##、… )。
  • 列表( 无序 *、有序 1. )。
  • 引用( > )。
  • 图片与链接:插入链接与插入图片的语法很像,区别在一个!号。链接为:
  • 粗体与斜体:Markdown 的粗体和斜体也非常简单,用两个 包含一段文本就是粗体的语法,用一个 包含一段文本就是斜体的语法。
  • 代码框:如果你是个程序猿,需要在文章里优雅的引用代码框,在 Markdown下实现也非常简单,只需要用两个 ` 把中间的代码包裹起来。(内联的形式)
  • 分割线:分割线的语法只需要三个 * 号。
  • images下的图片:![](/images/haha.png)
  • Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
  • Hexo 支持 GitHub Flavored Markdown 的所有功能。
  • Front-matter 是文件最上方以 — 分隔的区域,用于指定个别文件的变量。
  • OG协议——OPEN GRAPH PROTOCOL(开放内容协议)。用了Meta Property=og标签,就是你同意了网页内容可以被其他社会化网站引用等,目前这种协议被SNS网站如Fackbook、renren采用。为了提高站外内容的传播效率,2010年F8会议上Facebook公布了一套开放内容协议(Open Graph Protocol),任何网页只要遵守该协议,SNS就能从页面上提取最有效的信息并呈现给用户。
  • 参与到Open Graph Protocol的好处:1、能够正确的分享您的内容到SNS网站 2、帮助您的内容更有效的在SNS网络中传播
  • Meta Property=og代码的功能并不等同于网页的meta name标签,两者针对的对象不一致,功能不同。
  • Gravatar是Globally Recognized Avatar的缩写,是gravatar推出的一项服务,意为”全球通用头像”(已被墙)。如果在Gravatar的服务器上放置了你自己的头像,那么在任何支持Gravatar的blog或者留言本上留言时,只要提供你与这个头像关联的email地址,就能够显示出你的Gravatar头像来。
  • i18n == internationalization 、 k8s == kubernetes
  • 1
    2
    3
    SSH doesn’t like it if your home or ~/.ssh directories have group write permissions. Your home directory should be writable only by you, ~/.ssh should be 700, and authorized_keys should be 600

    You can also get around this by adding StrictModes off to your ssh_config file, but I’d advise against it - fixing permissions is the way to go.
  • 什么是xinetd:xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务。xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。

  • hexo自定义页面:执行new page命令 hexo new page "about",在hexo\source\下会生成about目录,里面有个index.md,直接编辑就可以了,然后在主题的_config.yml中将其配置显示出来。
  • 页面展现的全部逻辑都在每个主题中控制,源代码在hexo\themes\你使用的主题\中。
  • 如果您的主题太过于复杂,或是需要生成的文件量太过于庞大,可能会大幅降低性能,除了简化主题外,您可以考虑Hexo 2.7新增的局部缓存(Fragment Caching)功能。它可用于页首、页脚、侧边栏等文件不常变动的位置。
  • 主题中,在layout目录下的index.ejs会自动继承layout.ejs,并将其中的内容填入<%- body %>的位置。
  • Hexo有三种默认布局:post、page 和 draft,它们分别对应不同的路径。
  • Hexo就是把那些 Markdown 文件按照不同的布局模板,填上对应的数据生成 HTML 页面,复制 source 中的文件到生成的 public 文件夹中,中间过程会把需要编译的stylus/less/sass等文件编译。
  • 若要建立一个多语种的网站,$ hexo new "Hello World" --lang tw,当您建立新文章时,文章会被储存到:source/_posts/tw/Hello-World.md
  • About菜单对应的layout:

    1
    2
    3
    4
    title: About me
    date: 2017-12-25 17:44:10
    layout: page
    comments: false
  • 在模板中,透过__辅助函数,即可取得翻译后的字符串。

  • 每一个模板文件对应的是一种布局,当你使用hexo new 的时候,其实忽略了一个参数,完整的命令是hexo new [layout] <title>,这个layout就决定了文章使用何种方式布局,比如创建一个自己简介的About页面,hexo new page “about”其实就是使用了page布局。每种布局对应到我们的模板文件上就是index.ejs(首页),post.ejs(文章),archive.ejs(归档),tag.ejs(标签归档),page.ejs(分页)。
  • 制作一个分页器,我们需要知道文章的总数和每页展示的文章数,然后通过循环生成每个link标签,还要根据当前页面判断link标签的active状态,但是在Hexo中这些都不用我们自己来做了!Hexo提供了paginator这一辅助函数帮助我们生成分页器,只需要将文章总数site.posts.length和每页文章数config.per_page传入就可以生成了。
  • 一个模板引擎就是把一个字符串中的变量用model的变量替换掉。

    1
    2
    3
    // 如果正则匹配成功,则match不为空,match[0]是匹配到的字符串{ template },match[1]是捕获的变量template,match.index是匹配的索引。只要不断地匹配到变量,然后用model的内容替换,就可以得到最终的HTML。
    var re = /\{\s*([a-zA-Z\.\_0-9()]+)\s*\}/m
    var match = re.exec('a { template } string');
  • JavaScript允许用new Function(‘source’)来通过字符串创建一个函数,这个函数和我们用function ()定义的函数是一模一样的,因此,一个模板引擎的编译过程就是创建一个函数,然后调用该函数就实现了模板渲染。

Comments

2017-06-30

⬆︎TOP