Hexo 搭建博客笔记

HEXO:基于Node.js的一个简单快速的开源博客框架。

一、环境部署

1. Node.js下载安装

  • 安装包下载安装
    Node下载官网
    安装完成,可打开CMD窗口,执行命令node -v检查node版本,确认node是否安装成功
  • node环境部署
    Node环境配置教程

2. Git下载安装

Hexo的项目源代码以及相关插件是放在Github上托管的。
安装参考步骤:https://mp.csdn.net/mdeditor/103214060#

3. Hexo安装

先安装好Node和Git,安装hexo很简单。命令行运行npm install hexo-cli -g即可
检查:hexo version

二、启动

1. 目录文件

  • 初始化Hexo:
	hexo init >    #初始化目录
	cd >
	npm install    #安装依赖

初始化完成后,

	├── _config.yml   #站点配置文件
	├── package.json    #应用数据
	├── scaffolds       #模板文件
	├── source          #文章资源
	|   ├── _drafts
	|   └── _posts
	└── themes   #站点主题配置文件
  • 启动命令
	hexo clean   #清空静态文件(public目录)
	hexo g     #生成静态页面
	hexo s    #启动hexo服务,本地访问
	hexo d    #部署

2. 部署

  • Github新建仓库,仓库名称格式:.github.io
  • 将本地Hexo博客推送到Github上
    • 安装hexo-deployer-git插件:$ npm install hexo-deployer-git --save
    • 如果没有配置ssh,则添加SSH key(具体参考:https://mp.csdn.net/mdeditor/103214060#)
    • 修改站点配置文件(_config.yml):
      仓库地址写ssh地址,不写http地址
	# Deployment
	## Docs: https://hexo.io/docs/deployment.html
	deploy:
	  type: git
	  repo: [email protected]:>/>.github.io.git
	  branch: master
  • 推送:
	hexo -g
	hexo -d

后,浏览器访问网址: https://.github.io

三、hexo配置说明

1. _config.yml

根目录的_config.yml的配置会覆盖其它部分的相同配置

//site 站点参数配置
title 站点标题
subtitle 站点副标题 description 网站描述
keywords 关键字
author 文章的作者
language 网站使用的语言,默认英语
timezone 网站时区,默认使用电脑的时区

//url
url 网址
root 网站根目录
permalink 文章的永久链接格式,默认是:year/:month/:day/:title/
permalink_defaults 设置永久链接中各部分的默认值

//directory 目录配置
source_dir 资源文件夹,存放内容,默认source
public_dir 公共文件夹,存放生成的站点文件,默认public
tag_dir 标签文件夹,默认tags
archive_dir 归档文件夹,默认archives
category_dir 分类文件夹,默认categories
code_dir Include code 文件夹,默认downloads/code
i18n_dir 国际化(i18n)文件夹,默认lang
skip_render 跳过指定文件的渲染

//write 写作配置
new_post_name 新文章的文件名称格式 :title.md或者:year-:month-:day-:title.md
default_layout 预设布局,默认post
auto_spacing 在中文和英文之间加入空格,默认是false
titlecase 把标题转换为title case,默认是false
external_link 在新标签中打开链接,默认是true
filename_case 把文件名称转换为小写(1)或大写(2),默认是0不转换
render_drafts 显示草稿,默认是false
post_asset_folder 启动资源文件夹,默认是 false,表示source文件夹中除了文章以外的所有文件,例如图片、CSS、JS 文件等(如果Hexo项目中只有少量图片,那最简单的方法就是将它们放在source/images 文件夹中)。
relative_link 把链接改为与根目录的相对位址,默认是false,默认情况下,Hexo生成的超链接都是绝对地址。例如,如果你的网站域名为example.com,您有一篇文章名为hello,那么绝对链接可能像这样:http://example.com/hello.html,它是绝对于域名的。相对链接像这样:/hello.html,也就是说,无论用什么域名访问该站点,一般建议用绝对路径
future 显示未来的文章,默认是true
highlight 代码块的设置
     enable: true 启动高亮
     line_number: true 显示行号
     auto_detect: false 自动检查
     tab_replace: 缩进大小

//home page setting
path 博客默认页面的路径,默认为空
per_page 主页中每页显示的贴子,0表示禁止分页
order_by 按时间倒序排列

//category& tag 分类和标签设置
default_category 默认分类,默认为没有分类uncategorized
category_map 分类别名,默认为空
tag_map 标签别名,默认为空

//date/time format (hexo使用moment.js来处理时间)
date_format 日期格式,默认为MMM D YYYY,可配置 YYYY-MM-DD
time_format 时间格式 H:mm:ss

//pagination
per_page 每页显示的文章量(0表示关闭分页),默认是10
pagination_dir 分页目录,默认是page

//extensions
plugins 插件,插件列表
theme 当前主题名称,为false时禁用主题,主题列表
theme_config 自定义主题配置,这和全局的_config.yml文件是分离的,你可以写themes/my-theme/_config.yml,如果全局的_config.yml文件是
theme_config:
     bio: “hello_world”

//deploy
deploy: 部署配置,即把public目录文件部署到服务器上
     type: git
     repository: https://github.com/xxx/xxx.github.io.git
     branch: master

//include/exclude files or folders
设置键值使hexo显式或忽略某些文件
include
-Impo 包含Impo这个文件,include参数一般不使用,需要包含的文件hexo都做好了
exclude
-.Igno 忽略.Igno这个文件

//using am alternate config
自定义配置文件,使用hexo server启动时是默认加载_config.yml里面的配置,如果我们自定义文件custom.yml,那么启动时使用hexo server --config custom.yml,甚至是多个自定义文件custom1.yml,custom2.json,启动时使用hexo server --config custom1.yml,custom2.json,注意默认后面文件的优先级高,也就是先加载.json,多个自定义文件可以写入_multiconfig.yml中,同样最后一个文件优先加载

2. scaffolds(文章脚手架)

模板文件夹。新建文章时,hexo会根据该文件夹下的相对应的模板文件来建立文件,默认是post.mddefault_layout配置)。

模板中的 参数有

  • layout 布局
  • title 标题
  • date 文章建立日期

在/scaffolds下可配置对应的layout的front-matter,使用命令新建或者发布文章时:

	hexo new [layout] >
	hexo publish >

3. Data(数据文件)

使用一些不在post中的模版数据,或者想复用这些数据,可以使用一下Hexo3中的『Data files』功能。这个特性加载source/_data目录中的YAML或者JSON文件,从而用到你的网站中。
友情链接页面举例

  • 添加数据文件
    source目录下新建_data目录,该目录下新建links.yml文件()
	a Blog: http://a.com
	b Blog: http://b.com
	c: http://www.c.com
  • 添加主题布局文件
	<% if (site.data.links){ %>
	  <div class="widget tag">
	    <h3 class="title">友情链接h3>
	      <ul class="entry">
	      
	        <% for (var i in site.data.links){ %>
	          <li class='link'><a href='<%- site.data.links[i] %>'><%= i %>a>li>
	        <% } %>
	      ul>
	  div>
	<% } %>

4. source(资源文件)

文件内以_开头的文件都会被忽略,.md和.html文件会被解析并放到public中,其它文件也会被直接拷贝或渲染过去

5. Asset(资源目录)

