tujidelv vor 7 Jahren
Ursprung
Commit
43cba0e2a9

+ 1 - 0
.gitignore

@@ -1,3 +1,4 @@
+### Hexo ###
 .DS_Store
 Thumbs.db
 db.json

+ 3 - 1
TOC.md

@@ -16,4 +16,6 @@
     - [阿香婆屏幕截图工具 Ashampoo Snap](source/_posts/st-ashampoo-snap.md)
     - <del>[最强屏幕录像软件 Camtasia Studio](source/_posts/st-camtasia-studio.md)</del>
 - **Scientific Internet**
-    - 更新中...
+    - 更新中...
+- **Typical Example**
+    - [可输入可选择可模糊查询的 select 下拉](source/_posts/te-select.md)

+ 3 - 0
_config.yml

@@ -29,6 +29,8 @@ code_dir: downloads/code # Include code 文件夹
 i18n_dir: :lang # 国际化(i18n)文件夹
 skip_render: # 跳过指定文件的渲染,您可使用 glob 表达式来匹配路径。
 - README.md
+- baidu_verify_kunmbyfMoR.html
+- google0a7896c13224b046.html
 
 # Writing,文章,这一块一般不需要修改
 new_post_name: :title.md # Hexo 默认以标题做为文件名称,设为 :year-:month-:day-:title.md 可让您更方便的通过日期来管理文章
@@ -77,6 +79,7 @@ pagination_dir: page # 分页目录
 plugin:
 - hexo-generator-feed
 - hexo-generator-sitemap
+- hexo-generator-baidu-sitemap
 #Feed Atom
 feed:
 type: atom

+ 1 - 0
package.json

@@ -10,6 +10,7 @@
     "hexo-asset-image": "^0.0.3",
     "hexo-deployer-git": "^0.3.1",
     "hexo-generator-archive": "^0.1.5",
+    "hexo-generator-baidu-sitemap": "^0.1.5",
     "hexo-generator-category": "^0.1.3",
     "hexo-generator-feed": "^1.2.2",
     "hexo-generator-index": "^0.2.1",

+ 211 - 74
source/_posts/af-hexo.md

@@ -106,7 +106,7 @@ tags:
     [hexo-cli@1.1.0] link E:\Ebook\JavaSE\develop\nodejs\node_global\hexo@ -> E:\Ebook\JavaSE\develop\nodejs\node_global\node_modules\hexo-cli\bin\hexo
     ```
 - 创建 Hexo 项目
-    ![抱歉,图片休息了](af-hexo/sf-hexo-001.png "hexo 项目目录结构")
+    ![抱歉,图片休息了](af-hexo/af-hexo-001.png "hexo 项目目录结构")
     - 现在初始化后不需要 `npm install` 了,它会默认执行该命令把相关依赖包下载到 node_modules 目录中,同时会自动生成 package-lock.json 文件用以纪录当前实际安装的各个插件包的具体来源和版本号。
     - 安装时间不一定很快,耐心等待一会。
     ```
@@ -183,7 +183,7 @@ tags:
         ```
     - 修改 hexo 站点配置文件 _config.yml 使主题生效
     
-        ![抱歉,图片休息了](af-hexo/sf-hexo-002.png "hexo 主题修改")
+        ![抱歉,图片休息了](af-hexo/af-hexo-002.png "hexo 主题修改")
     - 重新渲染主题静态内容并本地预览
         ```
         Tujide.lv@tujide MINGW64 /e/Ebook/JavaSE/workspace_idea/hexo-blog
@@ -237,7 +237,7 @@ tags:
 - 创建 Github pages 并 SSH 授权
     - 创建好这个特殊仓库之后,在本地生成 SSH 秘钥并添加到 GitHub上,方便电脑上的 git 将内容到 Github 上。
     
-    ![抱歉,图片休息了](af-hexo/sf-hexo-003.png "hexo 仓库")
+    ![抱歉,图片休息了](af-hexo/af-hexo-003.png "hexo 仓库")
 - 把本地的博客内容同步到 Github 上
     - 安装与 hexo 相关的 git 部署插件
         ```
@@ -347,7 +347,7 @@ tags:
         hexo generate/g     // 重新生成一次静态文件
         hexo deploy/d       // 使用部署命令部署到 Github 上
         ```
-    ![抱歉,图片休息了](af-hexo/sf-hexo-004.png "hexo 部署到GitHub")
+    ![抱歉,图片休息了](af-hexo/af-hexo-004.png "hexo 部署到GitHub")
 - 绑定域名
     - 在 source 目录下新建 `CNAME` 文件(文件名叫 CNAME,没有文件后缀的)
         - 以后一些需要放在根目录的资源文件都可以放这里。
