You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pegasus.apache.org by wu...@apache.org on 2020/10/03 13:28:19 UTC

[incubator-pegasus-website] 01/04: support overview folder i18n

This is an automated email from the ASF dual-hosted git repository.

wutao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pegasus-website.git

commit fb7de0c0e52821a618d27e1f0bf88b27e1ceaab4
Author: neverchanje <wu...@gmail.com>
AuthorDate: Sat Oct 3 06:53:02 2020 +0800

    support overview folder i18n
---
 Gemfile                                            |   1 +
 _config.yml                                        |  51 +++++++----
 _data/administration_menu.yml                      |  54 ------------
 _data/api_menu.yml                                 |  13 ---
 _data/clients_menu.yml                             |  15 ----
 _data/docs_menu.yml                                |  78 +++++++++++++++++
 _data/en/translate.yml                             |  22 +++++
 _data/navigation.yml                               |  39 +++------
 _data/overview_menu.yml                            |  18 ++--
 _data/zh/translate.yml                             |  60 +++++++++++++
 _includes/algolia.html                             |  15 +---
 _includes/docs_header.html                         |  53 ++++++++++++
 _includes/head.html                                |   4 +-
 _includes/header.html                              |  63 ++++++++------
 _includes/language-switch.html                     |  15 ++++
 _includes/menubar.html                             |  22 ++---
 _includes/rating.html                              |  14 ----
 _includes/review.html                              |  27 ------
 _layouts/default.html                              |  12 ---
 _layouts/front.html                                |  20 +++--
 _layouts/page.html                                 |   3 +
 _layouts/product-category.html                     |  42 ----------
 _layouts/product.html                              |  61 --------------
 _overview/en/architecture.md                       |   5 ++
 _overview/en/background.md                         |   5 ++
 _overview/en/benchmark.md                          |   5 ++
 _overview/en/data-model.md                         |   5 ++
 _overview/en/installation.md                       |   5 ++
 _overview/en/onebox.md                             |   5 ++
 _overview/en/overview.md                           |   6 ++
 _overview/en/shell.md                              |   5 ++
 _overview/{ => zh}/architecture.md                 |   5 +-
 _overview/{ => zh}/background.md                   |   4 +-
 _overview/{ => zh}/benchmark.md                    |   5 +-
 _overview/{ => zh}/data-model.md                   |   5 +-
 _overview/{compilation.md => zh/installation.md}   |   5 +-
 _overview/{ => zh}/onebox.md                       |   5 +-
 _overview/{index.md => zh/overview.md}             |   4 +-
 _overview/{ => zh}/shell.md                        |   5 +-
 _sass/_layout.scss                                 |  60 ++++++-------
 _sass/_main.scss                                   |   6 +-
 assets/images/pegasus-logo-inv.png                 | Bin 0 -> 34250 bytes
 assets/images/pegasus-square.png                   | Bin 0 -> 21055 bytes
 assets/js/app.js                                   |   7 +-
 node_modules/bulma-dashboard/LICENSE               |   5 ++
 node_modules/bulma-dashboard/README.md             |  93 +++++++++++++++++++++
 .../bulma-dashboard/dist/bulma-dashboard.css       |  75 +++++++++++++++++
 .../bulma-dashboard/dist/bulma-dashboard.css.map   |   1 +
 .../bulma-dashboard/dist/bulma-dashboard.min.css   |   1 +
 .../dist/bulma-dashboard.min.css.map               |   1 +
 node_modules/bulma-dashboard/package.json          |  44 ++++++++++
 .../bulma-dashboard/src/bulma-dashboard.sass       |  93 +++++++++++++++++++++
 52 files changed, 751 insertions(+), 416 deletions(-)

diff --git a/Gemfile b/Gemfile
index 2a4deb2..7d5ad32 100755
--- a/Gemfile
+++ b/Gemfile
@@ -7,4 +7,5 @@ group :jekyll_plugins do
     gem "jekyll-sitemap"
     gem "jekyll-paginate"
     gem "jekyll-seo-tag"
+    gem "jekyll-polyglot"
 end
diff --git a/_config.yml b/_config.yml
index f5fb2ce..39d979c 100755
--- a/_config.yml
+++ b/_config.yml
@@ -3,41 +3,28 @@ title: Pegasus
 collections:
   overview:
     output: true
-    layout: page
-    permalink: /:collection/:path
-  clients:
-    output: true
-    layout: page
-    permalink: /:collection/:path
-  api:
-    output: true
-    layout: page
-    permalink: /:collection/:path
-  administration:
-    output: true
-    layout: page
-    permalink: /:collection/:path
   blogs:
     output: true
-    permalink: /:collection/:path
   community:
     output: true
-    permalink: /:collection/:path
   releases:
     output: true
-    permalink: /:collection/:path
+  docs:
+    output: true
 
 plugins:
   - jekyll-sitemap
   - jekyll-paginate
   - jekyll-feed
   - jekyll-seo-tag
+  - jekyll-polyglot
   - kramdown
   - rouge
 
 defaults:
-  - # docs
+  - # default
     scope:
+      # While `type` is optional, you must specify a value for `path` when creating a scope/values pair.
       path: ""
     values:
       show_sidebar: false
@@ -63,8 +50,36 @@ defaults:
       layout: post
       hero_style: is-white is-centered
       header_style: is-black
+  - scope:
+      path: ""
+      type: docs
+    values:
+      layout: docs
+      menubar: docs_menu
+      show_sidebar: false
+  - scope:
+      path: "_overview"
+    values:
+      layout: page
+      menubar: overview_menu
+      show_sidebar: false
 
 algolia:
   index_name: apache_pegasus
   search_only_api_key: 676624c2d6dc00808d3b7cf6724fc3c8
   powered_by: true