source 文件夹中除了文章以外的所有文件
当资源文件管理功能打开后(post_asset_folder: true),Hexo将会在你每一次通过 hexo new [layout] </code>命令创建新文章时自动创建一个文件夹。这个资源文件夹将会有与这个 <code>markdown</code> 文件一样的名字。将所有与你的文章有关的资源放在这个关联文件夹中之后,你可以通过相对路径来引用它们,这样你就得到了一个更简单而且方便得多的工作流。</p> <blockquote> <p>当打开文章资源文件夹功能后,正确的图片引用方式:<code>{% asset_img example.jpg This is an example image %}</code>。这样的引用才会使图片同时出现在文章和主页以及归档中</p> </blockquote> <blockquote> <p>例如,在资源文件夹(就是那个与 title 同名的文件夹)中添加图片 example.PNG,则可以在对应的文章中使用语句 <code>![示例图片](title/example.PNG "示例图片")</code> 添加图片</p> </blockquote> <h3>6. <strong>Themes</strong>(主题文件)</h3> <pre><code class="prism language-yml"> .主题目录结构 ├── _config.yml <span class="token comment">#主题配置未见</span> ├── languages <span class="token comment">#语言</span> ├── layout <span class="token comment">#模板(index/post/page/archive/category/tag)</span> ├── scripts └── source </code></pre> <ul> <li>每个模板都默认使用layout布局,您可在文章的前置申明中指定其他布局,比如“post”或者“page”或是设为false来关闭布局功能(如果不填默认是post,这个在_config.yml中可以设置默认值),您甚至可在布局中再使用其他布局来建立嵌套布局。</li> <li>Partials(局部模板,将各个模板功能将各个组件分割成独立的文件,便于维护)</li> <li>本地变量</li> </ul> <pre><code class="prism language-html"><span class="token comment"><!--partial/header.ejs--></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h1</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>logo<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><%= title><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h1</span><span class="token punctuation">></span></span> <span class="token comment"><!--index.ejs--></span> <%- partial('partial/header', {title: 'Hello World'}) %> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Home page<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span> </code></pre> <ul> <li>最优化:通过Fragment Caching(局部缓存)的功能来处理(即缓存局部的内容,减少文件查询)。常用在那些很少变动的模块中,比如Header、Footer等等,例如:</li> </ul> <pre><code class="prism language-html"><%- fragment_cache('header', function(){ return '<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>header</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>header</span><span class="token punctuation">></span></span>'; }); </code></pre> <p>如果使用局部模板的话,</p> <pre><code class="prism language-html"><%- partial('header', {}, {cache: true}); </code></pre> <p><strong>注意:如果开启了relative_link参数的话,就不要使用局部缓存的功能</strong></p> <h3>7. <strong>Permalinks</strong>永久链接</h3> <p>在 _config.yml 配置中调整网站的永久链接或者在每篇文章的 Front-matter 中指定。<br> 除了下列变量外,您还可使用 Front-matter 中的所有属性。</p> <pre><code class="prism language-yml"> 变量 描述 <span class="token punctuation">:</span>year 文章的发表年份(4 位数) <span class="token punctuation">:</span>month 文章的发表月份(2 位数) <span class="token punctuation">:</span>i_month 文章的发表月份(去掉开头的零) <span class="token punctuation">:</span>day 文章的发表日期 (2 位数) <span class="token punctuation">:</span>i_day 文章的发表日期(去掉开头的零) <span class="token punctuation">:</span>title 文件名称 <span class="token punctuation">:</span>post_title 文章标题 <span class="token punctuation">:</span>id 文章 ID <span class="token punctuation">:</span>category 分类。如果文章没有分类,则是 default_category 配置信息。permalink_defaults 参数调整永久链接中各变量的默认值 </code></pre> <p>文章的永久网址链接默认:<code>:year/:month/:day/:title</code>。举例说明:<br> 20191124写了一篇test的文章,对应的永久链接应该是:http://url/2019/11/24/test/;<br> 如果网址是次级目录,比如<code>http://url/blog</code>,那么就要设置url为:<code>http://url/nlog</code>,并且设置root为<code>/blog</code></p> <h3>8. <strong>标签插件</strong></h3> <p>(1) <code>raw</code>—— 一些内容不想被主题渲染,可以使用插件呈现原始状态</p> <pre><code class="prism language-yml"> <span class="token punctuation">{</span>% raw %<span class="token punctuation">}</span> content <span class="token punctuation">{</span>% endraw %<span class="token punctuation">}</span> </code></pre> <p>(2) Include Code—— 从资源目录插入代码片段</p> <pre><code class="prism language-yml"> <span class="token punctuation">{</span>% include_code <span class="token punctuation">[</span>title<span class="token punctuation">]</span> <span class="token punctuation">[</span>lang<span class="token punctuation">:</span>language<span class="token punctuation">]</span> path/to/file %<span class="token punctuation">}</span> </code></pre> <p>(3)Link—— 插入带有target="_blank"属性值的链接</p> <pre><code class="prism language-yml"> <span class="token punctuation">{</span>% link text url <span class="token punctuation">[</span>external<span class="token punctuation">]</span> <span class="token punctuation">[</span>title<span class="token punctuation">]</span> %<span class="token punctuation">}</span> </code></pre> <p>(4)Image—— 插入图片,可自定义大小</p> <pre><code class="prism language-yml"> <span class="token punctuation">{</span>% img <span class="token punctuation">[</span>class names<span class="token punctuation">]</span> /path/to/image <span class="token punctuation">[</span>width<span class="token punctuation">]</span> <span class="token punctuation">[</span>height<span class="token punctuation">]</span> <span class="token punctuation">[</span>title text <span class="token punctuation">[</span>alt text<span class="token punctuation">]</span><span class="token punctuation">]</span> %<span class="token punctuation">}</span> </code></pre> <p>等等</p> <h3>9. <strong>hexo常用命令</strong></h3> <blockquote> <p><code>hexo init [folder]</code>,使用该命令初始化一个站点,不加目录参数,就初始化当前目录<br> <code>hexo new [layout] <title></code>,创建一篇文章,如果不指定layout,那么就使用_config.yml中default_layout的值,标题中如果有空格,将整个title放到引号中。比如,hexo new "hello world"创建一篇叫hello world的文章。<br> <code>hexo generate</code>,简单的说,这个命令就是将md格式的文章,生成静态网页。这个命令可以简写为hexo g,它有两个参数选项:<br>     <code>-d</code>,–deploy 生成完后直接部署<br>     <code>-w</code>,–watch 查看文件的改变<br> <code>hexo publish [layout] <filename></code>,发布一个草稿<br> <code>hexo server</code>,启动一个本地服务,可以在本地查看网站,默认启动http://localhost:4000,貌似这个不是默认,运行命令的时候可以查看提示消息。它也有一些参数:<br>     <code>-p</code>,–port 指定端口<br>     <code>-s</code>,–static 仅服务静态文件<br>     <code>-l</code>,–log 开启日志<br> <code>hexo deploy</code> 部署站点,可以缩写<code>hexo d</code>,有一个参数,hexo d -g表示在部署前先重新生成一下站点<br> <code>hexo render <file1> [file2]</code>… 渲染文件,具体我也不太明白这是干嘛的<br> <code>hexo migrate <type></code> 迁移其他博客系统的命令,具体怎么使用DOCS后面有介绍。<br> <code>hexo clean</code> 删除缓存文件db.json以及生成的public目录,当你修改了某些样式或者配置时,如果发现hexo g后也没有反应,就可以执行一下这个命令。<br> <code>hexo list</code> 没用过<br> <code>hexo version</code> 显示版本信息<br> <code>hexo --safe</code> 安全模式,使所有插件和脚本不生效<br> <code>hexo --dehug</code> 调试模式<br> <code>hexo --silent</code> 静默模式,不在终端上显示任何信息<br> <code>hexo --config custom.yml</code> 使用一个自定义配置文件替换默认_config.yml<br> <code>hexo --draft</code> 显示草稿文章(位于source/_drafts目录下)<br> <code>hexo --cwd /path/to/cwd</code> 自定义当前工作目录路径,假如你没在工作目录下,可以使用这个命令指定一下工作目录路径。</p> </blockquote> <h2>四、文章编辑</h2> <h3>1. 添加</h3> <h4>(1)新增</h4> <p><code>hexo new [layout] <title></code> 创建.md文件</p> <h4>(2)基本配置</h4> <ul> <li>layout布局:<code>post</code>、<code>page</code>、<code>draft</code>,如果文章前置声明中,将layout设置为false,那么文章将不会有任何布局</li> <li>文件名:默认文章标题,可配置<code>new_post_name</code>修改默认</li> </ul> <blockquote> <p>例如:使用<code>hexo new hello</code>命令创建一篇为hello文章,Hexo会默认在<code>_posts</code>目录下创建一个名为<code>hello.md</code>的文件。假如将new_post_name改为<code>:year-:month-:day-:title.md</code>,那么hexo就自动帮你创建名为<code>2019-11-16-hello.md</code>(当前日期为2019年11月16)</p> </blockquote> <ul> <li>draft草稿:在<code>_drafts</code>目录下的文章不会发表到网站上,可通过<code>hexo publish [layout] <title></code>发布草稿,该命令会将文章移到<code>_posts</code>目录下。也可设置<code>render_drafts</code>,使草稿默认发布到网站上</li> <li>scaffolds模板:使用<code>new</code>命令创建一篇文章的时候,Hexo会根据<code>scaffolds</code>目录中的模版帮你生成文章。能够在模版中写入你某一类文章都要添加的共同内容</li> <li>在文章中插入<code><!-- more --></code>,代表首页只显示插入它之前的文章内容,表示为摘要。</li> <li>切换主题:<code>git clone https://github.com/iissnan/hexo-theme-next themes/next</code></li> </ul> <h4>(3)前置声明( Front-matter)themes</h4> <p>front-matter就是md文件最上方以<code>---</code>(yml)或者<code>;;;</code>(json )分割的区域,用作文章局部变量。</p> <ul> <li>预定义参数如下:</li> </ul> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td><code>layout</code></td> <td>布局</td> <td></td> </tr> <tr> <td><code>title</code></td> <td>标题</td> <td></td> </tr> <tr> <td><code>date</code></td> <td>时间</td> <td>文件建立日期</td> </tr> <tr> <td><code>updated</code></td> <td>时间</td> <td>文件修改日期</td> </tr> <tr> <td><code>comments</code></td> <td>开启文章的评论</td> <td>true</td> </tr> <tr> <td><code>tags</code></td> <td>标签(不适用于分页)</td> <td></td> </tr> <tr> <td><code>categories</code></td> <td>分类(不适用于分页)</td> <td></td> </tr> <tr> <td><code>permalink</code></td> <td>文章永久链接, 覆盖文章网址</td> <td></td> </tr> <tr> <td><code>toc</code></td> <td>是否显示目录</td> <td></td> </tr> <tr> <td><code>photos</code></td> <td>farbox图片展示</td> <td></td> </tr> </tbody> </table> <pre><code class="prism language-yml"><span class="token key atrule">categories</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> Sports <span class="token punctuation">-</span> Baseball <span class="token key atrule">tags</span><span class="token punctuation">:</span> <span class="token punctuation">-</span> Injury <span class="token punctuation">-</span> Fight <span class="token punctuation">-</span> Shocking </code></pre> <ul> <li>书写规范 <ul> <li>每行一种类型声明</li> <li>每个声明后都要加上<code>:</code>(<code>:</code>+空格)</li> <li>文章标签可指定多个,中括号包含,,分隔,书写方法如下:tags: [hexo,博客系统]</li> <li>多级分类</li> </ul> </li> </ul> <pre><code>categories: - 生活 - 随笔 </code></pre> <h3>2. 变量</h3> <h4>(1)全局变量</h4> <ul> <li><strong>site</strong> 网站变量 <ul> <li><code>site.post</code> 所有文章</li> <li><code>site.pages</code> 所有分页</li> <li><code>site.categories</code> 所有分页</li> <li><code>site.tags</code> 所有标签</li> </ul> </li> <li><strong>page</strong> 该页面的内容以及前置声明中所设定的变量</li> <li><strong>config</strong> 配置文件中的变量</li> <li><strong>theme</strong> 主题配置文件中的变量</li> <li><strong>_</strong> lodash函数库</li> <li><strong>path</strong> 当前页面的路径(不包含根路径)</li> <li><strong>url</strong> 页面的完整地址</li> <li><strong>env</strong> 环境变量</li> </ul> <h4>(2)页面变量</h4> <ul> <li> <p><strong>page</strong> 文章</p> <ul> <li><code>page.title</code> 标题</li> <li><code>page.date</code> 日期</li> <li><code>page.updated</code> 更新日期</li> <li><code>page.comments</code> 是否开启留言</li> <li><code>page.layout</code> 布局</li> <li><code>page.content</code> 内容</li> <li><code>page.excerpt</code> 摘要</li> <li><code>page.mre</code> 除了摘要外的内容</li> <li><code>page.source</code> 原始路径</li> <li><code>page.full_source</code> 完整原始路径</li> <li><code>page.path</code> 文章网址(不含根路径),使用<code>url_for(page.path)</code></li> <li><code>page.permalink</code> 永久网址</li> <li><code>page.prev</code> 上一篇(没有则为null)</li> <li><code>page.next</code> 下一篇(没有则为null)</li> <li><code>page.raw</code> 文章原始内容</li> <li><code>page.photos</code> 文章的照片(用于相册)</li> <li><code>page.link</code> 文章的外链(用于链接文章)</li> </ul> </li> <li> <p><strong>post</strong> 文章页面,与page布局相同,添加以下</p> <ul> <li><code>page.pulished</code> 文章为草稿时为false</li> <li><code>page.categories</code> 文章分类</li> <li><code>page.tags</code> 文章标签</li> </ul> </li> <li> <p><strong>index</strong> 首页</p> <ul> <li><code>page.per_page</code> 每一页显示的文章数</li> <li><code>page.total</code> 总文章数量</li> <li><code>page.current</code>/<code>page.current_url</code> 当前页的页码/url</li> <li><code>page.posts</code> 当前页文章</li> <li><code>page.prev</code>/<code>page.prev_link</code> 前一页页码/url</li> <li><code>page.next</code>/<code>page.next_link</code> 下一页页码/url</li> <li><code>page.path</code> 当前页网址(不含根路径,主题中使用<code>url_for(page.path)</code>)</li> </ul> </li> <li> <p><strong>archive</strong> 归档页,与index布局相同,添加如下:</p> <ul> <li><code>archive</code> 为true</li> <li><code>year</code> 归档年份(4位)</li> <li><code>month</code> 归档月份(不含0)</li> </ul> </li> <li> <p><strong>category</strong> 与index布局相同,新增如下:</p> <ul> <li><code>category</code> 分类名称</li> </ul> </li> <li> <p><strong>tag</strong> 标签页,与index布局相同,新增如下:</p> <ul> <li><code>tag</code> 标签名称</li> </ul> </li> </ul> <h3>3. 帮助函数(用于在模板中快速插入内容)</h3> <h4>(1)url</h4> <ul> <li><code><%- url_for(path) %></code> 返回一个带root路径的url</li> <li><code><%- relative_url(from, to) %></code> 返回form相对的to路径</li> <li><code><%- gravatar(email, [size])%></code> 插入Gravatar图片</li> </ul> <h4>(2)html</h4> <ul> <li>载入css:<code><%- css(path, ...)%></code> (path开头没有/或者任何协议,将自动加上根路径;没有扩展名将会自动加上.css)</li> <li>载入js文件:<code><%- js(path, ...) %></code></li> <li>插入链接:<code><%- link_to(path, [title], [options]) %></code>,其中,options的参数有: <ul> <li><code>external</code>:是否在新窗口中打开链接</li> <li><code>class</code>:a标签的class名称</li> <li><code>id</code>:a的id名称</li> </ul> </li> </ul> <pre><code class="prism language-js"> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">link_to</span><span class="token punctuation">(</span><span class="token string">'http://www.google.com'</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token comment">// <a href="http://www.google.com" title="http://www.google.com">http://www.google.com</a></span> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">link_to</span><span class="token punctuation">(</span><span class="token string">'http://www.google.com'</span><span class="token punctuation">,</span> <span class="token string">'Google'</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token comment">// <a href="http://www.google.com" title="Google">Google</a></span> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">link_to</span><span class="token punctuation">(</span><span class="token string">'http://www.google.com'</span><span class="token punctuation">,</span> <span class="token string">'Google'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>external<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token keyword">class</span><span class="token punctuation">:</span> <span class="token string">"link"</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token comment">// <a href="http://www.google.com" title="Google" target="_blank" rel="external" class="link">Google</a></span> </code></pre> <ul> <li> <p>插入电子邮件链接:<code><%- mail_to(path, [text], [options])%></code>,其中,options的参数有:</p> <ul> <li><code>class</code> a的class名</li> <li><code>id</code> ID名</li> <li><code>subject</code> 邮件主题</li> <li><code>cc</code> 抄送(CC)</li> <li><code>bcc</code> 密送(BCC)</li> <li><code>body</code> 邮件内容</li> </ul> </li> <li> <p>插入图片:<code><%- image_tag(path, [options]) %></code> ,options参数(基本就是img标签的属性值)有:</p> <ul> <li><code>class</code> a的class名</li> <li><code>id</code> a的id名</li> <li><code>alt</code> 替代文字</li> <li><code>width</code> 宽度</li> <li><code>height</code> 高度</li> </ul> </li> <li> <p>插入favicon:<code><%- favicon_tag(path) %></code></p> </li> <li> <p>插入feed链接:<code><%- feed_tag(path, [options]) %></code>,其中option值有:title和type(默认值为atom)</p> </li> </ul> <h4>(3)条件函数</h4> <ul> <li><code><%- is_current(path, [strict]) %></code> 判断path是否符合目前页面的网址</li> <li><code>is_home</code> 判断目前是否为首页</li> <li><code><%- is_post() %></code> 检查目前是否为文章</li> <li><code><%- is_archive() %></code> 检查目前是否为存档页面</li> <li><code><%- is_year() %></code> 检查目前是否为以年度归档的页面</li> <li><code><%- is_month() %></code> 检查目前是否为以月归档的页面</li> <li><code><%- is_category() %></code> 检查目前是否为以分类归档的页面</li> <li><code><%- is_tag() %></code> 检查目前是否为以标签归档的页面</li> </ul> <h4>(4)字符串处理</h4> <ul> <li><code><%- trim(string) %></code> 清楚首尾空格</li> <li><code><%- strip_html(string) %></code> 清楚字符串中的HTML标签</li> </ul> <pre><code class="prism language-js"> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">strip_html</span><span class="token punctuation">(</span><span class="token string">'It'</span>s not <span class="token operator"><</span>b<span class="token operator">></span>important<span class="token operator"><</span><span class="token operator">/</span>b<span class="token operator">></span> anymore<span class="token operator">!</span>'<span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token comment">// It's not important anymore!</span> </code></pre> <ul> <li><code><%- titlecase(string) %></code> 把字符串转为正确的Title case</li> </ul> <pre><code class="prism language-js"> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">titlecase</span><span class="token punctuation">(</span><span class="token string">'this is an apple'</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> # This is an Apple </code></pre> <ul> <li><code><%- markdown(str) %></code> 用markdown解析字符串</li> </ul> <pre><code class="prism language-js"> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">markdown</span><span class="token punctuation">(</span><span class="token string">'make me **strong**'</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token comment">// make me <strong>strong</strong></span> </code></pre> <ul> <li><code><%- render(str, engine, [options]) %></code> 解析字符串</li> <li><code><%- word_wrap(str, [length]) %></code> 使每行的字符串长度不超过指定length(预设<strong>80</strong>)</li> <li><code><%- truncate(text, length) %></code> 移除超过指定长度的字符串</li> </ul> <h4>(5)模板</h4> <ul> <li><code><%- partial(layout, [locals], [options]) %></code> 载入其它模板文件,可以在locals中设定区域变量。options的参数有: <ul> <li><code>cache</code>:使用Fragment cache。默认false</li> <li><code>only</code>:限制使用局部变量,在模板中智能使用locals中设定的变量。默认false</li> </ul> </li> <li><code><%- fragment_cache(id, fn);</code>:局部缓存。</li> </ul> <pre><code class="prism language-js"> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">fragment_cache</span><span class="token punctuation">(</span><span class="token string">'header'</span><span class="token punctuation">,</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token string">'<header></header>'</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> </code></pre> <h4>(6)日期与时间</h4> <p>date 可以是 UNIX 时间、ISO 字符串、Date 对象或 [Moment.js] 对象。format 默认为 date_format 配置信息;</p> <ul> <li><code><%- date(date, [format]) %></code>:插入格式化日期。</li> <li><code><%- date_xml(date) %></code>:插入xml格式的日期(// 2013-01-01T00:00:00.000Z)</li> <li><code><%- time(date, [format]) %></code>:插入格式化时间</li> <li><code><%- full_date(date, [format]) %></code>:插入格式化的日期和时间</li> </ul> <h4>(7)列表</h4> <ul> <li><code><%- list_categories([categories], [options]) %></code>:插入分类列表</li> </ul> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td><code>orderby</code></td> <td>分类排列方式</td> <td>name</td> </tr> <tr> <td><code>order</code></td> <td>分类排列顺序.1(asc 升序),-1(desc 降序)</td> <td>1</td> </tr> <tr> <td><code>show_count</code></td> <td>显示每个分类的文章总数</td> <td>true</td> </tr> <tr> <td><code>style</code></td> <td>分类列表的显示方式。使用 list 以无序列表(unordered list)方式显示</td> <td>list</td> </tr> <tr> <td><code>separator</code></td> <td>分类间的分隔符号。只有在 style 不是 list 时有用</td> <td>,</td> </tr> <tr> <td><code>depth</code></td> <td>要显示的分类层级。0 显示所有层级的分类;-1 和 0 很类似,但是显示不分层 级;1 只显示第一层的分类</td> <td>0</td> </tr> <tr> <td><code>class</code></td> <td>分类列表的 class 名称。</td> <td></td> </tr> </tbody> </table> <ul> <li><code><%- list_tags([tags], [options]) %></code>:插入标签列表</li> </ul> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td><code>orderby</code></td> <td>标签排列方式</td> <td>name</td> </tr> <tr> <td><code>order</code></td> <td>分类排列顺序.1(asc 升序),-1(desc 降序)</td> <td>1</td> </tr> <tr> <td><code>show_count</code></td> <td>显示每个标签的文章总数</td> <td>true</td> </tr> <tr> <td><code>style</code></td> <td>分类列表的显示方式。使用 list 以无序列表(unordered list)方式显示</td> <td>list</td> </tr> <tr> <td><code>separator</code></td> <td>分类间的分隔符号。只有在 style 不是 list 时有用</td> <td>,</td> </tr> <tr> <td><code>amount</code></td> <td>要显示的标签数量(0=无限制)</td> <td>0</td> </tr> <tr> <td><code>class</code></td> <td>分类列表的 class 名称</td> <td>tag</td> </tr> <tr> <td><code>transform</code></td> <td>改变标签名称显示方法的函数</td> <td></td> </tr> </tbody> </table> <ul> <li><code><%- list_archives([options]) %></code>:插入归档列表</li> </ul> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td><code>type</code></td> <td>类型。此设定可为 yearly 或 monthly。</td> <td>monthly</td> </tr> <tr> <td><code>order</code></td> <td>分类排列顺序.1(asc 升序),-1(desc 降序)</td> <td>1</td> </tr> <tr> <td><code>show_count</code></td> <td>显示每个归档的文章总数</td> <td>true</td> </tr> <tr> <td><code>format</code></td> <td>日期格式</td> <td>MMMM YYYY</td> </tr> <tr> <td><code>style</code></td> <td>归档列表的显示方式。使用 list 以无序列表(unordered list)方式显示</td> <td>list</td> </tr> <tr> <td><code>separator</code></td> <td>归档间的分隔符号。只有在 style 不是 list 时有用</td> <td>,</td> </tr> <tr> <td><code>class</code></td> <td>归档列表的 class 名称</td> <td>archive</td> </tr> <tr> <td><code>transform</code></td> <td>改变归档名称显示方法的函数</td> <td></td> </tr> </tbody> </table> <ul> <li><code><%- list_posts([options]) %></code>:插入文章列表</li> </ul> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td><code>orderby</code></td> <td>文章排列方式</td> <td>name</td> </tr> <tr> <td><code>order</code></td> <td>文章排列顺序.1(asc 升序),-1(desc 降序)</td> <td>-1</td> </tr> <tr> <td><code>style</code></td> <td>文章列表的显示方式。使用 list 以无序列表(unordered list)方式显示</td> <td>list</td> </tr> <tr> <td><code>separator</code></td> <td>文章间的分隔符号。只有在 style 不是 list 时有用</td> <td>,</td> </tr> <tr> <td><code>amount</code></td> <td>要显示的文章数量(0 = 无限制)</td> <td>0</td> </tr> <tr> <td><code>class</code></td> <td>文章列表的 class 名称</td> <td>post</td> </tr> <tr> <td><code>transform</code></td> <td>改变文章名称显示方法的函数</td> <td></td> </tr> </tbody> </table> <ul> <li><code><%- tagcloud([tags], [options]) %></code>:插入标签云</li> </ul> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td><code>min_font</code></td> <td>最小字体尺寸</td> <td>10</td> </tr> <tr> <td><code>max_font</code></td> <td>最大字体尺寸</td> <td>20</td> </tr> <tr> <td><code>unit</code></td> <td>字体尺寸大小单位</td> <td>px</td> </tr> <tr> <td><code>amount</code></td> <td>标签总量</td> <td>40</td> </tr> <tr> <td><code>orderby</code></td> <td>排列方式</td> <td>name</td> </tr> <tr> <td><code>order</code></td> <td>标签排列顺序。1, sac 升序;-1, desc 降序</td> <td>1</td> </tr> <tr> <td><code>color</code></td> <td>使用颜色</td> <td>false</td> </tr> <tr> <td><code>start_color</code></td> <td>开始的颜色。您可使用十六进位值(#b700ff),rgba(rgba(183, 0, 255, 1)),hsla(hsla(283, 100%, 50%, 1))或 [颜色关键字]。此变量仅在 color 参数开启时才有用。</td> <td></td> </tr> <tr> <td><code>end_color</code></td> <td>结束的颜色。您可使用十六进位值(#b700ff),rgba(rgba(183, 0, 255, 1)),hsla(hsla(283, 100%, 50%, 1))或 [颜色关键字]。此变量仅在 color 参数开启时才有用。</td> <td></td> </tr> </tbody> </table> <h4>(8)其它</h4> <ul> <li><code><%- paginator(options) %></code>:插入分页链接</li> </ul> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td>base</td> <td>基础网址</td> <td>/</td> </tr> <tr> <td>format</td> <td>网址格式</td> <td>page/%d/</td> </tr> <tr> <td>total</td> <td>分页总数</td> <td>1</td> </tr> <tr> <td>current</td> <td>目前页数</td> <td>0</td> </tr> <tr> <td>prev_text</td> <td>上一页链接的文字。仅在 prev_next 设定开启时才有用。</td> <td>Prev</td> </tr> <tr> <td>next_text</td> <td>下一页链接的文字。仅在 prev_next 设定开启时才有用。</td> <td>Next</td> </tr> <tr> <td>space</td> <td>空白文字</td> <td>&hellp;</td> </tr> <tr> <td>prev_next</td> <td>显示上一页和下一页的链接</td> <td>true</td> </tr> <tr> <td>end_size</td> <td>显示于两侧的页数</td> <td>1</td> </tr> <tr> <td>mid_size</td> <td>显示于中间的页数</td> <td>2</td> </tr> <tr> <td>show_all</td> <td>显示所有页数。如果开启此参数的话,end_size 和 mid_size 就没用了。</td> <td>false</td> </tr> </tbody> </table> <ul> <li><code><%- search_form(options) %></code>:插入Google搜索框</li> </ul> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td>class</td> <td>表单的 class name</td> <td>search-form</td> </tr> <tr> <td>text</td> <td>搜索提示文字</td> <td>Search</td> </tr> <tr> <td>button</td> <td>显示搜索按钮。此参数可为布尔值(boolean)或字符串,当设定是字符串的时候,即为搜索按钮的文字。</td> <td>false</td> </tr> </tbody> </table> <ul> <li><code><%- number_format(number, [options]) %></code>:格式化数字</li> </ul> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td>precision</td> <td>数字精度。此选项可为 false 或非负整数。</td> <td>false</td> </tr> <tr> <td>delimiter</td> <td>千位数分隔符号</td> <td>,</td> </tr> <tr> <td>separator</td> <td>整数和小数之间的分隔符号</td> <td>.</td> </tr> </tbody> </table> <pre><code class="prism language-js"> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">number_format</span><span class="token punctuation">(</span><span class="token number">12345.67</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>precision<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token comment">// 12,345.68</span> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">number_format</span><span class="token punctuation">(</span><span class="token number">12345.67</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>precision<span class="token punctuation">:</span> <span class="token number">4</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token comment">// 12,345.6700</span> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">number_format</span><span class="token punctuation">(</span><span class="token number">12345.67</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>precision<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token comment">// 12,345</span> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">number_format</span><span class="token punctuation">(</span><span class="token number">12345.67</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>delimiter<span class="token punctuation">:</span> <span class="token string">''</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token comment">// 12345.67</span> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">number_format</span><span class="token punctuation">(</span><span class="token number">12345.67</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>separator<span class="token punctuation">:</span> <span class="token string">'/'</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token comment">// 12,345/67</span> </code></pre> <ul> <li><code><%- open_graph([options]) %></code>:插入open graph资源</li> </ul> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td>title</td> <td>页面标题 (og:title)</td> <td>page.title</td> </tr> <tr> <td>type</td> <td>页面类型 (og:type)</td> <td>blog</td> </tr> <tr> <td>url</td> <td>页面网址 (og:url)</td> <td>url</td> </tr> <tr> <td>image</td> <td>页面图片 (og:image)</td> <td>内容中的图片</td> </tr> <tr> <td>site_name</td> <td>网站名称 (og:site_name)</td> <td>config.title</td> </tr> <tr> <td>description</td> <td>页面描述 (og:desription)</td> <td>内容摘要或前 200 字</td> </tr> <tr> <td>twitter_card</td> <td>Twitter 卡片类型 (twitter:card)</td> <td>summary</td> </tr> <tr> <td>twitter_id</td> <td>Twitter ID (twitter:creator)</td> <td></td> </tr> <tr> <td>twitter_site</td> <td>Twitter 网站 (twitter:site)</td> <td></td> </tr> <tr> <td>google_plus</td> <td>Google+ 个人资料链接</td> <td></td> </tr> <tr> <td>fb_admins</td> <td>Facebook 管理者 ID</td> <td></td> </tr> <tr> <td>fb_app_id</td> <td>Facebook 应用程序 ID</td> <td></td> </tr> </tbody> </table> <ul> <li><code><%- toc(str, [options]) %></code>:解析内容中的标题标签(h1~h6)并插入目录</li> </ul> <pre><code class="prism language-js"> <span class="token comment">//解析文章内容,并生成目录列表</span> <span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token function">toc</span><span class="token punctuation">(</span>page<span class="token punctuation">.</span>content<span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span> </code></pre> <table> <thead> <tr> <th>参数</th> <th>描述</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td>class</td> <td>Class 名称</td> <td>toc</td> </tr> <tr> <td>list_number</td> <td>显示编号</td> <td>true</td> </tr> </tbody> </table> <h3>4. 本地化</h3> <p>在主题中设置不同的语言模版,在文件夹languages,然后通过设置改变网页中的预设文本。在模版中是通过<code>__</code>或<code>_p</code>来引用的。</p> <p>例如在<code>_config.yml</code>中设置<code>language: zh-CN</code>,而网页模版中有这么一段引用:<code><h1 class="title"><%= __('comment') %></h1></code>,那么网站会在languages文件夹中找<code>zh-CH.yml</code>文件,并找到对应的<code>comment</code>值,将值显示在网站中。</p> <h3>5. 插件</h3> <ul> <li>Generator</li> <li>Renderer</li> <li>Helper</li> <li>Deployer</li> <li>Processor</li> <li>Tag</li> <li>Console</li> <li>Migrator</li> <li>Filter</li> </ul> <h2>五、主题扩展开发</h2> <h3>1、 hexo站点布局</h3> <p>站点下的每个模板都默认使用layout布局,<code>layout.ejs</code>大致内容如下:</p> <pre><code class="prism language-html"><%- partial('_partial/head') %> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>page-template page-template-user page-template-page-analytics page-template-userpage-analytics-php page page-id-1297 chinese-font serif isWebKit<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>scrollbar<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>bar<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>#<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>cd-top faa-float animated<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>section</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>main-container<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <%- partial('_partial/headertop', null, {cache: !config.relative_link}) %> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>page<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>site wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <%- partial('_partial/header', null, {cache: !config.relative_link}) %> <%- body %> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span> <%- partial('_widget/search/insight') %> <%- partial('_partial/footer', null, {cache: !config.relative_link}) %> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>section</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>html</span><span class="token punctuation">></span></span> </code></pre> <p>根据代码可以看出这基本就是一个完整的页面,header+body+footer等,页面所有的部分都是通过局部模板嵌入进来的。其中的<code><%- body %></code>就是用来给站点各个页面布局替换得到一个完整布局页面的代码。基本分为:<code>index(首页)</code>、<code>post(文章详情页)</code>、<code>page(导航标签页)</code>、<code>archive(归档页)</code>、<code>category(类别页)</code>以及<code>tag(标签页)</code></p> <h3>2、 新增布局</h3> <p>    新增布局则首先在layout文件夹下新加一个<code>newLayout.ejs</code>布局文件,指向另外一个局部模块或者自定义内容样式。<br>     内容样式就是自己想要的页面布局了。结构和样式确认好以后,就可以新增page了。<code>hexo new page newLayout</code>新建一页,hexo则会在根目录下的source文件夹中新增一个<code>newLayout</code>文件夹,并在该文件夹下新增<code>index.md</code>文件,编辑该文件则编辑页面主要内容了。<br> <font color="red">index.md文件的前置声明一定要加上 layout: newLayout 哦!!!</font>否则还是会使用默认布局</p> <h3>3、 新增日历云功能</h3> <p>文章的归档功能可分年月归档,以显示对应时间内的文章数量。但随着时间的增长,这样的归档作为小模块就难以小区域显示,故可以使用日历云的小模块来替换主页的归档小模块。<br> (1)安装<code>hexo-generator-calendar</code>,生成文章日期信息的calendar.json文件</p> <pre><code class="prism language-yml"> npm install <span class="token punctuation">-</span><span class="token punctuation">-</span>save git<span class="token punctuation">:</span>//github.com/howiefh/hexo<span class="token punctuation">-</span>generator<span class="token punctuation">-</span>calendar.git </code></pre> <p>(2)添加相关文件</p> <p>源码参照提取</p> <ul> <li>js文件:<code>calendar.js</code>和<code>languages.js</code>(下载链接)</li> <li>ejs:</li> </ul> <pre><code class="prism language-html"> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>widget tag<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h3</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>title<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><%= __('calendar') %><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h3</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>calendar<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span> </code></pre> <ul> <li>style样式文件:<code>calendar.styl</code>。其中用到两个样式变量确保在<code>source/css/_base/variable.styl</code>文件中已经定义好。一个是<code>color-link</code>,一个是<code>color-calendar-post-bg</code>。下载链接</li> </ul> <p>(3)修改配置</p> <ul> <li>引入js代码</li> </ul> <pre><code class="prism language-js"> <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> add calendar widget <span class="token operator">--</span><span class="token operator">></span> <span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>widgets<span class="token punctuation">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span><span class="token string">'calendar'</span><span class="token punctuation">)</span> <span class="token operator">!=</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token operator"><</span>script src<span class="token operator">=</span><span class="token string">"<%- config.root %>js/calendar.js"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span> <span class="token operator"><</span>script src<span class="token operator">=</span><span class="token string">"<%- config.root %>js/languages.js"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span> <span class="token operator"><</span>script type<span class="token operator">=</span><span class="token string">"text/javascript"</span><span class="token operator">></span> <span class="token function">$</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>calendar<span class="token punctuation">.</span>options<span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token function">$</span><span class="token punctuation">(</span><span class="token string">'#calendar'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">aCalendar</span><span class="token punctuation">(</span><span class="token string">'<%= theme.calendar.language || config.language %>'</span><span class="token punctuation">,</span> $<span class="token punctuation">.</span><span class="token function">extend</span><span class="token punctuation">(</span><span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> <span class="token constant">JSON</span><span class="token punctuation">.</span><span class="token function">stringify</span><span class="token punctuation">(</span>theme<span class="token punctuation">.</span>calendar<span class="token punctuation">.</span>options <span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span><span class="token punctuation">,</span> <span class="token punctuation">{</span>single<span class="token punctuation">:</span><span class="token operator"><</span><span class="token operator">%=</span> config<span class="token punctuation">.</span>calendar<span class="token punctuation">.</span>single <span class="token operator">%</span><span class="token operator">></span><span class="token punctuation">,</span> root<span class="token punctuation">:</span><span class="token string">'<%= config.calendar.root %>'</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token function">$</span><span class="token punctuation">(</span><span class="token string">'#calendar'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">aCalendar</span><span class="token punctuation">(</span><span class="token string">'<%= theme.calendar.language || config.language %>'</span><span class="token punctuation">,</span><span class="token punctuation">{</span>single<span class="token punctuation">:</span><span class="token operator"><</span><span class="token operator">%=</span> config<span class="token punctuation">.</span>calendar<span class="token punctuation">.</span>single <span class="token operator">%</span><span class="token operator">></span><span class="token punctuation">,</span> root<span class="token punctuation">:</span><span class="token string">'<%= config.calendar.root %>'</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span> <span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span> </code></pre> <ul> <li>添加calendar插件配置</li> </ul> <pre><code class="prism language-yml"> <span class="token key atrule">calendar</span><span class="token punctuation">:</span> <span class="token key atrule">language</span><span class="token punctuation">:</span> zh<span class="token punctuation">-</span>CN </code></pre> <p>只定义了语言language为中文,这样的配置就足够了。如果想自定义的话,可以修改<code>calendar.js</code>文件最后一段代码的相关参数,或者将参数填写在主题<code>_config.yml</code>里。例如:</p> <pre><code class="prism language-yml"> <span class="token key atrule">calendar</span><span class="token punctuation">:</span> <span class="token key atrule">language</span><span class="token punctuation">:</span> zh<span class="token punctuation">-</span>CN <span class="token key atrule">options</span><span class="token punctuation">:</span> <span class="token key atrule">months</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">'January'</span><span class="token punctuation">,</span> <span class="token string">'February'</span><span class="token punctuation">,</span> <span class="token string">'March'</span><span class="token punctuation">,</span> <span class="token string">'April'</span><span class="token punctuation">,</span> <span class="token string">'May'</span><span class="token punctuation">,</span> <span class="token string">'June'</span><span class="token punctuation">,</span> <span class="token string">'July'</span><span class="token punctuation">,</span> <span class="token string">'August'</span><span class="token punctuation">,</span> <span class="token string">'September'</span><span class="token punctuation">,</span> <span class="token string">'October'</span><span class="token punctuation">,</span> <span class="token string">'November'</span><span class="token punctuation">,</span> <span class="token string">'December'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token key atrule">dayOfWeekShort</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">'S'</span><span class="token punctuation">,</span> <span class="token string">'M'</span><span class="token punctuation">,</span> <span class="token string">'T'</span><span class="token punctuation">,</span> <span class="token string">'W'</span><span class="token punctuation">,</span> <span class="token string">'T'</span><span class="token punctuation">,</span> <span class="token string">'F'</span><span class="token punctuation">,</span> <span class="token string">'S'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token key atrule">dayOfWeek</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">'Sunday'</span><span class="token punctuation">,</span> <span class="token string">'Monday'</span><span class="token punctuation">,</span> <span class="token string">'Tuesday'</span><span class="token punctuation">,</span> <span class="token string">'Wednesday'</span><span class="token punctuation">,</span> <span class="token string">'Thursday'</span><span class="token punctuation">,</span> <span class="token string">'Friday'</span><span class="token punctuation">,</span> <span class="token string">'Saturday'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> </code></pre> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1274738221397327872"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(博客搭建)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1759495364680953856.htm" title="超详细Hexo+Github博客搭建教程" target="_blank">超详细Hexo+Github博客搭建教程</a> <span class="text-muted">奈何缘浅wyj</span> <div>利用Hexo+GitHubPage搭建技术blog,实现了属于自己独有的博客,自己定义了一个域名:https://gain-wyj.cn/。里面包含了众多的干货,欢迎大家前来观看。我的博客源代码地址大家可以直接素质二连,star&fork我的博客源代码:https://github.com/gain-wyj/wyj-matery-modified/tree/master,然后改改配置就可以写文章啦</div> </li> <li><a href="/article/1757692936205647872.htm" title="nacos+seata 1.2.0" target="_blank">nacos+seata 1.2.0</a> <span class="text-muted">luncene_e110</span> <div>首先我是参照的芋艿的博客搭建的seatahttp://seata.io/zh-cn/blog/seata-quick-start.htmlseata-server配置需要调整的地方:1.registry.conf2.file.conf在官网的script目录下有关于配置的信息,需要将配置信息配到nacos中https://github.com/seata/seata/blob/develop/sc</div> </li> <li><a href="/article/1756721889704689664.htm" title="hexo 博客搭建以及踩雷总结" target="_blank">hexo 博客搭建以及踩雷总结</a> <span class="text-muted">Lovely Ruby</span> <a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a> <div>搭建时的坑文章置顶安装一下这个依赖npminstallhexo-generator-topindex--save然后再文章的上面设置top:number,数字越大,权重越大,也就是越靠顶部hexo每次推送nginx都访问不到宝塔自带的nginx的config里默认的角色是www,然而我看每次自动部署的时候都会变成root所以直接改nginx的配置就好,这样nginx就能够读取到文件证书无效喵的,找</div> </li> <li><a href="/article/1756503486163337216.htm" title="基于springboot + vue 的个人博客搭建过程(新手村之外的世界依旧充满魅力)" target="_blank">基于springboot + vue 的个人博客搭建过程(新手村之外的世界依旧充满魅力)</a> <span class="text-muted">梦魇梦狸º</span> <a class="tag" taget="_blank" href="/search/%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/1.htm">个人博客搭建</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>承接上文:基于springboot+vue的个人博客搭建过程(上线)目前博客项目经历重构后并成功上线,接下来记录优化部分部署优化1.idea集成dockerdocker开启远程端口#修改该docker服务文件vim/lib/systemd/system/docker.service#修改ExecStart这行(注释后修改为如下)ExecStart=/usr/bin/dockerd-Htcp://0</div> </li> <li><a href="/article/1755632906736254976.htm" title="个人博客搭建(总结)" target="_blank">个人博客搭建(总结)</a> <span class="text-muted">懒总不想学习想睡觉</span> <a class="tag" taget="_blank" href="/search/%E7%A0%94%E7%8B%97--%E6%90%9E%E4%BA%8B%E8%AE%B0%E5%BD%95/1.htm">研狗--搞事记录</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>文章目录前言个人基础学习经验耗时最终搭配血泪史总结GiteeorGitHub域名-该买还是得买!域名后缀服务器参考博主碎碎念前言本网站目前只搭好了一个大概框架,博主没学过前端,所以会有许多bug和不合理的设置。大家可以大胆指出!我会在后期慢慢修改的!!指路:https://www.lazy-a.top/放假噜,本“月更·一放假就搞事·学习”博主回来喽!!考完试终于有动力开始研究一直好奇的个人博客了</div> </li> <li><a href="/article/1755399903489572864.htm" title="Hexo + GitHub搭建个人博客(Mac版)" target="_blank">Hexo + GitHub搭建个人博客(Mac版)</a> <span class="text-muted">林间得鹿</span> <a class="tag" taget="_blank" href="/search/Hexo%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA%E4%B8%8E%E4%BD%BF%E7%94%A8/1.htm">Hexo博客搭建与使用</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a> <div>最好的学习方式是思考和分享,写代码的过程中总是希望有个自己的博客记录和分享学习过程。查到GitHub+Hexo是目前主流的博客搭建方式、参考多个建站资料帖子后,基于Mac系统进行了博客搭建,同时将搭建过程进行了完整记录,并添加了建站过程中遇到的问题及解决方法。【背景篇】1.什么是HexoHexo是一个快速、简洁且高效的轻量级博客框架。它基于Node.js运行,使用Markdown解析文章,渲染生成</div> </li> <li><a href="/article/1755399777115193344.htm" title="【Hexo博客搭建与使用】使用草稿方式写作Hexo博客" target="_blank">【Hexo博客搭建与使用】使用草稿方式写作Hexo博客</a> <span class="text-muted">林间得鹿</span> <a class="tag" taget="_blank" href="/search/Hexo%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA%E4%B8%8E%E4%BD%BF%E7%94%A8/1.htm">Hexo博客搭建与使用</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a> <div>【Hexo博客搭建与使用】使用草稿方式写作Hexo博客文章目录【Hexo博客搭建与使用】使用草稿方式写作Hexo博客创建草稿文章publish草稿在写作Hexo博客时,经常有几篇博文同时在构思,直接使用"hexonew"创建的博文,在执行"hexod"的时候会直接部署到博客正式发表。但此时,可能同时进行写作的其他博文还没有完成,就会出现未完成博文也同时被正式部署的尴尬情况。在这种情况下,我们可以使</div> </li> <li><a href="/article/1754696226848129024.htm" title="GihubPage个人博客搭建2020/04/28成功." target="_blank">GihubPage个人博客搭建2020/04/28成功.</a> <span class="text-muted">陆小凤蔡</span> <div>依赖项目PPlayer1.直接在项目中选择开通GithubPage选择master分支安装Jekyll方便协作博客内容.传送安装rubyinstall+devkit-2.6.6.1-x64.exe提取码:n7zd下载RubyGems修改ruby的源为国内的镜像:淘宝镜像(http://mirrors.aliyun.com/rubygems/)或者ruby中国镜像(https://gems.ruby</div> </li> <li><a href="/article/1753988265372827648.htm" title="【个人博客搭建】Hexo安装部署" target="_blank">【个人博客搭建】Hexo安装部署</a> <span class="text-muted">木子家有小可爱</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE/1.htm">工具安装及配置</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>目录一、本地构建Hexo(一)安装前提1.Node.js2.Git3.Hexo(二)初始化Hexo1.初始化博客目录2.配置网站基本信息(三)主题配置1.选择主题2.下载主题(四)本地启动Hexo1.生成静态文件2.启动服务二、部署(一)部署到GithubPages1.新建仓库2.配置Pages服务3.提交Hexo到GitHubPages(二)部署到云服务器1.创建blog用户2.配置git远程仓</div> </li> <li><a href="/article/1753683406467645440.htm" title="Hexo博客搭建与部署" target="_blank">Hexo博客搭建与部署</a> <span class="text-muted">木子欢儿</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/Hexo/1.htm">Hexo</a><a class="tag" taget="_blank" href="/search/%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/1.htm">个人博客</a> <div>Hexo简介Hexo是一款基于Node.js的静态博客框架,使用Markdown(或其他渲染引擎)解析文章,依赖少易于安装,可在几秒内利用现有主题生成静态网页。框架提供了很详细的中文文档,大家可以进入Hexo官网查看。搭建环境准备安装GitGit是一个先进的分布式版本控制工具,可以有效处理不同规模的项目版本管理。这里用于管理你的Hexo文章,将本地的博客上传至Github。到Git官网选择合适的版</div> </li> <li><a href="/article/1752395541435662336.htm" title="2024年Java实战面试题" target="_blank">2024年Java实战面试题</a> <span class="text-muted">内卷成仙</span> <a class="tag" taget="_blank" href="/search/2024%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">2024年Java面试题</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/Java%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">Java面试题</a> <div>高阶篇:2024年Java高阶面试题-CSDN博客算法篇:2024年Java算法面试题-CSDN博客基础篇:2024年Java基础面试题-CSDN博客原理篇:2024年Java原理面试题-CSDN博客搭建篇:2024年Java搭建面试题-CSDN博客</div> </li> <li><a href="/article/1751792782323761152.htm" title="hexo搭建博客" target="_blank">hexo搭建博客</a> <span class="text-muted">0zxm</span> <a class="tag" taget="_blank" href="/search/%E5%8D%9A%E5%AE%A2/1.htm">博客</a><a class="tag" taget="_blank" href="/search/arcgis/1.htm">arcgis</a><a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a> <div>title:博客搭建过程中的问题及解决方法date:2024-01-2618:11:11tags:[搭建博客]搭建博客安装Git和NodeJs这是我搭建的时候对照的视频链接[教程]Hexo&Github搭建自己的专属博客哔哩哔哩bilibili首先要安装[Git]https://git-scm.com/downloads在Windows上使用Git,可以从Git官网直接Git-Downloads,</div> </li> <li><a href="/article/1751000035086057472.htm" title="博客搭建历程(1)" target="_blank">博客搭建历程(1)</a> <span class="text-muted">yeshan333</span> <div>我为什么要搭建自己的博客:人嘛!总会有迷茫的时候。无聊了就搭建一个博客玩玩。借此思考下人生先洗下脑搭建参考教程csdnw3cschool博客园思否hexo+GitHubPages搭建属于自己的博客需要安装Node.js安装git一个GitHub账号hexo配置一、Node.js安装参考安装windows64bit下载二、git的配置参考安装需根据自己的实际情况,在cmd使用git--version</div> </li> <li><a href="/article/1750853925998706688.htm" title="数据中台搭建之安装JDK,zookeeper,kafka" target="_blank">数据中台搭建之安装JDK,zookeeper,kafka</a> <span class="text-muted">CayongL</span> <a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/jdk1.8/1.htm">jdk1.8</a> <div>1.背景接上篇博客搭建数据中台之安装mysql,在此基础上安装其他环境2.准备上传包到主节点上3.解压、安装、修改配置文件3.1解压JDKtar-xvfjdk-8u181-linux-x64.gz3.2移动到/usr/local/jdk目录下mv····/usr/local/jdk3.3解压zookeepertar-zxvfzookeeper-3.4.5.tar.gz3.4移动到/usr/loca</div> </li> <li><a href="/article/1750024488126267392.htm" title="【博客搭建记录贴】使用hexo下载项目文件并启动默认博客网站" target="_blank">【博客搭建记录贴】使用hexo下载项目文件并启动默认博客网站</a> <span class="text-muted">爱分享的胖头鱼</span> <a class="tag" taget="_blank" href="/search/05.%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/1.htm">05.博客搭建</a><a class="tag" taget="_blank" href="/search/hexo/1.htm">hexo</a><a class="tag" taget="_blank" href="/search/%E5%8D%9A%E5%AE%A2/1.htm">博客</a> <div>目录使用hexo建立博客网站1)执行hexo命令下载项目文件2)启动服务器并查看页面使用hexo建立博客网站1)执行hexo命令下载项目文件使用cd命令移动到项目目录,并使用hexoinit命令下载默认的项目文件PSC:\Users\PC>cdD:\Project\blogProjectPSD:\Project\blogProject>hexoinitINFOCloninghexo-starter</div> </li> <li><a href="/article/1749929947088044032.htm" title="【博客搭建记录贴】问题记录:hexo : 无法加载文件 C:\Program Files\nodejs\hexo.ps1,因为在此系统上禁止运行脚本。" target="_blank">【博客搭建记录贴】问题记录:hexo : 无法加载文件 C:\Program Files\nodejs\hexo.ps1,因为在此系统上禁止运行脚本。</a> <span class="text-muted">爱分享的胖头鱼</span> <a class="tag" taget="_blank" href="/search/05.%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/1.htm">05.博客搭建</a><a class="tag" taget="_blank" href="/search/hexo/1.htm">hexo</a><a class="tag" taget="_blank" href="/search/powershell/1.htm">powershell</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC%E6%89%A7%E8%A1%8C/1.htm">脚本执行</a> <div>1,背景hexo(博客框架)安装完毕之后,正准备看看其版本,发现出现下面脚本禁止运行的错误。PSC:\Users\PC>hexo-vhexo:无法加载文件C:\ProgramFiles\nodejs\hexo.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅https:/go.microsoft.com/fwlink/?LinkID=135170中的about_Execution_Poli</div> </li> <li><a href="/article/1749146872171216896.htm" title="Re:从零开始的博客搭建" target="_blank">Re:从零开始的博客搭建</a> <span class="text-muted">weixin_34377919</span> <a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/1.htm">开发工具</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/ViewUI/1.htm">ViewUI</a> <div>看到同学有个人博客,心里痒痒的,想着也搞一个去,但是网上的博客都是在别人服务器上,感觉太被动,我不喜欢。就去百度了下建站的过程,好像...并不难的样子于是,开搞!期间踩了无数坑,百度和谷歌了无数次,软件装了又卸,卸了又装,连服务器系统都重装3次算是对的起标题的"RE"了。写这篇文章是打算记录下我搭建的过程,也算是个备忘录吧,个人的记性实在是不好,不知道什么时候就忘了搭建的事前准备一个独立域名一台l</div> </li> <li><a href="/article/1749146873614057472.htm" title="从零开始免费搭建自己的博客(五)——Typora + PicGo + GitHub/Gitee图床" target="_blank">从零开始免费搭建自己的博客(五)——Typora + PicGo + GitHub/Gitee图床</a> <span class="text-muted">杰克小麻雀</span> <a class="tag" taget="_blank" href="/search/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/1.htm">博客搭建</a><a class="tag" taget="_blank" href="/search/Typora/1.htm">Typora</a><a class="tag" taget="_blank" href="/search/Picgo/1.htm">Picgo</a><a class="tag" taget="_blank" href="/search/GitHub%E5%9B%BE%E5%BA%8A/1.htm">GitHub图床</a><a class="tag" taget="_blank" href="/search/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/1.htm">博客搭建</a><a class="tag" taget="_blank" href="/search/Gitee%E5%9B%BE%E5%BA%8A/1.htm">Gitee图床</a> <div>本文是博客搭建系列文章第五篇,其他文章链接:从零开始免费搭建自己的博客(一)——本地搭建Hexo框架从零开始免费搭建自己的博客(二)——基于GitHubpages建站从零开始免费搭建自己的博客(三)——基于Giteepages建站从零开始免费搭建自己的博客(四)——编写Markdown文章利器Typora从零开始免费搭建自己的博客(五)——Typora+PicGo+GitHub/Gitee图床从零</div> </li> <li><a href="/article/1748025961594503168.htm" title="【博客搭建记录贴】准备作业:安装node.js,hexo" target="_blank">【博客搭建记录贴】准备作业:安装node.js,hexo</a> <span class="text-muted">爱分享的胖头鱼</span> <a class="tag" taget="_blank" href="/search/05.%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/1.htm">05.博客搭建</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/nvm/1.htm">nvm</a><a class="tag" taget="_blank" href="/search/hexo/1.htm">hexo</a> <div>1,背景平常自己也会写一写文章,以及读后感啥的,想着要不要自己搭建一个博客玩一玩,就有了这篇文章,哈哈哈。2,怎么做?参考了网上各路大神的做法,发现有两种,采用博客框架Hexo自己搭,或者WordPress,考虑到有一定的编程基础,想在本地先跑跑(貌似WordPress需要先有一台服务器),外加还是想要自己写写代码,就采用了Hexo的做法。快速搭建个人博客——保姆级教程-CSDN博客3,环境准备(</div> </li> <li><a href="/article/1746583921690165248.htm" title="从零开始免费搭建自己的博客(四)——编写Markdown文章利器 Typora" target="_blank">从零开始免费搭建自己的博客(四)——编写Markdown文章利器 Typora</a> <span class="text-muted">杰克小麻雀</span> <a class="tag" taget="_blank" href="/search/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/1.htm">博客搭建</a><a class="tag" taget="_blank" href="/search/markdown/1.htm">markdown</a><a class="tag" taget="_blank" href="/search/Typora/1.htm">Typora</a><a class="tag" taget="_blank" href="/search/Hexo/1.htm">Hexo</a><a class="tag" taget="_blank" href="/search/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/1.htm">博客搭建</a> <div>本文是博客搭建系列文章第四篇,其他文章链接:从零开始免费搭建自己的博客(一)——本地搭建Hexo框架从零开始免费搭建自己的博客(二)——基于GitHubpages建站从零开始免费搭建自己的博客(三)——基于Giteepages建站从零开始免费搭建自己的博客(四)——编写Markdown文章利器Typora从零开始免费搭建自己的博客(五)——Typora+PicGo+GitHub/Gitee图床从零</div> </li> <li><a href="/article/1746149073422925824.htm" title="Hexo博客搭建遇到的相关问题解答" target="_blank">Hexo博客搭建遇到的相关问题解答</a> <span class="text-muted">南城FE</span> <div>Q:如何使用github的根目录访问Hexo搭建的博客网站?A:建立与你用户名对应的仓库,仓库名如下:your_user_name.github.ioHexo根配置文件如下:url:https://your_user_name.github.io/root:/此时即可通过https://your_user_name.github.io访问,不用携带子路径。Q:Hexocategories,tags</div> </li> <li><a href="/article/1745359826201886720.htm" title="Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)" target="_blank">Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)</a> <span class="text-muted">echo勇往直前</span> <a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E9%83%A8%E7%BD%B2/1.htm">服务部署</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>Halo[ˈheɪloʊ],一款现代化的开源博客/CMS系统,值得一试官方网站:Halo官方文档:HaloDocumentsGithub:halo-dev/halo:✍一款现代化的开源博客/CMS系统。(github.com)5.1环境准备目前运行Halo的最低依赖要求为JRE11,请务必确保在进行下面操作之前已经正确安装了JRE目前介绍两种Linux发行版的安装方式,均为OpenJRE,不推荐O</div> </li> <li><a href="/article/1744894514960547840.htm" title="Hexo+github搭建个人博客-环境搭建篇" target="_blank">Hexo+github搭建个人博客-环境搭建篇</a> <span class="text-muted">程序员欧阳</span> <div>.一、概述我们使用Hexo+Github搭建个人博客,我们自然不能错过,事不宜迟,我们现在立马来认识一下,他们究竟是何方神圣吧。1.1关于GitHub1.1.1Github接触编程一段时间后,相信大家都会开始了解到版本控制,如SVN、HG。是的,Github是一个知名的分布式版本控制系统以及开源代码库。在本次博客搭建中,也是需要大家能够具备一定的Git版本控制知识的。大家放心,后文会对必须用到的命</div> </li> <li><a href="/article/1744317857610612736.htm" title="hexo 博客搭建之换主题" target="_blank">hexo 博客搭建之换主题</a> <span class="text-muted">wniuniu_</span> <a class="tag" taget="_blank" href="/search/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BAhexo/1.htm">博客搭建hexo</a><a class="tag" taget="_blank" href="/search/hexo/1.htm">hexo</a> <div>我们先找到博客目录下的_config.yml文件,找到如图所示的选项大家可以修改一个选项之后,执行hexoclean、hexog、hexos在本地看一下效果,等全部修改好之后再推送到仓库如何更换主题呢?首先我们要找一个喜欢的主题,网址是https://hexo.io/themes/挑选喜欢的主题,然后点击名字,就可以跳转到github的界面,我们根据readme文件就可以操作换主题啦我下面展示一下</div> </li> <li><a href="/article/1744247308561694720.htm" title="持续完善hexo博客" target="_blank">持续完善hexo博客</a> <span class="text-muted">禹子歆</span> <div>把博客搭建起来都一年多了,因为一直没啥人看,所以都懒得更新,现在想想,岂不是浪费了当初搭建的那半个多小时?以后如果对博客有啥修改,就统一在这里更新。update2018-05-19:一般博客都需要有的一个功能:置顶修改node_modules/hexo-generator-index/lib/generator.js加上posts.data=posts.data.sort(function(a,b</div> </li> <li><a href="/article/1743768587505516544.htm" title="hexo INFO Validating config错误解决方案以及hexo部署到github主页404打不开解决方案" target="_blank">hexo INFO Validating config错误解决方案以及hexo部署到github主页404打不开解决方案</a> <span class="text-muted">airyv</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%9A%84%E9%97%AE%E9%A2%98/1.htm">编程过程中的问题</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/hexo/1.htm">hexo</a> <div>搭建博客主要参考CodeSheep的视频:手把手教你从0开始搭建自己的个人博客|无坑版视频教程|hexo以及雨落弦鸣的视频:超简单效果超好的个人网站博客搭建(对小白很友好)首先安装nodejs和git环境nodejs环境搭建教程:nodejs下载安装及配置环境git搭建教程:Windows系统Git安装教程(详解Git安装过程)最开始采用CodeSheep的教程,开始比较顺利。首先换成淘宝源npm</div> </li> <li><a href="/article/1742719862536421376.htm" title="如何使用 vercel + hexo 搭建博客" target="_blank">如何使用 vercel + hexo 搭建博客</a> <span class="text-muted">恪晨</span> <div>如何使用vercel+hexo搭建博客前言  也许你想拥有一套自己的博客,方便面试的时候想展示自我,或者想记录自己的生活,但是一直没有找到合适的平台;也许你有一些自己的小玩意想部署到服务器,但是服务器有有点小贵,打工人又舍不得,那么vercel平台可能是你不错的选择,不用花钱,访问速度快,域名也有!本文的主要目的是帮助想拥有自己的博客的朋友,提供一套完整的博客搭建方案,那么现在就开干吧!介绍ver</div> </li> <li><a href="/article/1741457399228678144.htm" title="wordpress安装及配置" target="_blank">wordpress安装及配置</a> <span class="text-muted">iteye_13556</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>用一个周末总算在ubuntu下把www.jtianling.com博客搭建好了,这里分享一些不成熟的经验。准备工作安装wordpress前需要安装的软件如下:1.apache2,这个不用说了,没有apache就没有http服务器啊。apt-getinstallapache22.php5,wordpress是用php写的apt-getinstalllibapache2-mod-php5php53.m</div> </li> <li><a href="/article/1740244550049349632.htm" title="Vue框架引入Axios" target="_blank">Vue框架引入Axios</a> <span class="text-muted">新鑫S</span> <a class="tag" taget="_blank" href="/search/Vue/1.htm">Vue</a><a class="tag" taget="_blank" href="/search/Node/1.htm">Node</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>首先已经创建好了Vue框架,安装好了node.js。没有完成的可按照此博客搭建:搭建Vue项目之后打开终端,使用命令。1、命令安装axios和vue-axiosnpminstallaxios--savenpminstallvue-axios--save2、package.json查看版本在package.json文件里可查看下载好的依赖版本。3、在main.js完整引入importaxiosfro</div> </li> <li><a href="/article/1739680563343671296.htm" title="Vue框架引入Element-Ui" target="_blank">Vue框架引入Element-Ui</a> <span class="text-muted">新鑫S</span> <a class="tag" taget="_blank" href="/search/Vue/1.htm">Vue</a><a class="tag" taget="_blank" href="/search/Node/1.htm">Node</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>首先已经创建好了Vue框架,安装好了node.js。没有完成的可按照此博客搭建:搭建Vue项目之后打开终端,使用命令。1、命令引入npmielement-ui-S2、package.json查看版本在package.json文件里可查看下载好的依赖版本。3、在main.js完整引入没引入之前:importVuefrom'vue'importAppfrom'./App.vue'importroute</div> </li> <li><a href="/article/59.htm" title="html" target="_blank">html</a> <span class="text-muted">周华华</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>js 1,数组的排列 var arr=[1,4,234,43,52,]; for(var x=0;x<arr.length;x++){    for(var y=x-1;y<arr.length;y++){      if(arr[x]<arr[y]){     &</div> </li> <li><a href="/article/186.htm" title="【Struts2 四】Struts2拦截器" target="_blank">【Struts2 四】Struts2拦截器</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/struts2%E6%8B%A6%E6%88%AA%E5%99%A8/1.htm">struts2拦截器</a> <div>Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。   Struts2中自定义拦截器的步骤是:</div> </li> <li><a href="/article/313.htm" title="make:cc 命令未找到解决方法" target="_blank">make:cc 命令未找到解决方法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%91%BD%E4%BB%A4%E6%9C%AA%E7%9F%A5/1.htm">命令未知</a><a class="tag" taget="_blank" href="/search/make+cc/1.htm">make cc</a> <div>安装rz sz程序时,报下面错误:   [root@slave2 src]# make posix cc   -O -DPOSIX -DMD=2 rz.c -o rz make: cc:命令未找到 make: *** [posix] 错误 127   系统:centos 6.6 环境:虚拟机   错误原因:系统未安装gcc,这个是由于在安</div> </li> <li><a href="/article/440.htm" title="Oracle之Job应用" target="_blank">Oracle之Job应用</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/oracle+job/1.htm">oracle job</a> <div> 最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。   一:查看相关job信息    1、相关视图  dba_jobs  all_jobs  user_jobs  dba_jobs_running 包含正在运行</div> </li> <li><a href="/article/567.htm" title="多线程机制" target="_blank">多线程机制</a> <span class="text-muted">朱辉辉33</span> <a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a> <div>转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx 程序、进程和线程: 程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的</div> </li> <li><a href="/article/694.htm" title="web报表工具FineReport使用中遇到的常见报错及解决办法(一)" target="_blank">web报表工具FineReport使用中遇到的常见报错及解决办法(一)</a> <span class="text-muted">老A不折腾</span> <a class="tag" taget="_blank" href="/search/web%E6%8A%A5%E8%A1%A8/1.htm">web报表</a><a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><a class="tag" taget="_blank" href="/search/java%E6%8A%A5%E8%A1%A8/1.htm">java报表</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E8%A1%A8%E5%B7%A5%E5%85%B7/1.htm">报表工具</a> <div>FineReport使用中遇到的常见报错及解决办法(一) 这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。   出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。   1、address pool is full: 含义:地址池满,连接数超过并发数上</div> </li> <li><a href="/article/821.htm" title="mysql rpm安装后没有my.cnf" target="_blank">mysql rpm安装后没有my.cnf</a> <span class="text-muted">林鹤霄</span> <a class="tag" taget="_blank" href="/search/%E6%B2%A1%E6%9C%89my.cnf/1.htm">没有my.cnf</a> <div>Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的, 至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法, 第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动, 第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r</div> </li> <li><a href="/article/948.htm" title="Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题" target="_blank">Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题</a> <span class="text-muted">aigo</span> <a class="tag" taget="_blank" href="/search/root/1.htm">root</a> <div>原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/   Step 4: Run ADB command from your PC   On the PC, you need install Amazon Fire ADB driver and instal</div> </li> <li><a href="/article/1075.htm" title="javascript 中var提升的典型实例" target="_blank">javascript 中var提升的典型实例</a> <span class="text-muted">alxw4616</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧 myname = 'global'; var fn = function () { console.log(myname); // undefined var myname = 'local'; console.log(myname); // local }; fn() // 上述代码实际上等同于以下代码 m</div> </li> <li><a href="/article/1202.htm" title="定时器和获取时间的使用" target="_blank">定时器和获取时间的使用</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E7%9A%84%E8%BD%AC%E6%8D%A2/1.htm">时间的转换</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E6%97%B6%E5%99%A8/1.htm">定时器</a> <div>定时器:定时创建任务在游戏设计的时候用的比较多   Timer();定时器 TImerTask();Timer的子类  由 Timer 安排为一次执行或重复执行的任务。       定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定</div> </li> <li><a href="/article/1329.htm" title="JDK1.5 Queue" target="_blank">JDK1.5 Queue</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a><a class="tag" taget="_blank" href="/search/Queue/1.htm">Queue</a> <div>JDK1.5 Queue LinkedList: LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方</div> </li> <li><a href="/article/1456.htm" title="http认证原理和https" target="_blank">http认证原理和https</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a> <div>一.基础介绍         在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。         Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后</div> </li> <li><a href="/article/1583.htm" title="【Java范型五】范型继承" target="_blank">【Java范型五】范型继承</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2   package com.tom.lang.generics; public abstract class SuperGenerics<T1, T2> { private T1 t1; private T2 t2; public abstract void doIt(T</div> </li> <li><a href="/article/1710.htm" title="【Nginx六】nginx.conf常用指令(Directive)" target="_blank">【Nginx六】nginx.conf常用指令(Directive)</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Directive/1.htm">Directive</a> <div>1. worker_processes    8; 表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行   nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process </div> </li> <li><a href="/article/1837.htm" title="lua 遍历Header头部" target="_blank">lua 遍历Header头部</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/lua+header+%E9%81%8D%E5%8E%86%E3%80%80/1.htm">lua header 遍历 </a> <div> local headers = ngx.req.get_headers()   ngx.say("headers begin", "<br/>")   ngx.say("Host : ", he</div> </li> <li><a href="/article/1964.htm" title="java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。" target="_blank">java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.Arrays; public class MinSumASumB { /** * Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序. * * 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 * 例如: * int[] a = {100,99,98,1,2,3</div> </li> <li><a href="/article/2091.htm" title="redis" target="_blank">redis</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>在redis的redis.conf配置文件中找到# requirepass foobared 把它替换成requirepass 12356789 后边的12356789就是你的密码 打开redis客户端输入config get requirepass 返回 redis 127.0.0.1:6379> config get requirepass 1) "require</div> </li> <li><a href="/article/2218.htm" title="[JAVA图像与图形]现有的GPU架构支持JAVA语言吗?" target="_blank">[JAVA图像与图形]现有的GPU架构支持JAVA语言吗?</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/java%E8%AF%AD%E8%A8%80/1.htm">java语言</a> <div>       无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情        </div> </li> <li><a href="/article/2345.htm" title="安装ubuntu14.04登录后花屏了怎么办" target="_blank">安装ubuntu14.04登录后花屏了怎么办</a> <span class="text-muted">cuiyadll</span> <a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a> <div>这个情况,一般属于显卡驱动问题。 可以先尝试安装显卡的官方闭源驱动。 按键盘三个键:CTRL + ALT  +  F1 进入终端,输入用户名和密码登录终端: 安装amd的显卡驱动 sudo  apt-get  install  fglrx 安装nvidia显卡驱动 sudo  ap</div> </li> <li><a href="/article/2472.htm" title="SSL 与 数字证书 的基本概念和工作原理" target="_blank">SSL 与 数字证书 的基本概念和工作原理</a> <span class="text-muted">darrenzhu</span> <a class="tag" taget="_blank" href="/search/%E5%8A%A0%E5%AF%86/1.htm">加密</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/%E8%AF%81%E4%B9%A6/1.htm">证书</a><a class="tag" taget="_blank" href="/search/%E5%AF%86%E9%92%A5/1.htm">密钥</a><a class="tag" taget="_blank" href="/search/%E7%AD%BE%E5%90%8D/1.htm">签名</a> <div>SSL 与 数字证书 的基本概念和工作原理 http://www.linuxde.net/2012/03/8301.html SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。 http://www.ibm.com/developerworks/cn/webspher</div> </li> <li><a href="/article/2599.htm" title="Ubuntu设置ip的步骤" target="_blank">Ubuntu设置ip的步骤</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a> <div>在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。 转载不是错: Ubuntu命令行修改网络配置方法 /etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载. 1. 以D</div> </li> <li><a href="/article/2726.htm" title="php包管理工具推荐" target="_blank">php包管理工具推荐</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/Composer/1.htm">Composer</a> <div>http://www.phpcomposer.com/   Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。 中文文档  入门指南  下载  安装包列表 Composer 中国镜像 </div> </li> <li><a href="/article/2853.htm" title="Gson使用四(TypeAdapter)" target="_blank">Gson使用四(TypeAdapter)</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/gson/1.htm">gson</a><a class="tag" taget="_blank" href="/search/Gson%E8%87%AA%E5%AE%9A%E4%B9%89%E8%BD%AC%E6%8D%A2%E5%99%A8/1.htm">Gson自定义转换器</a><a class="tag" taget="_blank" href="/search/gsonTypeAdapter/1.htm">gsonTypeAdapter</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述        Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例        例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都</div> </li> <li><a href="/article/2980.htm" title="JQM控件之Navbar和Tabs" target="_blank">JQM控件之Navbar和Tabs</a> <span class="text-muted">gundumw100</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>在JQM中使用导航栏Navbar是简单的。 只需要将data-role="navbar"赋给div即可: <div data-role="navbar"> <ul> <li><a href="#" class="ui-btn-active&qu</div> </li> <li><a href="/article/3107.htm" title="利用归并排序算法对大文件进行排序" target="_blank">利用归并排序算法对大文件进行排序</a> <span class="text-muted">iwindyforest</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F/1.htm">归并排序</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%96%87%E4%BB%B6/1.htm">大文件</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E6%B2%BB%E6%B3%95/1.htm">分治法</a><a class="tag" taget="_blank" href="/search/Merge+sort/1.htm">Merge sort</a> <div>  归并排序算法介绍,请参照Wikipeida zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F 基本思想: 大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数 低于限制行数的子文件直接排序 两个排序好的子文件归并到父文件 直到最后所有排序好的父文件归并到输入</div> </li> <li><a href="/article/3234.htm" title="iOS UIWebView URL拦截" target="_blank">iOS UIWebView URL拦截</a> <span class="text-muted">啸笑天</span> <a class="tag" taget="_blank" href="/search/UIWebView/1.htm">UIWebView</a> <div>本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有</div> </li> <li><a href="/article/3361.htm" title="索引的碎片整理SQL语句" target="_blank">索引的碎片整理SQL语句</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>SET NOCOUNT ON DECLARE @tablename VARCHAR (128) DECLARE @execstr VARCHAR (255) DECLARE @objectid INT DECLARE @indexid INT DECLARE @frag DECIMAL DECLARE @maxfrag DECIMAL --设置最大允许的碎片数量,超过则对索引进行碎片</div> </li> <li><a href="/article/3488.htm" title="Angularjs同步操作http请求with $promise" target="_blank">Angularjs同步操作http请求with $promise</a> <span class="text-muted">qiaolevip</span> <a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/%E7%BA%B5%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">纵观千象</a> <div>// Define a factory app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) { var deferred = $q.defer(); AccountService.getProfile().then(function(res) { </div> </li> <li><a href="/article/3615.htm" title="hibernate联合查询问题" target="_blank">hibernate联合查询问题</a> <span class="text-muted">sxj19881213</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/HQL/1.htm">HQL</a><a class="tag" taget="_blank" href="/search/%E8%81%94%E5%90%88%E6%9F%A5%E8%AF%A2/1.htm">联合查询</a> <div>最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。 针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)   1 几个常识:  (1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。  (2)hql的默认查询策略,在进行联合查询时,会产</div> </li> <li><a href="/article/3742.htm" title="struts2.xml" target="_blank">struts2.xml</a> <span class="text-muted">wuai</span> <a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a> <div><?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>