@@ -369,83 +369,220 @@ tags:
 
 ## 进阶使用
 
-- 编写脚本方便快速部署和本地预览
-    - 在 hexo 根目录下新建 hs.sh 和 hd.sh 文件,分别加入如下内容:
-        ```
-        #!/bin/bash
-        hexo clean && hexo g && hexo s
-        ```
-        ```
-        #!/bin/bash
-        hexo clean && hexo g && hexo d
-        ```
-    - 在 Git Bash 中分别执行 `./hs.sh` 和`./hd.sh` 来预览和部署。
-- 创建**关于我**页面
-    - 可以编辑 index.md 文件补充需要显示的内容。
+### **编写脚本方便快速部署和本地预览**
+
+- 在 hexo 根目录下新建 hs.sh 和 hd.sh 文件,分别加入如下内容:
+    ```
+    #!/bin/bash
+    hexo clean && hexo g && hexo s
+    ```
+    ```
+    #!/bin/bash
+    hexo clean && hexo g && hexo d
+    ```
+- 在 Git Bash 中分别执行 `./hs.sh` 和`./hd.sh` 来预览和部署。
+
+### **创建[关于我]页面**
+
+- 可以编辑 index.md 文件补充需要显示的内容。
+```
+Tujide.lv@tujide MINGW64 /e/Ebook/JavaSE/workspace_idea/hexo-blog
+$ hexo new page about
+INFO  Created: E:\Ebook\JavaSE\workspace_idea\hexo-blog\source\about\index.md
+```
+
+### **创建[404]页面**
+
+- 对于 github page 来说,只要在根目录有 404.html,当页面找不到时,就会被转发到/404.html 页面,所以我们只要更改这个页面,就可以实现自定义 404 页面了。
+- 但是我们通常会需要与本主题相符的 404 页面,那我们需要以下操作
+    1. 进入 Hexo 根目录,输入 `hexo new page 404` ;
+    2. 打开刚新建的页面文件,默认在 Hexo 文件夹根目录下 `/source/404/index.md`;
+    3. 在顶部插入一行,写上 `permalink: /404`,这表示指定该页固定链接为 `http://"主页"/404.html`。
+
+### **创建[分类&标签]页面**
+
+1. 在 source 目录下新建一个 tags 文件夹
+    ```
+    $ hexo new page tags
+    ```
+2. 编辑 index.md 文件,添加 `layout` 选项,后面的值对应的是主题文件夹下 `layout` 目录下第一级的布局文件,例如layout/tags.ejs
+    ```
+    ---
+    title: tags
+    date: 2018-11-28 20:23:17
+    type: tags
+    layout: "tags"
+    ---
+    ```
+3. 编辑主题配置文件,各个主题的显示名称可能不同
+    ```
+    menu:
+      Home: /
+      Archives: /archives
+      tags: /tags
+    ```
+4. 最后去看下 hexo 站点配置文件对应的选项名称是否对应
+    ```
+    # Directory
+    tag_dir: tags
+    ```
+Tips:最重要的是看一下主题文件里有没有标签页或者分类页的布局文件,一般来说都是有的,只是命名和存放的位置可能不同,所以大家要根据实际情况来修改。categories 同理。
+
+### **图片显示**
+
+- 一般分为外链和本地图片,这里介绍本地图片显示的 2 种方法
+- 绝对路径,可直接在 source 目录下新建 images 文件夹用于存放图片,在 md 文件中如下引用
+    ```
+    ![图片不存在时的提示文字](/images/图片.jpg "鼠标箭头放到图片上的提示文字")
+    ```
+- 相对路径,需先将站点配置文件中的 post_asset_folder 设为 true,然后安装 hexo-asset-image 插件
+    ```
+    # Writing
+    post_asset_folder: true # 启动 Asset 文件夹
+    ```
     ```
     Tujide.lv@tujide MINGW64 /e/Ebook/JavaSE/workspace_idea/hexo-blog
-    $ hexo new page about
-    INFO  Created: E:\Ebook\JavaSE\workspace_idea\hexo-blog\source\about\index.md
-    ```
-- 创建 **404** 页面
-    - 对于 github page 来说,只要在根目录有 404.html,当页面找不到时,就会被转发到/404.html 页面,所以我们只要更改这个页面,就可以实现自定义 404 页面了。
-    - 但是我们通常会需要与本主题相符的 404 页面,那我们需要以下操作
-        1. 进入 Hexo 根目录,输入 `hexo new page 404` ;
-        2. 打开刚新建的页面文件,默认在 Hexo 文件夹根目录下 `/source/404/index.md`;
-        3. 在顶部插入一行,写上 `permalink: /404`,这表示指定该页固定链接为 `http://"主页"/404.html`。
-- 创建**分类&标签**页面
-    1. 在 source 目录下新建一个 tags 文件夹
-        ```
-        $ hexo new page tags
-        ```
-    2. 编辑 index.md 文件,添加 `layout` 选项,后面的值对应的是主题文件夹下 `layout` 目录下第一级的布局文件,例如layout/tags.ejs
+    $ cnpm i hexo-asset-image --save
+    √ Installed 1 packages
+    √ Run 0 scripts
+    √ All packages installed (19 packages installed from npm registry, used 2s(network 2s), speed 153.72kB/s, json 18(31.65kB), tarball 315.44kB)
+    ```
+    ```
+     ![图片不存在时的提示文字](MD文件名称/图片.jpg "鼠标箭头放到图片上的提示文字")
+    ```
+    Tips:此方法在运行 hexo n "xxxx" 来生成 md 文件时,同时会在/source/_posts 文件夹下生成一个与 md 文件同名的文件夹。
+    
+### **添加 rss 为 blog 提供订阅功能**
+
+1. 安装相关插件
+    ```
+    $ cnpm install hexo-generator-feed --save
+    ```
+2. 配置 Hexo 站点配置文件_config.yml(以 3-hexo 为例)
+    ```
+    # Extensions
+    ## Plugins: https://hexo.io/plugins/
+    plugin:
+    - hexo-generator-feed
+    #Feed Atom
+    feed:
+    type: atom
+    path: atom.xml
+    limit: 20
+    ```
+3. 验证配置是否成功
+    - 执行 hexo g,查看一下 public 目录下,如果有 atom.xml 文件,则表明配置成功。
+4. 修改 Hexo 主题配置文件_config.yml(以 3-hexo 为例)
+    ```
+    link:
+      items:
+        rss: /atom.xml
+    ```
+    
+### **添加 sitemap 让搜索引擎收录**
+
+1. 先确认博客是否被收录
+    - 在百度或者谷歌上面输入 `site:你的域名` 来判断,如果能搜索到就说明被收录,否则就没有。
+2. 创建站点地图文件
+    - 您可以通过该文件列出您网站上的网页,从而将您网站内容的组织架构告知 Google 和其他搜索引擎,搜索引擎网页抓取工具会读取此文件,以便更加智能地抓取您的网站。
+    1. 安装百度和 google 插件
+        ```
+        cnpm install hexo-generator-sitemap --save
+        cnpm install hexo-generator-baidu-sitemap --save
+        ```
+    2. 配置 Hexo 站点配置文件_config.yml(以 3-hexo 为例)
+        ```
+        plugin:
+        - hexo-generator-sitemap
+        - hexo-generator-baidu-sitemap
+        ```
+    3. 验证配置是否成功
+        - 执行 hexo g,查看一下 public 目录下,如果有 sitemap.xml 文件,则表明配置成功。
+3. 让百度收录我们的博客
+    - 可以去 [百度站长平台](https://ziyuan.baidu.com/dashboard/index) 进行网站验证和链接提交。
+    - 由于百度不会抓取 GitHub Pages 上的站点,这里不进行操作。
+4. 让谷歌收录我们的博客
+    - 可以去 [Google 站长工具](https://www.google.com/webmasters/tools) 进行站点验证和添加站点地图。
+5. 添加 rebots.txt 文件
+    - ...
+        
+### **文章排序及置顶**
+
+- 文章(site.posts)排序默认按照 .md 文件的创建时间排序,而没有按照文章中的 date 排序。这容易导致问题,比如文件丢失通过 Git 还原后创建时间都是一样的。
+- 设置排序
+    - 方法1:
+        >**[@牵猪的松鼠](http://s.amlove.cn/)根据这篇文章写了一个npm插件 [hexo-generator-topindex](https://www.npmjs.com/package/hexo-generator-topindex)
+        安装插件命令: `npm install hexo-generator-topindex --save`
+    
+    - 方法2:直接修改 node_modules/hexo-generator-index/lib/generator.js
+        ```javascript
+        'use strict';
+        var pagination = require('hexo-pagination');
+        module.exports = function(locals){
+          var config = this.config;
+          var posts = locals.posts;
+            posts.data = posts.data.sort(function(a, b) {
+                if(a.top && b.top) { // 两篇文章top都有定义
+                    if(a.top == b.top) return b.date - a.date; // 若top值一样则按照文章日期降序排
+                    else return b.top - a.top; // 否则按照top值降序排
+                }
+                else if(a.top && !b.top) { // 以下是只有一篇文章top有定义,那么将有top的排在前面(这里用异或操作居然不行233)
+                    return -1;
+                }
+                else if(!a.top && b.top) {
+                    return 1;
+                }
+                else return b.date - a.date; // 都没定义按照文章日期降序排
+            });
+          var paginationDir = config.pagination_dir || 'page';
+          return pagination('', posts, {
+            perPage: config.index_generator.per_page,
+            layout: ['index', 'archive'],
+            format: paginationDir + '/%d/',
+            data: {
+              __index: true
+            }
+          });
+        };
+        ```
+- 设置置顶
+    - 给需要置顶的文章加入top参数,如下
         ```
         ---