+
+# multi-languages support
+languages: ["zh", "en"]
+# All sites missing their languages' counterparts will fallback to your `default_lang`.
+default_lang: "zh"
+exclude_from_localizations: ["js", "images", "css"]
+parallel_localization: true
+lang_from_path: true
+sass:
+  # In Jekyll 4.0 , SCSS source maps will generate improperly due to how Polyglot operates.
+  # The workaround is to disable the CSS sourcemaps.
+  # Adding the following to your config.yml will disable sourcemap generation:
+  sourcemap: never
+
+pegasus_github_url: "https://github.com/apache/incubator-pegasus"
diff --git a/_data/administration_menu.yml b/_data/administration_menu.yml
deleted file mode 100644
index 1f71489..0000000
--- a/_data/administration_menu.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-- items:
-    - name: 高效运维
-      link: /administration
-    - name: 集群部署
-      link: /administration/deployment
-    - name: 配置说明
-      link: /administration/config
-    - name: 负载均衡
-      link: /administration/rebalance
-    - name: 可视化监控
-      link: /administration/monitoring
-    - name: 集群升级
-      link: /administration/rolling-update
-    - name: 集群扩容缩容
-      link: /administration/membership-change
-    - name: 资源管理
-      link: /administration/resource-management
-    - name: 冷备份
-      link: /administration/cold-backup
-    - name: 元数据恢复
-      link: /administration/meta-recovery
-    - name: Replica数据恢复
-      link: /administration/replica-recovery
-    - name: Zookeeper迁移
-      link: /administration/zk-migration
-    - name: Table迁移
-      link: /administration/table-migration
-    - name: Table软删除
-      link: /administration/table-soft-delete
-    - name: Table环境变量
-      link: /administration/table-env
-    - name: 远程命令
-      link: /administration/remote-commands
-    - name: Partition-Split
-      link: /administration/partition-split
-    - name: 跨机房同步
-      link: /administration/duplication
-    - name: 数据压缩
-      link: /administration/compression
-    - name: 流量控制
-      link: /administration/throttling
-    - name: 运维经验
-      link: /administration/experiences
-    - name: Manual Compact功能
-      link: /administration/manual-compact
-    - name: Usage Scenario功能
-      link: /administration/usage-scenario
-    - name: 坏盘检修
-      link: /administration/bad-disk
-    - name: 白名单
-      link: /administration/whitelist
-    - name: Backup Request
-      link: /administration/backup-request
-
diff --git a/_data/api_menu.yml b/_data/api_menu.yml
deleted file mode 100644
index 5d92e0b..0000000
--- a/_data/api_menu.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-- items:
-    - name: API文档
-      link: /api
-    - name: TTL
-      link: /api/ttl
-    - name: 单行原子操作
-      link: /api/single-atomic
-    - name: Redis适配
-      link: /api/redis
-    - name: GEO支持
-      link: /api/geo
-    - name: HTTP接口
-      link: /api/http
diff --git a/_data/clients_menu.yml b/_data/clients_menu.yml
deleted file mode 100644
index 359f2f8..0000000
--- a/_data/clients_menu.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-- items:
-    - name: 客户端文档
-      link: /clients
-    - name: Java客户端文档
-      link: /clients/java-client
-    - name: Cpp客户端文档
-      link: /clients/cpp-client
-    - name: Go客户端文档
-      link: /clients/go-client
-    - name: Python客户端文档
-      link: /clients/python-client
-    - name: Node.js客户端文档
-      link: /clients/node-client
-    - name: Scala客户端文档
-      link: /clients/scala-client
diff --git a/_data/docs_menu.yml b/_data/docs_menu.yml
new file mode 100644
index 0000000..811260f
--- /dev/null
+++ b/_data/docs_menu.yml
@@ -0,0 +1,78 @@
+- name: title_clients
+  items:
+    - name: title_java_client
+      link: /docs/clients/java-client
+    - name: title_cpp_client
+      link: /docs/clients/cpp-client
+    - name: title_go_client
+      link: /docs/clients/go-client
+    - name: title_python_client
+      link: /docs/clients/python-client
+    - name: title_nodejs_client
+      link: /docs/clients/node-client
+    - name: title_scala_client
+      link: /docs/clients/scala-client
+- name: title_api
+  items:
+    - name: title_ttl
+      link: /docs/api/ttl
+    - name: title_single_atomic
+      link: /docs/api/single-atomic
+    - name: title_redis_api
+      link: /docs/api/redis
+    - name: title_geo_support
+      link: /docs/api/geo
+    - name: title_http_api
+      link: /docs/api/http
+- name: title_administration
+  items:
+    - name: title_deployment
+      link: /docs/administration/deployment
+    - name: title_config
+      link: /docs/administration/config
+    - name: title_rebalance
+      link: /docs/administration/rebalance
+    - name: title_monitoring
+      link: /docs/administration/monitoring
+    - name: title_rolling-update
+      link: /docs/administration/rolling-update
+    - name: title_scale-in-out
+      link: /docs/administration/membership-change
+    - name: title_resource-management
+      link: /docs/administration/resource-management
+    - name: title_cold-backup
+      link: /docs/administration/cold-backup
+    - name: title_meta-recovery
+      link: /docs/administration/meta-recovery
+    - name: title_replica-recovery
+      link: /docs/administration/replica-recovery
+    - name: title_zk-migration
+      link: /docs/administration/zk-migration
+    - name: title_table-migration
+      link: /docs/administration/table-migration
+    - name: title_table-soft-delete
+      link: /docs/administration/table-soft-delete
+    - name: title_table-env
+      link: /docs/administration/table-env
+    - name: title_remote-commands
+      link: /docs/administration/remote-commands
+    - name: title_partition-split
+      link: /docs/administration/partition-split
+    - name: title_duplication
+      link: /docs/administration/duplication
+    - name: title_compression
+      link: /docs/administration/compression
+    - name: title_throttling
+      link: /docs/administration/throttling
+    - name: title_experiences
+      link: /docs/administration/experiences
+    - name: title_manual-compact
+      link: /docs/administration/manual-compact
+    - name: title_usage-scenario
+      link: /docs/administration/usage-scenario
+    - name: title_bad-disk
+      link: /docs/administration/bad-disk
+    - name: title_whitelist
+      link: /docs/administration/whitelist
+    - name: title_backup-request
+      link: /docs/administration/backup-request
diff --git a/_data/en/translate.yml b/_data/en/translate.yml
new file mode 100644
index 0000000..96fb65d
--- /dev/null
+++ b/_data/en/translate.yml
@@ -0,0 +1,22 @@
+title_overview: "Overview"
+title_background: "Background"
+title_installation: "Installation"
+title_architecture: "Architecture"
+title_data-model: "Data Model"
+title_documentation: "Docs"
+title_clientlibs: "ClientLibs"
+title_api: "API"
+title_administration: "Admin"
+title_blog: "Blog"
+title_community: "Community"
+title_contact: "Contact"
+title_contribution: "Contribution"
+title_coding-guides: "Coding Guides"
+title_roadmap: "RoadMap"
+title_bug-tracking: "Bug Tracking"
+title_apache-proposal: "Apache Proposal"
+title_github: "Github"
+title_releases: "Releases"
+title_benchmark: "Benchmark"
+title_onebox: "Onebox"
+title_shell: "Pegasus Shell"
diff --git a/_data/navigation.yml b/_data/navigation.yml
index 663d3b8..d4da22e 100644
--- a/_data/navigation.yml
+++ b/_data/navigation.yml
@@ -1,37 +1,22 @@
-- name: Documentation
-  link: /overview
-  icon: fas fa-book
-  dropdown:
-  - name: 概览
-    link: /overview
-  - name: 客户端库
-    link: /clients
-  - name: 用户接口
-    link: /api
-  - name: 高效运维
-    link: /administration
-- name: Blog
-  link: /blogs
-  icon: fas fa-rss
-- name: Community
+- name: title_community
   link: /community
   icon: fas fa-user-plus
-  dropdown:
-  - name: 联系我们
+  items:
+  - name: title_contact
     link: /community/#联系我们
-  - name: 参与贡献
+  - name: title_contribution
     link: /community/#参与贡献
-  - name: Coding Guides
+  - name: title_coding-guides
     link: /community/coding-guides
-  - name: Roadmap
+  - name: title_roadmap
     link: /community/roadmap
-  - name: Bug Tracking
+  - name: title_bug-tracking
     link: https://github.com/XiaoMi/pegasus/labels/type%2Fbug
-  - name: Apache Proposal
+  - name: title_apache-proposal
     link: /community/proposal
-- name: Github
-  link: https://github.com/XiaoMi/pegasus
-  icon: fab fa-github-alt
-- name: Releases
+- name: title_blog
+  link: /blogs
+  icon: fas fa-rss
+- name: title_releases
   icon: fas fa-fire
   link: /releases
diff --git a/_data/overview_menu.yml b/_data/overview_menu.yml
index ff849ad..7d7d666 100644
--- a/_data/overview_menu.yml
+++ b/_data/overview_menu.yml
@@ -1,17 +1,17 @@
 - items:
-    - name: 概览
+    - name: title_overview
       link: /overview
-    - name: 项目背景
+    - name: title_background
       link: /overview/background
-    - name: 系统架构
+    - name: title_architecture
       link: /overview/architecture
-    - name: 数据模型
+    - name: title_data-model
       link: /overview/data-model
-    - name: Benchmark
+    - name: title_benchmark
       link: /overview/benchmark
-    - name: 编译构建
-      link: /overview/compilation
-    - name: 体验onebox集群
+    - name: title_installation
+      link: /overview/installation
+    - name: title_onebox
       link: /overview/onebox
-    - name: Shell工具
+    - name: title_shell
       link: /overview/shell
