You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@incubator.apache.org by yu...@apache.org on 2016/12/24 06:56:26 UTC

[12/29] incubator-rocketmq-site git commit: Finish code dump.

Finish code dump.


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/commit/e1829bac
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/tree/e1829bac
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/diff/e1829bac

Branch: refs/heads/asf-site
Commit: e1829bac27fda3aad12d523f3fcb0a55a603c010
Parents: 
Author: yukon <yu...@apache.org>
Authored: Wed Dec 21 10:22:42 2016 +0800
Committer: yukon <yu...@apache.org>
Committed: Wed Dec 21 10:22:42 2016 +0800

----------------------------------------------------------------------
 .gitignore                                      |   14 +
 Gemfile                                         |    2 +
 LICENSE.txt                                     |   21 +
 README.md                                       |   27 +
 Rakefile                                        |   75 +
 _config.yml                                     |  309 +++
 _data/navigation.yml                            |   55 +
 _data/ui-text.yml                               |  416 ++++
 _docs/01-quick-start-guide.md                   |  130 ++
 _docs/02-motivation.md                          |   28 +
 _docs/03-core-concept.md                        |   95 +
 _docs/04-cli-admin-tool.md                      |   83 +
 _docs/05-cluster-deployment.md                  |   76 +
 _includes/analytics-providers/custom.html       |    3 +
 .../analytics-providers/google-universal.html   |    9 +
 _includes/analytics-providers/google.html       |   11 +
 _includes/analytics.html                        |   12 +
 _includes/archive-single.html                   |   38 +
 _includes/author-profile-custom-links.html      |    7 +
 _includes/author-profile.html                   |  241 ++
 _includes/base_path                             |    5 +
 _includes/breadcrumbs.html                      |   39 +
 _includes/browser-upgrade.html                  |    3 +
 _includes/category-list.html                    |   26 +
 _includes/comment.html                          |   22 +
 _includes/comments-providers/custom.html        |    3 +
 _includes/comments-providers/discourse.html     |   13 +
 _includes/comments-providers/disqus.html        |   22 +
 _includes/comments-providers/facebook.html      |    8 +
 _includes/comments-providers/google-plus.html   |    2 +
 _includes/comments-providers/scripts.html       |   18 +
 _includes/comments-providers/staticman.html     |   42 +
 _includes/comments.html                         |   80 +
 _includes/feature_row                           |   50 +
 _includes/figure                                |   12 +
 _includes/footer.html                           |   22 +
 _includes/footer/custom.html                    |    3 +
 _includes/gallery                               |   47 +
 _includes/group-by-array                        |   47 +
 _includes/head.html                             |   19 +
 _includes/head/custom.html                      |    5 +
 _includes/masthead.html                         |   21 +
 _includes/nav_list                              |   47 +
 _includes/page__hero.html                       |   53 +
 _includes/page__taxonomy.html                   |    7 +
 _includes/paginator.html                        |   68 +
 _includes/post_pagination.html                  |   14 +
 _includes/read-time.html                        |   15 +
 _includes/scripts.html                          |    4 +
 _includes/seo.html                              |  145 ++
 _includes/sidebar.html                          |   23 +
 _includes/social-share.html                     |   13 +
 _includes/tag-list.html                         |   26 +
 _includes/toc                                   |    7 +
 _layouts/archive-taxonomy.html                  |   15 +
 _layouts/archive.html                           |   24 +
 _layouts/compress.html                          |   10 +
 _layouts/default.html                           |   28 +
 _layouts/home.html                              |   11 +
 _layouts/single.html                            |   74 +
 _layouts/splash.html                            |   20 +
 _pages/about.md                                 |    8 +
 _pages/community.md                             |   45 +
 _pages/year-archive.html                        |   16 +
 _sass/_animations.scss                          |   21 +
 _sass/_archive.scss                             |  238 ++
 _sass/_base.scss                                |  315 +++
 _sass/_buttons.scss                             |  153 ++
 _sass/_footer.scss                              |   80 +
 _sass/_forms.scss                               |  391 ++++
 _sass/_masthead.scss                            |   53 +
 _sass/_mixins.scss                              |   53 +
 _sass/_navigation.scss                          |  544 +++++
 _sass/_notices.scss                             |   99 +
 _sass/_page.scss                                |  401 ++++
 _sass/_print.scss                               |   18 +
 _sass/_reset.scss                               |  187 ++
 _sass/_sidebar.scss                             |  231 ++
 _sass/_syntax.scss                              |  146 ++
 _sass/_tables.scss                              |   38 +
 _sass/_utilities.scss                           |  470 ++++
 _sass/_variables.scss                           |  128 ++
 _sass/vendor/breakpoint/_breakpoint.scss        |  114 +
 _sass/vendor/breakpoint/_context.scss           |   95 +
 _sass/vendor/breakpoint/_helpers.scss           |  151 ++
 _sass/vendor/breakpoint/_legacy-settings.scss   |   50 +
 _sass/vendor/breakpoint/_no-query.scss          |   15 +
 _sass/vendor/breakpoint/_parsers.scss           |  215 ++
 _sass/vendor/breakpoint/_respond-to.scss        |   82 +
 _sass/vendor/breakpoint/_settings.scss          |   71 +
 _sass/vendor/breakpoint/parsers/_double.scss    |   33 +
 _sass/vendor/breakpoint/parsers/_query.scss     |   82 +
 .../vendor/breakpoint/parsers/_resolution.scss  |   31 +
 _sass/vendor/breakpoint/parsers/_single.scss    |   26 +
 _sass/vendor/breakpoint/parsers/_triple.scss    |   36 +
 .../parsers/double/_default-pair.scss           |   21 +
 .../breakpoint/parsers/double/_default.scss     |   22 +
 .../parsers/double/_double-string.scss          |   22 +
 .../parsers/resolution/_resolution.scss         |   60 +
 .../breakpoint/parsers/single/_default.scss     |   13 +
 .../breakpoint/parsers/triple/_default.scss     |   18 +
 _sass/vendor/font-awesome/_animated.scss        |   34 +
 _sass/vendor/font-awesome/_bordered-pulled.scss |   25 +
 _sass/vendor/font-awesome/_core.scss            |   12 +
 _sass/vendor/font-awesome/_fixed-width.scss     |    6 +
 _sass/vendor/font-awesome/_font-awesome.scss    |   18 +
 _sass/vendor/font-awesome/_icons.scss           |  733 +++++++
 _sass/vendor/font-awesome/_larger.scss          |   13 +
 _sass/vendor/font-awesome/_list.scss            |   19 +
 _sass/vendor/font-awesome/_mixins.scss          |   60 +
 _sass/vendor/font-awesome/_path.scss            |   15 +
 _sass/vendor/font-awesome/_rotated-flipped.scss |   20 +
 _sass/vendor/font-awesome/_screen-reader.scss   |    5 +
 _sass/vendor/font-awesome/_stacked.scss         |   20 +
 _sass/vendor/font-awesome/_variables.scss       |  744 +++++++
 .../vendor/magnific-popup/_magnific-popup.scss  |  649 ++++++
 _sass/vendor/magnific-popup/_settings.scss      |   46 +
 _sass/vendor/susy/_su.scss                      |    4 +
 _sass/vendor/susy/_susy.scss                    |    4 +
 _sass/vendor/susy/_susyone.scss                 |    4 +
 _sass/vendor/susy/susy/_su.scss                 |    7 +
 _sass/vendor/susy/susy/language/_susy.scss      |   24 +
 _sass/vendor/susy/susy/language/_susyone.scss   |   13 +
 .../susy/susy/language/susy/_background.scss    |  385 ++++
 .../vendor/susy/susy/language/susy/_bleed.scss  |  200 ++
 .../susy/susy/language/susy/_box-sizing.scss    |   47 +
 .../susy/language/susy/_breakpoint-plugin.scss  |  185 ++
 .../susy/susy/language/susy/_container.scss     |   81 +
 .../susy/susy/language/susy/_context.scss       |   36 +
 .../susy/susy/language/susy/_gallery.scss       |   94 +
 .../vendor/susy/susy/language/susy/_grids.scss  |   64 +
 .../susy/susy/language/susy/_gutters.scss       |  154 ++
 .../susy/susy/language/susy/_isolate.scss       |   77 +
 .../susy/susy/language/susy/_margins.scss       |   94 +
 .../susy/susy/language/susy/_padding.scss       |   74 +
 _sass/vendor/susy/susy/language/susy/_rows.scss |  138 ++
 .../susy/susy/language/susy/_settings.scss      |  216 ++
 _sass/vendor/susy/susy/language/susy/_span.scss |  163 ++
 .../susy/susy/language/susy/_validation.scss    |   16 +
 .../susy/susy/language/susyone/_background.scss |   18 +
 .../susy/susy/language/susyone/_functions.scss  |  377 ++++
 .../susy/susy/language/susyone/_grid.scss       |  312 +++
 .../susy/susy/language/susyone/_isolation.scss  |   51 +
 .../susy/susy/language/susyone/_margin.scss     |   93 +
 .../susy/susy/language/susyone/_media.scss      |  105 +
 .../susy/susy/language/susyone/_padding.scss    |   92 +
 .../susy/susy/language/susyone/_settings.scss   |   60 +
 _sass/vendor/susy/susy/output/_float.scss       |    9 +
 _sass/vendor/susy/susy/output/_shared.scss      |   15 +
 _sass/vendor/susy/susy/output/_support.scss     |    9 +
 .../susy/susy/output/float/_container.scss      |   16 +
 _sass/vendor/susy/susy/output/float/_end.scss   |   40 +
 .../vendor/susy/susy/output/float/_isolate.scss |   22 +
 _sass/vendor/susy/susy/output/float/_span.scss  |   35 +
 .../susy/susy/output/shared/_background.scss    |   26 +
 .../susy/susy/output/shared/_container.scss     |   21 +
 .../susy/susy/output/shared/_direction.scss     |   42 +
 .../susy/susy/output/shared/_inspect.scss       |   25 +
 .../susy/susy/output/shared/_margins.scss       |   23 +
 .../vendor/susy/susy/output/shared/_output.scss |   14 +
 .../susy/susy/output/shared/_padding.scss       |   23 +
 .../susy/susy/output/support/_background.scss   |   58 +
 .../susy/susy/output/support/_box-sizing.scss   |   19 +
 .../susy/susy/output/support/_clearfix.scss     |   18 +
 .../susy/susy/output/support/_prefix.scss       |   19 +
 _sass/vendor/susy/susy/output/support/_rem.scss |   22 +
 .../susy/susy/output/support/_support.scss      |   85 +
 _sass/vendor/susy/susy/su/_grid.scss            |  103 +
 _sass/vendor/susy/susy/su/_settings.scss        |   73 +
 _sass/vendor/susy/susy/su/_utilities.scss       |  111 +
 _sass/vendor/susy/susy/su/_validation.scss      |   57 +
 alibaba-rocketmq-jekyll.gemspec                 |   28 +
 assets/css/main.scss                            |   79 +
 assets/fonts/FontAwesome.otf                    |  Bin 0 -> 124988 bytes
 assets/fonts/fontawesome-webfont.eot            |  Bin 0 -> 76518 bytes
 assets/fonts/fontawesome-webfont.svg            |  685 ++++++
 assets/fonts/fontawesome-webfont.ttf            |  Bin 0 -> 152796 bytes
 assets/fonts/fontawesome-webfont.woff           |  Bin 0 -> 90412 bytes
 assets/fonts/fontawesome-webfont.woff2          |  Bin 0 -> 71896 bytes
 assets/images/community/2dfire-logo.jpg         |  Bin 0 -> 12185 bytes
 assets/images/community/alibaba-logo.png        |  Bin 0 -> 4627 bytes
 assets/images/community/ant-logo.png            |  Bin 0 -> 16801 bytes
 assets/images/community/china-telecom-logo.png  |  Bin 0 -> 9254 bytes
 assets/images/community/decent-logo.png         |  Bin 0 -> 5358 bytes
 assets/images/community/egov-logo.png           |  Bin 0 -> 70043 bytes
 assets/images/community/media-logo.jpg          |  Bin 0 -> 6222 bytes
 assets/images/community/meizu-logo.png          |  Bin 0 -> 1900 bytes
 assets/images/community/shihai-logo.jpg         |  Bin 0 -> 58158 bytes
 assets/images/community/yeahmobi-logo.png       |  Bin 0 -> 6553 bytes
 assets/images/community/yunpan-logo.png         |  Bin 0 -> 2819 bytes
 assets/images/rmq-customizable-feature.png      |  Bin 0 -> 12547 bytes
 assets/images/rmq-free-feature.png              |  Bin 0 -> 16852 bytes
 assets/images/rmq-home-page.jpg                 |  Bin 0 -> 31487 bytes
 assets/images/rmq-logo.png                      |  Bin 0 -> 6255 bytes
 assets/images/rmq-model.png                     |  Bin 0 -> 90694 bytes
 assets/images/rmq-responsive-feature.png        |  Bin 0 -> 10565 bytes
 assets/js/_main.js                              |  100 +
 assets/js/main.min.js                           |    5 +
 assets/js/plugins/jquery.fitvids.js             |   82 +
 assets/js/plugins/jquery.greedy-navigation.js   |   72 +
 assets/js/plugins/jquery.magnific-popup.js      | 2049 ++++++++++++++++++
 assets/js/plugins/jquery.smooth-scroll.min.js   |    8 +
 assets/js/plugins/stickyfill.min.js             |    8 +
 assets/js/vendor/jquery/jquery-1.12.4.min.js    |    5 +
 favicon.ico                                     |  Bin 0 -> 7987 bytes
 home.md                                         |   28 +
 package.json                                    |   33 +
 207 files changed, 17231 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5c4866d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+*.gem