-        title: tags
-        date: 2018-11-28 20:23:17
-        type: tags
-        layout: "tags"
+        title: Hexo 札记
+        date: 2018-12-01 18:25:23
+        top: 1
+        categories:
+        - 应用框架
+        tags:
+        - hexo
+        - nodejs
         ---
         ```
-    3. 编辑主题配置文件,各个主题的显示名称可能不同
-        ```
-        menu:
-          Home: /
-          Archives: /archives
-          tags: /tags
-        ```
-    4. 最后去看下 hexo 站点配置文件对应的选项名称是否对应
-        ```
-        # Directory
-        tag_dir: tags
-        ```
-    Tips:最重要的是看一下主题文件里有没有标签页或者分类页的布局文件,一般来说都是有的,只是命名和存放的位置可能不同,所以大家要根据实际情况来修改。categories 同理。
-- 图片显示
-    - 一般分为外链和本地图片,这里介绍本地图片显示的 2 种方法
-    - 绝对路径,可直接在 source 目录下新建 images 文件夹用于存放图片,在 md 文件中如下引用
-        ```
-        ![图片不存在时的提示文字](/images/图片.jpg "鼠标箭头放到图片上的提示文字")
-        ```
-    - 相对路径,需先将站点配置文件中的 post_asset_folder 设为 true,然后安装 hexo-asset-image 插件
-        ```
-        # Writing
-        post_asset_folder: true # 启动 Asset 文件夹
-        ```
-        ```
-        Tujide.lv@tujide MINGW64 /e/Ebook/JavaSE/workspace_idea/hexo-blog
-        $ cnpm i hexo-asset-image --save
-        √ Installed 1 packages
-        √ Run 0 scripts
-        √ All packages installed (19 packages installed from npm registry, used 2s(network 2s), speed 153.72kB/s, json 18(31.65kB), tarball 315.44kB)
-        ```
-        ```
-         ![图片不存在时的提示文字](MD文件名称/图片.jpg "鼠标箭头放到图片上的提示文字")
-        ```
-        Tips:此方法在运行 hexo n "xxxx" 来生成 md 文件时,同时会在/source/_posts 文件夹下生成一个与 md 文件同名的文件夹。
-- 文章排序及置顶
-- 使用 gitment 评论系统
-- 备份当前项目源码
+    - 如果存在多个置顶文章,top 后的参数越大,越靠前。
+
+### **使用 gitment 评论系统**
 
+### **备份当前项目源码**
+
+- 为防止当前项目源文件丢失,特补充此备份操作。
+- 修改 Hexo 项目的 .gitignore 文件,然后通过 IDEA 同步到远程仓库。
+    ```
+    ### Hexo ###
+    .DS_Store
+    Thumbs.db
+    db.json
+    *.log
+    node_modules/
+    public/
+    .deploy*/
+    themes/
+    
+    ### IntelliJ IDEA ###
+    .idea/
+    *.iml
+    ```
+![抱歉,图片休息了](af-hexo/af-hexo-005.png "将 hexo 源文件分享到 github")
 
 ## 参考链接
 

+ 0 - 0
source/_posts/af-hexo/sf-hexo-001.png → source/_posts/af-hexo/af-hexo-001.png


+ 0 - 0
source/_posts/af-hexo/sf-hexo-002.png → source/_posts/af-hexo/af-hexo-002.png


+ 0 - 0
source/_posts/af-hexo/sf-hexo-003.png → source/_posts/af-hexo/af-hexo-003.png


+ 0 - 0
source/_posts/af-hexo/sf-hexo-004.png → source/_posts/af-hexo/af-hexo-004.png


BIN
source/_posts/af-hexo/af-hexo-005.png


+ 100 - 92
source/_posts/st-idea-advanced.md

@@ -45,106 +45,114 @@ tags:
     IDEA默认快捷键的配置文件所在地:${IDEA_home}\lib\resources.jar\keymaps\*
     ```
 - 常用快捷键(Eclipse 版)
