HEXO官方文档学习笔记

HEXO官方文档学习笔记

hexo官方文档

一. hexo 开始使用

1.1 概述

环境必须包括 nodejsgit ,从对应的官网进行对应的安装;

1.2 建站(测试生成静态文件并本地运行)

执行下面的代码:

$ cd D:hexo/    #换成你的目录
$ npm install -g hexo-cli  #安装hexo脚手架
$ hexo init     #Hexo自动在当前文件夹下下载搭建网站所需的所有文件
$ npm install   #安装依赖包

$ hexo g        #完整命令为hexo generate,生成静态文件
$ hexo s        #完整命令为hexo server,启动服务器,用来本地预览

生成的项目的目录如下,下面对各个目录功能介绍:

.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   ├── _drafts
|   └── _posts
└── themes
  • _config.yml:网站的 配置 信息,您可以在此配置大部分的参数;
  • scaffolds:模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件:hexo new title.md
  • source:资源文件夹是存放用户资源的地方; _posts 文件夹指的是发布文章的文件夹;_drafts为文章的草稿文件夹,除 _posts 文件夹之,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。
  • themes:主题 文件夹。Hexo 会根据主题来生成静态页面。

1.3 配置(_config.yml 中修改网站配置)

_config.yml 文件中的 # Home page setting 在后面介绍;