diff --git a/_data/zh/translate.yml b/_data/zh/translate.yml
new file mode 100644
index 0000000..65cdc25
--- /dev/null
+++ b/_data/zh/translate.yml
@@ -0,0 +1,60 @@
+title_overview: "概览"
+title_background: "项目背景"
+title_installation: "编译构建"
+title_architecture: "系统架构"
+title_data-model: "数据模型"
+title_documentation: "文档"
+title_clientlibs: "客户端库"
+title_api: "用户接口"
+title_administration: "高效运维"
+title_blog: "Blog"
+title_community: "开源社区"
+title_contact: "联系我们"
+title_contribution: "参与贡献"
+title_coding-guides: "编码指引"
+title_roadmap: "路线图"
+title_bug-tracking: "Bug追踪"
+title_apache-proposal: "Apache提案"
+title_github: "Github"
+title_releases: "版本发布"
+title_benchmark: "性能测试"
+title_onebox: "体验Onebox集群"
+title_shell: "Pegasus Shell 工具"
+title_java_client: "Java客户端"
+title_cpp_client: "C++客户端"
+title_go_client: "Golang客户端"
+title_python_client: "Python客户端"
+title_nodejs_client: "NodeJS客户端"
+title_scala_client: "Scala客户端"
+title_clients: "客户端库"
+title_api: "用户接口"
+title_ttl: "TTL"
+title_single_atomic: "单行原子操作"
+title_redis_api: "Redis适配"
+title_geo_support: "GEO支持"
+title_http_api: "HTTP接口"
+title_deployment: "集群部署"
+title_config: "配置说明"
+title_rebalance: "负载均衡"
+title_monitoring: "可视化监控"
+title_rolling-update: "集群升级"
+title_scale-in-out: "集群扩容缩容"
+title_resource-management: "资源管理"
+title_cold-backup: "冷备份"
+title_meta-recovery: "元数据恢复"
+title_replica-recovery: "Replica数据恢复"
+title_zk-migration: "Zookeeper迁移"
+title_table-migration: "Table迁移"
+title_table-soft-delete: "Table软删除"
+title_table-env: "Table环境变量"
+title_remote-commands: "远程命令"
+title_partition-split: "Partition-Split"
+title_duplication: "跨机房同步"
+title_compression: "数据压缩"
+title_throttling: "流量控制"
+title_experiences: "运维经验"
+title_manual-compact: "Manual Compact功能"
+title_usage-scenario: "Usage Scenario功能"
+title_bad-disk: "坏盘检修"
+title_whitelist: "白名单"
+title_backup-request: "Backup Request"
diff --git a/_includes/algolia.html b/_includes/algolia.html
index 83936c3..4b090ad 100644
--- a/_includes/algolia.html
+++ b/_includes/algolia.html
@@ -1,5 +1,3 @@
-<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
-
 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
 <script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
 
@@ -8,15 +6,6 @@
         indexName: '{{ site.algolia.index_name }}',
         apiKey: '{{ site.algolia.search_only_api_key }}',
         inputSelector: '.searchbox-input',
-        debug: false,
+        debug: true,
     });
-
-    $('.searchbox-input').focus(function () {
-        $('.navbar-searchbox .border').animate({ left: '0', width: '100%' })
-        $('.searchbox-icon').css({ color: 'white' })
-    })
-    $('.searchbox-input').focusout(function () {
-        $('.navbar-searchbox .border').animate({ left: '0', width: '0' })
-        $('.searchbox-icon').css({ color: 'hsl(0, 0%, 86%)' })
-    })
-</script>
+</script>
\ No newline at end of file
diff --git a/_includes/docs_header.html b/_includes/docs_header.html
new file mode 100644
index 0000000..6b22083
--- /dev/null
+++ b/_includes/docs_header.html
@@ -0,0 +1,53 @@
+<nav class="navbar">
+    <div class="navbar-brand">
+        <a href="{{ site.baseurl }}/" class="navbar-item is-hidden-desktop">
+            <!-- Pegasus Icon -->
+            <img src="{{ site.baseurl }}/assets/images/pegasus-square.png">
+        </a>
+        <div class="navbar-item is-hidden-desktop">
+            {% include language-switch.html %}
+        </div>
+        <div class="navbar-item is-hidden-desktop">
+            {% include searchbox.html %}
+        </div>
+        <a role="button" class="navbar-burger burger" aria-label="menu" aria-expanded="false" data-target="navMenu">
+            <!-- Appears in mobile mode only -->
+            <span aria-hidden="true"></span>
+            <span aria-hidden="true"></span>
+            <span aria-hidden="true"></span>
+        </a>
+    </div>
+    <div class="navbar-menu" id="navMenu">
+        <div class="navbar-start is-hidden-mobile w-full">
+            <div class="navbar-item pl-0 w-full">
+                {% include searchbox.html %}
+            </div>
+        </div>
+        <div class="navbar-end is-hidden-desktop">
+            {% for item in site.data.docs_menu %}
+            <!--dropdown-->
+            <div class="navbar-item has-dropdown is-hoverable ">
+                <a href="{{ item.link | prepend: site.baseurl }}"
+                    class="navbar-link {% if item.link == page.url %}is-active{% endif %}">
+                    <span>
+                        {{ site.data.translate[item.name] }}
+                    </span>
+                </a>
+                <div class="navbar-dropdown">
+                    {% for subitem in item.items %}
+                    <a href="{{ subitem.link | prepend: site.baseurl }}"
+                        class="navbar-item {% if subitem.link == page.url %}is-active{% endif %}">
+                        {{ site.data.translate[subitem.name] }}
+                    </a>
+                    {% endfor %}
+                </div>
+            </div>
+            {% endfor %}
+        </div>
+        <div class="navbar-end">
+            <div class="navbar-item is-hidden-mobile">
+                {% include language-switch.html %}
+            </div>
+        </div>
+    </div>
+</nav>
diff --git a/_includes/head.html b/_includes/head.html
index 4624526..4224aef 100644
--- a/_includes/head.html
+++ b/_includes/head.html
@@ -4,9 +4,11 @@
     <title>{{ site.title }} | {{ page.title }}</title>
     <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/app.css">
     <link rel="shortcut icon" href="{{ site.baseurl }}/assets/images/favicon.ico">
+    <link href="https://cdn.bootcdn.net/ajax/libs/tailwindcss/1.8.10/utilities.min.css" rel="stylesheet">
+    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
     <script src="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.13.0/js/all.min.js"></script>
     {% seo %}
     {%- if site.google_analytics -%}
-      {%- include google-analytics.html -%}
+    {%- include google-analytics.html -%}
     {%- endif -%}
 </head>
diff --git a/_includes/header.html b/_includes/header.html
index 617e879..6bf10ba 100644
--- a/_includes/header.html
+++ b/_includes/header.html
@@ -1,22 +1,42 @@
-<nav class="navbar {% if page.header_style %} {{ page.header_style }} {% else %} is-primary {% endif %}">
+{% if page.header_style %}
+{% assign navbar_style = page.header_style %}
+{% else %}
+{% assign navbar_style = "is-primary" %}
+{% endif %}
+
+{% if page.url == "/" %}
+{% assign navbar_brand_is_active = "is-active" %}
+{% endif %}
+
+<nav class="navbar {{ navbar_style }}">
     <div class="container">
+        <!--container will be unwrapped when it's in docs-->
         <div class="navbar-brand">
-            <a href="{{ site.baseurl }}/" class="navbar-item {% if page.url == "/" %}is-active{% endif %}">
-                <!-- {{ site.title }} -->
+            <a href="{{ site.baseurl }}/" class="navbar-item {{ navbar_brand_is_active }}">
+                <!-- Pegasus Icon -->
                 <img src="{{ site.baseurl }}/assets/images/pegasus-icon.png">
             </a>
+            <div class="navbar-item">
+                <a href="/docs" class="button is-primary is-outlined is-inverted">
+                    <span class="icon"><i class="fas fa-book"></i></span>
+                    <span>Docs</span>
+                </a>
+            </div>
+            <div class="navbar-item is-hidden-desktop">
+                  {% include language-switch.html %}
+            </div>
             <a role="button" class="navbar-burger burger" aria-label="menu" aria-expanded="false" data-target="navMenu">