-    - ***Ctrl***
 
-        |快捷键|介绍|
-        |:---------|:---------|
-        |<kbd>Ctrl</kbd> + <kbd>F</kdb>|在当前文件进行文本替换 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Z/Y</kdb>|撤销/反撤销 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>X/C/V/A/S</kdb>|剪切/复制/粘贴/全选/保存 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>D</kdb>|删除光标所在行或选中行 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>/</kdb>|单行注释 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>O</kdb>|查看当前类的结构 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>H/R</kdb>|查找/替换(全局) `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>E</kdb>|显示最近打开的文件记录列表 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>W</kdb>|关闭当前打开的代码栏 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>L</kdb>|在当前文件跳转到指定行处 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Up/Down</kdb>|等效于鼠标滚轮向前/后效果 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Left/Right</kdb>|光标跳转到当前单词/中文名的左/右侧开头位置 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>T</kdb>|在某个调用的方法名上使用会跳到具体的实现处,可以跳过接口 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>F12</kdb>|调转到所选中的词的下一个引用位置|
-        |<kbd>Ctrl</kbd> + <kbd>F1</kdb>|在光标所在的错误代码处显示错误信息|
-        |<kbd>Ctrl</kbd> + <kbd>J</kdb>|插入自定义动态代码模板|
-        |<kbd>Ctrl</kbd> + <kbd>U</kdb>|前往当前光标所在的方法的父类的方法/接口定义|
-    - ***Alt***
+### ***Ctrl***
 
-        |快捷键|介绍|
-        |:---------|:---------|
-        |<kbd>Alt</kbd> + <kbd>Insert</kdb>|新建文件 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>Enter</kdb>|万能解错/生成返回值变量 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>/</kdb>|提示补全 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>Up/Down</kdb>|向上/下移动行/方法 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>Left/Right</kdb>|退回/前进到上一个/下一个操作的页面 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>R/D</kdb>|在执行/调试 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>1,2,...,9</kdb>|显示对应数值的他选项卡,其中1是Project用得最多 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>F12</kdb>|在项目下打开命令行 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>F1</kdb>|显示当前文件选择目标弹出层,弹出层中有很多目标可以进行选择 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>`</kdb>|显示版本控制常用操作菜单弹出层 `(必备)` |
-    - ***Shift***
+|快捷键|介绍|
+|:---------|:---------|
+|<kbd>Ctrl</kbd> + <kbd>F</kdb>|在当前文件进行文本替换 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Z/Y</kdb>|撤销/反撤销 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>X/C/V/A/S</kdb>|剪切/复制/粘贴/全选/保存 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>D</kdb>|删除光标所在行或选中行 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>/</kdb>|单行注释 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>O</kdb>|查看当前类的结构 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>H/R</kdb>|查找/替换(全局) `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>E</kdb>|显示最近打开的文件记录列表 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>W</kdb>|关闭当前打开的代码栏 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>L</kdb>|在当前文件跳转到指定行处 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Up/Down</kdb>|等效于鼠标滚轮向前/后效果 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Left/Right</kdb>|光标跳转到当前单词/中文名的左/右侧开头位置 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>T</kdb>|在某个调用的方法名上使用会跳到具体的实现处,可以跳过接口 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>F12</kdb>|调转到所选中的词的下一个引用位置|
+|<kbd>Ctrl</kbd> + <kbd>F1</kdb>|在光标所在的错误代码处显示错误信息|
+|<kbd>Ctrl</kbd> + <kbd>J</kdb>|插入自定义动态代码模板|
+|<kbd>Ctrl</kbd> + <kbd>U</kdb>|前往当前光标所在的方法的父类的方法/接口定义|
 
-        |快捷键|介绍|
-        |:---------|:---------|
-        |<kbd>Shift</kbd> + <kbd>Enter</kdb>|向下开始新的一行 `(必备)` |
-        |<kbd>Shift</kbd> + <kbd>Tab</kdb>|取消缩进 `(必备)` |
-        |<kbd>Shift</kbd> + <kbd>F11</kdb>|弹出书签显示层 `(必备)` |
-    - ***Ctrl + Alt***
+### ***Alt***
 
-        |快捷键|介绍|
-        |:---------|:---------|
-        |<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>S</kbd>|打开idea系统设置 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>Down</kbd>|向下复制一行 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>F</kbd>|添加到收藏 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>Left/Right</kbd>|切换当前已打开的窗口中的子视图,如debug窗口中有output,debugger等子视图|
-        |<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>H</kbd>|查看方法的多层重写结构|
-        |<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>/</kbd>|方法参数提示显示|
-    - ***Ctrl + Shift***
+|快捷键|介绍|
+|:---------|:---------|
+|<kbd>Alt</kbd> + <kbd>Insert</kdb>|新建文件 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>Enter</kdb>|万能解错/生成返回值变量 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>/</kdb>|提示补全 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>Up/Down</kdb>|向上/下移动行/方法 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>Left/Right</kdb>|退回/前进到上一个/下一个操作的页面 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>R/D</kdb>|在执行/调试 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>1,2,...,9</kdb>|显示对应数值的他选项卡,其中1是Project用得最多 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>F12</kdb>|在项目下打开命令行 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>F1</kdb>|显示当前文件选择目标弹出层,弹出层中有很多目标可以进行选择 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>`</kdb>|显示版本控制常用操作菜单弹出层 `(必备)` |
 