+*.sublime-project
+*.sublime-workspace
+.bundle
+.DS_Store
+.jekyll-metadata
+.sass-cache
+_asset_bundler_cache
+_site
+codekit-config.json
+example/_site
+Gemfile.lock
+node_modules
+npm-debug.log*
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/Gemfile
----------------------------------------------------------------------
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..1291498
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,2 @@
+source "https://rubygems.org"
+gemspec
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/LICENSE.txt
----------------------------------------------------------------------
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..23a6cd1
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Michael Rose
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..682cb39
--- /dev/null
+++ b/README.md
@@ -0,0 +1,27 @@
+This website is based on Jekyll and a Jekyll theme named Minimal Mistakes.
+
+## Prerequisite
+1. Ruby
+2. Gem
+
+## Install & Run
+1. gem install jekyll bundler
+2. git clone git@gitlab.alibaba-inc.com:middleware-incubator/rocketmq-sites.git
+3. cd rocketmq-sites
+4. bundle install
+5. bundle exec jekyll serve
+
+## Questions
+
+### How to post articles to **Documentation**?
+New a .md file in rocketmq-sites/_docs/, Jekyll will finish the rest of the work.
+
+Please refer to **01-quick-start-guide.md** for more details.
+
+### How to post articles to **Blog**?
+New a .md file in rocketmq-sites/_posts/, Jekyll will finish the rest of the work.
+
+Please refer to **2013-01-05-markup-title-with-markup.md** for more details.
+
+### How to modify the navigation?
+Please refer to **_data/navigation.yml** for more details.

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/Rakefile
----------------------------------------------------------------------
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000..e50d89f
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,75 @@
+require "bundler/gem_tasks"
+require "jekyll"
+require "listen"
+
+def listen_ignore_paths(base, options)
+  [
+    /_config\.ya?ml/,
+    /_site/,
+    /\.jekyll-metadata/
+  ]
+end
+
+def listen_handler(base, options)
+  site = Jekyll::Site.new(options)
+  Jekyll::Command.process_site(site)
+  proc do |modified, added, removed|
+    t = Time.now
+    c = modified + added + removed
+    n = c.length
+    relative_paths = c.map{ |p| Pathname.new(p).relative_path_from(base).to_s }
+    print Jekyll.logger.message("Regenerating:", "#{relative_paths.join(", ")} changed... ")
+    begin
+      Jekyll::Command.process_site(site)
+      puts "regenerated in #{Time.now - t} seconds."
+    rescue => e
+      puts "error:"
+      Jekyll.logger.warn "Error:", e.message
+      Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
+    end
+  end
+end
+
+task :preview do
+  base = Pathname.new('.').expand_path
+  options = {
+    "source"        => base.join('test').to_s,
+    "destination"   => base.join('test/_site').to_s,
+    "force_polling" => false,
+    "serving"       => true,
+    "theme"         => "minimal-mistakes-jekyll"
+  }
+
+  options = Jekyll.configuration(options)
+
+  ENV["LISTEN_GEM_DEBUGGING"] = "1"
+  listener = Listen.to(
+    base.join("_includes"),
+    base.join("_layouts"),
+    base.join("_sass"),
+    base.join("assets"),
+    options["source"],
+    :ignore => listen_ignore_paths(base, options),
+    :force_polling => options['force_polling'],
+    &(listen_handler(base, options))
+  )
+
+  begin
+    listener.start
+    Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options["source"]}'"
+
+    unless options['serving']
+      trap("INT") do
+        listener.stop
+        puts "     Halting auto-regeneration."
+        exit 0
+      end
+
+      loop { sleep 1000 }
+    end
+  rescue ThreadError
+    # You pressed Ctrl-C, oh my!
+  end
+
+  Jekyll::Commands::Serve.process(options)
+end

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_config.yml
----------------------------------------------------------------------
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 0000000..323ab7f
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1,309 @@
+# Welcome to Jekyll!
+#
+# This config file is meant for settings that affect your entire site, values
+# which you are expected to set up once and rarely need to edit after that.
+# For technical reasons, this file is *NOT* reloaded automatically when you use
+# `jekyll serve`. If you change this file, please restart the server process.
+
+# Site Settings
+locale                   : "en"
+title                    : "Apache RocketMQ"
+title_separator          : "-"
+name                     : "Apache RocketMQ"
+description              : "The homepage of RocketMQ."
+url                      : # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
+baseurl                  : # the subpath of your site, e.g. "/blog"
+repository               : "alibaba/RocketMQ/"
+teaser                   : # path of fallback teaser image, e.g. "/assets/images/500x300.png"
+# breadcrumbs            : false # true, false (default)
+words_per_minute         : 200
+comments:
+  provider               : # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "custom"
+  disqus:
+    shortname            : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
+  discourse:
+    server               : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
+  facebook:
+    # https://developers.facebook.com/docs/plugins/comments
+    appid                :
+    num_posts            : # 5 (default)
+    colorscheme          : # "light" (default), "dark"
+staticman:
+  allowedFields          : ['name', 'email', 'url', 'message']
+  branch                 : "master"
+  commitMessage          : "New comment."
+  filename               : comment-{@timestamp}
+  format                 : "yml"
+  moderation             : true
+  path                   : "docs/_data/comments/{options.slug}" # "/_data/comments/{options.slug}" (default)
+  requiredFields         : ['name', 'email', 'message']
+  transforms:
+    email                : "md5"
+  generatedFields:
+    date:
+      type               : "date"
+      options:
+        format           : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds"
+atom_feed:
+  path                   : # blank (default) uses feed.xml
+
+# SEO Related
+google_site_verification :
+bing_site_verification   :
+alexa_site_verification  :
+yandex_site_verification :
+
+# Social Sharing
+twitter:
+  username               : "ApacheRocketMQ"
+facebook:
+  username               :
+  app_id                 :
+  publisher              :
+og_image                 : # Open Graph/Twitter default site image
+# For specifying social profiles
+# - https://developers.google.com/structured-data/customize/social-profiles
+social:
+  type                   : # Person or Organization (defaults to Person)
+  name                   : # If the user or organization name differs from the site's name
+  links: # An array of links to social media profiles
+
+# Analytics
+analytics:
+  provider               : false # false (default), "google", "google-universal", "custom"
+  google:
+    tracking_id          :
+
+
+# Site Author
+author:
+  name             : *name
+  avatar           : "/assets/images/rmq-logo.png"
+  bio              : "A fast, low latency, reliable, scalable, distributed MOM."
+  location         : "Hangzhou, China"
+  email            : "dev@rocketmq.incubator.apache.org"
+  uri              : "http://incubator.staging.apache.org/projects/rocketmq.html"
+  bitbucket        :
+  codepen          :
+  dribbble         :
+  flickr           :
+  facebook         :
+  foursquare       :
+  github           : "alibaba/RocketMQ/"
+  google_plus      :
+  keybase          :
+  instagram        :
+  lastfm           :
+  linkedin         :
+  pinterest        :
+  soundcloud       :
+  stackoverflow    : "http://stackoverflow.com/questions/tagged/rocketmq"
+  steam            :
+  tumblr           :
+  twitter          : "ApacheRocketMQ"
+  vine             :
+  weibo            :
+  xing             :
+  youtube          : 
+  quora            : "topic/RocketMQ"
+
+
+# Reading Files
+include:
+  - .htaccess
+  - _pages
+  - _docs
+exclude:
+  - "*.sublime-project"
+  - "*.sublime-workspace"
+  - vendor
+  - .asset-cache
+  - .bundle
+  - .jekyll-assets-cache
+  - .sass-cache
+  - assets/js/plugins
+  - assets/js/_main.js
+  - assets/js/vendor
+  - Capfile
+  - CHANGELOG
+  - config
+  - Gemfile
+  - Gruntfile.js
+  - gulpfile.js
+  - LICENSE
+  - log
+  - node_modules
+  - package.json
+  - Rakefile
+  - README
+  - tmp
+  - /test # ignore Minimal Mistakes /test
+  - /docs
+keep_files:
+  - .git
+  - .svn
+encoding: "utf-8"
+markdown_ext: "markdown,mkdown,mkdn,mkd,md"
+
+
+# Conversion
+markdown: kramdown
+highlighter: rouge
+lsi: false
+excerpt_separator: "\n\n"
+incremental: false
+
+
+# Markdown Processing
+kramdown:
+  input: GFM
+  hard_wrap: false
+  auto_ids: true
+  footnote_nr: 1
+  entity_output: as_char
+  toc_levels: 1..6
+  smart_quotes: lsquo,rsquo,ldquo,rdquo
+  enable_coderay: false
+
+
+# Sass/SCSS
+sass:
+  sass_dir: _sass
+  style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
+
+
+# Outputting
+permalink: /:categories/:title/
+# paginate: 5 # amount of posts to show
+# paginate_path: /page:num/
+timezone: # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
+
+
+# Plugins
+gems:
+  - jekyll-paginate
+  - jekyll-sitemap
+  - jekyll-gist
+  - jekyll-feed
+  - jemoji
+
+# mimic GitHub Pages with --safe
+whitelist:
+  - jekyll-paginate
+  - jekyll-sitemap
+  - jekyll-gist
+  - jekyll-feed
+  - jemoji
+
+
+# Archives
+#  Type
+#  - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default)
+#  - Jekyll Archives plugin archive pages ~> type: jekyll-archives
+#  Path (examples)
+#  - Archive page should exist at path when using Liquid method or you can
+#    expect broken links (especially with breadcrumbs enabled)
+#  - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
+#  - <base_path/categories/my-awesome-category/index.html ~> path: /categories/
+#  - <base_path/my-awesome-category/index.html ~> path: /
+category_archive:
+  type: liquid
+  path: /categories/
+tag_archive:
+  type: liquid
+  path: /tags/
+# https://github.com/jekyll/jekyll-archives
+# jekyll-archives:
+#   enabled:
+#     - categories
+#     - tags
+#   layouts:
+#     category: archive-taxonomy
+#     tag: archive-taxonomy
+#   permalinks:
+#     category: /categories/:name/
+#     tag: /tags/:name/
+
+
+# HTML Compression
+# - http://jch.penibelst.de/
+compress_html:
+  clippings: all
+  ignore:
+    envs: development
+
+# Collections
+collections:
+  docs:
+    output: true
+    permalink: /:collection/:path/
+  recipes:
+    output: true
+    permalink: /:collection/:path/
+  pets:
+    output: true
+    permalink: /:collection/:path/
+  portfolio:
+    output: true
+    permalink: /:collection/:path/
+
+
+# Defaults
+defaults:
+  # _posts
+  - scope:
+      path: ""
+      type: posts
+    values:
+      layout: single
+      author_profile: true
+      read_time: true
+      comments: true
+      share: true
+      related: true
+  # _pages
+  - scope:
+      path: ""
+      type: pages
+    values:
+      layout: single
+      author_profile: true
+  # _docs
+  - scope:
+      path: ""
+      type: docs
+    values:
+      layout: single
+      read_time: false
+      author_profile: false
+      share: false
+      comments: false
+      sidebar:
+        nav: "docs"
+  # _recipes
+  - scope:
+      path: ""
+      type: recipes
+    values:
+      layout: single
+      author_profile: true
+      share: true
+      comments: true
+  # _pets
+  - scope:
+      path: ""
+      type: pets
+    values:
+      layout: single
+      author_profile: true
+      share: true
+      comment: true
+  # _portfolio
+  - scope:
+      path: ""
+      type: portfolio
+    values:
+      layout: single
+      author_profile: false
+      share: true
+

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_data/navigation.yml
----------------------------------------------------------------------
diff --git a/_data/navigation.yml b/_data/navigation.yml
new file mode 100644
index 0000000..8cfc688
--- /dev/null
+++ b/_data/navigation.yml
@@ -0,0 +1,55 @@
+# main links
+main:
+  - title: "Documentation"
+    url: /docs/quick-start/
+  - title: "Blog"
+    url: /year-archive/
+  - title: "Community"
+    url: /community/
+  - title: "About"
+    url: /about/
+  # - title: "Sample Collections"
+  #   url: /collection-archive/
+  # - title: "Sitemap"
+  #   url: /sitemap/
+
+# documentation links
+docs:
+  - title: User Guide
+    children:
+      - title: "Quick Start"
+        url: /docs/quick-start/
+      - title: "Motivation"
+        url: /docs/motivation/
+      - title: "Core Concept"
+        url: /docs/core-concept/
+      - title: "CLI Admin Tool"
+        url: /docs/cli-admin-tool/
+      - title: "Cluster Configuration & Deployment"
+        url: /docs/cluster-deployment/
+  - title: Developer Guide
+    children:
+      - title: "Architecture & Design"
+        url: /docs/motivation/
+      - title: "Communication Protocol"
+        url: /docs/motivation/
+      - title: "Persistence"
+        url: /docs/core-concept/
+      - title: "Replication"
+        url: /docs/cli-admin-tool/
+      - title: "Service Discovery & Load Balance"
+        url: /docs/cluster-deployment/
+      - title: "Message Filter"
+        url: /docs/cluster-deployment/
+  - title: Best Practice
+    children:
+      - title: "Broker"
+        url: /docs/motivation/
+      - title: "Producer"
+        url: /docs/motivation/
+      - title: "Consumer"
+        url: /docs/core-concept/
+      - title: "Virtualization"
+        url: /docs/cli-admin-tool/
+      - title: "Frequently Asked Questions"
+        url: /docs/cluster-deployment/
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_data/ui-text.yml
----------------------------------------------------------------------
diff --git a/_data/ui-text.yml b/_data/ui-text.yml
new file mode 100644
index 0000000..582a48d
--- /dev/null
+++ b/_data/ui-text.yml
@@ -0,0 +1,416 @@
+# User interface text and labels
+
+# English (default)
+# -----------------
+en: &DEFAULT_EN
+  page                       : "Page"
+  pagination_previous        : "Previous"
+  pagination_next            : "Next"
+  breadcrumb_home_label      : "Home"
+  breadcrumb_separator       : "/"
+  menu_label                 : "Toggle Menu"
+  toc_label                  : "On This Page"
+  ext_link_label             : "Direct Link"
+  less_than                  : "less than"
+  minute_read                : "minute read"
+  share_on_label             : "Share on"
+  meta_label                 :
+  tags_label                 : "Tags:"
+  categories_label           : "Categories:"
+  date_label                 : "Updated:"
+  comments_label             : "Leave a Comment"
+  comments_title             : "Comments"
+  more_label                 : "Learn More"
+  related_label              : "You May Also Enjoy"
+  follow_label               : "Follow:"
+  feed_label                 : "Feed"
+  powered_by                 : "Powered by"
+  website_label              : "Website"
+  email_label                : "Email"
+  recent_posts               : "Recent Posts"
+  undefined_wpm              : "Undefined parameter words_per_minute at _config.yml"
+  comment_form_info          : "Your email address will not be published. Required fields are marked"
+  comment_form_comment_label : "Comment"
+  comment_form_md_info       : "Markdown is supported."
+  comment_form_name_label    : "Name"
+  comment_form_email_label   : "Email address"
+  comment_form_website_label : "Website (optional)"
+  comment_btn_submit         : "Submit Comment"
+  comment_btn_submitted      : "Submitted"
+  comment_success_msg        : "Thanks for your comment! It will show on the site once it has been approved."
+  comment_error_msg          : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again."
+  loading_label              : "Loading..."
+en-US:
+  <<: *DEFAULT_EN
+en-CA:
+  <<: *DEFAULT_EN
+en-GB:
+  <<: *DEFAULT_EN
+en-AU:
+  <<: *DEFAULT_EN
+
+# Spanish
+# --------------
+es: &DEFAULT_ES
+  page                       : "P�gina"
+  pagination_previous        : "Anterior"
+  pagination_next            : "Siguiente"
+  breadcrumb_home_label      : "Inicio"
+  breadcrumb_separator       : "/"
+  menu_label                 :
+  toc_label                  : "Contenidos"
+  ext_link_label             : "Enlace"
+  less_than                  : "menos de"
+  minute_read                : "minuto de lectura"
+  share_on_label             : "Compartir"
+  meta_label                 :
+  tags_label                 : "Etiquetas:"
+  categories_label           : "Categor�as:"
+  date_label                 : "Actualizado:"
+  comments_label             : "Comentar"
+  comments_title             :
+  more_label                 : "Ver m�s"
+  related_label              : "Podr�as ver tambi�n"
+  follow_label               : "Seguir:"
+  feed_label                 : "Feed"
+  powered_by                 : "Powered by"
+  website_label              : "Sitio web"
+  email_label                : "Email"
+  recent_posts               : "Entradas recientes"
+  undefined_wpm              : "Parametro words_per_minute (Palabras por minuto) no definido en _config.yml"
+  comment_form_info          :
+  comment_form_comment_label :
+  comment_form_md_info       :
+  comment_form_name_label    :
+  comment_form_email_label   :
+  comment_form_website_label :
+  comment_btn_submit         :
+  comment_btn_submitted      :
+  comment_success_msg        :
+  comment_error_msg          :
+  loading_label              :
+es-ES:
+  <<: *DEFAULT_ES
+es-CO:
+  <<: *DEFAULT_ES
+
+# French
+# -----------------
+fr: &DEFAULT_FR
+  page                       : "Page"
+  pagination_previous        : "Pr�c�dent"
+  pagination_next            : "Suivant"
+  breadcrumb_home_label      : "Accueil"
+  breadcrumb_separator       : "/"
+  menu_label                 :
+  toc_label                  : "Sur cette page"
+  ext_link_label             : "Lien direct"
+  less_than                  : "moins de"
+  minute_read                : "minute de lecture"
+  share_on_label             : "Partager sur"
+  meta_label                 :
+  tags_label                 : "Tags :"
+  categories_label           : "Cat�gories :"
+  date_label                 : "Mis � jour :"
+  comments_label             : "Laisser un commentaire"
+  comments_title             :
+  more_label                 : "Lire plus"
+  related_label              : "Vous pourriez aimer aussi"
+  follow_label               : "Contact"
+  feed_label                 : "Flux"
+  powered_by                 : "Propuls� par"
+  website_label              : "Site"
+  email_label                : "Email"
+  recent_posts               : "Posts r�cents"
+  undefined_wpm              : "Le param�tre words_per_minute n'est pas d�fini dans _config.yml"
+  comments_title             : "Commentaires"
+  comment_form_info          : "Votre adresse email ne sera pas visible. Les champs obligatoires sont marqu�s"
+  comment_form_comment_label : "Commentaire"
+  comment_form_md_info       : "Markdown est support�."
+  comment_form_name_label    : "Nom"
+  comment_form_email_label   : "Adresse mail"
+  comment_form_website_label : "Site web (optionnel)"
+  comment_btn_submit         : "Envoyer"
+  comment_btn_submitted      : "Envoy�"
+  comment_success_msg        : "Merci pour votre commentaire, il sera visible sur le site une fois approuv�."
+  comment_error_msg          : "D�sol�, une erreur est survenue lors de la soumission. V�rifiez que les champs obligatoires ont �t� remplis et r�essayez."
+  loading_label              : "Chargement..."
+fr-FR:
+  <<: *DEFAULT_FR
+fr-BE:
+  <<: *DEFAULT_FR
+fr-CH:
+  <<: *DEFAULT_FR
+
+# Turkish
+# -----------------
+tr: &DEFAULT_TR
+  page                       : "Sayfa"
+  pagination_previous        : "�nceki"
+  pagination_next            : "Sonraki"
+  breadcrumb_home_label      : "Ana Sayfa"
+  breadcrumb_separator       : "/"
+  menu_label                 :
+  toc_label                  : "\u0130�indekiler"
+  ext_link_label             : "Do\u011frudan Ba\u011flant\u0131"
+  less_than                  : "\u015eu s�reden az: "
+  minute_read                : "dakika tahmini okuma s�resi"
+  share_on_label             : "Payla\u015f"
+  meta_label                 :
+  tags_label                 : "Etiketler:"
+  categories_label           : "Kategoriler:"
+  date_label                 : "G�ncelleme tarihi:"
+  comments_label             : "Yorum yap\u0131n"
+  comments_title             : "Yorumlar"
+  more_label                 : "Daha fazlas\u0131n\u0131 �\u011frenin"
+  related_label              : "Bunlar ilginizi �ekebilir:"
+  follow_label               : "Takip et:"
+  feed_label                 : "RSS"
+  powered_by                 : "Eme\u011fi ge�enler: "
+  website_label              : "Web sayfas\u0131"
+  email_label                : "E-posta"
+  recent_posts               : "Son yaz\u0131lar"
+  undefined_wpm              : "_config.yml dosyas\u0131nda tan\u0131mlanmam\u0131\u015f words_per_minute parametresi"
+  comment_form_info          : "Email adresiniz g�sterilmeyecektir. Zorunlu alanlar i\u015faretlenmi\u015ftir"
+  comment_form_comment_label : "Yorumunuz"
+  comment_form_md_info       : "Markdown desteklenmektedir."
+  comment_form_name_label    : "Ad\u0131n\u0131z"
+  comment_form_email_label   : "Email adresiniz"
+  comment_form_website_label : "Websiteniz (opsiyonel)"
+  comment_btn_submit         : "Yorum Yap"
+  comment_btn_submitted      : "G�nderildi"
+  comment_success_msg        : "Yorumunuz i�in te\u015fekk�rler! Yorumunuz onayland\u0131ktan sonra sitede g�sterilecektir."
+  comment_error_msg          : "Maalesef bir hata olu\u015ftu. L�tfen zorunlu olan t�m alanlar\u0131 doldurdu\u011funuzdan emin olun ve sonras\u0131nda tekrar deneyin."
+  loading_label              : "Y�kleniyor..."
+tr-TR:
+  <<: *DEFAULT_TR
+
+# Portuguese
+# -----------------
+pt: &DEFAULT_PT
+  page                       : "P�gina"
+  pagination_previous        : "Anterior"
+  pagination_next            : "Seguinte"
+  breadcrumb_home_label      : "In�cio"
+  breadcrumb_separator       : "/"
+  menu_label                 :
+  toc_label                  : "Nesta P�gina"
+  ext_link_label             : "Link Direto"
+  less_than                  : "menos de"
+  minute_read                : "minutos de leitura"
+  share_on_label             : "Partilhar no"
+  meta_label                 :
+  tags_label                 : "Etiquetas:"
+  categories_label           : "Categorias:"
+  date_label                 : "Atualizado:"
+  comments_label             : "Deixe um Coment�rio"
+  comments_title             : "Coment�rios"
+  more_label                 : "Saber mais"
+  related_label              : "Tamb�m pode gostar de"
+  follow_label               : "Siga:"
+  feed_label                 : "Feed"
+  powered_by                 : "Feito com"
+  website_label              : "Site"
+  email_label                : "Email"
+  recent_posts               : "Artigos Recentes"
+  undefined_wpm              : "Par�metro words_per_minute n�o definido em _config.yml"
+  comment_form_info          : "O seu endere�o email n�o ser� publicado. Os campos obrigat�rios est�o assinalados"
+  comment_form_comment_label : "Coment�rio"
+  comment_form_md_info       : "Markdown � suportado."
+  comment_form_name_label    : "Nome"
+  comment_form_email_label   : "Endere�o Email"
+  comment_form_website_label : "Site (opcional)"
+  comment_btn_submit         : "Sumbeter Coment�rio"
+  comment_btn_submitted      : "Submetido"
+  comment_success_msg        : "Obrigado pelo seu coment�rio! Ser� vis�vel no site logo que aprovado."
+  comment_error_msg          : "Lamento, ocorreu um erro na sua submiss�o. Por favor verifique se todos os campos obrigat�rios est�o corretamente preenchidos e tente novamente."
+  loading_label              : "A carregar..."
+# Brazilian Portuguese
+pt-BR:
+  page                       : "P�gina"
+  pagination_previous        : "Anterior"
+  pagination_next            : "Pr�xima"
+  breadcrumb_home_label      : "Home"
+  breadcrumb_separator       : "/"
+  menu_label                 :
+  toc_label                  : "Nesta p�gina"
+  ext_link_label             : "Link direto"
+  less_than                  : "meno que"
+  minute_read                : "minutos de leitura"
+  share_on_label             : "Compartilhe em"
+  meta_label                 :
+  tags_label                 : "Tags:"
+  categories_label           : "Categorias:"
+  date_label                 : "Atualizado em:"
+  comments_label             : "Deixe um coment�rio"
+  comments_title             :
+  more_label                 : "Aprenda Mais"
+  related_label              : "Voc� Talvez Goste Tamb�m"
+  follow_label               : "Acompanhe em"
+  feed_label                 : "Feed"
+  powered_by                 : "Feito com"
+  website_label              : "Site"
+  email_label                : "Email"
+  recent_posts               : "Postagens recentes"
+  undefined_wpm              : "Par�metro indefinido em word_per_minute no _config.yml"
+  comment_form_info          :
+  comment_form_comment_label :
+  comment_form_md_info       :
+  comment_form_name_label    :
+  comment_form_email_label   :
+  comment_form_website_label :
+  comment_btn_submit         :
+  comment_btn_submitted      :
+  comment_success_msg        :
+  comment_error_msg          :
+  loading_label              :
+pt-PT:
+  <<: *DEFAULT_PT
+
+# Italian
+# -----------------
+it: &DEFAULT_IT
+  page                       : "Pagina"
+  pagination_previous        : "Precedente"
+  pagination_next            : "Prossima"
+  breadcrumb_home_label      : "Home"
+  breadcrumb_separator       : "/"
+  menu_label                 :
+  toc_label                  : "Indice della pagina"
+  ext_link_label             : "Link"
+  less_than                  : "meno di"
+  minute_read                : "minuto/i di lettura"
+  share_on_label             : "Condividi"
+  meta_label                 :
+  tags_label                 : "Tags:"
+  categories_label           : "Categorie:"
+  date_label                 : "Aggiornato:"
+  comments_label             : "Scrivi un commento"
+  comments_title             :
+  more_label                 : "Scopri di pi�"
+  related_label              : "Potrebbe Piacerti Anche"
+  follow_label               : "Segui:"
+  feed_label                 : "Feed"
+  powered_by                 : "Powered by"
+  website_label              : "Website"
+  email_label                : "Email"
+  recent_posts               : "Articoli Recenti"
+  undefined_wpm              : "Parametro words_per_minute non definito in _config.yml"
+  comment_form_info          : "Il tuo indirizzo email non sar� pubblicato. Sono segnati i campi obbligatori"
+  comment_form_comment_label : "Commenta"
+  comment_form_md_info       : "Il linguaggio Markdown � supportato"
+  comment_form_name_label    : "Nome"
+  comment_form_email_label   : "Indirizzo email"
+  comment_form_website_label : "Sito Web (opzionale)"
+  comment_btn_submit         : "Invia commento"
+  comment_btn_submitted      : "Inviato"
+  comment_success_msg        : "Grazie per il tuo commento! Verr� visualizzato nel sito una volta che sar� approvato."
+  comment_error_msg          : "C'� stato un errore con il tuo invio. Assicurati che tutti i campi richiesti siano stati completati e riprova."
+  loading_label              : "Caricamento..."
+it-IT:
+  <<: *DEFAULT_IT
+
+# Chinese  (zh-CN Chinese - China)
+# -----------------
+zh: &DEFAULT_ZH
+  page                       : "\u9875\u9762"
+  pagination_previous        : "\u5411\u524d"
+  pagination_next            : "\u5411\u540e"
+  breadcrumb_home_label      : "\u9996\u9875"
+  breadcrumb_separator       : "/"
+  menu_label                 :
+  toc_label                  : "\u5728\u672c\u9875\u4e0a"
+  ext_link_label             : "\u76f4\u63a5\u94fe\u63a5"
+  less_than                  : "\u5c11\u4e8e"
+  minute_read                : "\u5206\u949f \u9605\u8bfb"
+  share_on_label             : "\u5206\u4eab"
+  meta_label                 :
+  tags_label                 : "\u6807\u7b7e:"
+  categories_label           : "\u5206\u7c7b:"
+  date_label                 : "\u6700\u65b0\u7684:"
+  comments_label             : "\u7559\u4e0b\u8bc4\u8bba"
+  comments_title             : "\u8bc4\u8bba"
+  more_label                 : "\u4e86\u89e3\u66f4\u591a"
+  related_label              : "\u731c\u60a8\u8fd8\u559c\u6b22"
+  follow_label               : "\u5173\u6ce8:"
+  feed_label                 : "Feed"
+  powered_by                 : "Powered by"
+  website_label              : "\u7f51\u7ad9"
+  email_label                : "Email"
+  recent_posts               : "\u6700\u65b0\u6587\u7ae0"
+  undefined_wpm              : "Undefined parameter words_per_minute at _config.yml"
+  comment_form_info          : "Your email address will not be published. Required fields are marked"
+  comment_form_comment_label : "Comment"
+  comment_form_md_info       : "Markdown is supported."
+  comment_form_name_label    : "Name"
+  comment_form_email_label   : "Email address"
+  comment_form_website_label : "Website (optional)"
+  comment_btn_submit         : "Submit Comment"
+  comment_btn_submitted      : "Submitted"
+  comment_success_msg        : "Thanks for your comment! It will show on the site once it has been approved."
+  comment_error_msg          : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again."
+  loading_label              : "Loading..."
+zh-CN:
+  <<: *DEFAULT_ZH
+zh-HK:
+  <<: *DEFAULT_ZH
+zh-SG:
+  <<: *DEFAULT_ZH
+zh-TW:
+  <<: *DEFAULT_ZH
+
+# German / Deutsch
+# -----------------
+de: &DEFAULT_DE
+  page                       : "Seite"
+  pagination_previous        : "Vorherige"
+  pagination_next            : "N�chste"
+  breadcrumb_home_label      : "Home"
+  breadcrumb_separator       : "/"
+  menu_label                 :
+  toc_label                  : "Auf dieser Seite"
+  ext_link_label             : "Direkter Link"
+  less_than                  : "weniger als"
+  minute_read                : "Minuten zum lesen"
+  share_on_label             : "Teilen auf"
+  meta_label                 :
+  tags_label                 : "Tags:"
+  categories_label           : "Kategorien:"
+  date_label                 : "Aktualisiert:"
+  comments_label             : "Hinterlassen sie einen Kommentar"
+  comments_title             : "Kommentare"
+  more_label                 : "Mehr anzeigen"
+  related_label              : "Ihnen gef�llt vielleicht auch"
+  follow_label               : "Folgen:"
+  feed_label                 : "Feed"
+  powered_by                 : "Powered by"
+  website_label              : "Webseite"
+  email_label                : "E-Mail"
+  recent_posts               : "Aktuelle Beitr�ge"
+  undefined_wpm              : "Undefinierter Parameter words_per_minute in _config.yml"
+  comment_form_info          : "Ihre E-Mail Adresse wird nicht ver�ffentlicht. Ben�tigte Felder sind markiert"
+  comment_form_comment_label : "Kommentar"
+  comment_form_md_info       : "Markdown wird unterst�tzt."
+  comment_form_name_label    : "Name"
+  comment_form_email_label   : "E-Mail Addresse"
+  comment_form_website_label : "Webseite (optional)"
+  comment_btn_submit         : "Kommentar absenden"
+  comment_btn_submitted      : "Versendet"
+  comment_success_msg        : "Danke f�r ihren Kommentar! Er wird auf der Seite angezeigt, nachdem er gepr�ft wurde."
+  comment_error_msg          : "Entschuldigung, es gab einen Fehler. Bitte f�llen sie alle ben�tigten Felder aus und versuchen sie es erneut."
+  loading_label              : "Lade..."
+de-DE:
+  <<: *DEFAULT_DE
+de-AT:
+  <<: *DEFAULT_DE
+de-CH:
+  <<: *DEFAULT_DE
+de-BE:
+  <<: *DEFAULT_DE
+de-LI:
+  <<: *DEFAULT_DE
+de-LU:
+  <<: *DEFAULT_DE
+
+# Another locale
+# --------------

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_docs/01-quick-start-guide.md
----------------------------------------------------------------------
diff --git a/_docs/01-quick-start-guide.md b/_docs/01-quick-start-guide.md
new file mode 100644
index 0000000..86daaf2
--- /dev/null
+++ b/_docs/01-quick-start-guide.md
@@ -0,0 +1,130 @@
+---
+title: "Quick Start"
+permalink: /docs/quick-start/
+excerpt: "How to quickly install and setup Apache RocketMQ."
+modified: 2016-12-16T15:01:43-04:00
+---
+
+This quick start guide is to give detailed instructions, helping you setup RocketMQ messaging system on a single local machine and send/receive the very first message.
+
+{% include toc %}
+
+# Prerequisite
+
+   The following softwares are assumed installed:
+   1. 64bit OS, best to have Linux/Unix/Mac;
+   1. 64bit JDK 1.7+; 
+   1. Maven 3.2.x
+   1. Git 
+
+# Clone & Build
+
+```shell
+  > git clone https://github.com/alibaba/RocketMQ.git
+  > cd RocketMQ
+  > sh install.sh
+  > cd devenv
+```
+
+ 
+# Start Name Server
+```shell
+  > nohup sh bin/mqnamesrv &
+  > tail -f ~/logs/rocketmqlogs/namesrv.log
+  The Name Server boot success...
+```  
+
+# Start Broker
+```shell 
+  > nohup sh bin/mqbroker -n localhost:9876 &
+  > tail -f ~/logs/rocketmqlogs/broker.log 
+  The broker[%s, 172.30.30.233:10911] boot success...
+```
+  you may need to pay attention to the broker ip, for that the broker will not use the loopback network interface, So you should make sure you have connected to other network.
+
+
+# Send & Receive Messages
+
+Before sending/receiving messages, we need to tell clients where name servers are located. RocketMQ provides multiple ways to achieve this. For simplicity, we use environment variable `NAMESRV_ADDR`
+
+```shell
+ > export NAMESRV_ADDR=localhost:9876
+ > sh bin/tools.sh com.alibaba.rocketmq.example.quickstart.Producer
+ SendResult [sendStatus=SEND_OK, msgId= ...
+
+ > sh bin/tools.sh com.alibaba.rocketmq.example.quickstart.Consumer
+ ConsumeMessageThread_%d Receive New Messages: [MessageExt...
+```
+
+# Code Example
+
+## prepare 
+```
+<dependency>
+    <groupId>com.alibaba.rocketmq</groupId>
+    <artifactId>rocketmq-client</artifactId>
+    <version>3.5.8</version>
+</dependency>
+```
+
+## Producer
+
+```java
+import com.alibaba.rocketmq.client.exception.MQClientException;
+import com.alibaba.rocketmq.client.producer.DefaultMQProducer;
+import com.alibaba.rocketmq.client.producer.SendResult;
+import com.alibaba.rocketmq.common.message.Message;
+import com.alibaba.rocketmq.remoting.common.RemotingHelper;
+public class Producer { 
+    public static void main(String[] args) throws MQClientException, InterruptedException {
+        DefaultMQProducer producer = new DefaultMQProducer("YOUR_PRODUCER_GROUP"); // (1)
+        producer.setNamesrvAddr("localhost:9876"); //(2) set name server explicitly
+        producer.start(); // (3)
+        for (int i = 0; i < 1000; i++) {
+            try {
+                Message msg = new Message("TopicTest",// topic // (4)
+                        "TagA",// tag (5)
+                        ("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET)// body (6)
+                        );
+                SendResult sendResult = producer.send(msg); // (7)
+                System.out.println(sendResult);
+            } catch (Exception e) {
+                e.printStackTrace();
+                Thread.sleep(1000);
+            }
+        }
+        producer.shutdown();
+    }
+}
+```
+
+## Consumer 
+
+```java 
+import com.alibaba.rocketmq.client.consumer.DefaultMQPushConsumer;
+import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
+import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
+import com.alibaba.rocketmq.client.consumer.listener.MessageListenerConcurrently;
+import com.alibaba.rocketmq.client.exception.MQClientException;
+import com.alibaba.rocketmq.common.consumer.ConsumeFromWhere;
+import com.alibaba.rocketmq.common.message.MessageExt;
+import java.util.List;
+
+public class Consumer {
+    public static void main(String[] args) throws InterruptedException, MQClientException {
+        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("YOUR_CONSUMER_GROUP"); // (1)
+        consumer.setNamesrvAddr("localhost:9876"); // (2)
+        consumer.subscribe("TopicTest"/*topic*/, "*"/*tag,* means all tags*/); // (3)
+        consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET); // (4)
+        consumer.registerMessageListener(new MessageListenerConcurrently() {
+                    @Override
+                    public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
+                        System.out.println(Thread.currentThread().getName() + " Receive New Messages: " + msgs);
+                        return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
+                    }
+                }); //(5)
+        consumer.start(); //(6)
+        System.out.println("Consumer Started.");
+    }
+}
+```

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_docs/02-motivation.md
----------------------------------------------------------------------
diff --git a/_docs/02-motivation.md b/_docs/02-motivation.md
new file mode 100644
index 0000000..5635796
--- /dev/null
+++ b/_docs/02-motivation.md
@@ -0,0 +1,28 @@
+---
+title: "Motivation"
+permalink: /docs/motivation/
+modified: 2016-12-16T15:01:43-04:00
+---
+
+In the early stages, we constructed our distributed messaging middleware on the basis of ActiveMQ 5.x(less than 5.3). Our international business uses it for async communication, search, social network activity stream, data pipeline, even in our trade order process. As our trade business throughput rises more and more inconceivably, pressure originating from our messaging cluster also become more and more obvious.
+
+{% include toc %}
+
+# Why RocketMQ ?
+
+Based on our observations and research, with more and more queues and virtual topics in use, ActiveMQ IO module becomes a bottleneck. In some cases, slower consumers can slow down the producers. We tried our best efforts to handle this problems through throttling, circuit breaker or degradation, but it cannot scale out gracefully. So we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our requirements such as low latency and high reliability, see [here](https://github.com/alibaba/RocketMQ/wiki/how_to_support_more_queues) for details.
+
+In this context, we decided to innovate a new messaging middleware to handle a broad set of use cases, ranging from traditional publish/subscribe scenario to demandingly high volume realtime transaction system that tolerates no message loss. We also created a cornerstone product based on RocketMQ, a Platform as a Service (PaaS) product named the
+[Alibaba Cloud Platform](https://intl.aliyun.com/). Today, more than 100 companies are using the RocketMQ open source version in their business solutions. We believe RocketMQ can benefit more people, so we would like to share it around the world.
+
+
+The following are some different design between RocketMQ, ActiveMQ and Kafka\uff08They are the apache's most popular messaging solutions according to [awesome-java](https://github.com/akullpp/awesome-java)):
+
+# RocketMQ vs. ActiveMQ vs. Kafka
+
+
+| Messaging Product|Client SDK| Protocol and Specification | Order Message  |Message Filter|Server Triggered Redelivery|Persistent Message|Retroactive Consumers|Message Priority|High Availability and Failover|Message Track|Configuration|Management and Operation Tools|
+| -------|--------|--------|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
+| ActiveMQ|Java, .NET, C++ etc. |Push model, support OpenWire, STOMP, AMQP, MQTT, JMS|Exclusive Consumer or Exclusive Queues can ensure ordering|Supported|Not Supported|Supports very fast persistence using JDBC along with a high performance journal\uff0csuch as levelDB, kahaDB|Supported|Supported|Supported, depending on storage,if using kahadb it requires a ZooKeeper server|Not Supported|The default configuration is low level, user need to optimize the configuration parameters|Supported|
+| Kafka      | Java, Scala etc.|Pull model, support TCP|Ensure ordering of messages within a partition|Supported, you can use Kafka Streams to filter messages|Not Supported|High performance file storage|Supported offset indicate|Not Supported|Supported, requires a ZooKeeper server|Not Supported|Kafka uses key-value pairs format for configuration. These values can be supplied either from a file or programmatically.|Supported, use terminal command to expose core metrics|
+| RocketMQ      |Java, .NET, C++ |Pull model, support TCP, JMS|Ensure strict ordering of messages, have no hot spot problem,and can scale out gracefully|Supported, you can even upload yourself custom-built filter code snippets|Supported|High performance and low latency file storage|Supported timestamp and offset 2 indicates|Not Supported|Supported, Master-Slave model, without another kit|Supported|Work out of box,user only need to pay attention to a few configurations|Supported, rich web and terminal command to expose core metrics|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_docs/03-core-concept.md
----------------------------------------------------------------------
diff --git a/_docs/03-core-concept.md b/_docs/03-core-concept.md
new file mode 100644
index 0000000..06d4add
--- /dev/null
+++ b/_docs/03-core-concept.md
@@ -0,0 +1,95 @@
+---
+title: "Core Concept"
+permalink: /docs/core-concept/
+modified: 2016-12-16T15:01:43-04:00
+---
+
+![RocketMQ model](/assets/images/rmq-model.png)
+
+From the above model, we can look deeper into some topics about messaging system design:
+
+{% include toc %}
+
+* Consumer Concurrency
+* Consumer Hot Issues
+* Consumer Load Balance
+* Message Router
+* Connection Multiplex
+* Canary Deployments
+
+# Producer
+
+A producer sends messages generated by the business application systems to brokers. RocketMQ provides multiple paradigms of sending: synchronous, asynchronous and one-way. 
+
+## Producer Group
+
+Producers of the same role are grouped together. A different producer instance of the same producer group may be contacted by a broker to commit or roll back a transaction in case the original producer crashed after starting the transaction. 
+
+**Warning**: Considering the provided producer is sufficiently powerful at sending messages, only one instance is allowed per producer group and process to avoid unnecessarily initializing of producer instances.
+
+# Consumer
+
+A Consumer pulls messages from brokers and feeds them into application. In perspective of user application, two types of consumers are provided:  
+
+## PullConsumer
+
+  Pull consumer actively pulls messages from brokers. Once batches of messages are pulled, user application initiates consuming process.
+
+## PushConsumer
+
+  Push consumer, on the other hand, encapsulates message pulling, consuming progress maintaining and other effortful work inside, leaving a callback interface to end user to implement which will be executed on message arrival.
+
+## Consumer Group
+
+Similar to previously mentioned producer group, consumers of the exactly same role are grouped together and named **Consumer Group**. 
+
+Consumer Group is a great concept with which achieving goals of load-balance and fault-tolerance, in terms of message consuming, is super easy. 
+
+**Warning**: consumer instances of a consumer group **must** have exactly same topic subscription(s).
+
+# Topic
+
+Topic is a category to which producers deliver messages and from which consumers pull messages. Topics have very loose relation with producers and consumers. Specifically, a topic may have zero, one or multiple producers that sends messages to it; conversely, a producer can sends messages of different topics. In consumer's view, a topic may be subscribed by zero, one or multiple consumer groups; and a consumer group, in the same paradigm, may subscribe one or multiple topics as long as instances of this group keep their subscription consistent as emphasized in the previous section. 
+
+# Message
+    
+Message is the envelope of your information to deliver. A message must be specified with a topic, which can be interpreted as address of your letter to mail to. A message may also have an optional tag set. Extra key-value pairs may also be included. For example, you may set a business key for your message and look up the message on broker server to diagnose issues during development.
+
+## Message Queue
+
+Topic, internally, is logically partitioned into one or more sub-topics. We call these sub-topics "message queues". This concept plays a major role in implementing valuable features, including fail-over, maximum concurrency, etc. 
+
+## Tag
+
+Tag, which can be thought as sub-topic, provides an extra flexibility for user. Through introducing tag,  messages with different purposes from the same business module may have the same topic yet different tag. It would be helpful to keep your code clean and coherent.
+
+## Broker
+
+Broker is the major role of the RocketMQ system. It receives messages sent from producers, store them and being prepared to serve pull requests from consumers. It also stores message consuming related meta data, including consumer groups, consuming progress offsets and topic / queue info.
+
+# Name Server
+
+Name server serves as the routing information provider. Producer/Consumer clients look up topics to find broker list to read from and write to.
+
+# Message Model
+
+* Clustering
+
+* Broadcasting
+
+# Message Order
+
+When DefaultMQPushConsumer is employed, you may decide to consume messages orderly or concurrently. 
+   
+* Orderly
+    
+Consuming messages orderly means messages are consumed the same order they are sent by producers for each message queue. If you are dealing with scenario that global order is mandatory, make sure the topic you use has only one message queue.
+
+**Warn**: If consuming orderly is specified, the maximum concurrency of message consuming is the number of message queues subscribed by the consumer group. 
+
+* Concurrently
+   
+When consuming concurrently, maximum concurrency of message consuming is only limited by thread pool specified for each consumer client.
+
+**Warn**: Message order is no longer guaranteed in this mode.
+

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_docs/04-cli-admin-tool.md
----------------------------------------------------------------------
diff --git a/_docs/04-cli-admin-tool.md b/_docs/04-cli-admin-tool.md
new file mode 100644
index 0000000..f60f377
--- /dev/null
+++ b/_docs/04-cli-admin-tool.md
@@ -0,0 +1,83 @@
+---
+title: "CLI Admin Tool"
+permalink: /docs/cli-admin-tool/
+modified: 2016-12-16T15:01:43-04:00
+---
+
+RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues.
+
+{% include toc %}
+
+# Prerequisite 
+
+Make sure you have walked through [Quick Start](/docs/quick-start/) and [Core Concept](/docs/core-concept/) sections.
+
+
+# How To Get it
+
+The admin tool is shipped along with RocketMQ. Either you download a pre-built binary version or build from source by yourself, you already have it.
+
+In case you have source code, the [rocketmq-tools module](https://github.com/alibaba/RocketMQ/tree/master/rocketmq-tools) contains its source code.
+
+# How to use
+
+The Admin Tool is very easy to use. Here, for demonstration purpose, *nix environment is assumed.
+
+Change directory to ${PACKAGE}/bin, command `bash mqadmin`, you should see the following help menu pops out.
+
+    The most commonly used mqadmin commands are:
+       updateTopic          Update or create topic
+       deleteTopic          Delete topic from broker and NameServer.
+       updateSubGroup       Update or create subscription group
+       deleteSubGroup       Delete subscription group from broker.
+       updateBrokerConfig   Update broker's config
+       updateTopicPerm      Update topic perm
+       topicRoute           Examine topic route info
+       topicStatus          Examine topic Status info
+       topicClusterList     get cluster info for topic
+       brokerStatus         Fetch broker runtime status data
+       queryMsgById         Query Message by Id
+       queryMsgByKey        Query Message by Key
+       queryMsgByUniqueKey  Query Message by Unique key
+       queryMsgByOffset     Query Message by offset
+       queryMsgByUniqueKey  Query Message by Unique key
+       printMsg             Print Message Detail
+       sendMsgStatus        send msg to broker.
+       brokerConsumeStats   Fetch broker consume stats data
+       producerConnection   Query producer's socket connection and client version
+       consumerConnection   Query consumer's socket connection, client version and subscription
+       consumerProgress     Query consumers's progress, speed
+       consumerStatus       Query consumer's internal data structure
+       cloneGroupOffset     clone offset from other group.
+       clusterList          List all of clusters
+       topicList            Fetch all topic list from name server
+       updateKvConfig       Create or update KV config.
+       deleteKvConfig       Delete KV config.
+       wipeWritePerm        Wipe write perm of broker in all name server
+       resetOffsetByTime    Reset consumer offset by timestamp(without client restart).
+       updateOrderConf      Create or update or delete order conf
+       cleanExpiredCQ       Clean expired ConsumeQueue on broker.
+       cleanUnusedTopic     Clean unused topic on broker.
+       startMonitoring      Start Monitoring
+       statsAll             Topic and Consumer tps stats
+       syncDocs             Synchronize wiki and issue to github.com
+       allocateMQ           Allocate MQ
+       checkMsgSendRT       check message send response time
+       clusterRT            List All clusters Message Send RT
+    
+    See 'mqadmin help <command>' for more information on a specific command.
+
+
+As you see, the most commonly used commands are listed with a brief description. To get detailed manual of each command, `bash mqadmin help <command>`. For example, command `bash mqadmin help clusterList` will bring out the following help text:
+
+    usage: mqadmin clusterList [-h] [-i <arg>] [-m] [-n <arg>]
+     -h,--help                Print help
+     -i,--interval <arg>      specify intervals numbers, it is in seconds
+     -m,--moreStats           Print more stats
+     -n,--namesrvAddr <arg>   Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876
+
+
+The help text lists possible options and interpretation of each option. 
+
+
+# Command Manual
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_docs/05-cluster-deployment.md
----------------------------------------------------------------------
diff --git a/_docs/05-cluster-deployment.md b/_docs/05-cluster-deployment.md
new file mode 100644
index 0000000..7874f89
--- /dev/null
+++ b/_docs/05-cluster-deployment.md
@@ -0,0 +1,76 @@
+---
+title: "Cluster Configuration and Deployment"
+permalink: /docs/cluster-deployment/
+modified: 2016-12-16T15:01:43-04:00
+---
+
+# Prerequisite
+
+Before starting this section, make sure you have read Quick Start section, in which core concepts and components of RocketMQ are introduced.
+
+{% include toc %}
+
+# Introduction
+
+This section is to introduce deployment solution that may be considered production ready.  Generally speaking, we are deploying a resilient RocketMQ cluster having no single point of failure.
+
+# Name Server
+
+To ensure the cluster can still operate normally when name server instance crashes, two or more name server instances are recommended.  As long as there is one name server instance alive, the whole cluster remains serving.
+
+Name server follows share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers may query meta data from any one of name servers available while sending / consuming messages.
+
+# Broker
+
+Brokers can be divided into two categories according to their roles: master and slave. Master brokers can read and write while slave brokers can only read messages replicated from master. Master brokers have brokerId=0; brokerId of slave is non-zero. 
+
+Brokers may also be grouped by the brokerName property. Slave brokers find their master through brokerName. One master broker along with zero, one or multiple slave brokers is called a broker set.
+
+In serious scenarios, we should have at least two broker sets. Each topic, as you guess,  resides in two or more broker sets.
+
+
+# Disk Flush Type: SYNC_FLUSH / ASYNC_FLUSH
+
+Each broker can be configured to be sync or async in terms of IO flushing strategy. To put it simply, if your business tolerates none message loss at extreme scenarios like OS crash or power loss, SYNC_FLUSH mode is recommended. Broker of SYNC_FLUSH mode would flush each message it receives onto disk before acknowledging producer. Obviously, throughout of this mode is highly dependent on IOPS of your hard disk. 
+
+Broker of ASYNC_FLUSH mode, on the other hand, takes advantage of group-committing: only flushes dirty page caches to disk periodically or when count of dirty page caches reaches certain amount. Hence, the latter yields better performance.
+
+# Replication: Sync / Async Broker
+
+Similar to many replication system, sync brokers await until commit log is replicated to a slave before acknowledging. Async brokers, instead, return immediately after messages are processed on master. 
+
+# Configuration
+
+There are three pre-built configurations shipped with the distribution of RocketMQ under conf folder for your reference:
+
+1. 2m-2s-sync
+1. 2m-2s-async
+1. 2m-noslave
+
+Note: all configurations uses ASYNC_FLUSH. 
+
+# Deployment Example
+
+For example, We want to have a cluster with 2 name servers, 2 broker sets with general purpose:
+for this example, we choose `2m-2s-sync`
+Assuming binary RocketMQ is at `/home/rocketmq/dist`
+
+1. Start up two name servers as is shown in Quick Start guide. Assume their IPs are 192.168.0.2 and 192.168.0.3.
+
+2. Start brokers
+
+   `cd /home/rocketmq/dist/bin`
+
+   `bash mqbroker -c ../conf/2m-2s-sync/broker-a.properties -n 192.168.0.2:9876,192.168.0.3:9876`
+
+   `bash mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties -n 192.168.0.2:9876,192.168.0.3:9876`
+
+   `bash mqbroker -c ../conf/2m-2s-sync/broker-b.properties -n 192.168.0.2:9876,192.168.0.3:9876`
+
+   `bash mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties -n 192.168.0.2:9876,192.168.0.3:9876`
+
+3. Verify
+
+   Execute the following command to verify
+
+   `bash mqadmin clusterList`

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/analytics-providers/custom.html
----------------------------------------------------------------------
diff --git a/_includes/analytics-providers/custom.html b/_includes/analytics-providers/custom.html
new file mode 100644
index 0000000..c34b97a
--- /dev/null
+++ b/_includes/analytics-providers/custom.html
@@ -0,0 +1,3 @@
+<!-- start custom analytics snippet -->
+
+<!-- end custom analytics snippet -->
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/analytics-providers/google-universal.html
----------------------------------------------------------------------
diff --git a/_includes/analytics-providers/google-universal.html b/_includes/analytics-providers/google-universal.html
new file mode 100644
index 0000000..3ada6e3
--- /dev/null
+++ b/_includes/analytics-providers/google-universal.html
@@ -0,0 +1,9 @@
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+  ga('create', '{{ site.analytics.google.tracking_id }}', 'auto');
+  ga('send', 'pageview');
+</script>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/analytics-providers/google.html
----------------------------------------------------------------------
diff --git a/_includes/analytics-providers/google.html b/_includes/analytics-providers/google.html
new file mode 100644
index 0000000..b591b99
--- /dev/null
+++ b/_includes/analytics-providers/google.html
@@ -0,0 +1,11 @@
+<script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', '{{ site.analytics.google.tracking_id }}']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+</script>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/analytics.html
----------------------------------------------------------------------
diff --git a/_includes/analytics.html b/_includes/analytics.html
new file mode 100644
index 0000000..64a3359
--- /dev/null
+++ b/_includes/analytics.html
@@ -0,0 +1,12 @@
+{% if site.analytics.provider and page.analytics != false %}
+
+{% case site.analytics.provider %}
+{% when "google" %}
+  {% include /analytics-providers/google.html %}
+{% when "google-universal" %}
+  {% include /analytics-providers/google-universal.html %}
+{% when "custom" %}
+  {% include /analytics-providers/custom.html %}
+{% endcase %}
+
+{% endif %}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/archive-single.html
----------------------------------------------------------------------
diff --git a/_includes/archive-single.html b/_includes/archive-single.html
new file mode 100644
index 0000000..93755e3
--- /dev/null
+++ b/_includes/archive-single.html
@@ -0,0 +1,38 @@
+{% if post.header.teaser %}
+  {% capture teaser %}{{ post.header.teaser }}{% endcapture %}
+{% else %}
+  {% assign teaser = site.teaser %}
+{% endif %}
+
+{% if post.id %}
+  {% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
+{% else %}
+  {% assign title = post.title %}
+{% endif %}
+
+<div class="{{ include.type | default: "list" }}__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    {% if include.type == "grid" and teaser %}
+      <div class="archive__item-teaser">
+        <img src=
+          {% if teaser contains "://" %}
+            "{{ teaser }}"
+          {% else %}
+            "{{ teaser | absolute_url }}"
+          {% endif %}
+          alt="">
+      </div>
+    {% endif %}
+    <h2 class="archive__item-title" itemprop="headline">
+      {% if post.link %}
+        <a href="{{ post.link }}">{{ title }}</a> <a href="{{ post.url | absolute_url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
+      {% else %}
+        <a href="{{ post.url | absolute_url }}" rel="permalink">{{ title }}</a>
+      {% endif %}
+    </h2>
+    {% if post.read_time %}
+      <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
+    {% endif %}
+    {% if post.excerpt %}<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify | strip_html | truncate: 160 }}</p>{% endif %}
+  </article>
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/author-profile-custom-links.html
----------------------------------------------------------------------
diff --git a/_includes/author-profile-custom-links.html b/_includes/author-profile-custom-links.html
new file mode 100644
index 0000000..3560e25
--- /dev/null
+++ b/_includes/author-profile-custom-links.html
@@ -0,0 +1,7 @@
+<!--
+  <li>
+    <a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs">
+      <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link
+    </a>
+  </li>
+-->
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/author-profile.html
----------------------------------------------------------------------
diff --git a/_includes/author-profile.html b/_includes/author-profile.html
new file mode 100644
index 0000000..d7116f3
--- /dev/null
+++ b/_includes/author-profile.html
@@ -0,0 +1,241 @@
+{% if page.author and site.data.authors[page.author] %}
+  {% assign author = site.data.authors[page.author] %}
+{% else %}
+  {% assign author = site.author %}
+{% endif %}
+
+<div itemscope itemtype="http://schema.org/Person">
+
+  {% if author.avatar %}
+    <div class="author__avatar">
+      {% if author.avatar contains "://" %}
+        <img src="{{ author.avatar }}" alt="{{ author.name }}" itemprop="image">
+      {% else %}
+        <img src="{{ author.avatar | absolute_url }}" class="author__avatar" alt="{{ author.name }}" itemprop="image">
+      {% endif %}
+    </div>
+  {% endif %}
+
+  <div class="author__content">
+    <h3 class="author__name" itemprop="name">{{ author.name }}</h3>
+    {% if author.bio %}
+      <p class="author__bio" itemprop="description">
+        {{ author.bio }}
+      </p>
+    {% endif %}
+  </div>
+
+  <div class="author__urls-wrapper">
+    <button class="btn btn--inverse">{{ site.data.ui-text[site.locale].follow_label | remove: ":" | default: "Follow" }}</button>
+    <ul class="author__urls social-icons">
+      {% if author.location %}
+        <li itemprop="homeLocation" itemscope itemtype="http://schema.org/Place">
+          <i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> <span itemprop="name">{{ author.location }}</span>
+        </li>
+      {% endif %}
+
+      {% if author.uri %}
+        <li>
+          <a href="{{ author.uri }}" itemprop="url">
+            <i class="fa fa-fw fa-chain" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].website_label | default: "Website" }}
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.email %}
+        <li>
+          <a href="mailto:{{ author.email }}">
+            <meta itemprop="email" content="{{ author.email }}" />
+            <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].email_label | default: "Email" }}
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.keybase %}
+        <li>
+          <a href="https://keybase.io/{{ author.keybase }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-key" aria-hidden="true"></i> Keybase
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.twitter %}
+        <li>
+          <a href="https://twitter.com/{{ author.twitter }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.facebook %}
+        <li>
+          <a href="https://www.facebook.com/{{ author.facebook }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-facebook-square" aria-hidden="true"></i> Facebook
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.google_plus %}
+        <li>
+          <a href="https://plus.google.com/+{{ author.google_plus }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-google-plus-square" aria-hidden="true"></i> Google+
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.linkedin %}
+        <li>
+          <a href="https://www.linkedin.com/in/{{ author.linkedin }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-linkedin-square" aria-hidden="true"></i> LinkedIn
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.xing %}
+        <li>
+          <a href="https://www.xing.com/profile/{{ author.xing }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-xing-square" aria-hidden="true"></i> XING
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.instagram %}
+        <li>
+          <a href="https://instagram.com/{{ author.instagram }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-instagram" aria-hidden="true"></i> Instagram
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.tumblr %}
+        <li>
+          <a href="https://{{ author.tumblr }}.tumblr.com" itemprop="sameAs">
+            <i class="fa fa-fw fa-tumblr-square" aria-hidden="true"></i> Tumblr
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.bitbucket %}
+        <li>
+          <a href="https://bitbucket.org/{{ author.bitbucket }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-bitbucket" aria-hidden="true"></i> Bitbucket
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.github %}
+        <li>
+          <a href="https://github.com/{{ author.github }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.stackoverflow %}
+        <li>
+          <a href="https://www.stackoverflow.com/users/{{ author.stackoverflow }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-stack-overflow" aria-hidden="true"></i> Stackoverflow
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.quora %}
+        <li>
+          <a href="https://www.quora.com/{{ author.quora }}" itemprop="sameAs">
+            <i class="fa fa-fw" aria-hidden="true"><strong>Q</strong></i> Quora
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.lastfm %}
+        <li>
+          <a href="https://last.fm/user/{{ author.lastfm }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-lastfm-square" aria-hidden="true"></i> Last.fm
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.dribbble %}
+        <li>
+          <a href="https://dribbble.com/{{ author.dribbble }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-dribbble" aria-hidden="true"></i> Dribbble
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.pinterest %}
+        <li>
+          <a href="https://www.pinterest.com/{{ author.pinterest }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-pinterest" aria-hidden="true"></i> Pinterest
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.foursquare %}
+        <li>
+          <a href="https://foursquare.com/{{ author.foursquare }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-foursquare" aria-hidden="true"></i> Foursquare
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.steam %}
+        <li>
+          <a href="https://steamcommunity.com/id/{{ author.steam }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-steam-square" aria-hidden="true"></i> Steam
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.youtube %}
+        <li>
+          <a href="https://www.youtube.com/user/{{ author.youtube }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-youtube-square" aria-hidden="true"></i> YouTube
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.soundcloud %}
+        <li>
+          <a href="https://soundcloud.com/{{ author.soundcloud }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-soundcloud" aria-hidden="true"></i> Soundcloud
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.weibo %}
+        <li>
+          <a href="https://www.weibo.com/{{ author.weibo }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-weibo" aria-hidden="true"></i> Weibo
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.flickr %}
+        <li>
+          <a href="https://www.flickr.com/{{ author.flickr }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-flickr" aria-hidden="true"></i> Flickr
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.codepen %}
+        <li>
+          <a href="https://codepen.io/{{ author.codepen }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-codepen" aria-hidden="true"></i> CodePen
+          </a>
+        </li>
+      {% endif %}
+
+      {% if author.vine %}
+        <li>
+          <a href="https://vine.co/u/{{ author.vine }}" itemprop="sameAs">
+            <i class="fa fa-fw fa-vine" aria-hidden="true"></i> Vine
+          </a>
+        </li>
+      {% endif %}
+
+      {% include author-profile-custom-links.html %}
+    </ul>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/base_path
----------------------------------------------------------------------
diff --git a/_includes/base_path b/_includes/base_path
new file mode 100644
index 0000000..36826c4
--- /dev/null
+++ b/_includes/base_path
@@ -0,0 +1,5 @@
+{% if site.url %}
+  {% assign base_path = site.url | append: site.baseurl %}
+{% else %}
+  {% assign base_path = site.github.url %}
+{% endif %}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/breadcrumbs.html
----------------------------------------------------------------------
diff --git a/_includes/breadcrumbs.html b/_includes/breadcrumbs.html
new file mode 100644
index 0000000..cf2b745
--- /dev/null
+++ b/_includes/breadcrumbs.html
@@ -0,0 +1,39 @@
+{% case site.categories.type %}
+  {% when "liquid" %}
+    {% assign path_type = "#" %}
+  {% when "jekyll-archives" %}
+    {% assign path_type = nil %}
+{% endcase %}
+
+{% if page.collection != 'posts' %}
+  {% assign path_type = nil %}
+  {% assign crumb_path = '/' %}
+{% else %}
+  {% assign crumb_path = site.categories.path %}
+{% endif %}
+
+<nav class="breadcrumbs">
+  <ol itemscope itemtype="http://schema.org/BreadcrumbList">
+    {% assign crumbs = page.url | split: '/' %}
+    {% assign i = 1 %}
+    {% for crumb in crumbs offset: 1 %}
+      {% if forloop.first %}
+        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
+          <a href="{{ site.url }}{{ site.baseurl }}/" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
+          <meta itemprop="position" content="{{ i }}" />
+        </li>
+        <span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
+      {% endif %}
+      {% if forloop.last %}
+        <li class="current">{{ page.title }}</li>
+      {% else %}
+        {% assign i = i | plus: 1 %}
+        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
+          <a href="{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path | absolute_url }}" itemprop="item"><span itemprop="name">{{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}</span></a>
+          <meta itemprop="position" content="{{ i }}" />
+        </li>
+        <span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
+      {% endif %}
+    {% endfor %}
+  </ol>
+</nav>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/browser-upgrade.html
----------------------------------------------------------------------
diff --git a/_includes/browser-upgrade.html b/_includes/browser-upgrade.html
new file mode 100644
index 0000000..e8d8b26
--- /dev/null
+++ b/_includes/browser-upgrade.html
@@ -0,0 +1,3 @@
+<!--[if lt IE 9]>
+<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
+<![endif]-->
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/e1829bac/_includes/category-list.html
----------------------------------------------------------------------
diff --git a/_includes/category-list.html b/_includes/category-list.html
new file mode 100644
index 0000000..039d5e2
--- /dev/null
+++ b/_includes/category-list.html
@@ -0,0 +1,26 @@
+{% case site.category_archive.type %}
+  {% when "liquid" %}
+    {% assign path_type = "#" %}
+  {% when "jekyll-archives" %}
+    {% assign path_type = nil %}
+{% endcase %}
+
+{% if site.category_archive.path %}
+  {% comment %}
+    <!-- Sort alphabetically regardless of case e.g. a B c d E -->
+    <!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
+  {% endcomment %}
+  {% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}#{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
+  {% assign category_hashes = (page_categories | split: ',' | sort:0) %}
+
+  <p class="page__taxonomy">
+    <strong><i class="fa fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} </strong>
+    <span itemprop="keywords">
+    {% for hash in category_hashes %}
+      {% assign keyValue = hash | split: '#' %}
+      {% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
+      <a href="{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path | absolute_url }}" class="page__taxonomy-item" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
+    {% endfor %}
+    </span>
+  </p>
+{% endif %}
\ No newline at end of file