+                <!-- Appears in mobile mode only -->
                 <span aria-hidden="true"></span>
                 <span aria-hidden="true"></span>
                 <span aria-hidden="true"></span>
             </a>
         </div>
         <div class="navbar-menu" id="navMenu">
-            <div class="navbar-start">
-                {% if site.data.navigation %}
+            <div class="navbar-end">
                 {% for item in site.data.navigation %}
-                {% if item.dropdown %}
-                <div class="navbar-item has-dropdown is-hoverable">
+                {% if item.items %} <!--dropdown-->
+                <div class="navbar-item has-dropdown is-hoverable ">
                     <a href="{{ item.link | prepend: site.baseurl }}"
                         class="navbar-link {% if item.link == page.url %}is-active{% endif %}">
                         {% if item.icon %}
@@ -24,12 +44,16 @@
                             <i class="{{ item.icon }}"></i>
                         </span>
                         {% endif %}
-                        <span>{{ item.name }}</span>
+                        <span>
+                            {{ site.data.translate[item.name] }}
+                        </span>
                     </a>
                     <div class="navbar-dropdown">
-                        {% for subitem in item.dropdown %}
+                        {% for subitem in item.items %}
                         <a href="{{ subitem.link | prepend: site.baseurl }}"
-                            class="navbar-item {% if subitem.link == page.url %}is-active{% endif %}">{{ subitem.name }}</a>
+                            class="navbar-item {% if subitem.link == page.url %}is-active{% endif %}">
+                            {{ site.data.translate[subitem.name] }}
+                        </a>
                         {% endfor %}
                     </div>
                 </div>
@@ -41,27 +65,14 @@
                         <i class="{{ item.icon }}"></i>
                     </span>
                     {% endif %}
-                    <span>{{ item.name }}</span>
+                    <span>{{ site.data.translate[item.name] }}</span>
                 </a>
                 {% endif %}
                 {% endfor %}
-                {% endif %}
             </div>
-            <div class="navbar-end is-hidden-mobile">
-                <div class="navbar-item navbar-searchbox">
-                    <div class="field">
-                        <div class="control has-icons-right">
-                            <input class="input searchbox-input" type="text" placeholder="Search the docs">
-                            <span class="border"></span>
-                            <span class="icon is-right searchbox-icon">
-                                <i class="fas fa-search"></i>
-                            </span>
-                        </div>
-                    </div>
-                </div>
+            <div class="navbar-item is-hidden-mobile">
+                {% include language-switch.html %}
             </div>
         </div>
     </div>
 </nav>
-
-{% include algolia.html %}
\ No newline at end of file
diff --git a/_includes/language-switch.html b/_includes/language-switch.html
new file mode 100644
index 0000000..cf3718e
--- /dev/null
+++ b/_includes/language-switch.html
@@ -0,0 +1,15 @@
+{% if page.collection == "docs" %}
+{% assign lang_switch_button = "is-light is-outlined is-inverted" %}
+{% else %}
+{% assign lang_switch_button = "is-primary is-outlined is-inverted" %}
+{% endif %}
+
+<!--A simple language switch button that only supports zh and en.-->
+<!--IF its language is zh, then switches to en.-->
+{% if site.active_lang == "zh" %}
+<a class="button {{ lang_switch_button }}" href="{{ page.url | prepend: '/en' }}"><strong>En</strong></a>
+{% elsif site.active_lang == "en" %}
+<!--If you don't want a url to be relativized, you can add a space explicitly into the href to 
+    prevents a url from being relativized by polyglot.-->
+<a class="button {{ lang_switch_button }}" href=" {{ page.url }}"><strong>中</strong></a>
+{% endif %}
\ No newline at end of file
diff --git a/_includes/menubar.html b/_includes/menubar.html
index 16e1f19..c3b8b85 100644
--- a/_includes/menubar.html
+++ b/_includes/menubar.html
@@ -1,21 +1,17 @@
 {% assign menus = site.data.[page.menubar] %}
 
 <aside class="menu">
-{% for menu in menus %}
-    <p class="menu-label">{{ menu.label }}</p>
+    {% for menu in menus %}
+    <p class="menu-label">{{ site.data.translate[menu.name] }}</p>
     <ul class="menu-list">
         {% for item in menu.items %}
         <li>
-            <a href="{{ item.link | prepend: site.baseurl }}" class="{% if item.link == page.url %}is-active{% endif %}">{{ item.name }}</a>
-            {% if item.items %}
-            <ul>
-                {% for subitem in item.items %}
-                <li><a href="{{ subitem.link | prepend: site.baseurl }}" class="{% if subitem.link == page.url %}is-active{% endif %}">{{ subitem.name }}</a></li>
-                {% endfor %}
-            </ul>
-            {% endif %}
+            <a href="{{ item.link | prepend: site.baseurl }}"
+                class="{% if item.link == page.url %}is-active{% endif %}">
+                {{ site.data.translate[item.name] }}
+            </a>
         </li>
-        {% endfor %}    
+        {% endfor %}
     </ul>
-{% endfor %}
-</aside>
+    {% endfor %}
+</aside>
\ No newline at end of file
diff --git a/_includes/rating.html b/_includes/rating.html
deleted file mode 100644
index f3a0e8c..0000000
--- a/_includes/rating.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-    <div class="content {% if include.align %} {{ include.align }} {% else %} has-text-centered {% endif %}">
-        {% for num in (1..include.rating) %}
-        <span class="icon">
-            <i class="fas fa-star"></i>
-        </span>
-        {% endfor %}
-        {% assign remainder = 5 | minus: include.rating %}
-        {% for num in (1..remainder) %}
-        <span class="icon">
-            <i class="far fa-star"></i>
-        </span>
-        {% endfor %}
-    </div>
diff --git a/_includes/review.html b/_includes/review.html
deleted file mode 100644
index dcc33f0..0000000
--- a/_includes/review.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<article class="media">
-    <figure class="media-left">
-    {% if review.avatar %}
-        <p class="image is-48x48">
-            <img src="https://bulma.io/images/placeholders/128x128.png">
-        </p>
-    {% else %}
-        <div class="icon is-large">
-            <i class="fas fa-user fa-2x"></i>
-        </div>
-    {% endif %}
-    </figure>
-    <div class="media-content">
-      <div class="content">
-        <p>
-          <strong>{{ review.name }}</strong> <small>{{ review.date }}</small>
-          <br>
-          {{ review.title }}
-          <br>
-          {{ review.description }}
-        </p>
-      </div>
-      {% if review.rating %}
-        {% include rating.html rating=review.rating align="has-text-left" %}
-      {% endif %}
-    </div>
-  </article>
\ No newline at end of file
diff --git a/_layouts/default.html b/_layouts/default.html
index 1003ac2..7f9fe87 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -3,7 +3,6 @@
   {% include head.html %}
   <body>
     {% include header.html %}
-    {% include hero-page.html %}
     <section class="section">
         <div class="container">
             <div class="columns is-multiline">
@@ -16,19 +15,8 @@
                     {% include tabs.html %}
                     {{ content }}
                 </div>
-                {% if site.posts and page.show_sidebar %}
-                <div class="column is-4-desktop is-12-tablet">
-                    {% include latest-posts.html %}
-                </div>
-                {% endif %}
                 <div class="column is-one-fourth is-hidden-mobile" style="padding-left: 3rem">
                     {% if page.toc %}
-                    <p class="menu-label">
-                        <span class="icon">
-                            <i class="fa fa-bars" aria-hidden="true"></i>
-                        </span>
-                        本页导航
-                    </p>
                     {% include toc.html html=content class="menu-list" sanitize=true %}
                     {% endif %}
                 </div>