-        |快捷键|介绍|
-        |:---------|:---------|
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>/</kbd>|多行注释 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Enter</kbd>|向上开始新的一行 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>F</kbd>|格式化代码 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>O</kbd>|优化导入的类 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Y</kbd>|大写转小写/小写转大写 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>T</kbd>|根据输入的类名查找类文件 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>R</kbd>|根据输入的文件名打开文件/目录,打开目录需在末尾多加一个正斜杠 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Up/Down</kbd>|当前光标跳转到当前文件的前/后一个方法名位置 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>F12</kbd>|编辑器最大化 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>H</kbd>|查找方法在哪里被调用 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd>|选择要粘贴的内容|
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Q</kbd>|快速搜索类中的错误|
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>W</kbd>|关闭打开的所有代码栏|
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>U</kbd>|查看类的继承结构图|
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>X</kbd>|打开代码所在硬盘文件夹|
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>C</kbd>|复制当前文件磁盘路径到剪切板|
-    - ***Alt + Shift***
+### ***Shift***
 
-        |快捷键|介绍|
-        |:---------|:---------|
-        |<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>S</kbd>|生成构造器/get/set/toString `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>Z</kbd>|生成 try-catch 等 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>C/X</kbd>|收起/打开所有的方法 `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>R</kbd>|重构(修改变量名与方法名) `(必备)` |
-        |<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>M</kbd>|抽取方法|
-        |<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>F</kbd>|局部变量抽取为成员变量|
-        |<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>N</kbd>|选择/添加 task|
-    - ***Ctrl + Shift + Alt***
+|快捷键|介绍|
+|:---------|:---------|
+|<kbd>Shift</kbd> + <kbd>Enter</kdb>|向下开始新的一行 `(必备)` |
+|<kbd>Shift</kbd> + <kbd>Tab</kdb>|取消缩进 `(必备)` |
+|<kbd>Shift</kbd> + <kbd>F11</kdb>|弹出书签显示层 `(必备)` |
 
