-
Notifications
You must be signed in to change notification settings - Fork 0
/
search.xml
72 lines (72 loc) · 22.4 KB
/
search.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title><![CDATA[前端学习资料]]></title>
<url>%2F2018%2F05%2F27%2F%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99%2F</url>
<content type="text"><![CDATA[入门 w3school 《Head First HTML与CSS》 《锋利的jQuery》 chrome Devtools: 先学会简单的查看元素,源码调试 学了这些基本上做些简单网站是没问题了,有点开发体验之后想要在前端继续发展下去,要注重知识体系和基础了 CSS 网易nec 《精通CSS:高级Web标准解决方案》:实践 《CSS权威指南》: 全面,权威,通往高级必备 《CSS揭秘》 JavaScript 《JavaScript高级程序设计》:俗称红宝书,经典全面 《JavaScript权威指南》:最权威的JS书籍,工具书 Web性能 《高性能网站建设指南:前端工程师技能精髓》 《高性能网站建设进阶指南:Web开发者性能优化最佳实践》 《Web性能权威指南》 HTTP协议 《图解HTTP》:基础,有很多插图 《HTTP权威指南》 浏览器 《WebKit技术内幕》 chrome Devtools Node.js 《了不起的Node.js 将JavaScript进行到底》: 入门 《深入浅出Node.js》: 进阶 ES6 《ECMAScript 6 入门》 数据结构与算法 《剑指Offer:名企面试官精讲典型编程题》 《算法导论》 设计模式 设计模式:可复用面向对象软件的基础 网络资料 MDN 淘宝前端团队(FED) 百度FEX前端研发部 infoQ 奇舞周刊 阮一峰博客 张鑫旭博客 说明看书是学习知识,提高能力的一种途径,但是最重要的是实践以及在实践过程中的思考总结,最终能够脱离书本,深刻理解整个前端的知识体系]]></content>
<categories>
<category>教程</category>
</categories>
<tags>
<tag>资料</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Grid布局与Flex布局]]></title>
<url>%2F2018%2F05%2F03%2FGrid%E5%B8%83%E5%B1%80%E4%B8%8EFlex%E5%B8%83%E5%B1%80%2F</url>
<content type="text"><![CDATA[关于flex布局 概念 flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。布局的传统解决方案,基于盒状模型,依赖display属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。在没有兼容性问题的情况下,flex布局是一个很好的解决方案。 兼容性基本上ie10就开始支持了,因此可以很安全的使用这项功能。 语法这里推荐阮一峰的博客Flex 布局教程:语法篇,看几遍基本会了。 关于grid布局 概念 grid是一个二维的基于网格的布局系统,目的是为了完全改变我们基于网格设计用户界面的方式,通过将CSS规则应用于父元素(成为Grid Container网格容器)和其子元素(成为Grid Items网格项),你就可以轻松使用Grid(网格)布局。 兼容性ie11虽然支持,但是是一个过时的语法实现。gird的支持性没有flex好,但也只是时间问题。 语法入门推荐5分钟学会 CSS Grid 布局 ,详细的教程参见CSS Grid 布局完全指南 flex VS grid grids 适用于布局大画面。它们使页面的布局变得非常容易,甚至可以处理一些不规则和非对称的设计 flexbox 非常适合对齐元素内的内容。你可以使用 Flex 来定位设计上一些较小的细节 flex一维布局(行或列);grid二维布局(行和列) 共同学习和使用更加轻松 彩蛋强力推荐学习flex和grid的小游戏: flex小青蛙 grid花园]]></content>
<categories>
<category>css</category>
</categories>
<tags>
<tag>css布局</tag>
<tag>flex</tag>
<tag>grid</tag>
</tags>
</entry>
<entry>
<title><![CDATA[JavaScript正则表达式高级用法]]></title>
<url>%2F2018%2F04%2F26%2FJavaScript%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E9%AB%98%E7%BA%A7%E7%94%A8%E6%B3%95%2F</url>
<content type="text"><![CDATA[贪婪和惰性匹配 贪婪匹配 表示方法:简单量词都是贪婪匹配。(? , * , +) 描述:贪婪匹配是先匹配整个字符串,匹配原则类似在正则表达式末尾加上$。如果匹配失败,则去掉最末位,重新进行上一个操作。直到匹配成功(这里需要进行最大量匹配,比如说/.*aa/,则会匹配到aa之前的所有字符,而不仅仅是aa之前第一个),如果是全局匹配,匹配成功之后还可以在此基础上继续进行匹配操作,或者是匹配失败。 惰性匹配 表示方法:在量词后面添加’?’。(?? , *? , +?) 描述:惰性匹配与贪婪匹配正好相反,是从左往右进行匹配。先匹配第一个字符(匹配方式与上面贪婪匹配一样,在正则表达式后面添加$),如果第一个数据匹配失败,则新添加一个字符。直到匹配成功,如果是全局匹配,匹配成功之后还可以在此基础上继续进行匹配操作。 非捕获性分组和零宽断言  非捕获性分组: 并不是所有分组都能创建反向引用,有一种特别的分组称之为非捕获性分组,它是不会创建反向引用。反之,就是捕获性分组。语法:(?:exp)   零宽断言(前瞻、后瞻) 正则 名称 描述 (?=exp) 正向前瞻 匹配exp前面的位置 (?!exp) 负向前瞻 匹配后面不是exp的位置 (?<=exp) 正向后瞻 匹配exp后面的位置 不支持 (?<!exp) 负向后瞻 匹配前面不是exp的位置 不支持 参考资料 js中贪婪和惰性匹配 javascript正则表达式-司徒正美]]></content>
<categories>
<category>JavaScript</category>
</categories>
<tags>
<tag>正则表达式</tag>
</tags>
</entry>
<entry>
<title><![CDATA[搭建Hexo+Github Pages博客教程]]></title>
<url>%2F2018%2F04%2F07%2F%E6%90%AD%E5%BB%BAhexo-Github-Page%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B%2F</url>
<content type="text"><![CDATA[前言  Hexo 是一个快速、简洁且高效的博客框架,支持Markdown。Hexo基于Node.js,有完善的中文文档、丰富的主题、方便集成第三方服务等优点,使得我放弃了jekyll转向Hexo。  GitHub Pages 是GitHub推出的免费的静态页面托管服务,重点是免费的,另外对于经常使用git和GitHub的程序员来说几乎无门槛。  简单介绍一下,具体大家可以百度,下面介绍如何一步一步搭建博客。 新建username.github.io仓库  这里跟在GitHub新建一个仓库是一样的,只是名字为username.github.io,其中username替换为自己的名字即可。这样的一个仓库Github会自动识别为GitHub Pages,而且每个GitHub用户最多能建立一个。 安装Hexo并初始化博客 前提是已经是安装了Node.js和Git 12345$ npm install hexo-cli -g$ hexo init <folder>$ cd <folder>$ npm install$ hexo server 这样本地就启动了hexo服务器。访问http://localhost:4000/就可以看到首页 部署到GitHub Pages 安装 hexo-deployer-git 1$ npm install hexo-deployer-git --save 修改站点配置文件_config.yml 12345678# URL## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'url: <GitHub Pages url>root: /# Deploymentdeploy:type: gitrepo: <repository url> 生成静态文件并部署 1$ hexo deploy --generate 上面的命令可以简写为 1$ hexo d -g 这样你本地生成的静态文件就推送到了github仓库了,此时访问https://username.github.io就可以看到你的博客了 绑定域名 获取github pages的ip地址 添加域名解析此步大家在自己购买的域名管理网站中配置即可。我购买的是阿里云域名,使用DNSPod提供的免费域名解析服务 配置github pages的custom 添加CNAME在本地博客的source目录下添加CNAME文件,内容为域名。 现在使用上面的命令重新生成静态文件并部署,就可以用域名访问你的博客啦 集成NexT主题大家参照官方文档配置即可 腾讯公益404页面参照官方文档,注意的是这个在本地只能通过http://localhost:4000/404.html来访问,只有部署到服务器上才有404的效果 集成评论系统  多说已经下线了,网易云跟帖、畅言使用不太方便,风格与NexT主题不符,Disqus是国外的经常被墙。这里我选择的是Valine配合LeanCloud使用  Valine 是一款基于Leancloud的快速、简洁且高效的无后端评论系统。而且NexT主题已经集成了Valine的配置,使用起来非常方便 配置LeanCloud请先登录或注册LeanCloud,进入控制台后点击左上角的创建新应用创建好了后进入应用,点击左下角设置 > 应用Key,就可以看到appid和appkey了 为了你的数据安全,请设置自己的安全域名 主题配置文件开启Valine 还可以设置头像和邮件提醒,请参考官方文档 集成数据统计我这里使用的是LeanCloud来实现文章阅读量统计功能,参见为NexT主题添加文章阅读量统计功能 集成内容分享服务我这里使用的是百度分享 编辑站点配置文件 12# sharebaidushare: true 编辑主题配置文件 123456# Baidu Share# Available value:# button | slide# Warning: Baidu Share does not support https.baidushare:type: button 集成搜索服务  我这里使用的是local search,参见NexT官方文档  我这里踩了一个坑:当我配置完后在博客首页里点击搜索就一直转圈,打开F12开发者工具,看到了正常请求search.xml,点击Preview发现了parse error。一直困扰了许久,后来在这里找到了答案,原来是我的有篇博客里有不可见的特殊字符,我用正则表达式全局搜索了\x08找到了那个地方,修改了之后搜索功能就好了 给Front-Matter增加notoc配置  如果开启了toc,默认所有的文章都会生成文章目录,想实现指定文章禁用目录的功能,比如关于页面,需要自己手动修改一下模板。  找到主题下的sidebar.swig文件,将 1{% set display_toc = is_post and theme.toc.enable or is_page and theme.toc.enable %} 这一句改为 1{% set display_toc = is_post and theme.toc.enable and !page.notoc or is_page and theme.toc.enable and !page.notoc %} 如果需要禁用目录,在对应的Front-Matter部分添加一个notoc: true就行了。 侧边栏头像旋转打开/themes/next/source/css/_common/components/sidebar/sidebar-author.styl,修改代码如下: 123456789101112131415.site-author-image { display: block; margin: 0 auto; padding: $site-author-image-padding; max-width: $site-author-image-width; height: $site-author-image-height; /* border: $site-author-image-border-width solid $site-author-image-border-color; */ border-radius: 50% transition: 1.4s all; &:hover { transform: rotate(360deg); }} 更改favicon更改站点配置文件 123456789101112131415# To get or check favicons visit: https://realfavicongenerator.net# Put your favicons into `hexo-site/source/` (recommend) or `hexo-site/themes/next/source/images/` directory.# Default NexT favicons placed in `hexo-site/themes/next/source/images/` directory.# And if you want to place your icons in `hexo-site/source/` root directory, you must remove `/images` prefix from pathes.# For example, you put your favicons into `hexo-site/source/images` directory.# Then need to rename & redefine they on any other names, otherwise icons from Next will rewrite your custom icons in Hexo.favicon: small: /favicon-16x16.png medium: /favicon-32x32.png apple_touch_icon: /apple-touch-icon.png safari_pinned_tab: /logo.svg android_manifest: /site.webmanifest ms_browserconfig: /browserconfig.xml 强烈推荐一个生成各种格式的favicon的在线工具:https://realfavicongenerator.net/ 参考资源 我的个人博客之旅:从jekyll到hexo GitHub Pages官网 Hexo官网 NexT官网 Valine —— 一款快速、简洁且高效的无后端评论系统]]></content>
<categories>
<category>教程</category>
</categories>
<tags>
<tag>hexo</tag>
<tag>Github Page</tag>
</tags>
</entry>
<entry>
<title><![CDATA[nvm使用总结]]></title>
<url>%2F2018%2F04%2F07%2Fnvm%2F</url>
<content type="text"><![CDATA[什么是nvm全称nodejs版本管理工具(Node Version Manager)。它能够让你在一台机器上安装和切换不同版本的node。 安装nvm通过cURL或者Wget使用install script安装 用法 nvm install <node版本号>: 安装node nvm use <node版本号>: 使用指定版本node nvm ls: 查看当前本机安装的所有node nvm uninstall <node版本号>: 卸载node nvm current: 查看当前使用的node版本 干货 安装新的node版本并迁移所安装的全局npm包,请使用命令nvm install <node新版本号> --reinstall-packages-from=<node旧版本号> 单独升级npm版本,直接使用npm install -g npm即可,跟nvm无关 参考资料 github官网]]></content>
<categories>
<category>nodejs</category>
</categories>
<tags>
<tag>nvm</tag>
</tags>
</entry>
<entry>
<title><![CDATA[git使用总结]]></title>
<url>%2F2018%2F04%2F07%2Fgit%E4%BD%BF%E7%94%A8%E6%80%BB%E7%BB%93%2F</url>
<content type="text"><![CDATA[一些概念 文件的三种状态: 已修改(modified) 已暂存(staged) 已提交(committed) 三个区域: 工作区:电脑中能看到的目录 暂存区:一般是一个文件,放在.git目录中 版本库:又叫本地仓库,一般在工作区的隐藏的.git目录 已跟踪与未跟踪 工作区的文件分为已跟踪文件与未跟踪文件,只有已跟踪文件才会进入到git的生命周期中,才具有上面所述的三种状态;未跟踪文件的操作与git无关 配置全局配置:git config --global,在/etc/gitconfig(所有用户)和~/.gitconfig(当前用户)文件中 当前工作区配置:git config,在.git/config文件中 常用命令:(以当前工作区配置为例) git config -l: 显示所有配置 git config <属性名> <属性值> git config --global alias.<自定义名称> <命令名称> 帮助git help <命令> 初始化 git init:初始化本地仓库 git clone <远程仓库地址>:从远程服务器上克隆 查看文件状态 git status:查看状态 跟踪文件 git add:跟踪修改或新增的文件;把已跟踪的文件放到暂存区 git add .: 跟踪所有修改和添加的文件,不包括删除 git add -u:跟踪所有已跟踪的文件,包括修改和删除,不包括添加 git add -A:跟踪所有,包括添加、修改和删除 忽略文件.gitignore文件: 忽略的文件列表,规则如下: #开头的行表示注释 支持标准的glob模式 !表示取反,忽略指定模式以外的文件或目录 注意:对于已经提交到版本库的文件,添加.gitignore规则并不能生效,需要先从版本库中删除文件(如何删除,参见删除文件一节),再添加。 提交 git commit git commit -m <注释> git commit -a:暂存修改并提交(不包括添加和删除) 比较 git diff:比较工作区与暂存区的差异,即已修改但未暂存的内容 git diff --cached:比较暂存区与上一次提交版本的差异 删除文件 git rm:删除文件,后面加上git commit提交就从版本库中删除了,仅仅手工删除文件再提交并不会从影响版本库 git rm -f:如果文件已经在暂存区中,想删除就得加上-f git rm --cached:仅从版本库中删除,工作区中不删除,同样加上git commit才生效 移动文件 git mv <原始文件名> <新文件名>:git的移动(重命名)文件相当于删除旧文件,添加新文件 查看提交纪录 git log [<file>]: 查看所有(或者指定文件)的提交记录 git log -<数字>: 查看最近几次(指定数字)提交纪录 git log --pretty=oneline|short|full|fuller|format(后跟指定格式): 日志指定格式输出 撤销 git commit --amend: 修改最后一次提交 git reset HEAD <file>: 取消已经暂存的文件 git checkout -- <file>: 取消对文件的修改(已修改,未暂存) git clean -n: git clean 操作用来删除工作目录中所有没有tracked过的文件。-n显示哪些文件会被删除,但并没有真正删除 git clean -f <path>: 删除当前目录(或者指定目录)下所有没有track过的文件,注意不会删除.gitignore文件里面指定的文件夹和文件 git clean -df: 删除当前目录下没有被track过的文件和文件夹 远程仓库 git remote: 查看当前的远程库 git remote -v: 查看当前的远程库,显示URL git remote add <远程仓库简称> <URL>: 添加远程仓库 git remote show <远程仓库简称>: 查看远程仓库信息 git remote rename <远程仓库旧简称> <远程仓库新简称>: 重命名远程仓库 git remote rm <远程仓库简称>: 取消对应远程仓库的关联 git clone操作会自动使用默认的 master 和 origin 名字 标签 git tag: 列出所有标签 git tag -l <glob>: 按照特定的模式搜索标签 git tag -a <标签名> -m <注释>: 含附注的标签 git show <标签名>: 查看标签信息 git tag <标签名>: 轻量级标签 git tag -a <标签名> <某次提交的校验和>: 后期加注轻量级标签 git push <远程仓库简称> <标签名>: 推送标签 git push <远程仓库简称> --tags: 推送所有标签 分支 git branch: 列出所有分支(前面有*号的是当前分支) git branch -a: 列出所有分支,包括隐藏的远程本地分支 git branch -v: 列出所有分支,以及每个分支最后一个提交信息 git branch --merged: 列出已经合并到当前分支的分支 git branch --no-merged: 列出尚未合并到当前分支的分支 git branch -d <分支名称>: 删除分支 git branch <分支名称>: 新建分支 git checkout <分支名称>: 切换分支 git checkout -b <分支名称>: 新建分支并切换到该分支 git merge <分支名称>: 合并分支到当前分支,默认将尽可能采用fast forword模式,将不显示分支信息,以后分支删掉的话提交历史树将看不到该分支,可以加--no-ff保存分支历史,方便以后查看 合并遇到冲突时,git status可以查看冲突的文件,打开文件可以看到冲突地方有标记,手工修改并去掉冲突标记,然后git add并git commit就可以合并了 git mergetool [<工具名>]: 使用特定的可视化合并工具(默认mac上使用opendiff) 远程分支 git branch -r: 查看远程分支 git branch -vv: 列出所有分支,以及每个分支关联的远程分支和最后一个提交信息 git branch --set-upstream <本地分支名> <远程仓库简称>/<远程分支名>: 指定远程关联分支 git fetch <远程仓库简称>: 从远程仓库抓取数据,包括所有分支,不合并到本地仓库 git fetch -p: 除了拉取分支,而且会在本地删除远程已经删除的分支 git pull <远程主机名> <远程分支名>:<本地分支名>: 取回远程主机某个分支的更新,再与本地的指定分支合并 git pull <远程主机名> <远程分支名>: 取回远程主机某个分支的更新,再与本地的当前分支合并 git pull <远程主机名>: 省略远程分支名,前提是已经建立了”追踪关系” git pull: 如果当前分支只有一个关联主机,则可以省略主机名 git pull --rebase: 采用rebase方式合并 git push <远程仓库简称> <本地分支名>:<远程分支名>: 推送本地分支 git push <远程仓库简称> <本地分支名>: 将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建 git push <远程仓库简称>: 推送当前分支到远程对应分支,前提是已经建立了”追踪关系” git push: 如果当前分支只有一个关联主机,则可以省略主机名 git push -u <远程仓库简称> <本地分支名>: -u指定默认主机,以后可以直接使用git push git checkout -b <分支名称> <远程仓库简称>/<远程分支名>: 建立本地分支,并跟踪对应远程分支 git checkout --track <远程仓库简称>/<远程分支名>: 同上 git push <远程仓库简称> :<分支名称>: 删除远程分支 git push -f: 如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用-f选项,结果导致在远程主机产生一个non-fast-forward的合并 git rebase <主分支> <特性分支>: 先取出特性分支,然后在主分支上重演 git rebase <主分支>: 先取出当前分支,然后在主分支上重演 储藏 git stash: 储藏修改过的被追踪的文件和放在暂存区的变更 git stash list: 查看现有的储藏 git stash apply: 恢复最新的储藏 git stash apply <储藏名称>: 恢复指定的储藏 git stash drop: 删除最新的储藏 git stash drop <储藏名称>: 删除指定的储藏 git stash pop <储藏名称>: 恢复指定的储藏并删除 版本回退 git reset --hard <HEAD^|HEAD^^|commit id>: 回退到特定版本 git reset <HEAD^|HEAD^^|commit id>: 回滚到特定版本。将这个版本之后的所有变更移动到“未暂存”的阶段,可用于改变提交顺序 git reset --soft <HEAD^|HEAD^^|commit id>: 回滚到特定版本,将这次提交之后所有的变更移动到暂存并准备提交阶段,可用于合并提交 导出 git archive --format zip -o site-$(git log --pretty=format:"%h" -1).zip HEAD: 导出最新版本 git archive v1.0 | gzip > xxxx.tgz: 导出tag 子模块 git submodule add <远程仓库地址> <本地路径>: 添加子模块,可以指定路径或者修改文件夹名称 git clone --recursive <远程仓库地址>: 克隆带有子模块的仓库 git submodule update --init --recursive: 已经git clone下来的工程,初始化所有submodule git submodule update --recursive: 更新submodule,有嵌套的submodule时加recursive参数 其它 git reflog: 查看每一次git命令 参考资料 Pro Git(中文版) Git教程-廖雪峰 日常使用 Git 的 19 个建议 Git深度使用经验总结]]></content>
<categories>
<category>开发工具</category>
</categories>
<tags>
<tag>git</tag>
</tags>
</entry>
</search>