diff --git a/_layouts/front.html b/_layouts/front.html
index ce6b8fd..ea786de 100644
--- a/_layouts/front.html
+++ b/_layouts/front.html
@@ -8,11 +8,16 @@
         style="background: url('{{ page.hero_image }}') no-repeat center center; background-size: cover;" {% endif %}>
         <div class="hero-body">
             <div class="container has-text-centered">
-                <p class="project-title title is-1 has-text-weight-medium" style="padding-bottom: 2rem; font-size: 70px;">
+                <p class="project-title title is-1 has-text-weight-medium"
+                    style="padding-bottom: 2rem; font-size: 70px;">
                     Apache Pegasus
                 </p>
-                <p class="subtitle is-4 has-text-white-bis has-text-weight-light" style="padding-bottom: 1rem;">
+                <p class="project-subtitle subtitle is-4 has-text-white-bis has-text-weight-light">
+                    {% if site.active_lang == "en" %}
                     A horizontally scalable, strongly consistent and high-performance key-value store
+                    {% else %}
+                    可水平扩展、高性能、强一致的分布式Key-Value数据库
+                    {% endif %}
                 </p>
                 <a style="padding-right: 0.5rem" href="https://www.apache.org/licenses/LICENSE-2.0">
                     <img alt="https://img.shields.io/github/license/xiaomi/pegasus.svg?style=flat-square&"
@@ -23,17 +28,17 @@
                         src="https://img.shields.io/github/stars/xiaomi/pegasus.svg?style=flat-square&">
                 </a>
                 <br>
-                <a style="padding-right: 0.5rem" href="https://github.com/XiaoMi/pegasus/issues?utf8=%E2%9C%93&q=label%3Arelease-note">
+                <a style="padding-right: 0.5rem"
+                    href="https://github.com/XiaoMi/pegasus/issues?utf8=%E2%9C%93&q=label%3Arelease-note">
                     <img alt="https://img.shields.io/github/release/xiaomi/pegasus.svg?style=flat-square&label=Pegasus"
                         src="https://img.shields.io/github/release/xiaomi/pegasus.svg?style=flat-square&label=Pegasus">
                 </a>
                 <a style="padding-right: 0.5rem" href="https://github.com/XiaoMi/pegasus-java-client/releases">
                     <img alt="https://img.shields.io/github/release/xiaomi/pegasus-java-client.svg?style=flat-square&label=Pegasus-Java-Client"
                         src="https://img.shields.io/github/release/xiaomi/pegasus-java-client.svg?style=flat-square&label=Pegasus-Java-Client">
-                </a>    
+                </a>
                 <div style="padding-top: 2rem" class="buttons is-centered">
-                    <a class="button is-light is-outlined is-rounded is-large"
-                        style="transition:.5s; padding-right: 3rem; padding-left: 3rem;"
+                    <a class="button is-light is-large front-start-button"
                         href="{{ site.baseurl }}/overview">
                         <span class="icon"><i class="fas fa-chevron-right"></i></span>
                         <span>
@@ -41,6 +46,9 @@
                             <strong>Started</strong>
                         </span>
                     </a>
+                    <a class="button is-dark is-large front-github-button" href="{{ site.pegasus_github_url }}">
+                        <span class="icon"><i class="fab fa-github-alt"></i></span>
+                    </a>
                 </div>
             </div>
         </div>
diff --git a/_layouts/page.html b/_layouts/page.html
index 7d722ac..865c0d6 100644
--- a/_layouts/page.html
+++ b/_layouts/page.html
@@ -2,6 +2,9 @@
 layout: default
 ---
 
+{% assign page_title = page.slug | prepend: 'title_' %}
+
 <div class="content">
+    <h1 id="{{ site.data.translate[page_title] }}">{{ site.data.translate[page_title] }}</h1>
     {{ content }}
 </div>
\ No newline at end of file
diff --git a/_layouts/product-category.html b/_layouts/product-category.html
deleted file mode 100644
index 519eaba..0000000
--- a/_layouts/product-category.html
+++ /dev/null
@@ -1,42 +0,0 @@
----
-layout: default
-show_sidebar: false
----
-
-<div class="columns is-multiline">
-
-  <div class="column is-12">
-    {{ page.content }}
-  </div>
-
-  {% assign sorted_products = site.products | sort:page.sort %}
-
-  {% for product in sorted_products %}
-  <div class="column is-4-desktop is-6-tablet">
-
-    <a href="{{ product.url | prepend: site.baseurl }}">
-
-      <div class="card">
-
-        {% if product.image %}
-        <div class="card-image">
-          <figure class="image is-4by3">
-            <img src="{{ product.image }}" alt="{{ product.title }}" />
-          </figure>
-        </div>
-        {% endif %}
-        <div class="card-content">
-
-          <p class="title is-4">{{ product.title }}</h2>
-          <p class="subtitle is-4">{{ product.subtitle }}</p>  
-          <p class="title is-5 has-text-right">{{ product.price }}</p>
-
-        </div>
-      </div>
-
-    </a>
-
-  </div>
-{% endfor %}
-</div>
-
diff --git a/_layouts/product.html b/_layouts/product.html
deleted file mode 100644
index 3121b95..0000000
--- a/_layouts/product.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-layout: default
----
-
-<div class="columns is-multiline">
-
-    <div class="column is-6">
-        <figure class="image is-4by3">
-            <img src="{{ page.image }}" />
-        </figure>
-    </div>
-
-    <div class="column is-6">
-        <p class="title is-3">{{ page.title }}</p>
-        <p class="subtitle is-3">{{ page.subtitle }}</p>
-        <p class="title is-4 has-text-right">{{ page.price }}</p>
-        {% if page.product_code %}
-        <p class="subtitle is-5 has-text-right">{{ page.product_code }}</p>
-        {% endif %}
-        
-        {% if page.rating %}
-            {% include rating.html rating=page.rating %}
-        {% endif %}
-        
-        {% if page.features %}
-        <div class="content">
-            {% for feature in page.features %}
-            <p>
-                <span class="icon">
-                    {% if feature.icon %}
-                    <i class="fas {{ feature.icon }}"></i>
-                    {% else %}
-                    <i class="fas fa-circle fa-xs"></i>
-                    {% endif %}
-                </span> 
-                <span>{{ feature.label }}</span></p>
-            {% endfor %}
-        </div>
-        {% endif %}
-    </div>
-
-    <div class="column is-12">
-        <p class="title is-4">Description</p>
-        <div class="content">
-            
-    
-            {{ content }}
-        </div>
-    </div>
-
-    {% if site.data.reviews[page.product_code] %}
-    <div class="column is-12">
-        <p class="title is-4">Reviews</p>
-        {% for review in site.data.reviews[page.product_code] %}
-        {% include review.html %}
-        {% endfor %}
-    </div>
-    {% endif %}
-
-</div>
-
diff --git a/_overview/en/architecture.md b/_overview/en/architecture.md
new file mode 100644
index 0000000..d67be02
--- /dev/null
+++ b/_overview/en/architecture.md
@@ -0,0 +1,5 @@
+---
+permalink: /overview/architecture
+---
+
+TRANSLATING
diff --git a/_overview/en/background.md b/_overview/en/background.md
new file mode 100644
index 0000000..2341c19
--- /dev/null
+++ b/_overview/en/background.md
@@ -0,0 +1,5 @@
+---
+permalink: /overview/background/
+---
+
+TRANSLATING
diff --git a/_overview/en/benchmark.md b/_overview/en/benchmark.md
new file mode 100755
index 0000000..2a04b7e
--- /dev/null
+++ b/_overview/en/benchmark.md
@@ -0,0 +1,5 @@
+---
+permalink: /overview/benchmark/
+---
+
+TRANSLATING
diff --git a/_overview/en/data-model.md b/_overview/en/data-model.md
new file mode 100644
index 0000000..e43423b
--- /dev/null
+++ b/_overview/en/data-model.md
@@ -0,0 +1,5 @@
+---
+permalink: /overview/data-model/
+---
+
+TRANSLATING
diff --git a/_overview/en/installation.md b/_overview/en/installation.md
new file mode 100755
index 0000000..4e093dd
--- /dev/null
+++ b/_overview/en/installation.md
@@ -0,0 +1,5 @@
+---
+permalink: /overview/installation/
+---
+
+TRANSLATING
diff --git a/_overview/en/onebox.md b/_overview/en/onebox.md
new file mode 100755
index 0000000..3d14f08
--- /dev/null
+++ b/_overview/en/onebox.md
@@ -0,0 +1,5 @@
+---
+permalink: /overview/onebox/
+---
+
+TRANSLATING
diff --git a/_overview/en/overview.md b/_overview/en/overview.md
new file mode 100755
index 0000000..6675664
--- /dev/null
+++ b/_overview/en/overview.md
@@ -0,0 +1,6 @@
+---
+permalink: overview/index.html
+lang: en
+---
+
+TRANSLATING
diff --git a/_overview/en/shell.md b/_overview/en/shell.md
new file mode 100755
index 0000000..7afb76d
--- /dev/null
+++ b/_overview/en/shell.md
@@ -0,0 +1,5 @@
+---
+permalink: /overview/shell/
+---
+
+TRANSLATING
diff --git a/_overview/architecture.md b/_overview/zh/architecture.md
similarity index 96%
rename from _overview/architecture.md
rename to _overview/zh/architecture.md
index 20058df..ecbfa9f 100644
--- a/_overview/architecture.md
+++ b/_overview/zh/architecture.md
@@ -1,8 +1,5 @@
 ---