-        |快捷键|介绍|
-        |:---------|:---------|
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Alt</kbd> + <kbd>S</kbd>|打开当前项目设置 `(必备)` |
-        |<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Alt</kbd> + <kbd>V</kbd>|无格式黏贴|
-    - ***其他***
+### ***Ctrl + Alt***
 
-        |快捷键|介绍|
-        |:---------|:---------|
-        |<kbd>Dobule Shift</kbd>|查找文件 `(必备)` |
-        |<kbd>Esc</kbd>|从工具窗口进入代码文件窗口 `(必备)` |
-        |<kbd>Tab</kbd>|缩进 `(必备)` |
-        |<kbd>F3</kbd>|进入光标所在的方法/变量的接口或是定义处,等效于ctrl+左键单击 `(必备)` |
-        |<kbd>F11</kbd>|添加书签 `(必备)` |
-        |<kbd>F2</kbd>|光标所在的变量/类名/方法名等上面显示文档内容|
-        |<kbd>F4</kbd>|查看继承关系|
+|快捷键|介绍|
+|:---------|:---------|
+|<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>S</kbd>|打开idea系统设置 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>Down</kbd>|向下复制一行 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>F</kbd>|添加到收藏 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>Left/Right</kbd>|切换当前已打开的窗口中的子视图,如debug窗口中有output,debugger等子视图|
+|<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>H</kbd>|查看方法的多层重写结构|
+|<kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>/</kbd>|方法参数提示显示|
+
+### ***Ctrl + Shift***
+
+|快捷键|介绍|
+|:---------|:---------|
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>/</kbd>|多行注释 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Enter</kbd>|向上开始新的一行 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>F</kbd>|格式化代码 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>O</kbd>|优化导入的类 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Y</kbd>|大写转小写/小写转大写 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>T</kbd>|根据输入的类名查找类文件 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>R</kbd>|根据输入的文件名打开文件/目录,打开目录需在末尾多加一个正斜杠 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Up/Down</kbd>|当前光标跳转到当前文件的前/后一个方法名位置 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>F12</kbd>|编辑器最大化 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>H</kbd>|查找方法在哪里被调用 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd>|选择要粘贴的内容|
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Q</kbd>|快速搜索类中的错误|
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>W</kbd>|关闭打开的所有代码栏|
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>U</kbd>|查看类的继承结构图|
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>X</kbd>|打开代码所在硬盘文件夹|
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>C</kbd>|复制当前文件磁盘路径到剪切板|
+
+### ***Alt + Shift***
+
+|快捷键|介绍|
+|:---------|:---------|
+|<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>S</kbd>|生成构造器/get/set/toString `(必备)` |
+|<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>Z</kbd>|生成 try-catch 等 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>C/X</kbd>|收起/打开所有的方法 `(必备)` |
+|<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>R</kbd>|重构(修改变量名与方法名) `(必备)` |
+|<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>M</kbd>|抽取方法|
+|<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>F</kbd>|局部变量抽取为成员变量|
+|<kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd>N</kbd>|选择/添加 task|
+
+### ***Ctrl + Shift + Alt***
+
+|快捷键|介绍|
+|:---------|:---------|
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Alt</kbd> + <kbd>S</kbd>|打开当前项目设置 `(必备)` |
+|<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Alt</kbd> + <kbd>V</kbd>|无格式黏贴|
+        
+### ***其他***
+
+|快捷键|介绍|
+|:---------|:---------|
+|<kbd>Dobule Shift</kbd>|查找文件 `(必备)` |
+|<kbd>Esc</kbd>|从工具窗口进入代码文件窗口 `(必备)` |
+|<kbd>Tab</kbd>|缩进 `(必备)` |
+|<kbd>F3</kbd>|进入光标所在的方法/变量的接口或是定义处,等效于ctrl+左键单击 `(必备)` |
+|<kbd>F11</kbd>|添加书签 `(必备)` |
+|<kbd>F2</kbd>|光标所在的变量/类名/方法名等上面显示文档内容|
+|<kbd>F4</kbd>|查看继承关系|
 
 ## 高效率编码功能介绍
 

