Repository: mercyblitz/mercyblitz.github.io Branch: master Commit: a318a4fda94b Files: 72 Total size: 813.8 KB Directory structure: gitextract_z0v7hnz7/ ├── .gitignore ├── 404.html ├── Gruntfile.js ├── LICENSE ├── README.md ├── README.zh.md ├── _config.yml ├── _includes/ │ ├── about/ │ │ ├── en.md │ │ └── zh.md │ ├── featured-tags.html │ ├── footer.html │ ├── friends.html │ ├── head.html │ ├── intro-header.html │ ├── mathjax_support.html │ ├── nav.html │ ├── short-about.html │ └── sns-links.html ├── _layouts/ │ ├── default.html │ ├── keynote.html │ ├── page.html │ └── post.html ├── _posts/ │ ├── 2018-01-01-Dubbo 注解驱动.md │ ├── 2018-01-18-Dubbo 外部化配置.md │ ├── 2018-05-26-Spring-Boot Web 应用加速.md │ ├── 2018-06-28-Dubbo Cloud Native 实践与思考.md │ ├── 2018-07-25-Reactive Programming 一种技术 各自表述.md │ ├── 2019-03-05-《Java编程方法论 响应式之Rxjava篇》序.md │ ├── 2019-04-26-Dubbo Spring Cloud 重塑微服务治理.md │ ├── 2019-06-18-Service Mesh 时代,Dubbo 架构该怎么跟进?.md │ ├── 2019-09-05-2019 Java 趋势报告 InfoQ 采访稿(小马哥部分).md │ ├── 2020-05-11-Apache Dubbo 服务自省架构设计.md │ └── 2020-10-28-《深入理解 Spring Cloud 与实战》序.md ├── about.html ├── archive.html ├── books/ │ └── thinking-in-spring-boot/ │ ├── README.md │ ├── about.md │ ├── conventions.md │ ├── core/ │ │ └── preface.md │ ├── donate.md │ ├── overview.md │ ├── revision.md │ ├── samples.md │ ├── version.md │ └── videos.md ├── css/ │ ├── bootstrap.css │ └── hux-blog.css ├── feed.xml ├── index.html ├── js/ │ ├── archive.js │ ├── bootstrap.js │ ├── hux-blog.js │ ├── jquery.js │ ├── jquery.nav.js │ ├── jquery.tagcloud.js │ ├── snackbar.js │ └── sw-registration.js ├── less/ │ ├── highlight.less │ ├── hux-blog.less │ ├── mixins.less │ ├── side-catalog.less │ ├── sidebar.less │ ├── snackbar.less │ └── variables.less ├── my/ │ ├── books/ │ │ └── README.md │ ├── lessons/ │ │ └── README.md │ ├── open-sources/ │ │ └── README.md │ ├── presentations/ │ │ └── README.md │ └── training/ │ └── README.md ├── offline.html ├── package.json └── sw.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ _site .DS_Store ================================================ FILE: 404.html ================================================ --- layout: default title: 404 hide-in-nav: true description: "这里什么都没有 :(" header-img: "img/404-bg.jpg" permalink: /404.html --- {% include intro-header.html type="page" short='true' %} ================================================ FILE: Gruntfile.js ================================================ module.exports = function(grunt) { // Project configuration. grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { main: { src: 'js/<%= pkg.name %>.js', dest: 'js/<%= pkg.name %>.min.js' } }, less: { expanded: { options: { paths: ["css"] }, files: { "css/<%= pkg.name %>.css": "less/<%= pkg.name %>.less" } }, minified: { options: { paths: ["css"], cleancss: true }, files: { "css/<%= pkg.name %>.min.css": "less/<%= pkg.name %>.less" } } }, banner: '/*!\n' + ' * <%= pkg.title %> v<%= pkg.version %> (<%= pkg.homepage %>)\n' + ' * Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' + ' */\n', usebanner: { dist: { options: { position: 'top', banner: '<%= banner %>' }, files: { src: ['css/<%= pkg.name %>.css', 'css/<%= pkg.name %>.min.css', 'js/<%= pkg.name %>.min.js'] } } }, watch: { scripts: { files: ['js/<%= pkg.name %>.js'], tasks: ['uglify'], options: { spawn: false, }, }, less: { files: ['less/*.less'], tasks: ['less'], options: { spawn: false, } }, }, }); // Load the plugins. grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-less'); grunt.loadNpmTasks('grunt-banner'); grunt.loadNpmTasks('grunt-contrib-watch'); // Default task(s). grunt.registerTask('default', ['uglify', 'less', 'usebanner']); }; ================================================ FILE: LICENSE ================================================ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2015-2016 Huxpro https://github.com/Huxpro/ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ======================================================================= Hux Blog Subcomponents: The Hux Blog project contains subcomponents with separate copyright notices and license terms. Your use of the source code for the these subcomponents is subject to the terms and conditions of the following licenses. (MIT License) Clean Blog Jekyll Theme: https://github.com/BlackrockDigital/startbootstrap-clean-blog-jekyll/ https://github.com/BlackrockDigital/startbootstrap-clean-blog-jekyll/blob/master/LICENSE Copyright (c) 2013-2016 Blackrock Digital LLC. ================================================ FILE: README.md ================================================ # 小马哥的技术博客 [https://mercyblitz.github.io/](https://mercyblitz.github.io/) 欢迎来到小马哥的技术博客,这里将深入探讨相关技术,包括行业动态,架构设计,设计模式,框架使用,源码分析等。 **博客将不定期更新,请小伙伴们随时关注哦!** ## [我的文章](https://mercyblitz.github.io/archive/) 知识星球:https://t.zsxq.com/72rj2rr SF : https://segmentfault.com/u/mercyblitz 微信:**mercyblitz-1985** 微博:**mercyblitz** ## [我的课程](https://mercyblitz.github.io/lessons/) ## [《Spring Boot 编程思想》](https://mercyblitz.github.io/books/thinking-in-spring-boot/) ## [关于我](https://mercyblitz.github.io/about/) 小马哥,十余年Java EE 从业经验,架构师、微服务布道师、Dubbo 维护者。目前主要负责阿里巴巴集团微服务技术实施、架构衍进、基础设施构建等。重点关注云计算、微服务以及软件架构等领域。通过SUN Java(SCJP、SCWCD、SCBCD)以及Oracle OCA 等的认证。 ================================================ FILE: README.zh.md ================================================ # Hux blog 模板 ### [我的博客在这里 →](http://huxpro.github.io) ### 关于收到"Page Build Warning"的email 由于jekyll升级到3.0.x,对原来的pygments代码高亮不再支持,现只支持一种-rouge,所以你需要在 `_config.yml`文件中修改`highlighter: rouge`.另外还需要在`_config.yml`文件中加上`gems: [jekyll-paginate]`. 同时,你需要更新你的本地jekyll环境. 使用`jekyll server`的同学需要这样: 1. `gem update jekyll` # 更新jekyll 2. `gem update github-pages` #更新依赖的包 使用`bundle exec jekyll server`的同学在更新jekyll后,需要输入`bundle update`来更新依赖的包. 参考文档:[using jekyll with pages](https://help.github.com/articles/using-jekyll-with-pages/) & [Upgrading from 2.x to 3.x](http://jekyllrb.com/docs/upgrading/2-to-3/) ## 关于模板(beta) 我的博客仓库——`huxpro.github.io`,是经常修改的,而且还会有人乱提交代码,因此给大家做了一个稳定版的模板。大家可以直接fork模板——`huxblog-boilerplate`,要改的地方我都说明了。或者可以直接下载zip到本地自己去修改。 ``` $ git clone git@github.com:Huxpro/huxblog-boilerplate.git ``` **[在这里预览模板 →](http://huangxuan.me/huxblog-boilerplate/)** ## 各版本特性 ##### New Feature (V1.5.2) * 当你fork了我的仓库之后,还要删掉里面的关于我的文档是不是感到略烦躁呢?**Boilerplate** 模板将帮助你快速开始,方便合并与更新。 * `-apple-system`被添加到了字体规则里面了,这套字体格式能将iOS9默认的新字体**San Francisco**表现的非常漂亮。 * 解决了代码过长自动换行的bug,替换为横向滚动条。详情请见[issue#15](https://github.com/Huxpro/huxpro.github.io/issues/15) ###### 其他历史版本个人觉得没有必要了解,看看英文就行了。 ## 支持 * 你可以自由的fork。如果你能将主题作者和 github 的地址保留在你的页面底部,我将非常感谢你。 * 如果你喜欢我的这个博客模板,请在`huxpro.github.io`这个repository点个赞——右上角**star**一下。 ## 说明文档 * 开始 * [环境要求](#environment) * [开始](#get-started) * [写一篇博文](#write-posts) * 组件 * [侧边栏](#sidebar) * [迷你关于我](#mini-about-me) * [推荐标签](#featured-tags) * [好友链接](#friends) * [HTML5 演示文档布局](#keynote-layout) * 评论与 Google/Baidu Analytics * [评论](#comment) * [网站分析](#analytics) * 高级部分 * [自定义](#customization) * [标题底图](#header-image) * [搜索展示标题-头文件](#seo-title) #### Environment 如果你安装了jekyll,那你只需要在命令行输入`jekyll serve`就能在本地浏览器预览主题。你还可以输入`jekyll serve --watch`,这样可以边修改边自动运行修改后的文件。 经 [@BrucZhaoR](https://github.com/BruceZhaoR)的测试,好像两个命令都是可以的自动运行修改后的文件的,刷新后可以实时预览。官方文件是建议安装bundler,这样你在本地的效果就跟在github上面是一样的。详情请见这里:https://help.github.com/articles/using-jekyll-with-pages/#installing-jekyll #### Get Started 你可以通用修改 `_config.yml`文件来轻松的开始搭建自己的博客: ``` # Site settings title: Hux Blog # 你的博客网站标题 SEOTitle: Hux Blog # 在后面会详细谈到 description: "Cool Blog" # 随便说点,描述一下 # SNS settings github_username: huxpro # 你的github账号 weibo_username: huxpro # 你的微博账号,底部链接会自动更新的。 # Build settings # paginate: 10 # 一页你准备放几篇文章 ``` Jekyll官方网站还有很多的参数可以调,比如设置文章的链接形式...网址在这里:[Jekyll - Official Site](http://jekyllrb.com/) 中文版的在这里:[Jekyll中文](http://jekyllcn.com/). #### write-posts 要发表的文章一般以markdown的格式放在这里`_posts/`,你只要看看这篇模板里的文章你就立刻明白该如何设置。 yaml 头文件长这样: ``` --- layout: post title: "Hello 2015" subtitle: "Hello World, Hello Blog" date: 2015-01-29 12:00:00 author: "Hux" header-img: "img/post-bg-2015.jpg" tags: - Life --- ``` #### SideBar 看右边: ![](http://huangxuan.me/img/blog-sidebar.jpg) 设置是在 `_config.yml`文件里面的`Sidebar settings`那块。 ``` # Sidebar settings sidebar: true #添加侧边栏 sidebar-about-description: "简单的描述一下你自己" sidebar-avatar: /img/avatar-hux.jpg #你的大头贴,请使用绝对地址. ``` 侧边栏是响应式布局的,当屏幕尺寸小于992px的时候,侧边栏就会移动到底部。具体请见bootstrap栅格系统 #### Mini About Me Mini-About-Me 这个模块将在你的头像下面,展示你所有的社交账号。这个也是响应式布局,当屏幕变小时候,会将其移动到页面底部,只不过会稍微有点小变化,具体请看代码。 #### Featured Tags 看到这个网站 [Medium](http://medium.com) 的推荐标签非常的炫酷,所以我将他加了进来。 这个模块现在是独立的,可以呈现在所有页面,包括主页和发表的每一篇文章标题的头上。 ``` # Featured Tags featured-tags: true featured-condition-size: 1 # A tag will be featured if the size of it is more than this condition value ``` 唯一需要注意的是`featured-condition-size`: 如果一个标签的 SIZE,也就是使用该标签的文章数大于上面设定的条件值,这个标签就会在首页上被推荐。 内部有一个条件模板 `{% if tag[1].size > {{site.featured-condition-size}} %}` 是用来做筛选过滤的. #### Friends 好友链接部分。这会在全部页面显示。 设置是在 `_config.yml`文件里面的`Friends`那块,自己加吧。 ``` # Friends friends: [ { title: "Foo Blog", href: "http://foo.github.io/" }, { title: "Bar Blog", href: "http://bar.github.io" } ] ``` #### Keynote Layout HTML5幻灯片的排版: ![](http://huangxuan.me/img/blog-keynote.jpg) 这部分是用于占用html格式的幻灯片的,一般用到的是 Reveal.js, Impress.js, Slides, Prezi 等等.我认为一个现代化的博客怎么能少了放html幻灯的功能呢~ 其主要原理是添加一个 `iframe`,在里面加入外部链接。你可以直接写到头文件里面去,详情请见下面的yaml头文件的写法。 ``` --- layout: keynote iframe: "http://huangxuan.me/js-module-7day/" --- ``` iframe在不同的设备中,将会自动的调整大小。保留内边距是为了让手机用户可以向下滑动,以及添加更多的内容。 #### Comment 博客不仅支持多说[Duoshuo](http://duoshuo.com)评论系统,也支持[Disqus](http://disqus.com)评论系统。 `Disqus`优点是:国际比较流行,界面也很大气、简介,如果有人评论,还能实时通知,直接回复通知的邮件就行了;缺点是:评论必须要去注册一个disqus账号,分享一般只有Facebook和Twitter,另外在墙内加载速度略慢了一点。想要知道长啥样,可以看以前的版本点[这里](http://brucezhaor.github.io/about.html) 最下面就可以看到。 `多说` 优点是:支持国内各主流社交软件(微博,微信,豆瓣,QQ空间 ...)一键分享按钮功能,另外登陆比较方便,管理界面也是纯中文的,相对于disqus全英文的要容易操作一些;缺点是:就是界面丑了一点。 当然你是可以自定义界面的css的,详情请看多说开发者文档 http://dev.duoshuo.com/docs/5003ecd94cab3e7250000008 。 **首先**,你需要去注册一个账号,不管是disqus还是多说的。**不要直接使用我的啊!** **其次**,你只需要在下面的yaml头文件中设置一下就可以了。 ``` duoshuo_username: _你的用户名_ # 或者 disqus_username: _你的用户名_ ``` **最后**多说是支持分享的,如果你不想分享,请这样设置:`duoshuo_share: false`。你可以同时使用两个评论系统,不过个人感觉怪怪的。 #### Analytics 网站分析,现在支持百度统计和Google Analytics。需要去官方网站注册一下,然后将返回的code贴在下面: ``` # Baidu Analytics ba_track_id: 4cc1f2d8f3067386cc5cdb626a202900 # Google Analytics ga_track_id: 'UA-49627206-1' # 你用Google账号去注册一个就会给你一个这样的id ga_domain: huangxuan.me # 默认的是 auto, 这里我是自定义了的域名,你如果没有自己的域名,需要改成auto。 ``` #### Customization 如果你喜欢折腾,你可以去自定义我的这个模板的 code,[Grunt](gruntjs.com)已经为你准备好了。(感谢 Clean Blog) JavaScript 的压缩混淆、Less 的编译、Apache 2.0 许可通告的添加与 watch 代码改动,这些任务都揽括其中。简单的在命令行中输入 `grunt` 就可以执行默认任务来帮你构建文件了。如果你想搞一搞 JavaScript 或 Less 的话,`grunt watch` 会帮助到你的。 **如果你可以理解 `_include/` 和 `_layouts/`文件夹下的代码(这里是整个界面布局的地方),你就可以使用 Jekyll 使用的模版引擎 [Liquid](https://github.com/Shopify/liquid/wiki)的语法直接修改/添加代码,来进行更有创意的自定义界面啦!** #### Header Image 标题底图是可以自己选的,看看几篇示例post你就知道如何设置了。在 [issue #6 ](https://github.com/Huxpro/huxpro.github.io/issues/6) 中我被问到:怎么样才能让标题底图好看呢? 标题底图的选取完全是看个人的审美了,我也帮不了你。每一篇文章可以有不同的底图,你想放什么就放什么,最后宽度要够,大小不要太大,否则加载慢啊。 但是需要注意的是本模板的标题是**白色**的,所以背景色要设置为**灰色**或者**黑色**,总之深色系就对了。当然你还可以自定义修改字体颜色,总之,用github pages就是可以完全的个性定制自己的博客。 #### SEO Title 我的博客标题是 **“Hux Blog”** 但是我想要在搜索的时候显示 **“黄玄的博客 | Hux Blog”** ,这个就需要SEO Title来定义了。 其实这个SEO Title就是定义了标题这个里面的东西和多说分享的标题,你可以自行修改的。 ## 致谢 1. 这个模板是从这里[IronSummitMedia/startbootstrap-clean-blog-jekyll](https://github.com/IronSummitMedia/startbootstrap-clean-blog-jekyll) fork 的。 感谢这个作者 2. 感谢[@BrucZhaoR](https://github.com/BruceZhaoR)的中文翻译 3. 感谢 Jekyll、Github Pages 和 Bootstrap! ================================================ FILE: _config.yml ================================================ # Site settings title: Mercy Ma SEOTitle: 小马哥的技术博客 header-img: img/home-bg.jpg email: mercyblitz@gmail.com description: "关于程序、设计以及架构 | 小马哥,Javaer ,Software Engineer" keyword: "小马哥, mercyblitz, Mercy Ma, 小马哥的技术博客" url: "https://weibo.com/mercyblitz" # your host, for absolute URL baseurl: "" # for example, '/blog' if your blog hosted on 'host/blog' post: author: mercyblitz # Publish posts or collection documents with a future date. future: true # SNS settings RSS: true weibo_username: mercyblitz github_username: mercyblitz twitter_username: mercyblitz #facebook_username: mercyblitz #linkedin_username: firstname-lastname-idxxxx # Build settings # from 2016, 'pygments' is unsupported on GitHub Pages. Use 'rouge' for highlighting instead. highlighter: rouge permalink: pretty paginate: 10 exclude: ["less","node_modules","Gruntfile.js","package.json","README.md","README.zh.md"] anchorjs: true # if you want to customize anchor. check out line:181 of `post.html` # If you have timezone issue (e.g. #68) in China, uncomment to use this: #timezone: CN # Gems # from PR#40, to support local preview for Jekyll 3.0 # make sure you have this gem installed # `$ gem install jekyll-paginate` plugins: [jekyll-paginate] # Markdown settings # replace redcarpet to kramdown, # although redcarpet can auto highlight code, the lack of header-id make the catalog impossible, so I switch to kramdown # document: http://jekyllrb.com/docs/configuration/#kramdown markdown: kramdown kramdown: input: GFM # use Github Flavored Markdown !important syntax_highlighter_opts: span: line_numbers: false block: line_numbers: true start_line: 1 # Disqus settings disqus_username: mercyblitz # Netease settings netease_comment: false # Analytics settings # Baidu Analytics # ba_track_id: [your track id] # Google Analytics # ga_track_id: TODO # Format: UA-xxxxxx-xx # ga_domain: TODO # Sidebar settings sidebar: true # whether or not using Sidebar. sidebar-about-description: "大家好,我是小马哥" sidebar-avatar: /img/avatar-mecyblitz.jpg # use absolute URL, seeing it's used in both `/` and `/about/` # Featured Tags featured-tags: true # whether or not using Feature-Tags featured-condition-size: 1 # A tag will be featured if the size of it is more than this condition value # Progressive Web Apps chrome-tab-theme-color: "#000000" service-worker: true # MathJax rendering for layout:page (e.g. post preview) page-mathjax: false # Friends friends: [ {} ] ================================================ FILE: _includes/about/en.md ================================================ > Hard Code in Internet,Think Big Data too much Hi, I'm Mercy Ma, as a member in [Apache Dubbo](https://dubbo.apache.org/) PPMC, an achitecture of [Spring Cloud Alibaba](https://github.com/spring-cloud-incubator/spring-cloud-alibaba), and working on Open Source projects and Micro Services infrastructure, certificated SUN Java(SCJP、SCWCD、SCBCD), Oracle OCA and so on. ## Books - 《Thinking in Spring Boot》(Chinese) ## Online Courses - imooc - [Spring Boot 2.0深度实践之核心技术篇](https://coding.imooc.com/class/252.html) - Spring Boot 2.0深度实践之生态整合篇(即将上线...) - SegmentFault - [Java 微服务实践 - Spring Boot / Spring Cloud](https://segmentfault.com/ls/1650000011387052) ## Open Source Projects - Spring Cloud - [Spring Cloud Alibaba](https://github.com/spring-cloud-incubator/spring-cloud-alibaba) - Apache - [Apache Dubbo](https://github.com/apache/incubator-dubbo) - [Apache Dubbo Spring Boot](https://github.com/apache/incubator-dubbo-spring-boot-project) - Alibaba - [Alibaba Nacos](https://github.com/alibaba/nacos) - [Nacos Spring](https://github.com/nacos-group/nacos-spring-project) - [Nacos Spring Boot](https://github.com/nacos-group/nacos-spring-boot-project) - [Alibaba Sentinel](https://github.com/alibaba/Sentinel) - [Velocity Spring Boot Starter](https://github.com/alibaba/velocity-spring-boot-project) ## Talks - Spring Cloud Alibaba 致力于提供分布式应用开发的一站式解决方法 · [CNCC 2018](http://cncc2018.ccf.org.cn/cms/show.action?code=publish_ff80808162f165f90163070bf87105de&siteid=100000&channelid=0000000002) - Dubbo Cloud Native 之路的实践与思考 · [Dubbo开发者沙龙(上海站)- 2018 Aliware技术行](https://www.itdks.com/eventlist/detail/2307) - Dubbo 的过去、现在以及未来 · [2017 国际互联网大会(上海)](http://2017.thegiac.com/) - 微服务实践之路(二) · [2016 SegmentFault 开发者大(杭州站)](https://segmentfault.com/sfdc-2016/hz) - 微服务实践之路(一) · [2016 厦门互联网技术峰会](https://www.bagevent.com/event/227489) ================================================ FILE: _includes/about/zh.md ================================================ > 手淫互联网,意淫大数据 大家好,我是小马哥(mercyblitz),[Java 劝退师](https://www.douyu.com/mercyblitz),[Apache Dubbo](https://dubbo.apache.org/) PMC、[Spring Cloud Alibaba](https://github.com/spring-cloud-incubator/spring-cloud-alibaba) 项目架构师,通过 SUN Java(SCJP、SCWCD、SCBCD)以及 Oracle OCA 等的认证。目前为自由职业者,承接企业培训、架构设计和咨询等业务。 ### [书籍出版](/my/books) ### [线上课程](/my/lessons/) ### [开源项目](/my/open-sources/) ### [报告分享](/my/presentations/) ### [企业培训](/my/training/) - 电子邮箱:mercyblitz@gmail.com - 微信:mercyblitz-1985 - [微博](https://weibo.com/mercyblitz):[@mercyblitz](https://weibo.com/mercyblitz) - [Github](http://github.com/mercyblitz):[http://github.com/mercyblitz](http://github.com/mercyblitz) - [Twitter](https://twitter.com/mercyblitz):[@mercyblitz](https://twitter.com/mercyblitz) - 微信公众号:**次灵均阁** ![次灵均阁二维码](https://mercyblitz.github.io/books/thinking-in-spring-boot/assets/my_mp_qrcode.jpg) ## 社区交流 - 小马哥和小伙伴1号群(已满) - 小马哥和小伙伴2号群(已满) - 小马哥和小伙伴3号群 ![QQ 群](/img/qq_group_3.png) ================================================ FILE: _includes/featured-tags.html ================================================ {% comment %} @param {boolean} bottom - bottom will render
{% endcomment %} {% if site.featured-tags %}
{% if include.bottom %} {% endif %}
FEATURED TAGS
{% capture tags %} {% comment %} there must be no space between for and if otherwise this tricky sort won't work. url_encode/decode is for escaping otherwise extra will get generated but it will break sort... {% endcomment %} {% for tag in site.tags %}{% if tag[1].size > site.featured-condition-size %} {{ tag[0] }} {% endif %}{% endfor %} {% endcapture %} {{ tags | split:'' | sort | join:'' }}
{% endif %} ================================================ FILE: _includes/footer.html ================================================ {% if site.service-worker %} {% endif %} {% if page.title == 'Archive' %} {% endif %} {% if site.ga_track_id %} {% endif %} {% if site.ba_track_id %} {% endif %} {% if page.catalog %} {% endif %} {% if page.multilingual %} {% endif %} ================================================ FILE: _includes/friends.html ================================================ {% if site.friends %}
FRIENDS
{% endif %} ================================================ FILE: _includes/head.html ================================================ {% case page.layout %} {% when 'post' %} {% if page.date %} {% endif %} {% if page.author %} {% endif %} {% for tag in page.tags %} {% endfor %} {% else %} {% endcase %} {% if page.title %}{{ page.title }} - {{ site.SEOTitle }}{% else %}{{ site.SEOTitle }}{% endif %} ================================================ FILE: _includes/intro-header.html ================================================ {% comment %} @param {string} type - 'page' | 'post' | 'keynote' @param {boolean} short {% endcomment %} {% if include.type == 'post' %} {% if page.header-style == 'text' %}
{% else %}
{% endif %}
{% if page.header-img-credit %} {% endif %}
{% for tag in page.tags %} {{ tag }} {% endfor %}

{{ page.title }}

{% comment %} always create a h2 for keeping the margin {% endcomment %}

{{ page.subtitle }}

Posted by {% if page.author %}{{ page.author }}{% else %}{{ site.title }}{% endif %} on {{ page.date | date: "%B %-d, %Y" }}
{% endif %} {% if include.type == 'keynote' %}
{% for tag in page.tags %} {{ tag }} {% endfor %}

{{ page.title }}

{% comment %} always create a h2 for keeping the margin {% endcomment %}

{{ page.subtitle }}

Posted by {% if page.author %}{{ page.author }}{% else %}{{ site.title }}{% endif %} on {{ page.date | date: "%B %-d, %Y" }}
{% endif %} {% if include.type == 'page' %}
{% if include.short %}
{% else %}
{% endif %}

{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}

{{ page.description }}
{% endif %} ================================================ FILE: _includes/mathjax_support.html ================================================ ================================================ FILE: _includes/nav.html ================================================ {% if page.nav-style == "invert" or page.header-style == "text" %}