1.3.1 网站(# Site)

参数 | 描述
------------- | ------------------------------------------- |------------------
title | 网站标题
subtitle | 网站副标题
description | 网站描述
author | 您的名字
language | 网站使用的语言
timezone | 网站时区。Hexo 默认使用您电脑的时区。时区列表。比如说:America/New_York, Japan, 和 UTC 。

description主要用于SEO,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。author参数用于主题显示文章的作者。

1.3.2 网址(# URL)

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

如果您的网站存放在子目录中,例如 http://yoursite.com/blog,则请将您的 url 设为 http://yoursite.com/blog 并把 root 设为 /blog/

1.3.3 目录(# Directory)——建议刚学hexo时不改动

参数 描述 默认值
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 跳过指定文件的渲染,您可使用 glob 表达式来匹配路径。

1.3.4 文章(# Writing)

参数 描述 默认值
new_post_name 新文章的文件名称 :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 启动 Asset 文件夹 false
relative_link 把链接改为与根目录的相对位址 false
future 显示未来的文章 true
highlight 代码块的设置

1.3.5 分类 & 标签(# Category & Tag)

参数 描述 默认值
default_category 默认分类 uncategorized
category_map 分类别名
tag_map 标签别名

1.3.6 日期 / 时间格式(# Date / Time format)

参数 描述 默认值
date_format 日期格式 YYYY-MM-DD
time_format 时间格式 H:mm:ss

Hexo 使用 Moment.js 来解析和显示时间。

1.3.6 分页(# Pagination)

参数 描述 默认值
per_page 每页显示的文章量 (0 = 关闭分页功能) 10
pagination_dir 分页目录 page

1.3.6 扩展(# Extensions)

参数 | 描述
------------- | ------------------------------------------- |------------------
theme | 当前主题名称。值为false时禁用主题
deploy | 部署部分的设置

1.4 命令

1.4.1 指令

# init : hexo初始化新建一个网站,没有folder默认当前文件夹建立网站项目,一般是在网站建立文件夹下使用gitBash直接输入 hexo init 进行初始化;
$ hexo init [folder]

# new : 新建一篇文章,若没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数post代替,如果标题包含空格的话,请使用引号括起来;
$ hexo new [layout] 

# generate : 生成静态文件;可选参数:-d, --deploy   文件生成后立即部署网站 ;-w, --watch    监视文件变动
$ hexo generate 
$ hexo g  #简写

# publish : 发表草稿
$ hexo publish [layout] <filename>

# server : 启动服务器,默认网址: http://localhost:4000/。可选参数:-i  重设IP地址;  -p, --port  重设端口;-s, --static   只使用静态文件;-l, --log   启动日记记录,使用覆盖记录格式
$ hexo server

# deploy : 部署网站。可选参数:-g, --generate 部署之前预先生成静态文件
$ hexo deploy
$ hexo d  # 简写

# render : 渲染文件。可选参数:-o, --output   设置输出路径
$ hexo render <file1> [file2] ...

# migrate : 从其他博客系统 迁移内容。
$ hexo migrate <type>

# clean : 清除缓存文件 (db.json) 和已生成的静态文件 (public),发布新的网站前应执行该命令。
$ hexo clean

# list : 列出网站资料。
$ hexo list <type>

# version : 显示 Hexo 版本。
$ hexo version
</code></pre> 
 <h4>1.4.2 选项</h4> 
 <pre><code class="bash"># 安全模式 : 在安全模式下,不会载入插件和脚本。当您在安装新插件遭遇问题时,可以尝试以安全模式重新执行。
$ hexo --safe

# 调试模式 : 在终端中显示调试信息并记录到 debug.log。当您碰到问题时,可以尝试用调试模式重新执行一次,并 提交调试信息到 GitHub。
$ hexo --debug

# 简洁模式 : 隐藏终端信息。
$ hexo --silent

# 自定义配置文件的路径 : 自定义配置文件的路径,执行后将不再使用 _config.yml。
$ hexo --config custom.yml

# 显示草稿 : 显示 source/_drafts 文件夹中的草稿文章。
$ hexo --draft

# 自定义 CWD : 自定义当前工作目录(Current working directory)的路径。
$ hexo --cwd /path/to/cwd
</code></pre> 
 <h2>二. 基本操作</h2> 
 <h3>2.1 写作</h3> 
 <p>创建一篇新文章的命令:</p> 
 <pre><code class="bash"># layout 表示文章的布局,默认是post,可修改 _config.yml 中的 default_layout 参数来指定默认布局
$ hexo new [layout] <title>
</code></pre> 
 <h4>2.1.1 布局(Layout)</h4> 
 <p>Hexo 有三种默认布局:post、page 和 draft,也可以自定义其他布局,都将储存到 source/_posts 文件夹;</p> 
 <p>【若不想你的文章被处理,你可以将 Front-Matter 中的layout: 设为 false 。】</p> 
 <h4>2.1.2 文件名称</h4> 
 <p>Hexo 默认以标题做为文件名称,但您可编辑 new_post_name 参数来改变默认的文件名称,举例来说,设为 :year-:month-:day-:title.md 可让您更方便的通过日期来管理文章。</p> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>:title</td> 
    <td>标题(小写,空格将会被替换为短杠)</td> 
   </tr> 
   <tr> 
    <td>:year</td> 
    <td>建立的年份,比如, 2015</td> 
   </tr> 
   <tr> 
    <td>:month</td> 
    <td>建立的月份(有前导零),比如, 04</td> 
   </tr> 
   <tr> 
    <td>:i_month</td> 
    <td>建立的月份(无前导零),比如, 4</td> 
   </tr> 
   <tr> 
    <td>:day</td> 
    <td>建立的日期(有前导零),比如, 07</td> 
   </tr> 
   <tr> 
    <td>:i_day</td> 
    <td>建立的日期(无前导零),比如, 7</td> 
   </tr> 
  </tbody> 
 </table> 
 <h4>2.1.3 草稿</h4> 
 <p>草稿存放在 <code>source/_drafts</code> 目录下,通过 <code>hexo new draft :title</code> 建立,再通过 <code>hexo publish [layout] <title></code> 来指定布局并发布文章;</p> 
 <p>【草稿默认不会显示在页面中,您可在执行时加上 --draft 参数,或是把 render_drafts 参数设为 true 来预览草稿。】</p> 
 <h4>2.1.4 模版(Scaffold)</h4> 
 <p>新建文章时,Hexo 会根据 scaffolds 文件夹内相对应的文件来建立文件;<br> 例如 : <code>$ hexo new photo "My Gallery"</code>,表示Hexo 会尝试在 scaffolds 文件夹中寻找 photo.md,并根据其内容建立文章,以下是您可以在模版中使用的变量:</p> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>layout</td> 
    <td>布局</td> 
   </tr> 
   <tr> 
    <td>title</td> 
    <td>标题</td> 
   </tr> 
   <tr> 
    <td>date</td> 
    <td>文件建立日期</td> 
   </tr> 
  </tbody> 
 </table> 
 <h3>2.2 Front-matter</h3> 
 <p>Front-matter 是文件最上方以 --- 分隔的区域,用于指定个别文件的变量;</p> 
 <pre><code class="m">title: Hello World
date: 2013/7/13 20:46:25
---
</code></pre> 
 <p>以下是预先定义的参数,您可在模板中使用这些参数值并加以利用。</p> 
 <table> 
  <thead> 
   <tr> 
    <th>参数</th> 
    <th>描述</th> 
    <th>默认值</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>layout</td> 
    <td>布局</td> 
   </tr> 
   <tr> 
    <td>title</td> 
    <td>标题</td> 
   </tr> 
   <tr> 
    <td>date</td> 
    <td>建立日期</td> 
    <td>文件建立日期</td> 
   </tr> 
   <tr> 
    <td>updated</td> 
    <td>更新日期</td> 
    <td>文件更新日期</td> 
   </tr> 
   <tr> 
    <td>comments</td> 
    <td>开启文章的评论功能</td> 
    <td>true</td> 
   </tr> 
   <tr> 
    <td>tags</td> 
    <td>标签(不适用于分页)</td> 
   </tr> 
   <tr> 
    <td>categories</td> 
    <td>分类(不适用于分页)</td> 
   </tr> 
   <tr> 
    <td>permalink</td> 
    <td>覆盖文章网址</td> 
   </tr> 
  </tbody> 
 </table> 
 <h4>2.2.1 分类和标签</h4> 
 <p>只有文章支持分类和标签,您可以在 Front-matter 中设置。Hexo 中的分类具有顺序性和层次性,而标签没有顺序和层次,区别于其他系统;</p> 
 <pre><code class="m">categories:
- Diary
tags:
- PS3
- Games
</code></pre> 
 <h4>2.2.2 JSON Front-matter</h4> 
 <p>除了 YAML 外,你也可以使用 JSON 来编写 Front-matter,只要将 --- 代换成 ;;; 即可</p> 
 <pre><code class="m">"title": "Hello World",
"date": "2013/7/13 20:46:25"
;;;
</code></pre> 
 <h3>2.3 标签插件(Tag Plugins)</h3> 
 <p>标签插件和 Front-matter 中的标签不同,它们是用于在文章中快速插入特定内容的插件。</p> 
 <h4>2.3.1 引用块</h4> 
 <p>在文章中插入引言,可包含作者、来源和标题。</p> 
 <p><strong>别号: quote</strong></p> 
 <pre><code class="m">方式1:提供参数, 这些参数将会被显示出来
{% blockquote [author[, source]] [link] [source_link_title] %}
content
{% endblockquote %}

方式2:没有提供参数,则只输出普通的 blockquote

方式3:引用书上的句子
{% blockquote David Levithan, Wide Awake %}
Do not just seek happiness for yourself. Seek happiness for all. Through kindness. Through mercy.
{% endblockquote %}

方式4:引用 Twitter
{% blockquote @DevDocs https://twitter.com/devdocs/status/356095192085962752 %}
NEW: DevDocs now comes with syntax highlighting. http://devdocs.io
{% endblockquote %}

方式5:引用网络上的文章
{% blockquote Seth Godin http://sethgodin.typepad.com/seths_blog/2009/07/welcome-to-island-marketing.html Welcome to Island Marketing %}
Every interaction is both precious and an opportunity to delight.
{% endblockquote %}
</code></pre> 
 <h4>2.3.2 代码块</h4> 
 <p>在文章中插入代码。</p> 
 <p><strong>别名: code</strong></p> 
 <pre><code class="m">方式1:提供参数, 这些参数将会被显示出来
{% codeblock [title] [lang:language] [url] [link text] %}
code snippet
{% endcodeblock %}

方式2:普通的代码块
{% codeblock %}
alert('Hello World!');
{% endcodeblock %}

方式3:指定语言
{% codeblock lang:objc %}
[rectangle setX: 10 y: 10 width: 20 height: 20];
{% endcodeblock %}

方式4:附加说明
{% codeblock Array.map %}
array.map(callback[, thisArg])
{% endcodeblock %}

方式5:附加说明和网址
{% codeblock _.compact http://underscorejs.org/#compact Underscore.js %}
_.compact([0, 1, false, 2, '', 3]);
=> [1, 2, 3]
{% endcodeblock %}
</code></pre> 
 <h4>2.3.3 反引号代码块(类似md中的代码块格式)</h4> 
 <p>它使用三个反引号来包裹;<br> <code>[language] [title] [url] [link text] code snippet</code></p> 
 <h4>2.3.4 Pull Quote</h4> 
 <p>在文章中插入 Pull quote。</p> 
 <pre><code class="m">{% pullquote [class] %}
content
{% endpullquote %}
</code></pre> 
 <h4>2.3.5 jsFiddle</h4> 
 <p>在文章中嵌入 jsFiddle。</p> 
 <pre><code class="m">{% jsfiddle shorttag [tabs] [skin] [width] [height] %}
</code></pre> 
 <h4>2.3.6 Gist</h4> 
 <p>在文章中嵌入 Gist。</p> 
 <pre><code class="m">{% gist gist_id [filename] %}
</code></pre> 
 <h4>2.3.7 iframe</h4> 
 <p>在文章中插入 iframe。</p> 
 <pre><code class="m">{% iframe url [width] [height] %}
</code></pre> 
 <h4>2.3.8 Image</h4> 
 <p>在文章中插入指定大小的图片。</p> 
 <pre><code class="m">{% img [class names] /path/to/image [width] [height] [title text [alt text]] %}
</code></pre> 
 <h4>2.3.9 Link</h4> 
 <p>在文章中插入链接,并自动给外部链接添加 target="_blank" 属性。</p> 
 <pre><code class="m">{% link text url [external] [title] %}
</code></pre> 
 <h4>2.3.10 Include Code</h4> 
 <p>插入 source 文件夹内的代码文件。</p> 
 <pre><code class="m">{% include_code [title] [lang:language] path/to/file %}
</code></pre> 
 <h4>2.3.11 Youtube</h4> 
 <p>在文章中插入 Youtube 视频。</p> 
 <pre><code class="m">{% youtube video_id %}
</code></pre> 
 <h4>2.3.12 Vimeo</h4> 
 <p>在文章中插入 Vimeo 视频。</p> 
 <pre><code class="m">{% vimeo video_id %}
</code></pre> 
 <h4>2.3.13 引用文章</h4> 
 <p>引用其他文章的链接。</p> 
 <pre><code class="m">{% post_path slug %}
{% post_link slug [title] %}
</code></pre> 
 <h4>2.3.14 引用资源</h4> 
 <p>引用文章的资源。</p> 
 <pre><code class="m">{% asset_path slug %}
{% asset_img slug [title] %}
{% asset_link slug [title] %}
</code></pre> 
 <h4>2.3.15 Raw</h4> 
 <p>如果您想在文章中插入 Swig 标签,可以尝试使用 Raw 标签,以免发生解析异常。</p> 
 <pre><code class="m">{% raw %}
content
{% endraw %}
</code></pre> 
 <h3>2.4 资源文件夹</h3> 
 <p>资源(Asset)代表 source 文件夹中除了文章以外的所有文件,例如图片、CSS、JS 文件等。</p> 
 <h4>2.4.1 文章资源文件夹</h4> 
 <p>将 config.yml 文件中的 <code>post_asset_folder</code> 选项设为 true 来打开,有规律地提供图片和其他资源以及想要将他们的资源分布在各个文章上;当资源文件管理功能打开后,Hexo将会在你每一次通过 <code>hexo new [layout] <title></code> 命令创建新文章时自动创建一个文件夹。这个资源文件夹将会有与这个 <code>markdown 文件一样的名字</code>。将所有与你的文章有关的资源放在这个关联文件夹中之后,你可以通过相对路径来引用它们,这样你就得到了一个更简单而且方便得多的工作流。</p> 
 <h4>2.4.2 相对路径引用的标签插件</h4> 
 <p>通过常规的 markdown 语法和相对路径来引用图片和其它资源可能会导致它们在存档页或者主页上显示不正确。<br> Hexo 3 的发布,许多新的标签插件被加入到了核心代码中。这使得你可以更简单地在文章中引用你的资源。<br> 正确的引用图片方式是使用下列的标签插件而不是 markdown 语法 <code>[图片上传失败...(image-3fd250-1576230489118)]</code>:</p> 
 <pre><code class="m">{% asset_path slug %}
{% asset_img slug [title] %}
{% asset_link slug [title] %}

通过下面这种方式,图片将会同时出现在文章和主页以及归档页中。
{% asset_img example.jpg This is an example image %}
</code></pre> 
 <h3>2.5 数据文件夹</h3> 
 <p>有时候可能需要在主题中使用某些资料,而这些资料并不在文章内,并且是需要重复使用的,那么您可以考虑使用 Hexo 3.0 新增的「数据文件」功能。此功能会载入 <code>source/_data</code> 内的 <code>YAML 或 JSON</code> 文件,如此一来您便能在网站中复用这些文件;<br> 例子:在 source/_data 文件夹中新建 menu.yml 文件:</p> 
 <pre><code>Home: /
Gallery: /gallery/
Archives: /archives/
</code></pre> 
 <p>就能在模板中使用这些资料:</p> 
 <pre><code class="js"><% for (var link in site.data.menu) { %>
  <a href="<%= site.data.menu[link] %>"> <%= link %> </a>
<% } %>
</code></pre> 
 <p>渲染结果如下 :</p> 
 <pre><code class="js"><a href="/"> Home </a>
<a href="/gallery/"> Gallery </a>
<a href="/archives/"> Archives </a>
</code></pre> 
 <h3>2.6 服务器(本地预览效果)</h3> 
 <p>Hexo 3.0 把服务器独立成了个别模块,安装 hexo-server 才能使用:<code>npm install hexo-server --save</code>;安装完后执行 <code>hexo server</code>启动服务器,也可以改变一些参数,参考<code>命令->指令</code>的知识;</p> 
 <h4>2.6.1 静态模式 && 自定义 IP</h4> 
 <pre><code class="bash"># 在静态模式下,服务器只处理 public 文件夹内的文件,而不会处理文件变动,在执行时,您应该先自行执行 hexo generate;
$ hexo server -s
# 自定义 IP地址,对于一台使用无线网络的笔记本电脑,除了指向本机的127.0.0.1外,通常还有一个192.168.*.*的局域网IP; hexo server -i 127.0.0.1 -p 5000
$ hexo server -i 192.168.1.1
</code></pre> 
 <h4>2.6.2 Pow(略)</h4> 
 <p>Pow 是一个 Mac 系统上的零配置 Rack 服务器,它也可以作为一个简单易用的静态文件服务器来使用。</p> 
 <h3>2.7 生成器</h3> 
 <p>Hexo 生成静态文件指令:<code>$ hexo generate</code>,参考<code>命令->指令</code>的知识;</p> 
 <h4>监视文件变动 && 完成后部署</h4> 
 <pre><code class="bash"># 监视文件变动并立即重新生成静态文件,在生成时会比对文件的 SHA1 checksum,只有变动的文件才会写入;
$ hexo generate --watch
# 在生成完毕后自动部署网站,下面两个命令的作用是相同的。
$ hexo generate --deploy
$ hexo deploy --generate
# 上面命令的简介形式
$ hexo g -d
$ hexo d -g
</code></pre> 
 <h3>2.8 部署</h3> 
 <p>Hexo 通过指令 <code>$ hexo deploy</code> 实现网站部署到指定的服务器中,在执行此命令前要对网站根目录下的 <code>_config.yml</code> 中修改参数(<strong>注意yml文件格式</strong>),见下方实现 <code>gitee pages</code> 部署:</p> 
 <pre><code class="bash">deploy:
  type: git
  repository: git@gitee.com:geekleng/hexoblog.git     #发布到gitee,还可以加上github Page 页面
  branch: master
</code></pre> 
 <p>部署多个 deployer,Hexo 会依照顺序执行每个 deployer:</p> 
 <pre><code class="bash">deploy:
- type: git
  repo:
- type: heroku
  repo:
</code></pre> 
 <p>【YAML依靠缩进来确定元素间的从属关系。因此,请确保每个deployer的缩进长度相同,并且使用空格缩进。】</p> 
 <h4>2.8.1 Git</h4> 
 <ul> 
  <li>先安装 <code>hexo-deployer-git</code> 包:<code>$ npm install hexo-deployer-git --save</code> </li> 
  <li>修改<code>_config.yml</code> 中参数;</li> 
 </ul> 
 <pre><code class="bash">deploy:
  type: git
  repo: <repository url>
  branch: [branch]
  message: [message]
</code></pre> 
 <table> 
  <thead> 
   <tr> 
    <th>参数</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>repo</td> 
    <td>库(Repository)地址</td> 
   </tr> 
   <tr> 
    <td>branch</td> 
    <td>分支名称。如果您使用的是 GitHub 或 GitCafe 的话,程序会尝试自动检测。</td> 
   </tr> 
   <tr> 
    <td>message</td> 
    <td>自定义提交信息 (默认为 Site updated: {{ 当前时间('YYYY-MM-DD HH:mm:ss') }})</td> 
   </tr> 
  </tbody> 
 </table> 
 <h2>三. 自定义</h2> 
 <h3>3.1 永久链接</h3> 
 <p>可以在HEXO网站配置文件 <code>_config.yml</code> 配置中调整网站的永久链接或者在每篇文章的 <code>Front-matter</code> 中指定。</p> 
 <h4>3.1.1 变量</h4> 
 <p>使用下面的变量或是使用 <code>Front-matter</code> 中的所有属性;</p> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>:year</td> 
    <td>文章的发表年份(4 位数)</td> 
   </tr> 
   <tr> 
    <td>:month</td> 
    <td>文章的发表月份(2 位数)</td> 
   </tr> 
   <tr> 
    <td>:i_month</td> 
    <td>文章的发表月份(去掉开头的零)</td> 
   </tr> 
   <tr> 
    <td>:day</td> 
    <td>文章的发表日期 (2 位数)</td> 
   </tr> 
   <tr> 
    <td>:i_day</td> 
    <td>文章的发表日期(去掉开头的零)</td> 
   </tr> 
   <tr> 
    <td>:title</td> 
    <td>文件名称</td> 
   </tr> 
   <tr> 
    <td>:post_title</td> 
    <td>文章标题</td> 
   </tr> 
   <tr> 
    <td>:id</td> 
    <td>文章 ID</td> 
   </tr> 
   <tr> 
    <td>:category</td> 
    <td>分类。如果文章没有分类,则是 default_category 配置信息。</td> 
   </tr> 
  </tbody> 
 </table> 
 <p>或在 <code>permalink_defaults</code> 参数下调整永久链接中各变量的默认值:</p> 
 <pre><code class="bash">permalink_defaults:
  lang: en
</code></pre> 
 <h4>3.1.2 多语种支持</h4> 
 <p>若要建立一个多语种的网站,您可修改 new_post_name 和 permalink 参数,如下:</p> 
 <pre><code class="bash">new_post_name: :lang/:title.md  # 新的博文的文件名
permalink: :lang/:title/  # 生成的链接的格式。带井号的是默认的格式;规则也比较简单,标签前面要加英文冒号。
</code></pre> 
 <p>当您建立新文章时,文章会被储存到:</p> 
 <pre><code class="bash">$ hexo new "Hello World" --lang tw
# => source/_posts/tw/Hello-World.md
</code></pre> 
 <h3>3.2 主题</h3> 
 <p>在HEXO的官网上找到合适的主题,下载压缩包解压到 <code>themes</code> 文件夹中或者是由git直接下载对应主题的包,再修改HEXO网站配置文件 <code>_config.yml</code> 配置中 <code>theme</code> 字段即可;主题的文件架构如下:</p> 
 <pre><code class="m">.
├── _config.yml
├── languages
├── layout
├── scripts
└── source
</code></pre> 
 <h4>3.2.1 _config.yml</h4> 
 <p>主题的配置文件。修改时会自动更新,无需重启服务器。</p> 
 <h4>3.2.2 languages</h4> 
 <p>语言文件夹;HEXO国际化-i18n</p> 
 <h4>3.2.3 layout</h4> 
 <p>布局文件夹。用于存放主题的模板文件,决定了网站内容的呈现方式,Hexo 内建 Swig 模板引擎,可以另外安装插件来获得 EJS、Haml 或 Jade 支持;HEXO模板</p> 
 <h4>3.2.4 scripts</h4> 
 <p>脚本文件夹。在启动时,Hexo 会载入此文件夹内的 JavaScript 文件;HEXO插件</p> 
 <h4>3.2.5 source</h4> 
 <p>资源文件夹,除了模板以外的 <code>Asset</code>,例如 <code>CSS、JavaScript</code> 文件等,都应该放在这个文件夹中。文件或文件夹开头名称为 <code>_(下划线线)</code> 或隐藏的文件会被忽略。</p> 
 <h3>3.3 模版</h3> 
 <p>模板决定了网站内容的呈现方式,以下是各页面相对应的模板名称:</p> 
 <table> 
  <thead> 
   <tr> 
    <th>模板</th> 
    <th>用途</th> 
    <th>回退</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>index</td> 
    <td>首页</td> 
   </tr> 
   <tr> 
    <td>post</td> 
    <td>文章</td> 
    <td>index</td> 
   </tr> 
   <tr> 
    <td>page</td> 
    <td>分页</td> 
    <td>index</td> 
   </tr> 
   <tr> 
    <td>archive</td> 
    <td>归档</td> 
    <td>index</td> 
   </tr> 
   <tr> 
    <td>category</td> 
    <td>分类归档</td> 
    <td>archive</td> 
   </tr> 
   <tr> 
    <td>tag</td> 
    <td>标签归档</td> 
    <td>archive</td> 
   </tr> 
  </tbody> 
 </table> 
 <h4>3.3.1 布局(Layout)</h4> 
 <p>若页面结构类似,可以通过「布局」让两个模板共享相同的结构。一个布局文件必须要能显示 body 变量的内容,如此一来模板的内容才会被显示,举例来说:</p> 
 <pre><code class="html"><!-->index.ejs 文件<-->
index

<!-->layout.ejs 文件<-->
<!DOCTYPE html>
<html>
  <body><%- body %></body>
</html>

<!-->生成文件<-->
<!DOCTYPE html>
<html>
  <body>index</body>
</html>
</code></pre> 
 <p>每个模板都默认使用 layout 布局,您可在 <code>front-matter</code> 指定其他布局,或是设为 <code>false</code> 来关闭布局功能,甚至可在布局中再使用其他布局来建立嵌套布局。</p> 
 <h4>3.3.2 局部模版(Partial)</h4> 
 <p>局部模板让您在不同模板之间共享相同的组件,可利用局部模板功能分割为个别文件,让维护更加便利。</p> 
 <pre><code class="html"><!-->partial/header.ejs文件<-->
<h1 id="logo"><%= config.title %></h1>

<!-->index.ejs文件<-->
<%- partial('partial/header') %>
<div id="content">Home page</div>

<!-->生成文件<-->
<h1 id="logo">My Site</h1>
<div id="content">Home page</div>
</code></pre> 
 <p><strong>局部变量</strong>:局部模板中指定局部变量并使用;</p> 
 <pre><code class="html"><!-->partial/header.ejs文件<-->
<h1 id="logo"><%= title></h1>

<!-->index.ejs文件<-->
<%- partial('partial/header', {title: 'Hello World'}) %>
<div id="content">Home page</div>

<!-->生成文件<-->
<h1 id="logo">Hello World</h1>
<div id="content">Home page</div>
</code></pre> 
 <h4>3.3.3 优化</h4> 
 <p>考虑使用 Hexo 2.7 新增的局部缓存(Fragment Caching) 功能,功能借鉴于 Ruby on Rails,它储存局部内容,下次便能直接使用缓存内容,可以减少文件夹查询并使生成速度更快。可用于页首、页脚、侧边栏等文件不常变动的位置;</p> 
 <pre><code class="html"><%- fragment_cache('header', function(){
  return '<header></header>';
});
</code></pre> 
 <p>如果您使用局部模板的话,可以更简单:</p> 
 <p><code><%- partial('header', {}, {cache: true});</code></p> 
 <p>【注意:若开启了 <code>relative_link</code> 参数(把链接改为与根目录的相对位址),请勿使用局部缓存功能,因为相对链接在每个页面可能不同】</p> 
 <h3>3.4 变量</h3> 
 <h4>3.4.1 全局变量</h4> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>site</td> 
    <td>网站变量</td> 
   </tr> 
   <tr> 
    <td>page</td> 
    <td>针对该页面的内容以及 front-matter 所设定的变量。</td> 
   </tr> 
   <tr> 
    <td>config</td> 
    <td>网站配置</td> 
   </tr> 
   <tr> 
    <td>theme</td> 
    <td>主题配置。继承自网站配置。</td> 
   </tr> 
   <tr> 
    <td>_ (单下划线)</td> 
    <td>Lodash 函数库</td> 
   </tr> 
   <tr> 
    <td>path</td> 
    <td>当前页面的路径(不含根路径)</td> 
   </tr> 
   <tr> 
    <td>url</td> 
    <td>当前页面的完整网址</td> 
   </tr> 
   <tr> 
    <td>env</td> 
    <td>环境变量</td> 
   </tr> 
  </tbody> 
 </table> 
 <h4>3.4.2 网站变量</h4> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>site.posts</td> 
    <td>所有文章</td> 
   </tr> 
   <tr> 
    <td>site.pages</td> 
    <td>所有分页</td> 
   </tr> 
   <tr> 
    <td>site.categories</td> 
    <td>所有分类</td> 
   </tr> 
   <tr> 
    <td>site.tags</td> 
    <td>所有标签</td> 
   </tr> 
  </tbody> 
 </table> 
 <h4>3.4.3 页面变量</h4> 
 <p><strong>页面(page)</strong></p> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>page.title</td> 
    <td>页面标题</td> 
   </tr> 
   <tr> 
    <td>page.date</td> 
    <td>页面建立日期(Moment.js 对象)</td> 
   </tr> 
   <tr> 
    <td>page.updated</td> 
    <td>页面更新日期(Moment.js 对象)</td> 
   </tr> 
   <tr> 
    <td>page.comments</td> 
    <td>留言是否开启</td> 
   </tr> 
   <tr> 
    <td>page.layout</td> 
    <td>布局名称</td> 
   </tr> 
   <tr> 
    <td>page.content</td> 
    <td>页面的完整内容</td> 
   </tr> 
   <tr> 
    <td>page.excerpt</td> 
    <td>页面摘要</td> 
   </tr> 
   <tr> 
    <td>page.more</td> 
    <td>除了页面摘要的其余内容</td> 
   </tr> 
   <tr> 
    <td>page.source</td> 
    <td>页面原始路径</td> 
   </tr> 
   <tr> 
    <td>page.full_source</td> 
    <td>页面的完整原始路径</td> 
   </tr> 
   <tr> 
    <td>page.path</td> 
    <td>页面网址(不含根路径)。我们通常在主题中使用 url_for(page.path)。</td> 
   </tr> 
   <tr> 
    <td>page.permalink</td> 
    <td>页面的完整网址</td> 
   </tr> 
   <tr> 
    <td>page.prev</td> 
    <td>上一个页面。如果此为第一个页面则为 null。</td> 
   </tr> 
   <tr> 
    <td>page.next</td> 
    <td>下一个页面。如果此为最后一个页面则为 null。</td> 
   </tr> 
   <tr> 
    <td>page.raw</td> 
    <td>文章的原始内容</td> 
   </tr> 
   <tr> 
    <td>page.photos</td> 
    <td>文章的照片(用于相簿)</td> 
   </tr> 
   <tr> 
    <td>page.link</td> 
    <td>文章的外部链接(用于链接文章)</td> 
   </tr> 
  </tbody> 
 </table> 
 <p><strong>文章 (post)</strong>: 和 page 布局类似,但是添加了下列变量。</p> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>page.published</td> 
    <td>如果该文章已发布则为True</td> 
   </tr> 
   <tr> 
    <td>page.categories</td> 
    <td>该文章的所有分类</td> 
   </tr> 
   <tr> 
    <td>page.tags</td> 
    <td>该文章的所有标签</td> 
   </tr> 
  </tbody> 
 </table> 
 <p><strong>首页(index)</strong></p> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>page.per_page</td> 
    <td>每页显示的文章数量</td> 
   </tr> 
   <tr> 
    <td>page.total</td> 
    <td>总文章数</td> 
   </tr> 
   <tr> 
    <td>page.current</td> 
    <td>目前页数</td> 
   </tr> 
   <tr> 
    <td>page.current_url</td> 
    <td>目前分页的网址</td> 
   </tr> 
   <tr> 
    <td>page.posts</td> 
    <td>本页文章</td> 
   </tr> 
   <tr> 
    <td>page.prev</td> 
    <td>上一页的页数。如果此页是第一页的话则为 0。</td> 
   </tr> 
   <tr> 
    <td>page.prev_link</td> 
    <td>上一页的网址。如果此页是第一页的话则为 ''。</td> 
   </tr> 
   <tr> 
    <td>page.next</td> 
    <td>下一页的页数。如果此页是最后一页的话则为 0。</td> 
   </tr> 
   <tr> 
    <td>page.next_link</td> 
    <td>下一页的网址。如果此页是最后一页的话则为 ''。</td> 
   </tr> 
   <tr> 
    <td>page.path</td> 
    <td>当前页面的路径(不含根目录)。我们通常在主题中使用 url_for(page.path)。</td> 
   </tr> 
  </tbody> 
 </table> 
 <p><strong>归档 (archive)</strong>:与 index 布局相同,但新增以下变量。</p> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>page.archive</td> 
    <td>等于 true</td> 
   </tr> 
   <tr> 
    <td>page.year</td> 
    <td>年份归档 (4位)</td> 
   </tr> 
   <tr> 
    <td>page.month</td> 
    <td>月份归档 (没有前导零的2位数)</td> 
   </tr> 
  </tbody> 
 </table> 
 <p><strong>分类 (category)</strong>:与 index 布局相同,但新增以下变量。</p> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>page.category</td> 
    <td>分类名称</td> 
   </tr> 
  </tbody> 
 </table> 
 <p><strong>标签 (tag)</strong>:与 index 布局相同,但新增以下变量。</p> 
 <table> 
  <thead> 
   <tr> 
    <th>变量</th> 
    <th>描述</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr> 
    <td>page.tag</td> 
    <td>标签名称</td> 
   </tr> 
  </tbody> 
 </table> 
 <h3>3.5 辅助函数——重难点</h3> 
 <p>HEXO辅助函数官方文档</p> 
 <p>辅助函数帮助您在模版中快速插入内容。</p> 
 <h3>3.6 国际化 (i18n)</h3> 
 <p>HEXO的网站配置文件 <code>_config.yml</code> 中调整 <code>language</code> 字段值的设定,可设定多个语言来调整预设语言的顺位。</p> 
 <pre><code class="bash">language: 
- zh-tw
- en
</code></pre> 
 <h4>3.6.1 语言文件</h4> 
 <p>语言文件可以使用 YAML 或 JSON 编写,并放在主题文件夹中的 languages 文件夹。</p> 
 <h4>3.6. 模板</h4> 
 <p>在模板中,透过 __ 或 _p 辅助函数,即可取得翻译后的字符串,前者用于一般使用;而后者用于复数字符串。</p> 
 <h4>3.6.3 路径</h4> 
 <p>可在 <code>front-matter</code> 中指定该页面的语言,也可在 <code>_config.yml</code> 中修改 <code>i18n_dir</code> 设定,让 Hexo 自动侦测。</p> 
 <p>i18n_dir 的预设值是 :lang:<code>i18n_dir: :lang</code>,Hexo 会捕获网址中的第一段以检测语言,举例来说:</p> 
 <pre><code class="m">/index.html => en
/archives/index.html => en
/zh-tw/index.html => zh-tw
</code></pre> 
 <h3>3.7 插件</h3> 
 <h4>3.7.1 脚本(Scripts)</h4> 
 <p>若代码很简单,建议您编写脚本,您只需要把 JavaScript 文件放到 scripts 文件夹,在启动时就会自动载入。</p> 
 <h4>3.7.2 插件(Packages)</h4> 
 <p>编写自己的插件;首先,在 <code>node_modules</code> 文件夹中建立文件夹,文件夹名称开头必须为 <code>hexo-</code>,如此一来 <code>Hexo</code> 才会在启动时载入否则 Hexo 将会忽略它。<br><br> 文件夹内至少要包含 2 个文件:一个是主程序 <code>index.js</code> ,另一个是 <code>package.json</code> (至少包含name, version, main 属性),描述插件的用途和所依赖的插件。</p> 
 <h4>3.7.3 工具</h4> 
 <p>Hexo 提供的官方工具插件来加速开发:(可在npm上看各自包的用法)</p> 
 <ul> 
  <li>hexo-fs:文件 IO</li> 
  <li>hexo-util:工具程式</li> 
  <li>hexo-i18n:本地化(i18n)</li> 
  <li>hexo-pagination:生成分页资料</li> 
 </ul> 
 <h4>3.7.4 发布</h4> 
 <p>发布你的插件到 HEXO插件列表</p> 
 <ol> 
  <li>Fork hexojs/site </li> 
  <li>把库(repository)复制到电脑上,并安装所依赖的插件。</li> 
 </ol> 
 <pre><code class="bash">$ git clone https://github.com/<username>/site.git
$ cd site
$ npm install
</code></pre> 
 <ol start="3"> 
  <li>编辑 source/_data/plugins.yml,在档案中新增您的插件,例如:</li> 
 </ol> 
 <pre><code class="bash">- name: hexo-server
  description: Server module for Hexo.
  link: https://github.com/hexojs/hexo-server
  tags:
    - official
    - server
    - console
</code></pre> 
 <ol start="4"> 
  <li>推送(push)分支。</li> 
  <li>建立一个新的合并申请(pull request)并描述改动。</li> 
 </ol> 
</article>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1697350289570476032"></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">你可能感兴趣的:(HEXO官方文档学习笔记)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1950204701714739200.htm"
                           title="环境搭建 | Python + Anaconda / Miniconda + PyCharm 的安装、配置与使用" target="_blank">环境搭建 | Python + Anaconda / Miniconda + PyCharm 的安装、配置与使用</a>
                        <span class="text-muted"></span>

                        <div>本文将分别介绍Python、Anaconda/Miniconda、PyCharm的安装、配置与使用,详细介绍Python环境搭建的全过程,涵盖Python、Pip、PythonLauncher、Anaconda、Miniconda、Pycharm等内容,以官方文档为参照,使用经验为补充,内容全面而详实。由于图片太多,就先贴一个无图简化版吧,详情请查看Python+Anaconda/Minicond</div>
                    </li>
                    <li><a href="/article/1950200541233606656.htm"
                           title="Android 基础知识:Android 应用权限详解" target="_blank">Android 基础知识:Android 应用权限详解</a>
                        <span class="text-muted">流水mpc</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                        <div>这篇文章为大家系统的梳理一下Android权限相关的知识,在日常开发中,我们都用过权限,但是对于权限的一些细节我们可能掌握的还不够全面,这篇文章会全面的为大家介绍权限相关的知识。当然,本篇文章依然是参考了Google的官方文档:应用权限。本文目录一、认识Android权限(一)Android系统为什么需要权限?Android系统设置权限的目的是保护Android用户的隐私。对于用户的敏感数据And</div>
                    </li>
                    <li><a href="/article/1950196906563006464.htm"
                           title="Unity学习笔记1" target="_blank">Unity学习笔记1</a>
                        <span class="text-muted">zy_777</span>

                        <div>通过一个星期的简单学习,初步了解了下unity,unity的使用,以及场景的布局,UI,以及用C#做一些简单的逻辑。好记性不如烂笔头,一些关键帧还是记起来比较好,哈哈,不然可能转瞬即逝了,(PS:纯小白观点,unity大神可以直接忽略了)一:MonoBehaviour类的初始化1,Instantiate()创建GameObject2,通过Awake()和Start()来做初始化3,Update、L</div>
                    </li>
                    <li><a href="/article/1950187554129113088.htm"
                           title="Django学习笔记(一)" target="_blank">Django学习笔记(一)</a>
                        <span class="text-muted"></span>

                        <div>学习视频为:pythondjangoweb框架开发入门全套视频教程一、安装pipinstalldjango==****检查是否安装成功django.get_version()二、django新建项目操作1、新建一个项目django-adminstartprojectproject_name2、新建APPcdproject_namedjango-adminstartappApp注:一个project</div>
                    </li>
                    <li><a href="/article/1950179614320029696.htm"
                           title="python学习笔记(汇总)" target="_blank">python学习笔记(汇总)</a>
                        <span class="text-muted">朕的剑还未配妥</span>
<a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%86/1.htm">python学习笔记整理</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>文章目录一.基础知识二.python中的数据类型三.运算符四.程序的控制结构五.列表六.字典七.元组八.集合九.字符串十.函数十一.解决bug一.基础知识print函数字符串要加引号,数字可不加引号,如print(123.4)print('小谢')print("洛天依")还可输入表达式,如print(1+3)如果使用三引号,print打印的内容可不在同一行print("line1line2line</div>
                    </li>
                    <li><a href="/article/1950147339964444672.htm"
                           title="【Druid】学习笔记" target="_blank">【Druid】学习笔记</a>
                        <span class="text-muted">fixAllenSun</span>
<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/oracle/1.htm">oracle</a>
                        <div>【Druid】学习笔记【一】简介【1】简介【2】数据库连接池(1)能解决的问题(2)使用数据库连接池的好处【3】监控(1)监控信息采集的StatFilter(2)监控不影响性能(3)SQL参数化合并监控(4)执行次数、返回行数、更新行数和并发监控(5)慢查监控(6)Exception监控(7)区间分布(8)内置监控DEMO【4】Druid基本配置参数介绍【5】Druid相比于其他数据库连接池的优点</div>
                    </li>
                    <li><a href="/article/1950142042847899648.htm"
                           title="java学习笔记8" target="_blank">java学习笔记8</a>
                        <span class="text-muted">幸福,你等等我</span>
<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/java/1.htm">java</a>
                        <div>一、异常处理Error:错误,程序员无法处理,如OOM内存溢出错误、内存泄漏...会导出程序崩溃1.异常:程序中一些程序自身处理不了的特殊情况2.异常类Exception3.异常的分类:(1).检查型异常(编译异常):在编译时就会抛出的异常(代码上会报错),需要在代码中编写处理方式(和程序之外的资源访问)直接继承Exception(2).运行时异常:在代码运行阶段可能会出现的异常,可以不用明文处理</div>
                    </li>
                    <li><a href="/article/1950113424281235456.htm"
                           title="2025 最强 Agent 智能体 学习笔记 (71)" target="_blank">2025 最强 Agent 智能体 学习笔记 (71)</a>
                        <span class="text-muted">一刀7段</span>
<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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>Agent智能体的系统学习与职业发展核心内容概览本集是《2025最强Agent智能体全套教程》的第72集,聚焦Agent智能体领域的系统学习方法与职业发展路径,系统梳理了从入门到专家的能力体系、关键学习资源、职业方向选择及行业发展机遇。内容结合技术趋势与职场需求,为不同背景的学习者(学生、开发者、转行人士)提供清晰的成长蓝图,帮助其在Agent智能体领域高效成长,实现职业目标。系统学习的能力体系与</div>
                    </li>
                    <li><a href="/article/1950095708468080640.htm"
                           title="【学习笔记】CBT工作坊第二天:动机驱动行为" target="_blank">【学习笔记】CBT工作坊第二天:动机驱动行为</a>
                        <span class="text-muted">花团与芥末</span>

                        <div>什么叫动机?在认知行为疗法中,动机是引导我们行为的各种外在和内在的力量,唤起行为起始的力量,朝着一定目标与方向进行的力量,维持或停止的力量。也就是说,在我们的所有行为包括没有做的行为背后,都隐藏着某种动机。那么,动机一般有哪些呢?大家一般听说过的,是马斯洛的需求层次理论。在他的金字塔理论中,将动机需求分为了6个层次,从初级到高级分别是:生存(活着的必须条件)--安全(活下去)--爱--尊重--自我</div>
                    </li>
                    <li><a href="/article/1950089975504629760.htm"
                           title="CentOS 7 安装最新版Docker教程" target="_blank">CentOS 7 安装最新版Docker教程</a>
                        <span class="text-muted">朽~</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                        <div>CentOS7Docker安装教程1、更新yum2、安装`yum-utils`3、通过`yum-config-manager`添加dockerrepository4、安装docker4.1、直接安装最新版本4.2、或者安装指定版本5、启动docker6、测试7、卸载dockerdocker安装官方文档:InstallDockerEngineonCentOS1、更新yumyumupdate-y2、安</div>
                    </li>
                    <li><a href="/article/1950087455248019456.htm"
                           title="探索RabbitMQ,让消息传递变得简单易懂!" target="_blank">探索RabbitMQ,让消息传递变得简单易懂!</a>
                        <span class="text-muted">黎杉娜Torrent</span>

                        <div>探索RabbitMQ,让消息传递变得简单易懂!当你寻找一个强大而可靠的分布式消息队列系统时,RabbitMQ无疑是最佳选择之一。这个开源项目已经赢得了全球无数开发者的喜爱,现在,更有一份详尽的【RabbitMQ中文】文档在等待你的探索!项目介绍RabbitMQ中文是一份专门为非英语国家的开发者准备的高质量翻译资源,它将原汁原味的RabbitMQ官方文档转化为中文,旨在帮助中国地区的开发者更好地理解</div>
                    </li>
                    <li><a href="/article/1950082037897555968.htm"
                           title="图解系统的学习笔记--硬件结构" target="_blank">图解系统的学习笔记--硬件结构</a>
                        <span class="text-muted">什么蜜桃绵绵冰</span>
<a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/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>
                        <div>CPU是如何执行程序的?图灵机的工作方式图灵机的基本组成纸带:纸带由一个个连续的格子组成,每个格子可以写入字符,纸带就好比内存,而纸带上的格子的字符就好比内存中的数据或程序读写头:可以读取只带上任意格子的字符,也可以把字符写入到纸带的格子读写头上的部件-存储单元、控制单元、运算单元存储单元用于存放数据控制单元用于识别字符是数据还是指令、以及控制程序的流程等预算单元用于执行运算指令冯诺依曼模型计算机</div>
                    </li>
                    <li><a href="/article/1950061236175564800.htm"
                           title="Spring学习笔记07——SpringBoot中关于接口文档管理的注解" target="_blank">Spring学习笔记07——SpringBoot中关于接口文档管理的注解</a>
                        <span class="text-muted">Shaoxi Zhang</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</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>
                        <div>一、Lombok注解@Data:生成所有字段的getter/setter、toString()、equals()和hashCode()。@Getter/@Setter:单独为所有字段或指定字段生成getter/setter。importlombok.Data;@DatapublicclassUser{privateLongid;privateStringname;}编译后,Lombok会为id和n</div>
                    </li>
                    <li><a href="/article/1950057579757498368.htm"
                           title="零基础入门uniapp Vue3组合式API版本" target="_blank">零基础入门uniapp Vue3组合式API版本</a>
                        <span class="text-muted">鹤早早</span>
<a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a>
                        <div>前言:小程序学习笔记,课程来源up主咸虾米_。仅记录笔记,大家想学习可以去关注他。1.已安装HBuiderX(目前是4.36版本),微信开发者工具(但还没注册小程序码),相关配置OK了。1.16相关架构学习1.pages-index-index.vuebox1box2.layout{border:1pxsolidred;.box1{border:1pxsolidgreen;}.box2{borde</div>
                    </li>
                    <li><a href="/article/1950053795572543488.htm"
                           title="JavaWeb(苍穹外卖)--学习笔记14" target="_blank">JavaWeb(苍穹外卖)--学习笔记14</a>
                        <span class="text-muted">哈哈哈哈哈0627</span>
<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>
                        <div>前言终于开始学习做项目了,本篇文章是学习B站黑马程序员苍穹外卖的学习笔记。我的学习路线是Java基础语法-JavaWeb-做项目,管理端的功能学习完之后,就进入到了用户端微信小程序的开发,这篇文章是把我觉得JavaWeb的学习中比较重要的内容写一个总结(其实因为学到下单支付太难了我复习复习前面的)Controller层(这里只讲讲几个需要注意的注解)管理服务端的动态资源:SpringFramewo</div>
                    </li>
                    <li><a href="/article/1950050264991985664.htm"
                           title="Langchain学习笔记(十):文档加载与处理详解" target="_blank">Langchain学习笔记(十):文档加载与处理详解</a>
                        <span class="text-muted"></span>

                        <div>注:本文是Langchain框架的学习笔记;不是教程!不是教程!内容可能有所疏漏,欢迎交流指正。后续将持续更新学习笔记,分享我的学习心得和实践经验。前言在构建基于大语言模型的应用时,文档处理是一个至关重要的环节。无论是构建RAG(检索增强生成)系统,还是进行知识库问答,我们都需要将各种格式的文档转换为模型可以理解和处理的形式。Langchain提供了强大的文档加载和处理功能,支持多种文件格式,并提</div>
                    </li>
                    <li><a href="/article/1950050265457553408.htm"
                           title="Langchain学习笔记(十二):Memory机制与对话管理" target="_blank">Langchain学习笔记(十二):Memory机制与对话管理</a>
                        <span class="text-muted">zhangsan0933</span>
<a class="tag" taget="_blank" href="/search/LangChain/1.htm">LangChain</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</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>
                        <div>注:本文是Langchain框架的学习笔记;不是教程!不是教程!内容可能有所疏漏,欢迎交流指正。后续将持续更新学习笔记,分享我的学习心得和实践经验。前言在构建智能对话系统时,记忆功能是至关重要的。想象一下,如果每次与AI对话都像第一次见面一样,无法记住之前的交流内容,这样的体验将是多么糟糕。LangChain的Memory机制正是为了解决这个问题而设计的,它让AI能够"记住"对话历史,从而提供更加</div>
                    </li>
                    <li><a href="/article/1950005630261587968.htm"
                           title="【JSON】Json与Java对象的互相转化" target="_blank">【JSON】Json与Java对象的互相转化</a>
                        <span class="text-muted">林雨涵</span>
<a class="tag" taget="_blank" href="/search/Java%E5%9F%BA%E7%A1%80/1.htm">Java基础</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>目录一、常用方法1.导入依赖2.常用的方法1.Java字符串的转化Java字符串->Json数组Json字符串->Json对象Java字符串->Java对象Java字符串->Java对象集合2.Java对象的转化Java对象->Java字符串(Json样式)Java对象->Json对象3.Json对象的转化Json对象->Java字符串Json对象->Java对象二、实战一、常用方法官方文档:ht</div>
                    </li>
                    <li><a href="/article/1950004979813117952.htm"
                           title="OkHttp学习笔记5--Events" target="_blank">OkHttp学习笔记5--Events</a>
                        <span class="text-muted">雪晨杰</span>

                        <div>EventsEventsallowyoutocapturemetricsonyourapplication’sHTTPcalls.Useeventstomonitor:事件允许您捕获应用程序HTTP调用的度量。使用事件来监控:ThesizeandfrequencyoftheHTTPcallsyourapplicationmakes.Ifyou’remakingtoomanycalls,oryour</div>
                    </li>
                    <li><a href="/article/1949998940879384576.htm"
                           title="CTF-Web学习笔记:SQL注入篇" target="_blank">CTF-Web学习笔记:SQL注入篇</a>
                        <span class="text-muted">编程到天明</span>
<a class="tag" taget="_blank" href="/search/CTF/1.htm">CTF</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>目录引言一、SQL注入的基础概念1.什么是SQL注入?2.SQL注入的成因二、CTF中常见的SQL注入类型1.按参数类型分类2.按注入方式分类3.其他进阶类型三、CTF实战技巧:从找注入点到拿Flag1.如何判断是否存在注入?2.快速确定数据库类型3.常用工具辅助4.绕过WAF(Web应用防火墙)四、CTF题目示例:一道报错注入实战题目背景解题步骤五、总结与提升引言在CTF(CaptureTheF</div>
                    </li>
                    <li><a href="/article/1949975864271761408.htm"
                           title="zabbix-agent静默安装" target="_blank">zabbix-agent静默安装</a>
                        <span class="text-muted">小周学学学</span>
<a class="tag" taget="_blank" href="/search/zabbix/1.htm">zabbix</a>
                        <div>msiexec/izabbix-msi安装包/qnSERVER=zabbix服务器IP例如版本为zabbix_agent-7.0.7-windows-amd64-openssl.msi,服务器为192.168.1.100msiexec/izabbix_agent-7.0.7-windows-amd64-openssl.msi/qnSERVER=192.168.1.100官方文档地址:4从MSI安装</div>
                    </li>
                    <li><a href="/article/1949951660868562944.htm"
                           title="Linux驱动开发学习笔记-设备树" target="_blank">Linux驱动开发学习笔记-设备树</a>
                        <span class="text-muted"></span>

                        <div>1、设备树1)将描述板级硬件信息的内容都从Linux内中分离开来,用一个专属的文件格式来描述,这个专属的文件就叫做设备树,文件扩展名为.dts。一个SOC可以作出很多不同的板子,这些不同的板子肯定是有共同的信息,将这些共同的信息提取出来作为一个通用的文件,其他的.dts文件直接引用这个通用文件即可,这个通用文件就是.dtsi文件,类似于C语言中的头文件。.dts描述板级信息(也就是开发板上有哪些I</div>
                    </li>
                    <li><a href="/article/1949871962146795520.htm"
                           title="进阶向:基于Python的本地文件内容搜索工具" target="_blank">进阶向:基于Python的本地文件内容搜索工具</a>
                        <span class="text-muted">超级小识</span>
<a class="tag" taget="_blank" href="/search/Python%E8%BF%9B%E9%98%B6/1.htm">Python进阶</a><a class="tag" taget="_blank" href="/search/%E6%9C%89%E8%B6%A3%E7%9A%84%E9%A1%B9%E7%9B%AE/1.htm">有趣的项目</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>概述大家好!今天我们将一起学习如何用Python创建一个简单但强大的本地文件内容搜索工具。这个工具特别适合处理大量文本文件时的快速检索需求。为什么要学习这个工具如果你刚接触编程,完全不用担心!我会从零开始讲解,确保每一步都清晰易懂。想象一下这个常见场景:你有一个装满各种文档的文件夹(可能是工作文档、学习笔记或项目文件),现在想快速找到所有包含"重要笔记"或"项目需求"等关键字的文件。手动逐个打开文</div>
                    </li>
                    <li><a href="/article/1949866538827837440.htm"
                           title="【STM32】FreeRTOS 任务的创建(二)" target="_blank">【STM32】FreeRTOS 任务的创建(二)</a>
                        <span class="text-muted"></span>

                        <div>这篇文章在于详细解释FreeRTOS中任务的创建过程,包括任务创建的本质过程、API详解、两种创建方式(动态/静态)、任务函数规范、常见错误及实践建议。这里参照:RTOS官方文档:https://www.freertos.org/zh-cn-cmn-s/Documentation/02-Kernel/04-API-references/01-Task-creation/01-xTaskCreate</div>
                    </li>
                    <li><a href="/article/1949862622660718592.htm"
                           title="Freertos学习笔记(一)-----FreeRTOS基本知识" target="_blank">Freertos学习笔记(一)-----FreeRTOS基本知识</a>
                        <span class="text-muted">努力搬砖的扁鱼</span>
<a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/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>
                        <div>RTOS“realtime”(实时)指的是系统对外部事件能够在规定的、可预测的时间内作出响应。具体含义如下:确定性(Determinism):FreeRTOS强调事件响应的可预测性。无论系统有多少任务,关键操作(比如任务切换、中断处理)都能在已知的最坏情况下完成。这意味着开发者可以预估任务的最大响应延迟。任务优先级与抢占:FreeRTOS支持任务优先级和抢占调度。高优先级任务可以在更低优先级任务运</div>
                    </li>
                    <li><a href="/article/1949837529918271488.htm"
                           title="# Linux学习笔记 - 4" target="_blank"># Linux学习笔记 - 4</a>
                        <span class="text-muted">Norvyn_7</span>
<a class="tag" taget="_blank" href="/search/Linux%E5%AD%A6%E4%B9%A0/1.htm">Linux学习</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</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>
                        <div>Linux学习笔记-4本篇将介绍Linux中root用户管理、用户与用户组操作、权限控制信息以及chmod/chown命令的使用。1.root用户(超级管理员)root用户拥有最大的系统操作权限,可执行所有操作。1.1su和exitsu命令:切换用户语法:su[-][用户名]-表示切换后加载目标用户的环境变量(建议添加)。不加用户名时默认切换到root用户。示例:su-root#切换到root用户</div>
                    </li>
                    <li><a href="/article/1949831735789285376.htm"
                           title="动态链接库(Dynamic Link Library)学习笔记" target="_blank">动态链接库(Dynamic Link Library)学习笔记</a>
                        <span class="text-muted">peixian2003</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a>
                        <div>经常忘记http://blog.csdn.net/yxin1322/article/details/638156动态链接库(DynamicLinkLibrary)学习笔记作者:yxin1322blog:http://blog.csdn.net/yxin1322转载请注明出处我对动态链接和动态链接库的概念并不陌,但一直以来就停留在概念的层面上,没有更深入的了解。今天抽空看了一下有关动态链接和动态链接</div>
                    </li>
                    <li><a href="/article/1949759807007289344.htm"
                           title="2022-10-28晨间日记" target="_blank">2022-10-28晨间日记</a>
                        <span class="text-muted">明心279</span>

                        <div>今天是什么日子起床:6.00就寝:天气:多云心情:开心纪念日:任务清单昨日完成的任务,最重要的三件事:改进:习惯养成:周目标·完成进度学习·信息·阅读八字笔记整理紫微斗数学习笔记健康·饮食·锻炼耳功八法81站桩35早上小米醪糟汤圆荷包蛋中午馒头蔬菜汤晚上煮泡面人际·家人·朋友工作·思考最美好的三件事1.我是最善良,最可爱,最大度,最宽容,最仁慈,最宽厚,最有魅力的优雅知性女子。我每天都很开心,都很</div>
                    </li>
                    <li><a href="/article/1949756593130237952.htm"
                           title="HarmonyOS Flutter Boost完全接入手册:爬完所有坑的实战指南" target="_blank">HarmonyOS Flutter Boost完全接入手册:爬完所有坑的实战指南</a>
                        <span class="text-muted">二蛋和他的大花</span>
<a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a><a class="tag" taget="_blank" href="/search/harmony/1.htm">harmony</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a>
                        <div>FlutterBoost在做混合开发非常实用,但官方文档的不清晰。本文将基于实战经验,帮助大家避开那些常见的坑,快速上手并高效开发。前言:为何要写这篇手册在开发过程中,我发现官方文档对于FlutterBoost的集成描述不够清晰,按照官方文档操作会遇到诸多问题。因此,我决定结合自己的实战经验,为大家提供一份详细且实用的集成手册,希望能帮助大家少走弯路。一、集成问题:从源码到har包的抉择在开发初期</div>
                    </li>
                    <li><a href="/article/1949737808486789120.htm"
                           title="Redis中key过期了一定会立即删除吗" target="_blank">Redis中key过期了一定会立即删除吗</a>
                        <span class="text-muted"></span>

                        <div>RedisKey过期删除机制解析根据官方文档(EXPIRE|Docs)Redis采用两种过期策略:被动过期:当客户端访问某个Key时,若发现已过期则立即删除主动过期:定期随机检查并删除已过期的Key仅靠被动过期是不够的,因为有些过期Key可能永远不会被访问。为此Redis会每秒执行10次主动过期检查:从带过期时间的Key集合中随机选取20个删除所有已过期的Key若过期比例超过25%,则重复步骤1此</div>
                    </li>
                                <li><a href="/article/36.htm"
                                       title="ASM系列四 利用Method 组件动态注入方法逻辑" target="_blank">ASM系列四 利用Method 组件动态注入方法逻辑</a>
                                    <span class="text-muted">lijingyao8206</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%97%E8%8A%82%E7%A0%81%E6%8A%80%E6%9C%AF/1.htm">字节码技术</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/1.htm">动态代理</a><a class="tag" taget="_blank" href="/search/ASM/1.htm">ASM</a>
                                    <div>        这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以</div>
                                </li>
                                <li><a href="/article/163.htm"
                                       title="java编程思想 --内部类" target="_blank">java编程思想 --内部类</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">内部类</a><a class="tag" taget="_blank" href="/search/%E5%8C%BF%E5%90%8D%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">匿名内部类</a>
                                    <div>内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅 
  
1,内部类的创建  内部类是创建在类中的 
 
package com.wj.InsideClass;

/*
 * 内部类的创建
 */
public class CreateInsideClass {

	public CreateInsideClass(</div>
                                </li>
                                <li><a href="/article/290.htm"
                                       title="web.xml报错" target="_blank">web.xml报错</a>
                                    <span class="text-muted">crabdave</span>
<a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a>
                                    <div>web.xml报错 
  
The content of element type "web-app" must match "(icon?,display- 
 name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s</div>
                                </li>
                                <li><a href="/article/417.htm"
                                       title="泛型类的自定义" target="_blank">泛型类的自定义</a>
                                    <span class="text-muted">麦田的设计者</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E6%B3%9B%E5%9E%8B/1.htm">泛型</a>
                                    <div>   为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。 
采用泛型类,完成扩展。 
  例如有一个学生类 
    
Student{
  Student(){
   System.out.println("I'm a student.....");
  }
} 
 有一个老师类 
  
</div>
                                </li>
                                <li><a href="/article/544.htm"
                                       title="CSS清除浮动的4中方法" target="_blank">CSS清除浮动的4中方法</a>
                                    <span class="text-muted">IT独行者</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                    <div>清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。 
1、结尾处加空div标签 clear:both      1   2   3   4      
.div 
1 
{ 
background 
: 
#000080 
; 
border 
: 
1px   
s</div>
                                </li>
                                <li><a href="/article/671.htm"
                                       title="Cygwin使用windows的jdk 配置方法" target="_blank">Cygwin使用windows的jdk 配置方法</a>
                                    <span class="text-muted">_wy_</span>
<a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/cygwin/1.htm">cygwin</a>
                                    <div>1.[vim /etc/profile] 
   JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43"  (windows下jdk路径为D:\Java\jdk1.6.0_43) 
   PATH="$JAVA_HOME/bin:${PATH}" 
   CLAS</div>
                                </li>
                                <li><a href="/article/798.htm"
                                       title="linux下安装maven" target="_blank">linux下安装maven</a>
                                    <span class="text-muted">无量</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85/1.htm">安装</a>
                                    <div>Linux下安装maven(转)  1.首先到Maven官网 
下载安装文件,目前最新版本为3.0.3,下载文件为 
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令; 
 
2.进入下载文件夹,找到下载的文件,运行如下命令解压 
  tar -xvf  apache-maven-2.2.1-bin.tar.gz  
解压后的文件夹</div>
                                </li>
                                <li><a href="/article/925.htm"
                                       title="tomcat的https 配置,syslog-ng配置" target="_blank">tomcat的https 配置,syslog-ng配置</a>
                                    <span class="text-muted">aichenglong</span>
<a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/http%E8%B7%B3%E8%BD%AC%E5%88%B0https/1.htm">http跳转到https</a><a class="tag" taget="_blank" href="/search/syslong-ng%E9%85%8D%E7%BD%AE/1.htm">syslong-ng配置</a><a class="tag" taget="_blank" href="/search/syslog%E9%85%8D%E7%BD%AE/1.htm">syslog配置</a>
                                    <div>1) tomcat配置https,以及http自动跳转到https的配置 
    1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令) 
     keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit</div>
                                </li>
                                <li><a href="/article/1052.htm"
                                       title="关于领号活动总结" target="_blank">关于领号活动总结</a>
                                    <span class="text-muted">alafqq</span>
<a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a>
                                    <div>关于某彩票活动的总结 
具体需求,每个用户进活动页面,领取一个号码,1000中的一个; 
活动要求 
1,随机性,一定要有随机性; 
2,最少中奖概率,如果注数为3200注,则最多中4注 
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高); 
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库) 
 
解决方案 
1,事先产生随机数1000个,并打</div>
                                </li>
                                <li><a href="/article/1179.htm"
                                       title="java数据结构 冒泡排序的遍历与排序" target="_blank">java数据结构 冒泡排序的遍历与排序</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>java的冒泡排序是一种简单的排序规则 
  
冒泡排序的原理:  
         比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样; 
        针对所有的元素重复以上的步骤,除了最后一个 
  
  
例题;将int array[] </div>
                                </li>
                                <li><a href="/article/1306.htm"
                                       title="JS检查输入框输入的是否是数字的一种校验方法" target="_blank">JS检查输入框输入的是否是数字的一种校验方法</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a>
                                    <div>如下是JS检查输入框输入的是否是数字的一种校验方法: 
<form method=post target="_blank">
   数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
</div>
                                </li>
                                <li><a href="/article/1433.htm"
                                       title="Test注解的两个属性:expected和timeout" target="_blank">Test注解的两个属性:expected和timeout</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/JUnit/1.htm">JUnit</a><a class="tag" taget="_blank" href="/search/expected/1.htm">expected</a><a class="tag" taget="_blank" href="/search/timeout/1.htm">timeout</a>
                                    <div>JUnit4:Test文档中的解释: 
  The Test annotation supports two optional parameters. 
  The first, expected, declares that a test method should throw an exception. 
  If it doesn't throw an exception or if it </div>
                                </li>
                                <li><a href="/article/1560.htm"
                                       title="[Gson二]继承关系的POJO的反序列化" target="_blank">[Gson二]继承关系的POJO的反序列化</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a>
                                    <div>父类 
  
  
package inheritance.test2;

import java.util.Map;

public class Model {
    private String field1;
    private String field2;

    private Map<String, String> infoMap</div>
                                </li>
                                <li><a href="/article/1687.htm"
                                       title="【Spark八十四】Spark零碎知识点记录" target="_blank">【Spark八十四】Spark零碎知识点记录</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a>
                                    <div>1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的 
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中 
  
   </div>
                                </li>
                                <li><a href="/article/1814.htm"
                                       title="WAS各种脚本作用大全" target="_blank">WAS各种脚本作用大全</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/WAS+%E8%84%9A%E6%9C%AC/1.htm">WAS 脚本</a>
                                    <div>   http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html 
   无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下 
    
获取下载 
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自</div>
                                </li>
                                <li><a href="/article/1941.htm"
                                       title="java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句" target="_blank">java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/switch/1.htm">switch</a>
                                    <div>借鉴网上的思路,用java实现: 
 




public class NoIfWhile {

	/**
	 * @param args
	 * 
	 * find x=1+2+3+....n
	 */
	public static void main(String[] args) {
		int n=10;
		int re=find(n);
		System.o</div>
                                </li>
                                <li><a href="/article/2068.htm"
                                       title="Netty源码学习-ObjectEncoder和ObjectDecoder" target="_blank">Netty源码学习-ObjectEncoder和ObjectDecoder</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a>
                                    <div>Netty中传递对象的思路很直观: 
Netty中数据的传递是基于ChannelBuffer(也就是byte[]); 
那把对象序列化为字节流,就可以在Netty中传递对象了 
相应的从ChannelBuffer恢复对象,就是反序列化的过程 
 
Netty已经封装好ObjectEncoder和ObjectDecoder 
 
先看ObjectEncoder 
ObjectEncoder是往外发送</div>
                                </li>
                                <li><a href="/article/2195.htm"
                                       title="spring 定时任务中cronExpression表达式含义" target="_blank">spring 定时任务中cronExpression表达式含义</a>
                                    <span class="text-muted">chicony</span>
<a class="tag" taget="_blank" href="/search/cronExpression/1.htm">cronExpression</a>
                                    <div>一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示: 
代表含义            是否必须 允许的取值范围         &nb</div>
                                </li>
                                <li><a href="/article/2322.htm"
                                       title="Nutz配置Jndi" target="_blank">Nutz配置Jndi</a>
                                    <span class="text-muted">ctrain</span>
<a class="tag" taget="_blank" href="/search/JNDI/1.htm">JNDI</a>
                                    <div>1、使用JNDI获取指定资源: 
 

var ioc = {
    dao : {
        type :"org.nutz.dao.impl.NutDao",
        args : [ {jndi :"jdbc/dataSource"} ]
    }
}
 
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可. </div>
                                </li>
                                <li><a href="/article/2449.htm"
                                       title="解决 /bin/sh^M: bad interpreter: No such file or directory" target="_blank">解决 /bin/sh^M: bad interpreter: No such file or directory</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a>
                                    <div>在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。 
  
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。 
解决: 
1)在windows下转换: 
利用一些编辑器如UltraEdit或EditPlus等工具</div>
                                </li>
                                <li><a href="/article/2576.htm"
                                       title="[转]for 循环为何可恨?" target="_blank">[转]for 循环为何可恨?</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6/1.htm">读书</a>
                                    <div>  
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。 
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju</div>
                                </li>
                                <li><a href="/article/2703.htm"
                                       title="Android实用小技巧" target="_blank">Android实用小技巧</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>1、去掉所有Activity界面的标题栏 
  修改AndroidManifest.xml   在application 标签中添加android:theme="@android:style/Theme.NoTitleBar" 
  
2、去掉所有Activity界面的TitleBar 和StatusBar  
  修改AndroidManifes</div>
                                </li>
                                <li><a href="/article/2830.htm"
                                       title="Oracle 复习笔记之序列" target="_blank">Oracle 复习笔记之序列</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/Oracle+%E5%BA%8F%E5%88%97/1.htm">Oracle 序列</a><a class="tag" taget="_blank" href="/search/sequence/1.htm">sequence</a><a class="tag" taget="_blank" href="/search/Oracle+sequence/1.htm">Oracle sequence</a>
                                    <div>转载请出自出处:http://eksliang.iteye.com/blog/2098859 
1.序列的作用 
 
 序列是用于生成唯一、连续序号的对象 
 一般用序列来充当数据库表的主键值 
 
2.创建序列语法如下: 
  
create sequence s_emp
start with 1      --开始值
increment by 1    --増长值
maxval</div>
                                </li>
                                <li><a href="/article/2957.htm"
                                       title="有“品”的程序员" target="_blank">有“品”的程序员</a>
                                    <span class="text-muted">gongmeitao</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a>
                                    <div>完美程序员的10种品质   
  
 完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的 
  
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质: 
  1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强 
  
(范围:用简单方式解决复杂问题)   
 </div>
                                </li>
                                <li><a href="/article/3084.htm"
                                       title="使用KeleyiSQLHelper类进行分页查询" target="_blank">使用KeleyiSQLHelper类进行分页查询</a>
                                    <span class="text-muted">hvt</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a>
                                    <div>本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D</div>
                                </li>
                                <li><a href="/article/3211.htm"
                                       title="SVG 教程 (三)圆形,椭圆,直线" target="_blank">SVG 教程 (三)圆形,椭圆,直线</a>
                                    <span class="text-muted">天梯梦</span>
<a class="tag" taget="_blank" href="/search/svg/1.htm">svg</a>
                                    <div>SVG <circle>   SVG 圆形 - <circle> 
<circle> 标签可用来创建一个圆: 
下面是SVG代码: 
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <circle cx="100" c</div>
                                </li>
                                <li><a href="/article/3338.htm"
                                       title="链表栈" target="_blank">链表栈</a>
                                    <span class="text-muted">luyulong</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                                    <div>
public class Node {
	private Object object;
	private Node next;

	public Node() {
		this.next = null;
		this.object = null;
	}

	public Object getObject() {
		return object;
	}

	public</div>
                                </li>
                                <li><a href="/article/3465.htm"
                                       title="基础数据结构和算法十:2-3 search tree" target="_blank">基础数据结构和算法十:2-3 search tree</a>
                                    <span class="text-muted">sunwinner</span>
<a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/2-3+search+tree/1.htm">2-3 search tree</a>
                                    <div>  
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga</div>
                                </li>
                                <li><a href="/article/3592.htm"
                                       title="spring配置定时任务" target="_blank">spring配置定时任务</a>
                                    <span class="text-muted">stunizhengjia</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/timer/1.htm">timer</a>
                                    <div>最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到: 
  
  
//------------------------定时任务调用的方法------------------------------
    /**
     * 存储过程定时器
    */
    publi</div>
                                </li>
                                <li><a href="/article/3719.htm"
                                       title="ITeye 8月技术图书有奖试读获奖名单公布" target="_blank">ITeye 8月技术图书有奖试读获奖名单公布</a>
                                    <span class="text-muted">ITeye管理员</span>
<a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a>
                                    <div>ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 
 
 
8月试读活动回顾: 
http://webmaster.iteye.com/blog/2102830 
 
 
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀): 
 
 
《跨终端Web》 
 
 
 
 gleams:http</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>