+ 165 - 0
source/_posts/te-select.md

@@ -0,0 +1,165 @@
+---
+title: 可输入可选择可模糊查询的 select 下拉
+date: 2018-12-02 19:00:12
+categories:
+- 经典示例
+tags:
+- html
+- css
+- javascript
+---
+
+# 可输入可选择可模糊查询的 select 下拉
+
+## 目录
+
+- [简介](#简介)
+- [CSS 代码](#CSS代码)
+- [JS 代码](#JS代码)
+- [HTML 代码](#HTML代码)
+- [参考链接](#参考链接)
+- [结束语](#结束语)
+
+## 简介
+
+- 相比网上各种下拉插件,要么出现各种传值问题,要么样式跟现有的项目冲突,此方法没有选用 select 标签,返璞归真
+- 啥也不说了,直接上代码。
+
+## CSS代码
+
+```css
+<style>
+.selectDiv {
+	display:none;
+	z-index:9999;
+	position:absolute;/*不加的话可能会影响页面其他元素*/
+	border:1px solid #999;
+	width:215px;/*调整下拉框的宽度*/
+	height:106px;
+	margin-left:74px;
+	background:white;
+	border-radius:4px;/*调整边框圆角*/
+	overflow-y:scroll;/*添加下拉框滚动条*/
+	overflow-x:hidden;/*防止ie上下拉框出现横向滚动条*/
+} 
+.selectSpan {
+ 	width:190px;/*调整下拉框每个元素的宽度*/
+ 	height:18px;
+ 	padding-top:3px;
+ 	border:1px solid #ffffff;
+ 	margin-left:4px;
+ 	display:block;/*很重要,调整宽高度需要*/
+ 	word-wrap:break-word;/*自动换行*/
+ 	vertical-align:middle;/*垂直居中*/
+ } 
+.selectSpan:hover {
+ 	background:#1f7ed0;
+ }
+</style>
+```
+
+## JS代码
+
+```javascript
+var TempArr = [];
+var selectDivHtml = "";
+// 当鼠标点击输入框时执行此方法
+function queryUnCreateAddress(){
+	TempArr = [];
+	var showFlag = true;
+	$("#selectDivShow").html(selectDivHtml);
+
+	$.ajax({ //此为向数据库查询json数据填充到下拉框里
+		type:"post",
+		url:path + "/workplace/workplaceInformationMessage!queryUnCreateAddress.action",
+		dataType:"json",
+		async:false,
+		success:function(data){
+			TempArr = data;
+		    if(null != data && data.length > 0){
+		    	$(data).each(function(index,value){
+		    		var leng = checkLength(value.workplaceAddress); //计算数据的长度,区分中英文
+					var height = Math.ceil(leng/21) * 15; //设置下拉框每个选项的高度,
+					if(height == 15){
+						height = 18;
+					}
+	    			selectDivHtml +="<span class='selectSpan' style='height:"+height+"px' data-code='"+value.addressCode+"' data-address='"+value.workplaceAddress+"' onclick='selectedValueInput(this)'>"+value.workplaceAddress+"</span>";
+		    	});
+		    }else{
+		    	showFlag = false;
+		    }
+		},
+		error:function(){
+			alert("系统错误");
+		}
+	});
+	$("#selectDivShow").append(selectDivHtml);
+	selectDivHtml = "";
+
+	if(showFlag){
+		$("#selectDivShow").attr("style","display:block");
+	}
+}
+// 点击下拉框每个选项时触发此方法
+function selectedValueInput(obj){
+	var code = $(obj).data("code");
+	var address = $(obj).data("address");
+	$("#workplaceAddressNum").val(code); //隐藏域,按需添加,方便传值到后台
+	$("#contractAddress").val(address);
+	$("#selectDivShow").attr("style","display:none");
+}
+// 在输入框输入内容时触发此方法,方便实时监听匹配
+function setinput(this_){
+	var select = $("#selectDivShow");
+	select.html("");
+
+	for(var i = 0;i<TempArr.length;i++){
+		if(TempArr[i].workplaceAddress.substring(0,$(this_).val().length).indexOf($(this_).val()) == 0){
+			var leng = checkLength(TempArr[i].workplaceAddress);
+			var height = Math.ceil(leng/21) * 15;
+			if(height == 15){
+				height = 18;
+			}
+			selectDivHtml +="<span class='selectSpan' style='height:"+height+"px' data-code='"+TempArr[i].addressCode+"' data-address='"+TempArr[i].workplaceAddress+"' onclick='selectedValueInput(this)'>"+TempArr[i].workplaceAddress+"</span>";
+		}
+	}
+	select.append(selectDivHtml);
+	selectDivHtml = "";
+}
+// 离开输入框时触发此方法
+function addressBlur(){
+	var selectObj = $("#selectDivShow").find("span:hover");
+	if(null != selectObj && selectObj.length > 0){ //针对鼠标点击下拉框选项触发此方法时的特殊处理
+		selectedValueInput(selectObj);
+		return;
+	}
+	$("#selectDivShow").attr("style","display:none");
+}
+// 计算输入值的长度
+function checkLength(str){
+	var sLen = 0;
+	for(var i = 0;i<str.length;i++) {
+		if(str.charAt(i) <= '\255') { // 单字节字符
+			sLen++;
+		}else { // 汉字或其他2字节字符
+			sLen = sLen + 3;
+		}
+	}
+	return sLen;
+}
+```
+
+## HTML代码
+
+```html
+<input type="text" id="contractAddress" name="workplaceInformation.contractAddress" 
+onblur="addressBlur()" oninput="setinput(this)" onfocus="queryUnCreateAddress()" value="${workplaceInformation.contractAddress }" />
+<div id="selectDivShow" class="selectDiv"></div>
+```
+
+## 参考链接
+
+
+## 结束语
+
+- 未完待续...

+ 2 - 2
source/about/index.md

@@ -7,9 +7,9 @@ date: 2018-11-28 20:37:57
 - 吕志强
 - 来自哪里:一位对未来有些迷茫的已婚大叔
 - 近期目标:爱生活、爱技术、爱看书
-- 至理名言:好记性不如不如烂笔头
+- 考察名言:好记性不如不如烂笔头
 
 ## 联系方式
 
 - QQ:920165830
-- Email:tujide.lv@foxmail.coom
+- Email:tujide.lv@foxmail.com

+ 1 - 0
source/baidu_verify_kunmbyfMoR.html

@@ -0,0 +1 @@
+kunmbyfMoR

+ 1 - 0
source/google0a7896c13224b046.html

@@ -0,0 +1 @@
+google-site-verification: google0a7896c13224b046.html