-title: 系统架构
-layout: page
-show_sidebar: false
-menubar: overview_menu
+permalink: /overview/architecture
 ---
 
 ## 整体架构
diff --git a/_overview/background.md b/_overview/zh/background.md
similarity index 99%
rename from _overview/background.md
rename to _overview/zh/background.md
index 5b74cd8..757bd81 100644
--- a/_overview/background.md
+++ b/_overview/zh/background.md
@@ -1,7 +1,5 @@
 ---
-title: 项目背景
-layout: page
-menubar: overview_menu
+permalink: /overview/background/
 ---
 
 小米云平台长期以来一直使用开源的[Apache HBase](https://hbase.apache.org/)来存储结构化/半结构化数据,并逐渐成为国内使用HBase最多的公司之一,同时也培养了一个比较有实力的HBase开发团队,前后共产生了6位[HBase Committer](https://hbase.apache.org/team-list.html),包括一位PMC成员。可以说,HBase在小米云存储中起到了举足轻重的作用,而小米也为HBase社区贡献出一份重要的力量。
diff --git a/_overview/benchmark.md b/_overview/zh/benchmark.md
similarity index 99%
rename from _overview/benchmark.md
rename to _overview/zh/benchmark.md
index c78e6ac..d3c3aa7 100755
--- a/_overview/benchmark.md
+++ b/_overview/zh/benchmark.md
@@ -1,8 +1,5 @@
 ---
-title: Benchmark
-layout: page
-show_sidebar: false
-menubar: overview_menu
+permalink: /overview/benchmark/
 ---
 
 ## 测试环境
diff --git a/_overview/data-model.md b/_overview/zh/data-model.md
similarity index 97%
rename from _overview/data-model.md
rename to _overview/zh/data-model.md
index 81e1e6b..7730531 100644
--- a/_overview/data-model.md
+++ b/_overview/zh/data-model.md
@@ -1,8 +1,5 @@
 ---
-title: 数据模型
-layout: page
-show_sidebar: false
-menubar: overview_menu
+permalink: /overview/data-model/
 ---
 
 ## 模型介绍
diff --git a/_overview/compilation.md b/_overview/zh/installation.md
similarity index 98%
rename from _overview/compilation.md
rename to _overview/zh/installation.md
index dd09567..41c12e1 100755
--- a/_overview/compilation.md
+++ b/_overview/zh/installation.md
@@ -1,8 +1,5 @@
 ---
-title: 编译构建
-layout: page
-show_sidebar: false
-menubar: overview_menu
+permalink: /overview/installation/
 ---
 
 Pegasus目前只支持Linux平台。目前在CentOS、Ubuntu上都测试运行过。
diff --git a/_overview/onebox.md b/_overview/zh/onebox.md
similarity index 96%
rename from _overview/onebox.md
rename to _overview/zh/onebox.md
index 1313811..bdfd4f6 100755
--- a/_overview/onebox.md
+++ b/_overview/zh/onebox.md
@@ -1,8 +1,5 @@
 ---
-title: 体验onebox集群
-layout: page
-show_sidebar: false
-menubar: overview_menu
+permalink: /overview/onebox/
 ---
 
 # 什么是onebox集群
diff --git a/_overview/index.md b/_overview/zh/overview.md
similarity index 98%
rename from _overview/index.md
rename to _overview/zh/overview.md
index 358a6a6..89c79bc 100755
--- a/_overview/index.md
+++ b/_overview/zh/overview.md
@@ -1,7 +1,5 @@
 ---
-title: 概览
-layout: page
-menubar: overview_menu
+permalink: overview/index.html
 ---
 
 ## 项目概览
diff --git a/_overview/shell.md b/_overview/zh/shell.md
similarity index 99%
rename from _overview/shell.md
rename to _overview/zh/shell.md
index 89be132..86f172f 100755
--- a/_overview/shell.md
+++ b/_overview/zh/shell.md
@@ -1,8 +1,5 @@
 ---
-title: Shell工具
-layout: page
-show_sidebar: false
-menubar: overview_menu
+permalink: /overview/shell/
 ---
 
 Pegasus提供了Shell工具,用于查看集群相关信息,创建/删除表,操作数据等。
diff --git a/_sass/_layout.scss b/_sass/_layout.scss
index 1c216ec..f460a2a 100644
--- a/_sass/_layout.scss
+++ b/_sass/_layout.scss
@@ -10,38 +10,6 @@
     }
 }
 
-.navbar-searchbox input {
-    width: 100%;
-    border: 0;
-    border-bottom: 1px solid $grey-lighter;
-    border-radius: 0;
-    box-shadow: none;
-    background: inherit;
-    color: white;
-}
-.navbar-searchbox input:focus {
-    outline: none;
-    box-shadow: none;
-    border-color: $grey-lighter;
-}
-.navbar-searchbox input:hover {
-    border-color: $grey-lighter; // keeps unchanged on hovering
-}
-// auto-hide placeholder text
-.navbar-searchbox input:focus::-webkit-input-placeholder { color:transparent; }
-.navbar-searchbox input:focus:-moz-placeholder { color:transparent; } /* FF 4-18 */
-.navbar-searchbox input:focus::-moz-placeholder { color:transparent; } /* FF 19+ */
-.navbar-searchbox input:focus:-ms-input-placeholder { color:transparent; } /* IE 10+ */
-// border animation
-.navbar-searchbox .border {
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    height: 1px;
-    width: 0;
-    background: white;
-}
-
 .content-toc {
     box-shadow: $box-shadow;
     padding: 1.5rem;
@@ -64,6 +32,32 @@
     font-family: 'Patua One', cursive;
 }
 
+.project-subtitle {
+    padding-bottom: 1rem;
+}
+
 .contributor-item-icon {
     margin-bottom: 1.5rem;
-}
\ No newline at end of file
+}
+
+.front-github-button {
+    border-radius: 0;
+}
+
+.front-start-button {
+    padding-left: 2rem;
+    padding-right: 2rem;
+    border-radius: 0;
+}
+
+.navbar-searchbox input {
+    background: inherit;
+    box-shadow: none;
+    border: 0;
+    border-radius: 0;
+    color: #363636;
+}
+.navbar-searchbox input:focus {
+    outline: none;
+    box-shadow: none;
+}
diff --git a/_sass/_main.scss b/_sass/_main.scss
index a05e1e6..73e3fff 100644
--- a/_sass/_main.scss
+++ b/_sass/_main.scss
@@ -1,6 +1,8 @@
 @charset "utf-8";
+// for apache pegasus title
 @import url(//fonts.googleapis.com/css?family=Patua+One);
 @import url(//fonts.googleapis.com/css?family=Ubuntu+Mono);
+@import url(//fonts.googleapis.com/css?family=Titillium+Web);
 
 $primary: #188eac !default;
 $info: #419eda;
@@ -8,9 +10,11 @@ $black: hsl(0, 0%, 0%);
 $tabs-link-active-color: $primary;
 $tabs-link-active-border-bottom-color: $primary;
 $navbar-height: 4.0rem;
+$family-sans-serif: "Titillium Web";
 
-$input-placeholder-color: hsl(0, 0%, 86%);
+$input-placeholder-color: hsl(0, 0%, 50%);
 
 @import "../node_modules/bulma/bulma.sass";
+@import "../node_modules/bulma-dashboard/src/bulma-dashboard.sass";
 @import "layout";
 @import "syntax"
\ No newline at end of file
diff --git a/assets/images/pegasus-logo-inv.png b/assets/images/pegasus-logo-inv.png
new file mode 100755
index 0000000..42b7872
Binary files /dev/null and b/assets/images/pegasus-logo-inv.png differ
diff --git a/assets/images/pegasus-square.png b/assets/images/pegasus-square.png
new file mode 100755
index 0000000..57596c7
Binary files /dev/null and b/assets/images/pegasus-square.png differ
diff --git a/assets/js/app.js b/assets/js/app.js
index ffe85c5..1b262e8 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -33,4 +33,9 @@ $('.release-button').click(function () {
 $('.modal-background, .modal-close').click(function () {
   $('html').removeClass('is-clipped');
   $(this).parent().removeClass('is-active');
-});
\ No newline at end of file
+});
+
+// Wrap every table and make them scrollable
+document.addEventListener('DOMContentLoaded', () => {
+  $("table").wrap("<div class=\"table-container\"></div>")
+})
diff --git a/node_modules/bulma-dashboard/LICENSE b/node_modules/bulma-dashboard/LICENSE
new file mode 100644
index 0000000..50414d8
--- /dev/null
+++ b/node_modules/bulma-dashboard/LICENSE
@@ -0,0 +1,5 @@
+Copyright 2018 Luc Perkins
+
+Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/bulma-dashboard/README.md b/node_modules/bulma-dashboard/README.md
new file mode 100644
index 0000000..c9962cf
--- /dev/null
+++ b/node_modules/bulma-dashboard/README.md
@@ -0,0 +1,93 @@
+# Bulma Dashboard
+
+**Bulma Dashboard** is extension for the [Bulma](https://bulma.io) CSS framework that enables you to easily write dashboard-style interfaces with fixed horizontal panels.
+
+## Installing
+
+The Bulma Dashboard extension is available as an [npm](https://npmjs.org) package:
+
+```shell
+npm install bulma-dashboard
+```
+
+You can also download or link to the Sass or CSS files directly.
+
+## Usage
+
+All functionality is used inside of the `dashboard` class, which is intended to take up the entire page. Here's an example:
+
+```html
+<div class="dashboard is-full-height">
+  <!-- left panel -->
+  <div class="dashboard-panel is-one-quarter">
+  </div>
+
+  <!-- main section -->
+  <div class="dashboard-main is-scrollable">
+    <nav class="navbar is-fixed-top">
+      <div class="navbar-brand">
+        <span class="navbar-item">
+          Bulma Dashbaord
+        </span>
+      </div>
+    </nav>
+
+    <section class="section">
+      <p class="title">
+        Main
+      </p>
+    </section>
+
+    <!-- the footer will take up all unused space at the bottom -->
+    <footer class="footer">
+
+    </footer>
+  </div>
+
+  <!-- right panel -->
+  <div class="dashboard-panel is-small">
+  </div>
+</div>
+```
+
+## Example
+
+You can see an example page in [`assets/example.html`](assets/example.html). Here's a screenshot:
+
+![Bulma Dashboard screenshot](docs/screenshot.png)
+
+You can visit that page [here](https://lucperkins.github.io/bulma-dashboard/index.html).
+
+## Footer
+
+If you add a Bulma `footer` in the dashboard main section, it will "stick" to the bottom and fill up all remaining space.
+
+## Sizes
+
+There are a variety of widths available for panels:
+
+Class | Width
+:-----|:-----
+`is-one-quarter` | 1/4
+`is-half` | 1/2
+`is-one-third` | 1/3
+`is-small` | 15rem
+`is-medium` | 25rem
+`is-large` | 30rem
+
+> By default, panels are 25rem wide. You can change that default using the `$dashboard-default-panel-width` variable.
+
+## Scrolling
+
+You can add the `is-scrollable` class to any element to make it scrollable.
+
+## Padding
+
+You can add the `has-thick-padding` class to a panel to bulk up the padding to double the default.
+
+## Variables
+
+Variable | Default | Meaning
+:--------|:--------|:-------
+`$dashboard-default-panel-width` | 25rem | The default panel width if no size modifier is added
+`$dashboard-default-panel-padding` | 1.5rem | The padding in panels
diff --git a/node_modules/bulma-dashboard/dist/bulma-dashboard.css b/node_modules/bulma-dashboard/dist/bulma-dashboard.css
new file mode 100644
index 0000000..f798fae
--- /dev/null
+++ b/node_modules/bulma-dashboard/dist/bulma-dashboard.css
@@ -0,0 +1,75 @@
+.is-scrollable {
+  overflow-y: auto;
+}
+
+.dashboard {
+  display: flex;
+  flex-direction: row;
+}
+.dashboard.is-full-height {
+  height: 100vh;
+}
+.dashboard-panel {
+  display: flex;
+  flex-direction: column;
+  padding: 2rem 1.5rem;
+  flex: 0 0 25rem;
+  height: 100%;
+}
+.dashboard-panel.left {
+  flex: 0 0 25rem;
+}
+.dashboard-panel.right {
+  flex: 0 0 25rem;
+}
+.dashboard-panel.has-thick-padding {
+  padding: 3rem 2rem;
+}
+.dashboard-panel.is-one-quarter {
+  flex: 0 0 25%;
+}
+.dashboard-panel.is-half {
+  flex: 0 0 50%;
+}
+.dashboard-panel.is-one-third {
+  flex: 0 0 33.3333333333%;
+}
+.dashboard-panel.is-small {
+  flex: 0 0 15rem;
+}
+.dashboard-panel.is-medium {
+  flex: 0 0 20rem;
+}
+.dashboard-panel.is-large {
+  flex: 0 0 30rem;
+}
+.dashboard-panel-header.is-centered, .dashboard-panel-content.is-centered, .dashboard-panel-footer.is-centered {
+  display: flex;
+  justify-content: center;
+}
+.dashboard-panel-header {
+  margin-bottom: 2rem;
+}
+.dashboard-panel-main {
+  flex: 1;
+}
+.dashboard-panel-footer {
+  margin-top: 2rem;
+}
+.dashboard-main {
+  display: flex;
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  min-height: 100vh;
+}
+.dashboard-main .navbar.is-fixed-top {
+  position: -webkit-sticky;
+  position: sticky;
+  top: 0;
+}
+.dashboard-main .footer {
+  flex: 1;
+}
+
+/*# sourceMappingURL=bulma-dashboard.css.map */
diff --git a/node_modules/bulma-dashboard/dist/bulma-dashboard.css.map b/node_modules/bulma-dashboard/dist/bulma-dashboard.css.map
new file mode 100644
index 0000000..814dc86
--- /dev/null
+++ b/node_modules/bulma-dashboard/dist/bulma-dashboard.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../src/bulma-dashboard.sass"],"names":[],"mappings":"AA6BA;EACE;;;AAEF;EAvBE;EAIA;;AAsBA;EACE;;AAEF;EA7BA;EAQA;EAuBE,SAvCsB;EAwCtB;EACA,QAxCqB;;AA0CrB;EArBF;;AAwBE;EAxBF;;AA2BE;EACE;;AAEF;EA9BF;;AAgCE;EAhCF;;AAkCE;EAlCF;;AAoCE;EApCF;;AAsCE;EAtCF;;AAwCE;EAxCF;;AA4CI;EA1DJ;EAkBA;;AA2CE;EACE,eApEiC;;AAsEnC;EArDF;;AAwDE;EACE,YAzE8B;;AA2ElC;EAtEA;EAWA;EAXA;EAQA;EAkEE;;AAGE;EACE;EACA;EACA;;AAEJ;EAvEF","file":"bulma-dashboard.css"}
\ No newline at end of file
diff --git a/node_modules/bulma-dashboard/dist/bulma-dashboard.min.css b/node_modules/bulma-dashboard/dist/bulma-dashboard.min.css
new file mode 100644
index 0000000..e37c9be
--- /dev/null
+++ b/node_modules/bulma-dashboard/dist/bulma-dashboard.min.css
@@ -0,0 +1 @@
+.is-scrollable{overflow-y:auto}.dashboard{display:flex;flex-direction:row}.dashboard.is-full-height{height:100vh}.dashboard-panel{display:flex;flex-direction:column;padding:2rem 1.5rem;flex:0 0 25rem;height:100%}.dashboard-panel.left{flex:0 0 25rem}.dashboard-panel.right{flex:0 0 25rem}.dashboard-panel.has-thick-padding{padding:3rem 2rem}.dashboard-panel.is-one-quarter{flex:0 0 25%}.dashboard-panel.is-half{flex:0 0 50%}.dashboard-panel.is-one-third{flex:0 0 33.3333333333%}.dashboard-pane [...]
diff --git a/node_modules/bulma-dashboard/dist/bulma-dashboard.min.css.map b/node_modules/bulma-dashboard/dist/bulma-dashboard.min.css.map
new file mode 100644
index 0000000..8c57683
--- /dev/null
+++ b/node_modules/bulma-dashboard/dist/bulma-dashboard.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../src/bulma-dashboard.sass"],"names":[],"mappings":"AA6BA,eACE,gBAEF,WAvBE,aAIA,mBAsBA,0BACE,aAEF,iBA7BA,aAQA,sBAuBE,QAvCsB,YAwCtB,eACA,OAxCqB,KA0CrB,sBArBF,eAwBE,uBAxBF,eA2BE,mCACE,kBAEF,gCA9BF,aAgCE,yBAhCF,aAkCE,8BAlCF,wBAoCE,0BApCF,eAsCE,2BAtCF,eAwCE,0BAxCF,eA4CI,6GA1DJ,aAkBA,uBA2CE,wBACE,cApEiC,KAsEnC,sBArDF,OAwDE,wBACE,WAzE8B,KA2ElC,gBAtEA,aAWA,OAXA,aAQA,sBAkEE,iBAGE,qCACE,wBACA,gBACA,MAEJ,wBAvEF","file":"bulma-dashboard.min.css"}
\ No newline at end of file
diff --git a/node_modules/bulma-dashboard/package.json b/node_modules/bulma-dashboard/package.json
new file mode 100644
index 0000000..85cbb77
--- /dev/null
+++ b/node_modules/bulma-dashboard/package.json
@@ -0,0 +1,44 @@
+{
+  "_from": "bulma-dashboard",
+  "_id": "bulma-dashboard@0.3.1",
+  "_inBundle": false,
+  "_integrity": "sha512-SRkBz2g5N7w8ODSxN23MDSe0nK+beb8jgeRdiKdbsq2LXTXN5TNoyWvpaScj28blNJift+Ks92XoUohvdPkL5A==",
+  "_location": "/bulma-dashboard",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "tag",
+    "registry": true,
+    "raw": "bulma-dashboard",
+    "name": "bulma-dashboard",
+    "escapedName": "bulma-dashboard",
+    "rawSpec": "",
+    "saveSpec": null,
+    "fetchSpec": "latest"
+  },
+  "_requiredBy": [
+    "#USER",
+    "/"
+  ],
+  "_resolved": "https://registry.npmjs.org/bulma-dashboard/-/bulma-dashboard-0.3.1.tgz",
+  "_shasum": "d16b783ee484b8212b7df9300baad96b7f407f7e",
+  "_spec": "bulma-dashboard",
+  "_where": "/home/wutao1/incubator-pegasus-website",
+  "author": {
+    "name": "Luc Perkins",
+    "email": "lucperkins@gmail.com"
+  },
+  "bugs": {
+    "url": "https://github.com/lucperkins/bulma-dashboard/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "A dashboard plugin for the Bulma CSS framework",
+  "homepage": "https://github.com/lucperkins/bulma-dashboard#readme",
+  "license": "ISC",
+  "name": "bulma-dashboard",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/lucperkins/bulma-dashboard.git"
+  },
+  "version": "0.3.1"
+}
diff --git a/node_modules/bulma-dashboard/src/bulma-dashboard.sass b/node_modules/bulma-dashboard/src/bulma-dashboard.sass
new file mode 100644
index 0000000..e3b00ab
--- /dev/null
+++ b/node_modules/bulma-dashboard/src/bulma-dashboard.sass
@@ -0,0 +1,93 @@
+$dashboard-panel-width: 25rem !default
+$dashboard-panel-padding: 2rem 1.5rem !default
+$dashboard-panel-height: 100% !default
+$dashboard-panel-header-bottom-margin: 2rem !default
+$dashboard-panel-footer-top-margin: 2rem !default
+$dashboard-panel-width-left: $dashboard-panel-width !default
+$dashboard-panel-width-right: $dashboard-panel-width !default
+
+=flex
+  display: flex
+
+=row
+  +flex
+  flex-direction: row
+
+=column
+  +flex
+  flex-direction: column
+
+=fill
+  flex: 1
+
+=panel($width)
+  flex: 0 0 $width
+
+=x-centered
+  +flex
+  justify-content: center
+
+.is-scrollable
+  overflow-y: auto
+
+.dashboard
+  +row
+
+  &.is-full-height
+    height: 100vh
+
+  &-panel
+    +column
+    padding: $dashboard-panel-padding
+    flex: 0 0 $dashboard-panel-width
+    height: $dashboard-panel-height
+
+    &.left
+      +panel($dashboard-panel-width-left)
+
+    &.right
+      +panel($dashboard-panel-width-right)
+
+    &.has-thick-padding
+      padding: 3rem 2rem
+
+    &.is-one-quarter
+      +panel(25%)
+    &.is-half
+      +panel(50%)
+    &.is-one-third
+      +panel(percentage(1 / 3))
+    &.is-small
+      +panel(15rem)
+    &.is-medium
+      +panel(20rem)
+    &.is-large
+      +panel(30rem)
+
+    &-header, &-content, &-footer
+      &.is-centered
+        +x-centered
+
+    &-header
+      margin-bottom: $dashboard-panel-header-bottom-margin
+
+    &-main
+      +fill
+
+    &-footer
+      margin-top: $dashboard-panel-footer-top-margin
+
+  &-main
+    +flex
+    +fill
+    +column
+    min-height: 100vh
+  
+    .navbar
+      &.is-fixed-top
+        position: -webkit-sticky
+        position: sticky
+        top: 0
+
+    .footer
+      +fill


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pegasus.apache.org
For additional commands, e-mail: commits-help@pegasus.apache.org