You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by gi...@apache.org on 2021/03/16 03:15:19 UTC

[skywalking-website] branch asf-site updated: deploy: 4bed072050b53050b488c35dbae99a3802b2ad61

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

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/skywalking-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new b052a7a  deploy: 4bed072050b53050b488c35dbae99a3802b2ad61
b052a7a is described below

commit b052a7ac58f0be86827abdbb9fe7437842c1f903
Author: wu-sheng <wu...@users.noreply.github.com>
AuthorDate: Tue Mar 16 03:15:10 2021 +0000

    deploy: 4bed072050b53050b488c35dbae99a3802b2ad61
---
 404.html                                           |   4 +-
 blog/2018-05-24-skywalking-net/index.html          |  35 +-
 .../index.html                                     |  35 +-
 blog/2019-01-01-understand-trace/index.html        |  35 +-
 blog/2019-01-25-mesh-loadtest/index.html           |  35 +-
 blog/2019-09-25-alarm-webhook-share/index.html     |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 blog/2020-07-26-apdex-and-skywalking/index.html    |  35 +-
 blog/2020-08-03-skywalking8-1-release/index.html   |  35 +-
 blog/2020-08-11-observability-at-scale/index.html  |  35 +-
 blog/2020-10-29-skywalking8-2-release/index.html   |  35 +-
 blog/2020-11-21-apachecon-keynote/index.html       |  35 +-
 blog/2020-11-21-apachecon-obs-apisix/index.html    |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 blog/2020-11-21-apachecon-obs-storage/index.html   |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 blog/2021-01-01-300-contributors-mark/index.html   |  35 +-
 blog/2021-01-17-elastic-change-license/index.html  |  35 +-
 .../index.html                                     |  35 +-
 blog/2021-02-01-e2e-verifier-design/index.html     |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 blog/2021-03-16-continuous-feedback/index.html     |  35 +-
 blog/e2e-design/index.html                         |  35 +-
 blog/index.html                                    |  31 +-
 .../obs-service-mesh-vm-with-sw-and-als/index.html |  35 +-
 blog/page/2/index.html                             |  31 +-
 blog/page/3/index.html                             |  31 +-
 blog/skywalking8-4-release/index.html              |  35 +-
 docs/index.html                                    |   4 +-
 .../backend-overview/index.html                    |  31 +-
 .../en/concepts-and-designs/event/index.html       |  31 +-
 .../latest/en/concepts-and-designs/lal/index.html  |  31 +-
 .../latest/en/concepts-and-designs/mal/index.html  |  31 +-
 .../en/concepts-and-designs/manual-sdk/index.html  |  31 +-
 .../en/concepts-and-designs/meter/index.html       |  31 +-
 .../latest/en/concepts-and-designs/oal/index.html  |  31 +-
 .../en/concepts-and-designs/overview/index.html    |  31 +-
 .../probe-introduction/index.html                  |  31 +-
 .../concepts-and-designs/project-goals/index.html  |  31 +-
 .../scope-definitions/index.html                   |  31 +-
 .../concepts-and-designs/service-agent/index.html  |  31 +-
 .../service-mesh-probe/index.html                  |  31 +-
 .../en/concepts-and-designs/ui-overview/index.html |  31 +-
 .../index.html                                     |  31 +-
 .../index.html                                     |  31 +-
 docs/main/latest/en/faq/es-server-faq/index.html   |  31 +-
 .../en/faq/hour-day-metrics-stopping/index.html    |  31 +-
 .../en/faq/how-to-build-with-mac-m1/index.html     |  31 +-
 .../index.html                                     |  31 +-
 .../en/faq/install_agent_on_websphere/index.html   |  31 +-
 docs/main/latest/en/faq/kafka-plugin/index.html    |  31 +-
 .../en/faq/maven-compile-npm-failure/index.html    |  31 +-
 .../memory-leak-enhance-worker-thread/index.html   |  31 +-
 .../faq/protoc-plugin-fails-when-build/index.html  |  31 +-
 docs/main/latest/en/faq/readme/index.html          |  31 +-
 docs/main/latest/en/faq/thrift-plugin/index.html   |  31 +-
 .../latest/en/faq/time-and-timezone/index.html     |  31 +-
 .../en/faq/unexpected-endpoint-register/index.html |  31 +-
 .../latest/en/faq/v3-version-upgrade/index.html    |  31 +-
 .../latest/en/faq/v6-version-upgrade/index.html    |  31 +-
 .../latest/en/faq/v8-version-upgrade/index.html    |  31 +-
 docs/main/latest/en/faq/vnode/index.html           |  31 +-
 .../en/faq/why-have-traces-no-others/index.html    |  31 +-
 .../latest/en/faq/why_mq_not_involved/index.html   |  31 +-
 .../main/latest/en/guides/asf/committer/index.html |  31 +-
 .../en/guides/backend-oal-scripts/index.html       |  31 +-
 .../en/guides/backend-profile-export/index.html    |  31 +-
 .../latest/en/guides/backend-profile/index.html    |  31 +-
 .../guides/component-library-settings/index.html   |  31 +-
 .../en/guides/e2e-local-remote-debug/index.html    |  31 +-
 docs/main/latest/en/guides/how-to-build/index.html |  31 +-
 .../latest/en/guides/how-to-release/index.html     |  31 +-
 .../java-plugin-development-guide/index.html       |  31 +-
 docs/main/latest/en/guides/plugin-test/index.html  |  31 +-
 docs/main/latest/en/guides/readme/index.html       |  31 +-
 .../latest/en/guides/source-extension/index.html   |  31 +-
 .../latest/en/guides/storage-extention/index.html  |  31 +-
 .../protocols/browser-http-api-protocol/index.html |  31 +-
 .../en/protocols/browser-protocol/index.html       |  31 +-
 .../en/protocols/http-api-protocol/index.html      |  31 +-
 .../latest/en/protocols/jvm-protocol/index.html    |  31 +-
 .../en/protocols/log-data-protocol/index.html      |  31 +-
 .../latest/en/protocols/query-protocol/index.html  |  31 +-
 docs/main/latest/en/protocols/readme/index.html    |  31 +-
 .../index.html                                     |  31 +-
 .../index.html                                     |  31 +-
 .../en/protocols/trace-data-protocol-v3/index.html |  31 +-
 .../setup/backend/advanced-deployment/index.html   |  31 +-
 .../en/setup/backend/apdex-threshold/index.html    |  31 +-
 .../en/setup/backend/backend-alarm/index.html      |  31 +-
 .../en/setup/backend/backend-cluster/index.html    |  31 +-
 .../en/setup/backend/backend-fetcher/index.html    |  31 +-
 .../setup/backend/backend-health-check/index.html  |  31 +-
 .../en/setup/backend/backend-init-mode/index.html  |  31 +-
 .../en/setup/backend/backend-ip-port/index.html    |  31 +-
 .../latest/en/setup/backend/backend-k8s/index.html |  31 +-
 .../en/setup/backend/backend-meter/index.html      |  31 +-
 .../en/setup/backend/backend-receivers/index.html  |  31 +-
 .../backend/backend-setting-override/index.html    |  31 +-
 .../en/setup/backend/backend-setup/index.html      |  31 +-
 .../setup/backend/backend-start-up-mode/index.html |  31 +-
 .../en/setup/backend/backend-storage/index.html    |  31 +-
 .../en/setup/backend/backend-telemetry/index.html  |  31 +-
 .../en/setup/backend/backend-token-auth/index.html |  31 +-
 .../en/setup/backend/backend-zabbix/index.html     |  31 +-
 .../backend/configuration-vocabulary/index.html    |  31 +-
 .../en/setup/backend/dynamic-config/index.html     |  31 +-
 .../backend/endpoint-grouping-rules/index.html     |  31 +-
 .../latest/en/setup/backend/grpc-ssl/index.html    |  31 +-
 .../en/setup/backend/log-analyzer/index.html       |  31 +-
 .../en/setup/backend/metrics-exporter/index.html   |  31 +-
 .../setup/backend/service-auto-grouping/index.html |  31 +-
 .../en/setup/backend/slow-db-statement/index.html  |  31 +-
 .../setup/backend/spring-sleuth-setup/index.html   |  31 +-
 .../en/setup/backend/trace-sampling/index.html     |  31 +-
 docs/main/latest/en/setup/backend/ttl/index.html   |  31 +-
 .../latest/en/setup/backend/ui-setup/index.html    |  31 +-
 .../backend/uninstrumented-gateways/index.html     |  31 +-
 .../latest/en/setup/envoy/als_setting/index.html   |  31 +-
 .../setup/envoy/examples/metrics/readme/index.html |  31 +-
 .../setup/envoy/metrics_service_setting/index.html |  31 +-
 docs/main/latest/en/setup/istio/readme/index.html  |  31 +-
 .../setup/service-agent/browser-agent/index.html   |  31 +-
 .../kotlin-coroutine-plugin/index.html             |  31 +-
 .../oracle-resin-plugins/index.html                |  31 +-
 .../spring-annotation-plugin/index.html            |  31 +-
 .../trace-ignore-plugin/index.html                 |  31 +-
 .../application-toolkit-log4j-1.x/index.html       |  31 +-
 .../application-toolkit-log4j-2.x/index.html       |  31 +-
 .../application-toolkit-logback-1.x/index.html     |  31 +-
 .../application-toolkit-meter/index.html           |  31 +-
 .../application-toolkit-micrometer/index.html      |  31 +-
 .../index.html                                     |  31 +-
 .../application-toolkit-trace/index.html           |  31 +-
 .../java-agent/configuration-discovery/index.html  |  31 +-
 .../java-agent/customize-enhance-trace/index.html  |  31 +-
 .../java-agent/how-to-disable-plugin/index.html    |  31 +-
 .../how-to-enable-kafka-reporter/index.html        |  31 +-
 .../how-to-tolerate-exceptions/index.html          |  31 +-
 .../service-agent/java-agent/namespace/index.html  |  31 +-
 .../java-agent/opentracing/index.html              |  31 +-
 .../java-agent/plugin-list/index.html              |  31 +-
 .../service-agent/java-agent/readme/index.html     |  31 +-
 .../java-agent/setting-override/index.html         |  31 +-
 .../java-agent/specified-agent-config/index.html   |  31 +-
 .../java-agent/supported-list/index.html           |  31 +-
 .../setup/service-agent/java-agent/tls/index.html  |  31 +-
 .../service-agent/java-agent/token-auth/index.html |  31 +-
 .../setup/service-agent/server-agents/index.html   |  31 +-
 docs/main/latest/en/ui/readme/index.html           |  31 +-
 docs/main/latest/readme/index.html                 |  31 +-
 .../backend-overview/index.html                    |  31 +-
 .../v8.2.0/en/concepts-and-designs/mal/index.html  |  31 +-
 .../en/concepts-and-designs/manual-sdk/index.html  |  31 +-
 .../en/concepts-and-designs/meter/index.html       |  31 +-
 .../v8.2.0/en/concepts-and-designs/oal/index.html  |  31 +-
 .../en/concepts-and-designs/overview/index.html    |  31 +-
 .../probe-introduction/index.html                  |  31 +-
 .../concepts-and-designs/project-goals/index.html  |  31 +-
 .../en/concepts-and-designs/readme/index.html      |  31 +-
 .../scope-definitions/index.html                   |  31 +-
 .../concepts-and-designs/service-agent/index.html  |  31 +-
 .../service-mesh-probe/index.html                  |  31 +-
 .../en/concepts-and-designs/ui-overview/index.html |  31 +-
 .../index.html                                     |  31 +-
 .../index.html                                     |  31 +-
 docs/main/v8.2.0/en/faq/es-server-faq/index.html   |  31 +-
 .../en/faq/hour-day-metrics-stopping/index.html    |  31 +-
 .../index.html                                     |  31 +-
 .../en/faq/install_agent_on_websphere/index.html   |  31 +-
 docs/main/v8.2.0/en/faq/kafka-plugin/index.html    |  31 +-
 .../en/faq/maven-compile-npm-failure/index.html    |  31 +-
 .../memory-leak-enhance-worker-thread/index.html   |  31 +-
 .../faq/protoc-plugin-fails-when-build/index.html  |  31 +-
 docs/main/v8.2.0/en/faq/readme/index.html          |  31 +-
 docs/main/v8.2.0/en/faq/thrift-plugin/index.html   |  31 +-
 .../v8.2.0/en/faq/time-and-timezone/index.html     |  31 +-
 .../en/faq/unexpected-endpoint-register/index.html |  31 +-
 .../v8.2.0/en/faq/v3-version-upgrade/index.html    |  31 +-
 .../v8.2.0/en/faq/v6-version-upgrade/index.html    |  31 +-
 .../v8.2.0/en/faq/v8-version-upgrade/index.html    |  31 +-
 .../en/faq/why-have-traces-no-others/index.html    |  31 +-
 .../v8.2.0/en/faq/why_mq_not_involved/index.html   |  31 +-
 .../main/v8.2.0/en/guides/asf/committer/index.html |  31 +-
 .../en/guides/backend-oal-scripts/index.html       |  31 +-
 .../en/guides/backend-profile-export/index.html    |  31 +-
 .../v8.2.0/en/guides/backend-profile/index.html    |  31 +-
 .../guides/component-library-settings/index.html   |  31 +-
 .../en/guides/e2e-local-remote-debug/index.html    |  31 +-
 docs/main/v8.2.0/en/guides/how-to-build/index.html |  31 +-
 .../v8.2.0/en/guides/how-to-release/index.html     |  31 +-
 .../java-plugin-development-guide/index.html       |  31 +-
 docs/main/v8.2.0/en/guides/plugin-test/index.html  |  31 +-
 docs/main/v8.2.0/en/guides/readme/index.html       |  31 +-
 .../v8.2.0/en/guides/source-extension/index.html   |  31 +-
 .../v8.2.0/en/guides/storage-extention/index.html  |  31 +-
 .../protocols/browser-http-api-protocol/index.html |  31 +-
 .../en/protocols/browser-protocol/index.html       |  31 +-
 .../en/protocols/http-api-protocol/index.html      |  31 +-
 .../v8.2.0/en/protocols/jvm-protocol/index.html    |  31 +-
 .../v8.2.0/en/protocols/query-protocol/index.html  |  31 +-
 docs/main/v8.2.0/en/protocols/readme/index.html    |  31 +-
 .../index.html                                     |  31 +-
 .../index.html                                     |  31 +-
 .../en/protocols/trace-data-protocol-v3/index.html |  31 +-
 .../setup/backend/advanced-deployment/index.html   |  31 +-
 .../en/setup/backend/apdex-threshold/index.html    |  31 +-
 .../en/setup/backend/backend-alarm/index.html      |  31 +-
 .../en/setup/backend/backend-cluster/index.html    |  31 +-
 .../en/setup/backend/backend-fetcher/index.html    |  31 +-
 .../setup/backend/backend-health-check/index.html  |  31 +-
 .../en/setup/backend/backend-init-mode/index.html  |  31 +-
 .../en/setup/backend/backend-ip-port/index.html    |  31 +-
 .../v8.2.0/en/setup/backend/backend-k8s/index.html |  31 +-
 .../en/setup/backend/backend-meter/index.html      |  31 +-
 .../en/setup/backend/backend-receivers/index.html  |  31 +-
 .../backend/backend-setting-override/index.html    |  31 +-
 .../en/setup/backend/backend-setup/index.html      |  31 +-
 .../setup/backend/backend-start-up-mode/index.html |  31 +-
 .../en/setup/backend/backend-storage/index.html    |  31 +-
 .../en/setup/backend/backend-telemetry/index.html  |  31 +-
 .../en/setup/backend/backend-token-auth/index.html |  31 +-
 .../en/setup/backend/backend-ui-setup/index.html   |  31 +-
 .../backend/configuration-vocabulary/index.html    |  31 +-
 .../en/setup/backend/dynamic-config/index.html     |  31 +-
 .../backend/endpoint-grouping-rules/index.html     |  31 +-
 .../v8.2.0/en/setup/backend/grpc-ssl/index.html    |  31 +-
 .../en/setup/backend/metrics-exporter/index.html   |  31 +-
 .../en/setup/backend/slow-db-statement/index.html  |  31 +-
 .../setup/backend/spring-sleuth-setup/index.html   |  31 +-
 .../en/setup/backend/trace-sampling/index.html     |  31 +-
 docs/main/v8.2.0/en/setup/backend/ttl/index.html   |  31 +-
 .../v8.2.0/en/setup/backend/ui-setup/index.html    |  31 +-
 .../backend/uninstrumented-gateways/index.html     |  31 +-
 .../v8.2.0/en/setup/envoy/als_setting/index.html   |  31 +-
 .../setup/envoy/examples/metrics/readme/index.html |  31 +-
 .../setup/envoy/metrics_service_setting/index.html |  31 +-
 docs/main/v8.2.0/en/setup/istio/readme/index.html  |  31 +-
 docs/main/v8.2.0/en/setup/readme/index.html        |  31 +-
 .../kotlin-coroutine-plugin/index.html             |  31 +-
 .../oracle-resin-plugins/index.html                |  31 +-
 .../spring-annotation-plugin/index.html            |  31 +-
 .../trace-ignore-plugin/index.html                 |  31 +-
 .../application-toolkit-log4j-1.x/index.html       |  31 +-
 .../application-toolkit-log4j-2.x/index.html       |  31 +-
 .../application-toolkit-logback-1.x/index.html     |  31 +-
 .../application-toolkit-meter/index.html           |  31 +-
 .../application-toolkit-micrometer/index.html      |  31 +-
 .../index.html                                     |  31 +-
 .../application-toolkit-trace/index.html           |  31 +-
 .../java-agent/customize-enhance-trace/index.html  |  31 +-
 .../java-agent/how-to-disable-plugin/index.html    |  31 +-
 .../how-to-enable-kafka-reporter/index.html        |  31 +-
 .../how-to-tolerate-exceptions/index.html          |  31 +-
 .../service-agent/java-agent/namespace/index.html  |  31 +-
 .../java-agent/opentracing/index.html              |  31 +-
 .../java-agent/plugin-list/index.html              |  31 +-
 .../service-agent/java-agent/readme/index.html     |  31 +-
 .../java-agent/setting-override/index.html         |  31 +-
 .../java-agent/specified-agent-config/index.html   |  31 +-
 .../java-agent/supported-list/index.html           |  31 +-
 .../setup/service-agent/java-agent/tls/index.html  |  31 +-
 .../service-agent/java-agent/token-auth/index.html |  31 +-
 docs/main/v8.2.0/en/ui/readme/index.html           |  31 +-
 docs/main/v8.2.0/powered-by/index.html             |  31 +-
 docs/main/v8.2.0/readme/index.html                 |  31 +-
 .../backend-overview/index.html                    |  31 +-
 .../v8.3.0/en/concepts-and-designs/mal/index.html  |  31 +-
 .../en/concepts-and-designs/manual-sdk/index.html  |  31 +-
 .../en/concepts-and-designs/meter/index.html       |  31 +-
 .../v8.3.0/en/concepts-and-designs/oal/index.html  |  31 +-
 .../en/concepts-and-designs/overview/index.html    |  31 +-
 .../probe-introduction/index.html                  |  31 +-
 .../concepts-and-designs/project-goals/index.html  |  31 +-
 .../en/concepts-and-designs/readme/index.html      |  31 +-
 .../scope-definitions/index.html                   |  31 +-
 .../concepts-and-designs/service-agent/index.html  |  31 +-
 .../service-mesh-probe/index.html                  |  31 +-
 .../en/concepts-and-designs/ui-overview/index.html |  31 +-
 .../index.html                                     |  31 +-
 .../index.html                                     |  31 +-
 docs/main/v8.3.0/en/faq/es-server-faq/index.html   |  31 +-
 .../en/faq/hour-day-metrics-stopping/index.html    |  31 +-
 .../index.html                                     |  31 +-
 .../en/faq/install_agent_on_websphere/index.html   |  31 +-
 docs/main/v8.3.0/en/faq/kafka-plugin/index.html    |  31 +-
 .../en/faq/maven-compile-npm-failure/index.html    |  31 +-
 .../memory-leak-enhance-worker-thread/index.html   |  31 +-
 .../faq/protoc-plugin-fails-when-build/index.html  |  31 +-
 docs/main/v8.3.0/en/faq/readme/index.html          |  31 +-
 docs/main/v8.3.0/en/faq/thrift-plugin/index.html   |  31 +-
 .../v8.3.0/en/faq/time-and-timezone/index.html     |  31 +-
 .../en/faq/unexpected-endpoint-register/index.html |  31 +-
 .../v8.3.0/en/faq/v3-version-upgrade/index.html    |  31 +-
 .../v8.3.0/en/faq/v6-version-upgrade/index.html    |  31 +-
 .../v8.3.0/en/faq/v8-version-upgrade/index.html    |  31 +-
 docs/main/v8.3.0/en/faq/vnode/index.html           |  31 +-
 .../en/faq/why-have-traces-no-others/index.html    |  31 +-
 .../v8.3.0/en/faq/why_mq_not_involved/index.html   |  31 +-
 .../main/v8.3.0/en/guides/asf/committer/index.html |  31 +-
 .../en/guides/backend-oal-scripts/index.html       |  31 +-
 .../en/guides/backend-profile-export/index.html    |  31 +-
 .../v8.3.0/en/guides/backend-profile/index.html    |  31 +-
 .../guides/component-library-settings/index.html   |  31 +-
 .../en/guides/e2e-local-remote-debug/index.html    |  31 +-
 docs/main/v8.3.0/en/guides/how-to-build/index.html |  31 +-
 .../v8.3.0/en/guides/how-to-release/index.html     |  31 +-
 .../java-plugin-development-guide/index.html       |  31 +-
 docs/main/v8.3.0/en/guides/plugin-test/index.html  |  31 +-
 docs/main/v8.3.0/en/guides/readme/index.html       |  31 +-
 .../v8.3.0/en/guides/source-extension/index.html   |  31 +-
 .../v8.3.0/en/guides/storage-extention/index.html  |  31 +-
 .../protocols/browser-http-api-protocol/index.html |  31 +-
 .../en/protocols/browser-protocol/index.html       |  31 +-
 .../en/protocols/http-api-protocol/index.html      |  31 +-
 .../v8.3.0/en/protocols/jvm-protocol/index.html    |  31 +-
 .../v8.3.0/en/protocols/query-protocol/index.html  |  31 +-
 docs/main/v8.3.0/en/protocols/readme/index.html    |  31 +-
 .../index.html                                     |  31 +-
 .../index.html                                     |  31 +-
 .../en/protocols/trace-data-protocol-v3/index.html |  31 +-
 .../setup/backend/advanced-deployment/index.html   |  31 +-
 .../en/setup/backend/apdex-threshold/index.html    |  31 +-
 .../en/setup/backend/backend-alarm/index.html      |  31 +-
 .../en/setup/backend/backend-cluster/index.html    |  31 +-
 .../en/setup/backend/backend-fetcher/index.html    |  31 +-
 .../setup/backend/backend-health-check/index.html  |  31 +-
 .../en/setup/backend/backend-init-mode/index.html  |  31 +-
 .../en/setup/backend/backend-ip-port/index.html    |  31 +-
 .../v8.3.0/en/setup/backend/backend-k8s/index.html |  31 +-
 .../en/setup/backend/backend-meter/index.html      |  31 +-
 .../en/setup/backend/backend-receivers/index.html  |  31 +-
 .../backend/backend-setting-override/index.html    |  31 +-
 .../en/setup/backend/backend-setup/index.html      |  31 +-
 .../setup/backend/backend-start-up-mode/index.html |  31 +-
 .../en/setup/backend/backend-storage/index.html    |  31 +-
 .../en/setup/backend/backend-telemetry/index.html  |  31 +-
 .../en/setup/backend/backend-token-auth/index.html |  31 +-
 .../en/setup/backend/backend-ui-setup/index.html   |  31 +-
 .../backend/configuration-vocabulary/index.html    |  31 +-
 .../en/setup/backend/dynamic-config/index.html     |  31 +-
 .../backend/endpoint-grouping-rules/index.html     |  31 +-
 .../v8.3.0/en/setup/backend/grpc-ssl/index.html    |  31 +-
 .../en/setup/backend/metrics-exporter/index.html   |  31 +-
 .../setup/backend/service-auto-grouping/index.html |  31 +-
 .../en/setup/backend/slow-db-statement/index.html  |  31 +-
 .../setup/backend/spring-sleuth-setup/index.html   |  31 +-
 .../en/setup/backend/trace-sampling/index.html     |  31 +-
 docs/main/v8.3.0/en/setup/backend/ttl/index.html   |  31 +-
 .../v8.3.0/en/setup/backend/ui-setup/index.html    |  31 +-
 .../backend/uninstrumented-gateways/index.html     |  31 +-
 .../v8.3.0/en/setup/envoy/als_setting/index.html   |  31 +-
 .../setup/envoy/examples/metrics/readme/index.html |  31 +-
 .../setup/envoy/metrics_service_setting/index.html |  31 +-
 docs/main/v8.3.0/en/setup/istio/readme/index.html  |  31 +-
 docs/main/v8.3.0/en/setup/readme/index.html        |  31 +-
 .../kotlin-coroutine-plugin/index.html             |  31 +-
 .../oracle-resin-plugins/index.html                |  31 +-
 .../spring-annotation-plugin/index.html            |  31 +-
 .../trace-ignore-plugin/index.html                 |  31 +-
 .../application-toolkit-log4j-1.x/index.html       |  31 +-
 .../application-toolkit-log4j-2.x/index.html       |  31 +-
 .../application-toolkit-logback-1.x/index.html     |  31 +-
 .../application-toolkit-meter/index.html           |  31 +-
 .../application-toolkit-micrometer/index.html      |  31 +-
 .../index.html                                     |  31 +-
 .../application-toolkit-trace/index.html           |  31 +-
 .../java-agent/customize-enhance-trace/index.html  |  31 +-
 .../java-agent/how-to-disable-plugin/index.html    |  31 +-
 .../how-to-enable-kafka-reporter/index.html        |  31 +-
 .../how-to-tolerate-exceptions/index.html          |  31 +-
 .../service-agent/java-agent/namespace/index.html  |  31 +-
 .../java-agent/opentracing/index.html              |  31 +-
 .../java-agent/plugin-list/index.html              |  31 +-
 .../service-agent/java-agent/readme/index.html     |  31 +-
 .../java-agent/setting-override/index.html         |  31 +-
 .../java-agent/specified-agent-config/index.html   |  31 +-
 .../java-agent/supported-list/index.html           |  31 +-
 .../setup/service-agent/java-agent/tls/index.html  |  31 +-
 .../service-agent/java-agent/token-auth/index.html |  31 +-
 docs/main/v8.3.0/en/ui/readme/index.html           |  31 +-
 docs/main/v8.3.0/powered-by/index.html             |  31 +-
 docs/main/v8.3.0/readme/index.html                 |  31 +-
 .../backend-overview/index.html                    |  31 +-
 .../v8.4.0/en/concepts-and-designs/mal/index.html  |  31 +-
 .../en/concepts-and-designs/manual-sdk/index.html  |  31 +-
 .../en/concepts-and-designs/meter/index.html       |  31 +-
 .../v8.4.0/en/concepts-and-designs/oal/index.html  |  31 +-
 .../en/concepts-and-designs/overview/index.html    |  31 +-
 .../probe-introduction/index.html                  |  31 +-
 .../concepts-and-designs/project-goals/index.html  |  31 +-
 .../en/concepts-and-designs/readme/index.html      |  31 +-
 .../scope-definitions/index.html                   |  31 +-
 .../concepts-and-designs/service-agent/index.html  |  31 +-
 .../service-mesh-probe/index.html                  |  31 +-
 .../en/concepts-and-designs/ui-overview/index.html |  31 +-
 .../index.html                                     |  31 +-
 .../index.html                                     |  31 +-
 docs/main/v8.4.0/en/faq/es-server-faq/index.html   |  31 +-
 .../en/faq/hour-day-metrics-stopping/index.html    |  31 +-
 .../en/faq/how-to-build-with-mac-m1/index.html     |  31 +-
 .../index.html                                     |  31 +-
 .../en/faq/install_agent_on_websphere/index.html   |  31 +-
 docs/main/v8.4.0/en/faq/kafka-plugin/index.html    |  31 +-
 .../en/faq/maven-compile-npm-failure/index.html    |  31 +-
 .../memory-leak-enhance-worker-thread/index.html   |  31 +-
 .../faq/protoc-plugin-fails-when-build/index.html  |  31 +-
 docs/main/v8.4.0/en/faq/readme/index.html          |  31 +-
 docs/main/v8.4.0/en/faq/thrift-plugin/index.html   |  31 +-
 .../v8.4.0/en/faq/time-and-timezone/index.html     |  31 +-
 .../en/faq/unexpected-endpoint-register/index.html |  31 +-
 .../v8.4.0/en/faq/v3-version-upgrade/index.html    |  31 +-
 .../v8.4.0/en/faq/v6-version-upgrade/index.html    |  31 +-
 .../v8.4.0/en/faq/v8-version-upgrade/index.html    |  31 +-
 docs/main/v8.4.0/en/faq/vnode/index.html           |  31 +-
 .../en/faq/why-have-traces-no-others/index.html    |  31 +-
 .../v8.4.0/en/faq/why_mq_not_involved/index.html   |  31 +-
 .../main/v8.4.0/en/guides/asf/committer/index.html |  31 +-
 .../en/guides/backend-oal-scripts/index.html       |  31 +-
 .../en/guides/backend-profile-export/index.html    |  31 +-
 .../v8.4.0/en/guides/backend-profile/index.html    |  31 +-
 .../guides/component-library-settings/index.html   |  31 +-
 .../en/guides/e2e-local-remote-debug/index.html    |  31 +-
 docs/main/v8.4.0/en/guides/how-to-build/index.html |  31 +-
 .../v8.4.0/en/guides/how-to-release/index.html     |  31 +-
 .../java-plugin-development-guide/index.html       |  31 +-
 docs/main/v8.4.0/en/guides/plugin-test/index.html  |  31 +-
 docs/main/v8.4.0/en/guides/readme/index.html       |  31 +-
 .../v8.4.0/en/guides/source-extension/index.html   |  31 +-
 .../v8.4.0/en/guides/storage-extention/index.html  |  31 +-
 .../protocols/browser-http-api-protocol/index.html |  31 +-
 .../en/protocols/browser-protocol/index.html       |  31 +-
 .../en/protocols/http-api-protocol/index.html      |  31 +-
 .../v8.4.0/en/protocols/jvm-protocol/index.html    |  31 +-
 .../en/protocols/log-data-protocol/index.html      |  31 +-
 .../v8.4.0/en/protocols/query-protocol/index.html  |  31 +-
 docs/main/v8.4.0/en/protocols/readme/index.html    |  31 +-
 .../index.html                                     |  31 +-
 .../index.html                                     |  31 +-
 .../en/protocols/trace-data-protocol-v3/index.html |  31 +-
 .../setup/backend/advanced-deployment/index.html   |  31 +-
 .../en/setup/backend/apdex-threshold/index.html    |  31 +-
 .../en/setup/backend/backend-alarm/index.html      |  31 +-
 .../en/setup/backend/backend-cluster/index.html    |  31 +-
 .../en/setup/backend/backend-fetcher/index.html    |  31 +-
 .../setup/backend/backend-health-check/index.html  |  31 +-
 .../en/setup/backend/backend-init-mode/index.html  |  31 +-
 .../en/setup/backend/backend-ip-port/index.html    |  31 +-
 .../v8.4.0/en/setup/backend/backend-k8s/index.html |  31 +-
 .../en/setup/backend/backend-meter/index.html      |  31 +-
 .../en/setup/backend/backend-receivers/index.html  |  31 +-
 .../backend/backend-setting-override/index.html    |  31 +-
 .../en/setup/backend/backend-setup/index.html      |  31 +-
 .../setup/backend/backend-start-up-mode/index.html |  31 +-
 .../en/setup/backend/backend-storage/index.html    |  31 +-
 .../en/setup/backend/backend-telemetry/index.html  |  31 +-
 .../en/setup/backend/backend-token-auth/index.html |  31 +-
 .../en/setup/backend/backend-ui-setup/index.html   |  31 +-
 .../backend/configuration-vocabulary/index.html    |  31 +-
 .../en/setup/backend/dynamic-config/index.html     |  31 +-
 .../backend/endpoint-grouping-rules/index.html     |  31 +-
 .../v8.4.0/en/setup/backend/grpc-ssl/index.html    |  31 +-
 .../en/setup/backend/metrics-exporter/index.html   |  31 +-
 .../setup/backend/service-auto-grouping/index.html |  31 +-
 .../en/setup/backend/slow-db-statement/index.html  |  31 +-
 .../setup/backend/spring-sleuth-setup/index.html   |  31 +-
 .../en/setup/backend/trace-sampling/index.html     |  31 +-
 docs/main/v8.4.0/en/setup/backend/ttl/index.html   |  31 +-
 .../v8.4.0/en/setup/backend/ui-setup/index.html    |  31 +-
 .../backend/uninstrumented-gateways/index.html     |  31 +-
 .../v8.4.0/en/setup/envoy/als_setting/index.html   |  31 +-
 .../setup/envoy/examples/metrics/readme/index.html |  31 +-
 .../setup/envoy/metrics_service_setting/index.html |  31 +-
 docs/main/v8.4.0/en/setup/istio/readme/index.html  |  31 +-
 docs/main/v8.4.0/en/setup/readme/index.html        |  31 +-
 .../kotlin-coroutine-plugin/index.html             |  31 +-
 .../oracle-resin-plugins/index.html                |  31 +-
 .../spring-annotation-plugin/index.html            |  31 +-
 .../trace-ignore-plugin/index.html                 |  31 +-
 .../application-toolkit-log4j-1.x/index.html       |  31 +-
 .../application-toolkit-log4j-2.x/index.html       |  31 +-
 .../application-toolkit-logback-1.x/index.html     |  31 +-
 .../application-toolkit-meter/index.html           |  31 +-
 .../application-toolkit-micrometer/index.html      |  31 +-
 .../index.html                                     |  31 +-
 .../application-toolkit-trace/index.html           |  31 +-
 .../java-agent/configuration-discovery/index.html  |  31 +-
 .../java-agent/customize-enhance-trace/index.html  |  31 +-
 .../java-agent/how-to-disable-plugin/index.html    |  31 +-
 .../how-to-enable-kafka-reporter/index.html        |  31 +-
 .../how-to-tolerate-exceptions/index.html          |  31 +-
 .../service-agent/java-agent/namespace/index.html  |  31 +-
 .../java-agent/opentracing/index.html              |  31 +-
 .../java-agent/plugin-list/index.html              |  31 +-
 .../service-agent/java-agent/readme/index.html     |  31 +-
 .../java-agent/setting-override/index.html         |  31 +-
 .../java-agent/specified-agent-config/index.html   |  31 +-
 .../java-agent/supported-list/index.html           |  31 +-
 .../setup/service-agent/java-agent/tls/index.html  |  31 +-
 .../service-agent/java-agent/token-auth/index.html |  31 +-
 docs/main/v8.4.0/en/ui/readme/index.html           |  31 +-
 docs/main/v8.4.0/readme/index.html                 |  31 +-
 .../en/concepts-and-designs/mmap-queue/index.html  |  31 +-
 .../concepts-and-designs/module_design/index.html  |  31 +-
 .../en/concepts-and-designs/overview/index.html    |  31 +-
 .../plugin_mechanism/index.html                    |  31 +-
 .../concepts-and-designs/project-goals/index.html  |  31 +-
 .../project_structue/index.html                    |  31 +-
 .../en/concepts-and-designs/readme/index.html      |  31 +-
 .../0.1.0/en/faq/performance/index.html            |  31 +-
 .../0.1.0/en/faq/readme/index.html                 |  31 +-
 .../en/guides/compile/how-to-compile/index.html    |  31 +-
 .../guides/contribution/how-to-release/index.html  |  31 +-
 .../contribution/how-to-write-plugin/index.html    |  31 +-
 .../0.1.0/en/guides/readme/index.html              |  31 +-
 .../en/guides/test/how-to-unit-test/index.html     |  31 +-
 .../0.1.0/en/setup/configuration/common/index.html |  31 +-
 .../configuration/override-settings/index.html     |  31 +-
 .../en/setup/configuration/pipe-plugins/index.html |  31 +-
 .../setup/configuration/sharing-plugins/index.html |  31 +-
 .../setup/plugins/client_kafka-client/index.html   |  31 +-
 .../plugins/fallbacker_none-fallbacker/index.html  |  31 +-
 .../plugins/fallbacker_timer-fallbacker/index.html |  31 +-
 .../forwarder_nativelog-kafka-forwarder/index.html |  31 +-
 .../0.1.0/en/setup/plugins/plugin-list/index.html  |  31 +-
 .../en/setup/plugins/queue_memory-queue/index.html |  31 +-
 .../en/setup/plugins/queue_mmap-queue/index.html   |  31 +-
 .../receiver_grpc-nativelog-receiver/index.html    |  31 +-
 .../receiver_http-nativelog-receiver/index.html    |  31 +-
 .../en/setup/plugins/server_grpc-server/index.html |  31 +-
 .../en/setup/plugins/server_http-server/index.html |  31 +-
 .../plugins/server_prometheus-server/index.html    |  31 +-
 .../0.1.0/en/setup/readme/index.html               |  31 +-
 docs/skywalking-satellite/0.1.0/readme/index.html  |  31 +-
 .../en/concepts-and-designs/mmap-queue/index.html  |  31 +-
 .../concepts-and-designs/module_design/index.html  |  31 +-
 .../en/concepts-and-designs/overview/index.html    |  31 +-
 .../plugin_mechanism/index.html                    |  31 +-
 .../concepts-and-designs/project-goals/index.html  |  31 +-
 .../project_structue/index.html                    |  31 +-
 .../en/concepts-and-designs/readme/index.html      |  31 +-
 .../latest/en/faq/performance/index.html           |  31 +-
 .../latest/en/faq/readme/index.html                |  31 +-
 .../en/guides/compile/how-to-compile/index.html    |  31 +-
 .../guides/contribution/how-to-release/index.html  |  31 +-
 .../contribution/how-to-write-plugin/index.html    |  31 +-
 .../latest/en/guides/readme/index.html             |  31 +-
 .../en/guides/test/how-to-unit-test/index.html     |  31 +-
 .../en/setup/configuration/common/index.html       |  31 +-
 .../configuration/override-settings/index.html     |  31 +-
 .../en/setup/configuration/pipe-plugins/index.html |  31 +-
 .../setup/configuration/sharing-plugins/index.html |  31 +-
 .../setup/plugins/client_kafka-client/index.html   |  31 +-
 .../plugins/fallbacker_none-fallbacker/index.html  |  31 +-
 .../plugins/fallbacker_timer-fallbacker/index.html |  31 +-
 .../forwarder_nativelog-kafka-forwarder/index.html |  31 +-
 .../latest/en/setup/plugins/plugin-list/index.html |  31 +-
 .../en/setup/plugins/queue_memory-queue/index.html |  31 +-
 .../en/setup/plugins/queue_mmap-queue/index.html   |  31 +-
 .../receiver_grpc-nativelog-receiver/index.html    |  31 +-
 .../receiver_http-nativelog-receiver/index.html    |  31 +-
 .../en/setup/plugins/server_grpc-server/index.html |  31 +-
 .../en/setup/plugins/server_http-server/index.html |  31 +-
 .../plugins/server_prometheus-server/index.html    |  31 +-
 .../latest/en/setup/readme/index.html              |  31 +-
 docs/skywalking-satellite/latest/readme/index.html |  31 +-
 downloads/index.html                               |   4 +-
 events/index.html                                  |   4 +-
 events/page/2/index.html                           |   4 +-
 events/page/3/index.html                           |   4 +-
 events/page/4/index.html                           |   4 +-
 events/page/5/index.html                           |   4 +-
 events/page/6/index.html                           |   4 +-
 events/page/7/index.html                           |   4 +-
 events/page/8/index.html                           |   4 +-
 events/page/9/index.html                           |   4 +-
 .../release-apache-skwaylking-apm-8-3-0/index.html |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../release-apache-skywalking-5-0-0-ga/index.html  |   8 +-
 .../release-apache-skywalking-5-0-0-rc2/index.html |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../release-apache-skywalking-apm-6-1-0/index.html |   8 +-
 .../release-apache-skywalking-apm-6-2-0/index.html |   8 +-
 .../release-apache-skywalking-apm-6-3-0/index.html |   8 +-
 .../release-apache-skywalking-apm-6-4-0/index.html |   8 +-
 .../release-apache-skywalking-apm-6-5-0/index.html |   8 +-
 .../release-apache-skywalking-apm-6-6-0/index.html |   8 +-
 .../release-apache-skywalking-apm-7-0-0/index.html |   8 +-
 .../release-apache-skywalking-apm-8-0-0/index.html |   8 +-
 .../release-apache-skywalking-apm-8-1-0/index.html |   8 +-
 .../release-apache-skywalking-apm-8-2-0/index.html |   8 +-
 .../release-apache-skywalking-apm-8-4-0/index.html |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../release-apache-skywalking-cli-0-1-0/index.html |   8 +-
 .../release-apache-skywalking-cli-0-2-0/index.html |   8 +-
 .../release-apache-skywalking-cli-0-3-0/index.html |   8 +-
 .../release-apache-skywalking-cli-0-4-0/index.html |   8 +-
 .../release-apache-skywalking-cli-0-5-0/index.html |   8 +-
 .../release-apache-skywalking-cli-0-6-0/index.html |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../skywalking-nginx-lua-0-1-0-release/index.html  |   8 +-
 .../index.html                                     |   8 +-
 events/welcome-gui-cao-as-new-committer/index.html |   8 +-
 events/welcome-han-liu-as-new-committer/index.html |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../welcome-jian-tan-as-a-new-committer/index.html |   8 +-
 events/welcome-jian-tan-as-a-new-ppmc/index.html   |   8 +-
 .../index.html                                     |   8 +-
 .../welcome-jinlin-fu-as-new-committer/index.html  |   8 +-
 .../index.html                                     |   8 +-
 .../welcome-ke-zhang-as-new-committer/index.html   |   8 +-
 .../welcome-lang-li-as-a-new-committer/index.html  |   8 +-
 .../welcome-ming-wen-as-new-committer/index.html   |   8 +-
 .../welcome-qiuxia-fan-as-new-committer/index.html |   8 +-
 events/welcome-wei-hua-as-new-committer/index.html |   8 +-
 .../welcome-wei-zhang-as-new-committer/index.html  |   8 +-
 .../welcome-wei-zhang-to-join-the-pmc/index.html   |   8 +-
 .../index.html                                     |   8 +-
 .../welcome-weiyi-liu-as-new-committer/index.html  |   8 +-
 .../index.html                                     |   8 +-
 events/welcome-yao-wang-as-a-new-ppmc/index.html   |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../index.html                                     |   8 +-
 .../welcome-zhenxu-ke-to-join-the-pmc/index.html   |   8 +-
 .../index.html                                     |   8 +-
 false/index.html                                   |   4 +-
 index.html                                         |   4 +-
 ...9aab00c330c84d2c6e559d818934b327eac8aaf66e.css} |   2 +-
 search/index.html                                  |   8 +-
 sitemap.xml                                        | 382 ++++++++++-----------
 tags/agent/index.html                              |   6 +-
 tags/browser/index.html                            |   6 +-
 tags/conference/index.html                         |   6 +-
 tags/design/index.html                             |   6 +-
 tags/dotnetcore/index.html                         |   6 +-
 tags/index.html                                    |   6 +-
 tags/infrastructure-monitoring/index.html          |   6 +-
 tags/java/index.html                               |   6 +-
 tags/kafka/index.html                              |   6 +-
 tags/logs/index.html                               |   6 +-
 tags/performance/index.html                        |   6 +-
 tags/profiling/index.html                          |   6 +-
 tags/release-blog/index.html                       |   6 +-
 tags/satellite/index.html                          |   6 +-
 tags/service-mesh/index.html                       |   6 +-
 tags/spring/index.html                             |   6 +-
 tags/testing/index.html                            |   6 +-
 tags/tracing/index.html                            |   6 +-
 tags/user-manual/index.html                        |   6 +-
 tags/video/index.html                              |   6 +-
 tango/index.html                                   |   4 +-
 team/index.html                                    |   4 +-
 true/index.html                                    |   4 +-
 zh/2018-05-24-skywalking-net/index.html            |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 zh/2019-01-02-understand-trace-trans2cn/index.html |  35 +-
 zh/2019-01-03-monitor-microservice/index.html      |  35 +-
 zh/2019-01-21-agent-plugin-practice/index.html     |  35 +-
 zh/2019-01-24-skywalking-remote-debug/index.html   |  35 +-
 zh/2019-02-24-skywalking-pk-pinpoint/index.html    |  35 +-
 zh/2019-03-01-skywalking-troubleshoot/index.html   |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 zh/2019-10-08-how-to-use-sw-chart/index.html       |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 zh/2020-04-19-skywalking-quick-start/index.html    |  35 +-
 zh/2020-04-28-skywalking-and-mosn/index.html       |  35 +-
 zh/2020-06-21-skywalking8-0-1-release/index.html   |  35 +-
 zh/2020-07-26-apdex-and-skywalking/index.html      |  35 +-
 .../index.html                                     |  35 +-
 zh/2020-08-13-cloud-native-academy/index.html      |  35 +-
 zh/2020-10-25-coscon20-swck/index.html             |  35 +-
 zh/2020-10-29-skywalking8-2-release/index.html     |  35 +-
 .../index.html                                     |  35 +-
 zh/2020-11-23-devcon/index.html                    |  35 +-
 zh/2020-11-30-pycon/index.html                     |  35 +-
 zh/2020-12-13-skywalking-alarm/index.html          |  35 +-
 .../index.html                                     |  35 +-
 .../index.html                                     |  35 +-
 zh/2021-01-21-educate-community/index.html         |  35 +-
 zh/index.html                                      |  31 +-
 .../index.html                                     |  35 +-
 zh/page/2/index.html                               |  31 +-
 zh/page/3/index.html                               |  31 +-
 zh/page/4/index.html                               |  31 +-
 .../index.html                                     |  35 +-
 zh_tags/agent/index.html                           |   6 +-
 zh_tags/conference/index.html                      |   6 +-
 zh_tags/development/index.html                     |   6 +-
 zh_tags/dotnetcore/index.html                      |   6 +-
 zh_tags/elasticsearch/index.html                   |   6 +-
 zh_tags/index.html                                 |   6 +-
 zh_tags/java/index.html                            |   6 +-
 zh_tags/open-source-contribution/index.html        |   6 +-
 zh_tags/open-source-promotion-plan/index.html      |   6 +-
 zh_tags/profiling/index.html                       |   6 +-
 zh_tags/release-blog/index.html                    |   6 +-
 zh_tags/service-mesh/index.html                    |   6 +-
 zh_tags/source-code/index.html                     |   6 +-
 zh_tags/tracing/index.html                         |   6 +-
 zh_tags/use-case/index.html                        |   6 +-
 zh_tags/user-manual/index.html                     |   6 +-
 zh_tags/user-manual/page/2/index.html              |   6 +-
 zh_tags/video/index.html                           |   6 +-
 zh_tags/web-ui/index.html                          |   6 +-
 747 files changed, 15949 insertions(+), 4435 deletions(-)

diff --git a/404.html b/404.html
index 41b3e52..ef61af9 100644
--- a/404.html
+++ b/404.html
@@ -44,8 +44,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
diff --git a/blog/2018-05-24-skywalking-net/index.html b/blog/2018-05-24-skywalking-net/index.html
index fbd9229..e8f6f3f 100644
--- a/blog/2018-05-24-skywalking-net/index.html
+++ b/blog/2018-05-24-skywalking-net/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2018-05-24-skywalking-net/" />
 <meta property="article:published_time" content="2018-05-24T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Apache SkyWalking provides open source APM and distributed tracing in .NET Core field">
 <meta itemprop="description" content="SkyWalking .NET Core SDK is available.">
 <meta itemprop="datePublished" content="2018-05-24T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="349">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -392,19 +392,38 @@ dotnet run -p sample/SkyWalking.Sample.Frontend</p>
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2018-12-12-skywalking-service-mesh-ready/index.html b/blog/2018-12-12-skywalking-service-mesh-ready/index.html
index 025307a..f767601 100644
--- a/blog/2018-12-12-skywalking-service-mesh-ready/index.html
+++ b/blog/2018-12-12-skywalking-service-mesh-ready/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2018-12-12-skywalking-service-mesh-ready/" />
 <meta property="article:published_time" content="2018-12-05T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="SkyWalking v6 is Service Mesh ready">
 <meta itemprop="description" content="The integration of SkyWalking and Istio Service Mesh yields an essential open-source tool for resolving the chaos created by the proliferation of siloed, cloud-based services.">
 <meta itemprop="datePublished" content="2018-12-05T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="990">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -443,19 +443,38 @@ This is why we are embracing Skywalking, which makes service performance observa
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2019-01-01-understand-trace/index.html b/blog/2019-01-01-understand-trace/index.html
index 6bde23e..3a2a4d8 100644
--- a/blog/2019-01-01-understand-trace/index.html
+++ b/blog/2019-01-01-understand-trace/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2019-01-01-understand-trace/" />
 <meta property="article:published_time" content="2019-01-01T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Understand distributed trace easier in the incoming 6-GA">
 <meta itemprop="description" content="Distributed tracing is a necessary part of modern microservices architecture, but how to understand or use distributed tracing data is unclear to some end users. This blog overviews typical distributed tracing use cases with new visualization features in SkyWalking v6.">
 <meta itemprop="datePublished" content="2019-01-01T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="702">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -409,19 +409,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2019-01-25-mesh-loadtest/index.html b/blog/2019-01-25-mesh-loadtest/index.html
index ccaab74..eef7534 100644
--- a/blog/2019-01-25-mesh-loadtest/index.html
+++ b/blog/2019-01-25-mesh-loadtest/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2019-01-25-mesh-loadtest/" />
 <meta property="article:published_time" content="2019-01-25T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="SkyWalking performance in Service Mesh scenario">
 <meta itemprop="description" content="Service mesh receiver performance test on Google Kubernetes Engine.">
 <meta itemprop="datePublished" content="2019-01-25T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="758">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -409,19 +409,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2019-09-25-alarm-webhook-share/index.html b/blog/2019-09-25-alarm-webhook-share/index.html
index 12e5e38..2ad691d 100644
--- a/blog/2019-09-25-alarm-webhook-share/index.html
+++ b/blog/2019-09-25-alarm-webhook-share/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2019-09-25-alarm-webhook-share/" />
 <meta property="article:published_time" content="2019-09-25T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="SkyWalking alarm webhook sharing">
 <meta itemprop="description" content=" Alerts via SkyWalking alarm webhook for better perception of tracing.">
 <meta itemprop="datePublished" content="2019-09-25T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="104">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -389,19 +389,38 @@ bash build/build.sh
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-01-20-celebrate-200th-contributor/index.html b/blog/2020-01-20-celebrate-200th-contributor/index.html
index 95d7780..ed4c502 100644
--- a/blog/2020-01-20-celebrate-200th-contributor/index.html
+++ b/blog/2020-01-20-celebrate-200th-contributor/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-01-20-celebrate-200th-contributor/" />
 <meta property="article:published_time" content="2020-01-20T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="SkyWalking hits 200 contributors mark">
 <meta itemprop="description" content=" SkyWalking community joins the 200&#43; contributors open source club.">
 <meta itemprop="datePublished" content="2020-01-20T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="643">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -361,19 +361,38 @@ At the moment of graduation in spring 2019, the project had 100 contributors. No
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-04-13-apache-skywalking-profiling/index.html b/blog/2020-04-13-apache-skywalking-profiling/index.html
index 1243045..61a5c5a 100644
--- a/blog/2020-04-13-apache-skywalking-profiling/index.html
+++ b/blog/2020-04-13-apache-skywalking-profiling/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-04-13-apache-skywalking-profiling/" />
 <meta property="article:published_time" content="2020-04-13T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Apache SkyWalking: Use Profiling to Fix the Blind Spot of Distributed Tracing">
 <meta itemprop="description" content="This post introduces a way to automatically profile code in production with Apache SkyWalking. We believe the profile method helps reduce maintenance and overhead while increasing the precision in root cause analysis.">
 <meta itemprop="datePublished" content="2020-04-13T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="1368">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -423,19 +423,38 @@ try {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-07-26-apdex-and-skywalking/index.html b/blog/2020-07-26-apdex-and-skywalking/index.html
index 4f755f0..9825d23 100644
--- a/blog/2020-07-26-apdex-and-skywalking/index.html
+++ b/blog/2020-07-26-apdex-and-skywalking/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-07-26-apdex-and-skywalking/" />
 <meta property="article:published_time" content="2020-07-26T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="The Apdex Score for Measuring Service Mesh Health">
 <meta itemprop="description" content=" In managing Service Mesh Health, Asking `How are you&#39; is more profound than `What are your symptoms&#39;. Apdex goes a long way in helping this.">
 <meta itemprop="datePublished" content="2020-07-26T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="1605">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -434,19 +434,38 @@ Apdex Score  =  ------------------------------------------------------
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-08-03-skywalking8-1-release/index.html b/blog/2020-08-03-skywalking8-1-release/index.html
index a4f2bf5..609c117 100644
--- a/blog/2020-08-03-skywalking8-1-release/index.html
+++ b/blog/2020-08-03-skywalking8-1-release/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-08-03-skywalking8-1-release/" />
 <meta property="article:published_time" content="2020-08-03T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Features in SkyWalking 8.1: SpringSleuth metrics, endpoint dependency detection, Kafka transport traces and metrics">
 <meta itemprop="description" content=" SpringSleuth metrics, endpoint dependency detection, Kafka transport traces and metrics.">
 <meta itemprop="datePublished" content="2020-08-03T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="625">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -390,19 +390,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-08-11-observability-at-scale/index.html b/blog/2020-08-11-observability-at-scale/index.html
index 494c108..ff2e7f3 100644
--- a/blog/2020-08-11-observability-at-scale/index.html
+++ b/blog/2020-08-11-observability-at-scale/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-08-11-observability-at-scale/" />
 <meta property="article:published_time" content="2020-08-11T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Observability at Scale: SkyWalking it is">
 <meta itemprop="description" content=" SkyWalking evolved to address the problem of observability at scale, and grew from a pure tracing system to a feature-rich observability platform that is now used to analyze deployments that collect tens of billions of traces per day. ">
 <meta itemprop="datePublished" content="2020-08-11T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="1144">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -432,19 +432,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-10-29-skywalking8-2-release/index.html b/blog/2020-10-29-skywalking8-2-release/index.html
index 8724943..a876591 100644
--- a/blog/2020-10-29-skywalking8-2-release/index.html
+++ b/blog/2020-10-29-skywalking8-2-release/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-10-29-skywalking8-2-release/" />
 <meta property="article:published_time" content="2020-10-29T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Features in SkyWalking 8.2: Browser Side Monitoring; Query Traces by Tags; Meter Analysis Language">
 <meta itemprop="description" content="Browser Side Monitoring; Query Traces by Tags; Meter Analysis Language; Composite Alert Rules">
 <meta itemprop="datePublished" content="2020-10-29T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="595">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -391,19 +391,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-11-21-apachecon-keynote/index.html b/blog/2020-11-21-apachecon-keynote/index.html
index 5d3d062..0df7576 100644
--- a/blog/2020-11-21-apachecon-keynote/index.html
+++ b/blog/2020-11-21-apachecon-keynote/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-11-21-apachecon-keynote/" />
 <meta property="article:published_time" content="2020-11-20T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="[Video] Apache grows in China">
 <meta itemprop="description" content="ApacheCon@Home 2020 Keynote, the progress about China embracing the Apache culture, and willing of enhancing the whole Apache community.">
 <meta itemprop="datePublished" content="2020-11-20T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="193">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -352,19 +352,38 @@ Many developers have joined the ASF as new contributors, committers, foundation
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-11-21-apachecon-obs-apisix/index.html b/blog/2020-11-21-apachecon-obs-apisix/index.html
index 9142f18..6ca36cc 100644
--- a/blog/2020-11-21-apachecon-obs-apisix/index.html
+++ b/blog/2020-11-21-apachecon-obs-apisix/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-11-21-apachecon-obs-apisix/" />
 <meta property="article:published_time" content="2020-11-21T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="[Video] Improve Apache APISIX observability with Apache SkyWalking">
 <meta itemprop="description" content="ApacheCon@Home 2020 Observability Track">
 <meta itemprop="datePublished" content="2020-11-21T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="88">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -350,19 +350,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-11-21-apachecon-obs-shardingsphere/index.html b/blog/2020-11-21-apachecon-obs-shardingsphere/index.html
index 7b79b4b..b2f3724 100644
--- a/blog/2020-11-21-apachecon-obs-shardingsphere/index.html
+++ b/blog/2020-11-21-apachecon-obs-shardingsphere/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-11-21-apachecon-obs-shardingsphere/" />
 <meta property="article:published_time" content="2020-11-21T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="[Video] Another backend storage solution for the APM system">
 <meta itemprop="description" content="ApacheCon@Home 2020 Observability Track">
 <meta itemprop="datePublished" content="2020-11-21T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="160">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -351,19 +351,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-11-21-apachecon-obs-sourcemarker/index.html b/blog/2020-11-21-apachecon-obs-sourcemarker/index.html
index 5e4a755..c2d60bb 100644
--- a/blog/2020-11-21-apachecon-obs-sourcemarker/index.html
+++ b/blog/2020-11-21-apachecon-obs-sourcemarker/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-11-21-apachecon-obs-sourcemarker/" />
 <meta property="article:published_time" content="2020-11-21T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="[Video] SourceMarker - Continuous Feedback for Developers">
 <meta itemprop="description" content="ApacheCon@Home 2020 Observability Track">
 <meta itemprop="datePublished" content="2020-11-21T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="209">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -351,19 +351,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-11-21-apachecon-obs-storage/index.html b/blog/2020-11-21-apachecon-obs-storage/index.html
index 7a3b595..e4acac9 100644
--- a/blog/2020-11-21-apachecon-obs-storage/index.html
+++ b/blog/2020-11-21-apachecon-obs-storage/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-11-21-apachecon-obs-storage/" />
 <meta property="article:published_time" content="2020-11-21T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="[Video] The history of distributed tracing storage">
 <meta itemprop="description" content="ApacheCon@Home 2020 Observability Track">
 <meta itemprop="datePublished" content="2020-11-21T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="157">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -351,19 +351,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-11-25-skywalking-satellite-0.1.0-design/index.html b/blog/2020-11-25-skywalking-satellite-0.1.0-design/index.html
index 4787886..d8774a0 100644
--- a/blog/2020-11-25-skywalking-satellite-0.1.0-design/index.html
+++ b/blog/2020-11-25-skywalking-satellite-0.1.0-design/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-11-25-skywalking-satellite-0.1.0-design/" />
 <meta property="article:published_time" content="2020-11-25T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="The first design of Satellite 0.1.0">
 <meta itemprop="description" content="The design of Satellite 0.1.0.  The structure of the project would follow this design.">
 <meta itemprop="datePublished" content="2020-11-25T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="2105">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -592,19 +592,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2020-12-03-obs-service-mesh-with-sw-and-als/index.html b/blog/2020-12-03-obs-service-mesh-with-sw-and-als/index.html
index 7eb94be..e2565fb 100644
--- a/blog/2020-12-03-obs-service-mesh-with-sw-and-als/index.html
+++ b/blog/2020-12-03-obs-service-mesh-with-sw-and-als/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2020-12-03-obs-service-mesh-with-sw-and-als/" />
 <meta property="article:published_time" content="2020-12-03T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Observe Service Mesh with SkyWalking and Envoy Access Log Service">
 <meta itemprop="description" content="In this tutorial, learn how to use Apache SkyWalking for service mesh observability without Istio Mixer">
 <meta itemprop="datePublished" content="2020-12-03T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="1703">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -512,19 +512,38 @@ If you want to  have commercial support for the ALS solution or hybrid mesh obse
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2021-01-01-300-contributors-mark/index.html b/blog/2021-01-01-300-contributors-mark/index.html
index 2a637a3..5934ac1 100644
--- a/blog/2021-01-01-300-contributors-mark/index.html
+++ b/blog/2021-01-01-300-contributors-mark/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2021-01-01-300-contributors-mark/" />
 <meta property="article:published_time" content="2020-12-22T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Celebrate SkyWalking single repository hits the 300 contributors mark">
 <meta itemprop="description" content="SkyWalking hits 300 contributors mark at one single repository">
 <meta itemprop="datePublished" content="2020-12-22T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="753">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -740,19 +740,38 @@ quicker than before, like why we named the project as SkyWalking, we will have a
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2021-01-17-elastic-change-license/index.html b/blog/2021-01-17-elastic-change-license/index.html
index 72d8704..a7f51a2 100644
--- a/blog/2021-01-17-elastic-change-license/index.html
+++ b/blog/2021-01-17-elastic-change-license/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2021-01-17-elastic-change-license/" />
 <meta property="article:published_time" content="2021-01-17T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Response to Elastic 2021 License Change">
 <meta itemprop="description" content="Elastic Search server doesn&#39;t release under Apache 2.0 anymore. What is the impact to the SkyWalking project?">
 <meta itemprop="datePublished" content="2021-01-17T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="602">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -369,19 +369,38 @@ In the later 2021, we will begin to invest the posibility of creating SkyWalking
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2021-01-23-tencent-cloud-violates-aplv2/index.html b/blog/2021-01-23-tencent-cloud-violates-aplv2/index.html
index 9bd6ccc..f9bf4b1 100644
--- a/blog/2021-01-23-tencent-cloud-violates-aplv2/index.html
+++ b/blog/2021-01-23-tencent-cloud-violates-aplv2/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2021-01-23-tencent-cloud-violates-aplv2/" />
 <meta property="article:published_time" content="2021-01-22T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="[Resolved][License Issue] Tencent Cloud TSW service violates the Apache 2.0 License when using SkyWalking.">
 <meta itemprop="description" content="Tencent Cloud Service, Tencent Service Watcher - TSW, have been reported as it violates Apache 2.0 License requirements.">
 <meta itemprop="datePublished" content="2021-01-22T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="406">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -377,19 +377,38 @@ took the following actions to connect with Tencent.</p>
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2021-02-01-e2e-verifier-design/index.html b/blog/2021-02-01-e2e-verifier-design/index.html
index 93c9520..3959ec6 100644
--- a/blog/2021-02-01-e2e-verifier-design/index.html
+++ b/blog/2021-02-01-e2e-verifier-design/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2021-02-01-e2e-verifier-design/" />
 <meta property="article:published_time" content="2021-02-01T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="[Design] The Verifier of NGE2E">
 <meta itemprop="description" content="The design of Next Generation End-to-End Testing Framework  Verifier">
 <meta itemprop="datePublished" content="2021-02-01T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="755">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -494,19 +494,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2021-02-07-infrastructure-monitoring/index.html b/blog/2021-02-07-infrastructure-monitoring/index.html
index 0312d0f..7250dbf 100644
--- a/blog/2021-02-07-infrastructure-monitoring/index.html
+++ b/blog/2021-02-07-infrastructure-monitoring/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2021-02-07-infrastructure-monitoring/" />
 <meta property="article:published_time" content="2021-02-08T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="SkyWalking 8.4 provides infrastructure monitoring">
 <meta itemprop="description" content="In this tutorial, learn how to use Apache SkyWalking for infrastructure monitoring">
 <meta itemprop="datePublished" content="2021-02-08T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="798">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -518,19 +518,38 @@ Note: Clear the browser local cache if you used it to access deployments of  pre
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2021-02-09-skywalking-trace-threadpool/index.html b/blog/2021-02-09-skywalking-trace-threadpool/index.html
index 9d01600..bf962e0 100644
--- a/blog/2021-02-09-skywalking-trace-threadpool/index.html
+++ b/blog/2021-02-09-skywalking-trace-threadpool/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2021-02-09-skywalking-trace-threadpool/" />
 <meta property="article:published_time" content="2021-02-09T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Apache SkyWalking: How to propagate context between threads when using ThreadPoolExecutor">
 <meta itemprop="description" content="This post introduces how to propagate context between threads when using ThreadPoolExecutor, which SkyWalking agent should not enhance">
 <meta itemprop="datePublished" content="2021-02-09T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="432">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -391,19 +391,38 @@ SkyWalking agent instrumentation have finished. For example,</p>
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/2021-03-16-continuous-feedback/index.html b/blog/2021-03-16-continuous-feedback/index.html
index feb9232..dcd8fe8 100644
--- a/blog/2021-03-16-continuous-feedback/index.html
+++ b/blog/2021-03-16-continuous-feedback/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/2021-03-16-continuous-feedback/" />
 <meta property="article:published_time" content="2021-03-16T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="SourceMarker: Continuous Feedback for Developers">
 <meta itemprop="description" content="The JetBrains plugin providing continuous feedback capabilities via Apache SkyWalking.">
 <meta itemprop="datePublished" content="2021-03-16T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="487">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -365,19 +365,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/e2e-design/index.html b/blog/e2e-design/index.html
index 543219c..8fa53ca 100644
--- a/blog/e2e-design/index.html
+++ b/blog/e2e-design/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/e2e-design/" />
 <meta property="article:published_time" content="2020-12-14T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="[Design] NGE2E - Next Generation End-to-End Testing Framework">
 <meta itemprop="description" content="The design of Next Generation End-to-End Testing Framework">
 <meta itemprop="datePublished" content="2020-12-14T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="1448">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -605,19 +605,38 @@ func run() {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/index.html b/blog/index.html
index b1bebe3..d7dfc4a 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -45,8 +45,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -522,19 +522,38 @@ Just 11 months ago, on Jan. 20th, 2020, SkyWalking hit the 200 contributors mark
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/obs-service-mesh-vm-with-sw-and-als/index.html b/blog/obs-service-mesh-vm-with-sw-and-als/index.html
index f097a03..51af0e2 100644
--- a/blog/obs-service-mesh-vm-with-sw-and-als/index.html
+++ b/blog/obs-service-mesh-vm-with-sw-and-als/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/obs-service-mesh-vm-with-sw-and-als/" />
 <meta property="article:published_time" content="2021-02-21T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Observe VM Service Meshes with Apache SkyWalking and the Envoy Access Log Service">
 <meta itemprop="description" content="In this tutorial, you can learn how to use Apache SkyWalking for service mesh observability, in Kubernetes and / or in virtual machines.">
 <meta itemprop="datePublished" content="2021-02-21T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="1285">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -499,19 +499,38 @@ to <code>UTC +0</code>.</p>
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/page/2/index.html b/blog/page/2/index.html
index df2a6c3..dff0929 100644
--- a/blog/page/2/index.html
+++ b/blog/page/2/index.html
@@ -45,8 +45,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -509,19 +509,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/page/3/index.html b/blog/page/3/index.html
index 8fd2a8e..58cf61c 100644
--- a/blog/page/3/index.html
+++ b/blog/page/3/index.html
@@ -45,8 +45,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -493,19 +493,38 @@ In many big systems, distributed and especially microservice architectures becom
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/blog/skywalking8-4-release/index.html b/blog/skywalking8-4-release/index.html
index 7d53f50..9e1aeb9 100644
--- a/blog/skywalking8-4-release/index.html
+++ b/blog/skywalking8-4-release/index.html
@@ -24,11 +24,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="/blog/skywalking8-4-release/" />
 <meta property="article:published_time" content="2021-02-05T00:00:00+00:00" />
-<meta property="article:modified_time" content="2021-03-15T23:12:50-04:00" />
+<meta property="article:modified_time" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="name" content="Apache SkyWalking 8.4: Logs, VM Monitoring, and Dynamic Configurations at Agent Side">
 <meta itemprop="description" content="Logs, VM Monitoring, and Dynamic Configurations at Agent Side">
 <meta itemprop="datePublished" content="2021-02-05T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2021-03-15T23:12:50-04:00" />
+<meta itemprop="dateModified" content="2021-03-16T11:13:26+08:00" />
 <meta itemprop="wordCount" content="631">
 
 
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -413,19 +413,38 @@ Figure 5: Grouped Service Topology</p>
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/index.html b/docs/index.html
index 52b5f64..044ce1d 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -45,8 +45,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
diff --git a/docs/main/latest/en/concepts-and-designs/backend-overview/index.html b/docs/main/latest/en/concepts-and-designs/backend-overview/index.html
index 8f0c424..c0d4c7b 100644
--- a/docs/main/latest/en/concepts-and-designs/backend-overview/index.html
+++ b/docs/main/latest/en/concepts-and-designs/backend-overview/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/event/index.html b/docs/main/latest/en/concepts-and-designs/event/index.html
index 13a917b..6651609 100644
--- a/docs/main/latest/en/concepts-and-designs/event/index.html
+++ b/docs/main/latest/en/concepts-and-designs/event/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -927,19 +927,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/lal/index.html b/docs/main/latest/en/concepts-and-designs/lal/index.html
index 6458501..1c55d97 100644
--- a/docs/main/latest/en/concepts-and-designs/lal/index.html
+++ b/docs/main/latest/en/concepts-and-designs/lal/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -925,19 +925,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/mal/index.html b/docs/main/latest/en/concepts-and-designs/mal/index.html
index a38922f..139c9bb 100644
--- a/docs/main/latest/en/concepts-and-designs/mal/index.html
+++ b/docs/main/latest/en/concepts-and-designs/mal/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -932,19 +932,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/manual-sdk/index.html b/docs/main/latest/en/concepts-and-designs/manual-sdk/index.html
index a5dfdf2..e0dcc76 100644
--- a/docs/main/latest/en/concepts-and-designs/manual-sdk/index.html
+++ b/docs/main/latest/en/concepts-and-designs/manual-sdk/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -922,19 +922,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/meter/index.html b/docs/main/latest/en/concepts-and-designs/meter/index.html
index 48aec22..889d658 100644
--- a/docs/main/latest/en/concepts-and-designs/meter/index.html
+++ b/docs/main/latest/en/concepts-and-designs/meter/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/oal/index.html b/docs/main/latest/en/concepts-and-designs/oal/index.html
index 31d03b5..d2272a9 100644
--- a/docs/main/latest/en/concepts-and-designs/oal/index.html
+++ b/docs/main/latest/en/concepts-and-designs/oal/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -928,19 +928,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/overview/index.html b/docs/main/latest/en/concepts-and-designs/overview/index.html
index 76e5802..0cbc0e0 100644
--- a/docs/main/latest/en/concepts-and-designs/overview/index.html
+++ b/docs/main/latest/en/concepts-and-designs/overview/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -920,19 +920,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/probe-introduction/index.html b/docs/main/latest/en/concepts-and-designs/probe-introduction/index.html
index 8e82543..5f94758 100644
--- a/docs/main/latest/en/concepts-and-designs/probe-introduction/index.html
+++ b/docs/main/latest/en/concepts-and-designs/probe-introduction/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/project-goals/index.html b/docs/main/latest/en/concepts-and-designs/project-goals/index.html
index 8650cf5..e7fe031 100644
--- a/docs/main/latest/en/concepts-and-designs/project-goals/index.html
+++ b/docs/main/latest/en/concepts-and-designs/project-goals/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/scope-definitions/index.html b/docs/main/latest/en/concepts-and-designs/scope-definitions/index.html
index 63fe591..a8c2e91 100644
--- a/docs/main/latest/en/concepts-and-designs/scope-definitions/index.html
+++ b/docs/main/latest/en/concepts-and-designs/scope-definitions/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -932,19 +932,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/service-agent/index.html b/docs/main/latest/en/concepts-and-designs/service-agent/index.html
index e6fe5a0..e1e69bb 100644
--- a/docs/main/latest/en/concepts-and-designs/service-agent/index.html
+++ b/docs/main/latest/en/concepts-and-designs/service-agent/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -920,19 +920,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/service-mesh-probe/index.html b/docs/main/latest/en/concepts-and-designs/service-mesh-probe/index.html
index f30ee65..f561642 100644
--- a/docs/main/latest/en/concepts-and-designs/service-mesh-probe/index.html
+++ b/docs/main/latest/en/concepts-and-designs/service-mesh-probe/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -923,19 +923,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/concepts-and-designs/ui-overview/index.html b/docs/main/latest/en/concepts-and-designs/ui-overview/index.html
index 7787dee..7a26a61 100644
--- a/docs/main/latest/en/concepts-and-designs/ui-overview/index.html
+++ b/docs/main/latest/en/concepts-and-designs/ui-overview/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/compatible-with-other-javaagent-bytecode-processing/index.html b/docs/main/latest/en/faq/compatible-with-other-javaagent-bytecode-processing/index.html
index 61ebdc1..9009c7b 100644
--- a/docs/main/latest/en/faq/compatible-with-other-javaagent-bytecode-processing/index.html
+++ b/docs/main/latest/en/faq/compatible-with-other-javaagent-bytecode-processing/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -927,19 +927,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/enhancerequireobjectcache-cast-exception/index.html b/docs/main/latest/en/faq/enhancerequireobjectcache-cast-exception/index.html
index df5b9e3..39b0956 100644
--- a/docs/main/latest/en/faq/enhancerequireobjectcache-cast-exception/index.html
+++ b/docs/main/latest/en/faq/enhancerequireobjectcache-cast-exception/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -924,19 +924,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/es-server-faq/index.html b/docs/main/latest/en/faq/es-server-faq/index.html
index b3b318f..6162254 100644
--- a/docs/main/latest/en/faq/es-server-faq/index.html
+++ b/docs/main/latest/en/faq/es-server-faq/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/hour-day-metrics-stopping/index.html b/docs/main/latest/en/faq/hour-day-metrics-stopping/index.html
index 12cfd26..e3b99e7 100644
--- a/docs/main/latest/en/faq/hour-day-metrics-stopping/index.html
+++ b/docs/main/latest/en/faq/hour-day-metrics-stopping/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/how-to-build-with-mac-m1/index.html b/docs/main/latest/en/faq/how-to-build-with-mac-m1/index.html
index 0eaf34a..b024725 100644
--- a/docs/main/latest/en/faq/how-to-build-with-mac-m1/index.html
+++ b/docs/main/latest/en/faq/how-to-build-with-mac-m1/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -921,19 +921,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/import-project-eclipse-requireitems-exception/index.html b/docs/main/latest/en/faq/import-project-eclipse-requireitems-exception/index.html
index 6dd495a..43f1238 100644
--- a/docs/main/latest/en/faq/import-project-eclipse-requireitems-exception/index.html
+++ b/docs/main/latest/en/faq/import-project-eclipse-requireitems-exception/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -927,19 +927,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/install_agent_on_websphere/index.html b/docs/main/latest/en/faq/install_agent_on_websphere/index.html
index 51f20d0..1fa78b4 100644
--- a/docs/main/latest/en/faq/install_agent_on_websphere/index.html
+++ b/docs/main/latest/en/faq/install_agent_on_websphere/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/kafka-plugin/index.html b/docs/main/latest/en/faq/kafka-plugin/index.html
index 18bcf1a..a64d252 100644
--- a/docs/main/latest/en/faq/kafka-plugin/index.html
+++ b/docs/main/latest/en/faq/kafka-plugin/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -924,19 +924,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/maven-compile-npm-failure/index.html b/docs/main/latest/en/faq/maven-compile-npm-failure/index.html
index 0493864..680f44c 100644
--- a/docs/main/latest/en/faq/maven-compile-npm-failure/index.html
+++ b/docs/main/latest/en/faq/maven-compile-npm-failure/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -927,19 +927,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/memory-leak-enhance-worker-thread/index.html b/docs/main/latest/en/faq/memory-leak-enhance-worker-thread/index.html
index d503f4d..7d75bcf 100644
--- a/docs/main/latest/en/faq/memory-leak-enhance-worker-thread/index.html
+++ b/docs/main/latest/en/faq/memory-leak-enhance-worker-thread/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -925,19 +925,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/protoc-plugin-fails-when-build/index.html b/docs/main/latest/en/faq/protoc-plugin-fails-when-build/index.html
index 5ccf607..99d3004 100644
--- a/docs/main/latest/en/faq/protoc-plugin-fails-when-build/index.html
+++ b/docs/main/latest/en/faq/protoc-plugin-fails-when-build/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -921,19 +921,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/readme/index.html b/docs/main/latest/en/faq/readme/index.html
index 965f72d..18a93d4 100644
--- a/docs/main/latest/en/faq/readme/index.html
+++ b/docs/main/latest/en/faq/readme/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -921,19 +921,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/thrift-plugin/index.html b/docs/main/latest/en/faq/thrift-plugin/index.html
index 17a7186..b77ff32 100644
--- a/docs/main/latest/en/faq/thrift-plugin/index.html
+++ b/docs/main/latest/en/faq/thrift-plugin/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -927,19 +927,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/time-and-timezone/index.html b/docs/main/latest/en/faq/time-and-timezone/index.html
index ef20c6f..3320b28 100644
--- a/docs/main/latest/en/faq/time-and-timezone/index.html
+++ b/docs/main/latest/en/faq/time-and-timezone/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -920,19 +920,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/unexpected-endpoint-register/index.html b/docs/main/latest/en/faq/unexpected-endpoint-register/index.html
index 3b2d64a..03c9b6f 100644
--- a/docs/main/latest/en/faq/unexpected-endpoint-register/index.html
+++ b/docs/main/latest/en/faq/unexpected-endpoint-register/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/v3-version-upgrade/index.html b/docs/main/latest/en/faq/v3-version-upgrade/index.html
index 27beea0..8924d97 100644
--- a/docs/main/latest/en/faq/v3-version-upgrade/index.html
+++ b/docs/main/latest/en/faq/v3-version-upgrade/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -928,19 +928,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/v6-version-upgrade/index.html b/docs/main/latest/en/faq/v6-version-upgrade/index.html
index 80ab9f4..5e889fd 100644
--- a/docs/main/latest/en/faq/v6-version-upgrade/index.html
+++ b/docs/main/latest/en/faq/v6-version-upgrade/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -926,19 +926,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/v8-version-upgrade/index.html b/docs/main/latest/en/faq/v8-version-upgrade/index.html
index 2034ecd..64722d9 100644
--- a/docs/main/latest/en/faq/v8-version-upgrade/index.html
+++ b/docs/main/latest/en/faq/v8-version-upgrade/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/vnode/index.html b/docs/main/latest/en/faq/vnode/index.html
index 015fe42..8e7658e 100644
--- a/docs/main/latest/en/faq/vnode/index.html
+++ b/docs/main/latest/en/faq/vnode/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -922,19 +922,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/why-have-traces-no-others/index.html b/docs/main/latest/en/faq/why-have-traces-no-others/index.html
index 74794cc..62c16ab 100644
--- a/docs/main/latest/en/faq/why-have-traces-no-others/index.html
+++ b/docs/main/latest/en/faq/why-have-traces-no-others/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -924,19 +924,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/faq/why_mq_not_involved/index.html b/docs/main/latest/en/faq/why_mq_not_involved/index.html
index f6b0063..bc10bd2 100644
--- a/docs/main/latest/en/faq/why_mq_not_involved/index.html
+++ b/docs/main/latest/en/faq/why_mq_not_involved/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -927,19 +927,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/asf/committer/index.html b/docs/main/latest/en/guides/asf/committer/index.html
index a11366b..203b938 100644
--- a/docs/main/latest/en/guides/asf/committer/index.html
+++ b/docs/main/latest/en/guides/asf/committer/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -930,19 +930,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/backend-oal-scripts/index.html b/docs/main/latest/en/guides/backend-oal-scripts/index.html
index a5cd0d4..64c7b62 100644
--- a/docs/main/latest/en/guides/backend-oal-scripts/index.html
+++ b/docs/main/latest/en/guides/backend-oal-scripts/index.html
@@ -64,8 +64,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -921,19 +921,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/backend-profile-export/index.html b/docs/main/latest/en/guides/backend-profile-export/index.html
index b2dbe10..f02232a 100644
--- a/docs/main/latest/en/guides/backend-profile-export/index.html
+++ b/docs/main/latest/en/guides/backend-profile-export/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -917,19 +917,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/backend-profile/index.html b/docs/main/latest/en/guides/backend-profile/index.html
index f6c0ef8..5d56b97 100644
--- a/docs/main/latest/en/guides/backend-profile/index.html
+++ b/docs/main/latest/en/guides/backend-profile/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -921,19 +921,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/component-library-settings/index.html b/docs/main/latest/en/guides/component-library-settings/index.html
index 6e4c717..4f2d5c0 100644
--- a/docs/main/latest/en/guides/component-library-settings/index.html
+++ b/docs/main/latest/en/guides/component-library-settings/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -926,19 +926,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/e2e-local-remote-debug/index.html b/docs/main/latest/en/guides/e2e-local-remote-debug/index.html
index 72eaf9b..5b44c03 100644
--- a/docs/main/latest/en/guides/e2e-local-remote-debug/index.html
+++ b/docs/main/latest/en/guides/e2e-local-remote-debug/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/how-to-build/index.html b/docs/main/latest/en/guides/how-to-build/index.html
index 57315e2..13e2bc0 100644
--- a/docs/main/latest/en/guides/how-to-build/index.html
+++ b/docs/main/latest/en/guides/how-to-build/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -933,19 +933,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/how-to-release/index.html b/docs/main/latest/en/guides/how-to-release/index.html
index 5f94e47..8213aa0 100644
--- a/docs/main/latest/en/guides/how-to-release/index.html
+++ b/docs/main/latest/en/guides/how-to-release/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -937,19 +937,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/java-plugin-development-guide/index.html b/docs/main/latest/en/guides/java-plugin-development-guide/index.html
index efb6c3e..160664f 100644
--- a/docs/main/latest/en/guides/java-plugin-development-guide/index.html
+++ b/docs/main/latest/en/guides/java-plugin-development-guide/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -945,19 +945,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/plugin-test/index.html b/docs/main/latest/en/guides/plugin-test/index.html
index f72f99c..e988e22 100644
--- a/docs/main/latest/en/guides/plugin-test/index.html
+++ b/docs/main/latest/en/guides/plugin-test/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -939,19 +939,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/readme/index.html b/docs/main/latest/en/guides/readme/index.html
index ce0ac72..54d8aa8 100644
--- a/docs/main/latest/en/guides/readme/index.html
+++ b/docs/main/latest/en/guides/readme/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -930,19 +930,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/source-extension/index.html b/docs/main/latest/en/guides/source-extension/index.html
index 9663894..56c9564 100644
--- a/docs/main/latest/en/guides/source-extension/index.html
+++ b/docs/main/latest/en/guides/source-extension/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/guides/storage-extention/index.html b/docs/main/latest/en/guides/storage-extention/index.html
index 04c5308..288a659 100644
--- a/docs/main/latest/en/guides/storage-extention/index.html
+++ b/docs/main/latest/en/guides/storage-extention/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -925,19 +925,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/protocols/browser-http-api-protocol/index.html b/docs/main/latest/en/protocols/browser-http-api-protocol/index.html
index 5dff54b..d5944b3 100644
--- a/docs/main/latest/en/protocols/browser-http-api-protocol/index.html
+++ b/docs/main/latest/en/protocols/browser-http-api-protocol/index.html
@@ -64,8 +64,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -937,19 +937,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/protocols/browser-protocol/index.html b/docs/main/latest/en/protocols/browser-protocol/index.html
index cbd2c5a..dc0354e 100644
--- a/docs/main/latest/en/protocols/browser-protocol/index.html
+++ b/docs/main/latest/en/protocols/browser-protocol/index.html
@@ -64,8 +64,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -931,19 +931,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/protocols/http-api-protocol/index.html b/docs/main/latest/en/protocols/http-api-protocol/index.html
index f3a6be5..2003089 100644
--- a/docs/main/latest/en/protocols/http-api-protocol/index.html
+++ b/docs/main/latest/en/protocols/http-api-protocol/index.html
@@ -64,8 +64,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -933,19 +933,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/protocols/jvm-protocol/index.html b/docs/main/latest/en/protocols/jvm-protocol/index.html
index 04476e4..ec40303 100644
--- a/docs/main/latest/en/protocols/jvm-protocol/index.html
+++ b/docs/main/latest/en/protocols/jvm-protocol/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/protocols/log-data-protocol/index.html b/docs/main/latest/en/protocols/log-data-protocol/index.html
index 7736589..d8a2003 100644
--- a/docs/main/latest/en/protocols/log-data-protocol/index.html
+++ b/docs/main/latest/en/protocols/log-data-protocol/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/protocols/query-protocol/index.html b/docs/main/latest/en/protocols/query-protocol/index.html
index eed621e..5cc2a2f 100644
--- a/docs/main/latest/en/protocols/query-protocol/index.html
+++ b/docs/main/latest/en/protocols/query-protocol/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -937,19 +937,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/protocols/readme/index.html b/docs/main/latest/en/protocols/readme/index.html
index b7c339e..04871f4 100644
--- a/docs/main/latest/en/protocols/readme/index.html
+++ b/docs/main/latest/en/protocols/readme/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -933,19 +933,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/protocols/skywalking-cross-process-correlation-headers-protocol-v1/index.html b/docs/main/latest/en/protocols/skywalking-cross-process-correlation-headers-protocol-v1/index.html
index c3f6f51..30c0605 100644
--- a/docs/main/latest/en/protocols/skywalking-cross-process-correlation-headers-protocol-v1/index.html
+++ b/docs/main/latest/en/protocols/skywalking-cross-process-correlation-headers-protocol-v1/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/protocols/skywalking-cross-process-propagation-headers-protocol-v3/index.html b/docs/main/latest/en/protocols/skywalking-cross-process-propagation-headers-protocol-v3/index.html
index c889e8e..ed99c1d 100644
--- a/docs/main/latest/en/protocols/skywalking-cross-process-propagation-headers-protocol-v3/index.html
+++ b/docs/main/latest/en/protocols/skywalking-cross-process-propagation-headers-protocol-v3/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -923,19 +923,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/protocols/trace-data-protocol-v3/index.html b/docs/main/latest/en/protocols/trace-data-protocol-v3/index.html
index af75d93..84b7d1e 100644
--- a/docs/main/latest/en/protocols/trace-data-protocol-v3/index.html
+++ b/docs/main/latest/en/protocols/trace-data-protocol-v3/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -926,19 +926,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/advanced-deployment/index.html b/docs/main/latest/en/setup/backend/advanced-deployment/index.html
index f81fa9c..61d64f0 100644
--- a/docs/main/latest/en/setup/backend/advanced-deployment/index.html
+++ b/docs/main/latest/en/setup/backend/advanced-deployment/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -927,19 +927,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/apdex-threshold/index.html b/docs/main/latest/en/setup/backend/apdex-threshold/index.html
index 3dbc270..6947131 100644
--- a/docs/main/latest/en/setup/backend/apdex-threshold/index.html
+++ b/docs/main/latest/en/setup/backend/apdex-threshold/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-alarm/index.html b/docs/main/latest/en/setup/backend/backend-alarm/index.html
index 8817d28..b033ec1 100644
--- a/docs/main/latest/en/setup/backend/backend-alarm/index.html
+++ b/docs/main/latest/en/setup/backend/backend-alarm/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -933,19 +933,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-cluster/index.html b/docs/main/latest/en/setup/backend/backend-cluster/index.html
index cdfac84..4e0acc6 100644
--- a/docs/main/latest/en/setup/backend/backend-cluster/index.html
+++ b/docs/main/latest/en/setup/backend/backend-cluster/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -925,19 +925,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-fetcher/index.html b/docs/main/latest/en/setup/backend/backend-fetcher/index.html
index 18fc6af..678a74d 100644
--- a/docs/main/latest/en/setup/backend/backend-fetcher/index.html
+++ b/docs/main/latest/en/setup/backend/backend-fetcher/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -926,19 +926,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-health-check/index.html b/docs/main/latest/en/setup/backend/backend-health-check/index.html
index 8eb6527..e3112ff 100644
--- a/docs/main/latest/en/setup/backend/backend-health-check/index.html
+++ b/docs/main/latest/en/setup/backend/backend-health-check/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -923,19 +923,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-init-mode/index.html b/docs/main/latest/en/setup/backend/backend-init-mode/index.html
index 1f5e585..c41d9f3 100644
--- a/docs/main/latest/en/setup/backend/backend-init-mode/index.html
+++ b/docs/main/latest/en/setup/backend/backend-init-mode/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-ip-port/index.html b/docs/main/latest/en/setup/backend/backend-ip-port/index.html
index 6ed5c0a..98d41f8 100644
--- a/docs/main/latest/en/setup/backend/backend-ip-port/index.html
+++ b/docs/main/latest/en/setup/backend/backend-ip-port/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -926,19 +926,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-k8s/index.html b/docs/main/latest/en/setup/backend/backend-k8s/index.html
index 58627f7..66d4f93 100644
--- a/docs/main/latest/en/setup/backend/backend-k8s/index.html
+++ b/docs/main/latest/en/setup/backend/backend-k8s/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-meter/index.html b/docs/main/latest/en/setup/backend/backend-meter/index.html
index 131848e..67a65f4 100644
--- a/docs/main/latest/en/setup/backend/backend-meter/index.html
+++ b/docs/main/latest/en/setup/backend/backend-meter/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -926,19 +926,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-receivers/index.html b/docs/main/latest/en/setup/backend/backend-receivers/index.html
index 2a54d3d..967fa2e 100644
--- a/docs/main/latest/en/setup/backend/backend-receivers/index.html
+++ b/docs/main/latest/en/setup/backend/backend-receivers/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -924,19 +924,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-setting-override/index.html b/docs/main/latest/en/setup/backend/backend-setting-override/index.html
index 48178b4..1b31b2e 100644
--- a/docs/main/latest/en/setup/backend/backend-setting-override/index.html
+++ b/docs/main/latest/en/setup/backend/backend-setting-override/index.html
@@ -73,8 +73,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -937,19 +937,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-setup/index.html b/docs/main/latest/en/setup/backend/backend-setup/index.html
index 9cfb6e9..df2a0b5 100644
--- a/docs/main/latest/en/setup/backend/backend-setup/index.html
+++ b/docs/main/latest/en/setup/backend/backend-setup/index.html
@@ -64,8 +64,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -941,19 +941,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-start-up-mode/index.html b/docs/main/latest/en/setup/backend/backend-start-up-mode/index.html
index 6575cd9..3deb2b1 100644
--- a/docs/main/latest/en/setup/backend/backend-start-up-mode/index.html
+++ b/docs/main/latest/en/setup/backend/backend-start-up-mode/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -926,19 +926,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-storage/index.html b/docs/main/latest/en/setup/backend/backend-storage/index.html
index 0459c59..c2733d0 100644
--- a/docs/main/latest/en/setup/backend/backend-storage/index.html
+++ b/docs/main/latest/en/setup/backend/backend-storage/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -937,19 +937,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-telemetry/index.html b/docs/main/latest/en/setup/backend/backend-telemetry/index.html
index da973a0..1962b0d 100644
--- a/docs/main/latest/en/setup/backend/backend-telemetry/index.html
+++ b/docs/main/latest/en/setup/backend/backend-telemetry/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -929,19 +929,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-token-auth/index.html b/docs/main/latest/en/setup/backend/backend-token-auth/index.html
index 4b0da29..b09c6cb 100644
--- a/docs/main/latest/en/setup/backend/backend-token-auth/index.html
+++ b/docs/main/latest/en/setup/backend/backend-token-auth/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -937,19 +937,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/backend-zabbix/index.html b/docs/main/latest/en/setup/backend/backend-zabbix/index.html
index 0f20a01..39dee3c 100644
--- a/docs/main/latest/en/setup/backend/backend-zabbix/index.html
+++ b/docs/main/latest/en/setup/backend/backend-zabbix/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -923,19 +923,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/configuration-vocabulary/index.html b/docs/main/latest/en/setup/backend/configuration-vocabulary/index.html
index 6e5904a..92aa411 100644
--- a/docs/main/latest/en/setup/backend/configuration-vocabulary/index.html
+++ b/docs/main/latest/en/setup/backend/configuration-vocabulary/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/dynamic-config/index.html b/docs/main/latest/en/setup/backend/dynamic-config/index.html
index 447b417..536c2f1 100644
--- a/docs/main/latest/en/setup/backend/dynamic-config/index.html
+++ b/docs/main/latest/en/setup/backend/dynamic-config/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -927,19 +927,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/endpoint-grouping-rules/index.html b/docs/main/latest/en/setup/backend/endpoint-grouping-rules/index.html
index e5f84e1..fac1125 100644
--- a/docs/main/latest/en/setup/backend/endpoint-grouping-rules/index.html
+++ b/docs/main/latest/en/setup/backend/endpoint-grouping-rules/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/grpc-ssl/index.html b/docs/main/latest/en/setup/backend/grpc-ssl/index.html
index 0e3516e..5886ab2 100644
--- a/docs/main/latest/en/setup/backend/grpc-ssl/index.html
+++ b/docs/main/latest/en/setup/backend/grpc-ssl/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/log-analyzer/index.html b/docs/main/latest/en/setup/backend/log-analyzer/index.html
index 343ebb6..0be434c 100644
--- a/docs/main/latest/en/setup/backend/log-analyzer/index.html
+++ b/docs/main/latest/en/setup/backend/log-analyzer/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/metrics-exporter/index.html b/docs/main/latest/en/setup/backend/metrics-exporter/index.html
index d4cacb7..9257b60 100644
--- a/docs/main/latest/en/setup/backend/metrics-exporter/index.html
+++ b/docs/main/latest/en/setup/backend/metrics-exporter/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -930,19 +930,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/service-auto-grouping/index.html b/docs/main/latest/en/setup/backend/service-auto-grouping/index.html
index e2a18fd..6e4a2a6 100644
--- a/docs/main/latest/en/setup/backend/service-auto-grouping/index.html
+++ b/docs/main/latest/en/setup/backend/service-auto-grouping/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -925,19 +925,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/slow-db-statement/index.html b/docs/main/latest/en/setup/backend/slow-db-statement/index.html
index 3ba119f..75644a7 100644
--- a/docs/main/latest/en/setup/backend/slow-db-statement/index.html
+++ b/docs/main/latest/en/setup/backend/slow-db-statement/index.html
@@ -64,8 +64,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -921,19 +921,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/spring-sleuth-setup/index.html b/docs/main/latest/en/setup/backend/spring-sleuth-setup/index.html
index 7fce213..baa7848 100644
--- a/docs/main/latest/en/setup/backend/spring-sleuth-setup/index.html
+++ b/docs/main/latest/en/setup/backend/spring-sleuth-setup/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -921,19 +921,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/trace-sampling/index.html b/docs/main/latest/en/setup/backend/trace-sampling/index.html
index 56ad9d6..331dc2d 100644
--- a/docs/main/latest/en/setup/backend/trace-sampling/index.html
+++ b/docs/main/latest/en/setup/backend/trace-sampling/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/ttl/index.html b/docs/main/latest/en/setup/backend/ttl/index.html
index 25187b2..e5a4bdd 100644
--- a/docs/main/latest/en/setup/backend/ttl/index.html
+++ b/docs/main/latest/en/setup/backend/ttl/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/ui-setup/index.html b/docs/main/latest/en/setup/backend/ui-setup/index.html
index f862bb9..571dc4f 100644
--- a/docs/main/latest/en/setup/backend/ui-setup/index.html
+++ b/docs/main/latest/en/setup/backend/ui-setup/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -918,19 +918,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/backend/uninstrumented-gateways/index.html b/docs/main/latest/en/setup/backend/uninstrumented-gateways/index.html
index 5811b84..3cb65ad 100644
--- a/docs/main/latest/en/setup/backend/uninstrumented-gateways/index.html
+++ b/docs/main/latest/en/setup/backend/uninstrumented-gateways/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -909,19 +909,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/envoy/als_setting/index.html b/docs/main/latest/en/setup/envoy/als_setting/index.html
index cc86cfc..b4b0d63 100644
--- a/docs/main/latest/en/setup/envoy/als_setting/index.html
+++ b/docs/main/latest/en/setup/envoy/als_setting/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -930,19 +930,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/envoy/examples/metrics/readme/index.html b/docs/main/latest/en/setup/envoy/examples/metrics/readme/index.html
index caa201c..7e0c514 100644
--- a/docs/main/latest/en/setup/envoy/examples/metrics/readme/index.html
+++ b/docs/main/latest/en/setup/envoy/examples/metrics/readme/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/envoy/metrics_service_setting/index.html b/docs/main/latest/en/setup/envoy/metrics_service_setting/index.html
index 82589ce..14fc44f 100644
--- a/docs/main/latest/en/setup/envoy/metrics_service_setting/index.html
+++ b/docs/main/latest/en/setup/envoy/metrics_service_setting/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -919,19 +919,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/istio/readme/index.html b/docs/main/latest/en/setup/istio/readme/index.html
index 47f3c5f..d4418db 100644
--- a/docs/main/latest/en/setup/istio/readme/index.html
+++ b/docs/main/latest/en/setup/istio/readme/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -931,19 +931,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/browser-agent/index.html b/docs/main/latest/en/setup/service-agent/browser-agent/index.html
index c4e3fdb..3a30c01 100644
--- a/docs/main/latest/en/setup/service-agent/browser-agent/index.html
+++ b/docs/main/latest/en/setup/service-agent/browser-agent/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/kotlin-coroutine-plugin/index.html b/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/kotlin-coroutine-plugin/index.html
index f221c3c..e9e146a 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/kotlin-coroutine-plugin/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/kotlin-coroutine-plugin/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -931,19 +931,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/oracle-resin-plugins/index.html b/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/oracle-resin-plugins/index.html
index dfcbf5a..4e155fe 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/oracle-resin-plugins/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/oracle-resin-plugins/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/spring-annotation-plugin/index.html b/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/spring-annotation-plugin/index.html
index b1729b1..7038fbd 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/spring-annotation-plugin/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/spring-annotation-plugin/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/trace-ignore-plugin/index.html b/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/trace-ignore-plugin/index.html
index 9701b77..65523cc 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/trace-ignore-plugin/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/agent-optional-plugins/trace-ignore-plugin/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -923,19 +923,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-log4j-1.x/index.html b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-log4j-1.x/index.html
index b85aaff..c1b2c26 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-log4j-1.x/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-log4j-1.x/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -909,19 +909,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-log4j-2.x/index.html b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-log4j-2.x/index.html
index 4bfd2aa..a6d89f6 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-log4j-2.x/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-log4j-2.x/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -909,19 +909,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/index.html b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/index.html
index 38ae48e..d7d9c1a 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -909,19 +909,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-meter/index.html b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-meter/index.html
index f351fb2..f4485ea 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-meter/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-meter/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-micrometer/index.html b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-micrometer/index.html
index f28b412..c56eb4f 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-micrometer/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-micrometer/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -909,19 +909,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-trace-cross-thread/index.html b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-trace-cross-thread/index.html
index dab243f..7f62cbd 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-trace-cross-thread/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-trace-cross-thread/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -909,19 +909,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-trace/index.html b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-trace/index.html
index 725d13a..675c441 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-trace/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/application-toolkit-trace/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/configuration-discovery/index.html b/docs/main/latest/en/setup/service-agent/java-agent/configuration-discovery/index.html
index a777cd5..218950d 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/configuration-discovery/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/configuration-discovery/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -922,19 +922,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/customize-enhance-trace/index.html b/docs/main/latest/en/setup/service-agent/java-agent/customize-enhance-trace/index.html
index 095b9ab..ff6c33d 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/customize-enhance-trace/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/customize-enhance-trace/index.html
@@ -64,8 +64,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -929,19 +929,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/how-to-disable-plugin/index.html b/docs/main/latest/en/setup/service-agent/java-agent/how-to-disable-plugin/index.html
index ac027e2..e41665c 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/how-to-disable-plugin/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/how-to-disable-plugin/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/how-to-enable-kafka-reporter/index.html b/docs/main/latest/en/setup/service-agent/java-agent/how-to-enable-kafka-reporter/index.html
index 393d581f..9e5241e 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/how-to-enable-kafka-reporter/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/how-to-enable-kafka-reporter/index.html
@@ -58,8 +58,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -915,19 +915,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/how-to-tolerate-exceptions/index.html b/docs/main/latest/en/setup/service-agent/java-agent/how-to-tolerate-exceptions/index.html
index abad006..09cf189 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/how-to-tolerate-exceptions/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/how-to-tolerate-exceptions/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -929,19 +929,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/namespace/index.html b/docs/main/latest/en/setup/service-agent/java-agent/namespace/index.html
index 3eac37d..90187c4 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/namespace/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/namespace/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -923,19 +923,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/opentracing/index.html b/docs/main/latest/en/setup/service-agent/java-agent/opentracing/index.html
index e26316f..713a0d9 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/opentracing/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/opentracing/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -909,19 +909,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/plugin-list/index.html b/docs/main/latest/en/setup/service-agent/java-agent/plugin-list/index.html
index 896dd28..d0dee65 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/plugin-list/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/plugin-list/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -909,19 +909,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/readme/index.html b/docs/main/latest/en/setup/service-agent/java-agent/readme/index.html
index d28b5e9..41d25c7 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/readme/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/readme/index.html
@@ -52,8 +52,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -925,19 +925,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/setting-override/index.html b/docs/main/latest/en/setup/service-agent/java-agent/setting-override/index.html
index 4ca9c55..8b714e4 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/setting-override/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/setting-override/index.html
@@ -67,8 +67,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -933,19 +933,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/specified-agent-config/index.html b/docs/main/latest/en/setup/service-agent/java-agent/specified-agent-config/index.html
index 47e09bc..8e1b11d 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/specified-agent-config/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/specified-agent-config/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -921,19 +921,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/supported-list/index.html b/docs/main/latest/en/setup/service-agent/java-agent/supported-list/index.html
index af9dfad..8c2565f 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/supported-list/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/supported-list/index.html
@@ -55,8 +55,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -912,19 +912,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/tls/index.html b/docs/main/latest/en/setup/service-agent/java-agent/tls/index.html
index 4f30539..f083160 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/tls/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/tls/index.html
@@ -64,8 +64,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -932,19 +932,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/java-agent/token-auth/index.html b/docs/main/latest/en/setup/service-agent/java-agent/token-auth/index.html
index fe5bf74..0c2d74d 100644
--- a/docs/main/latest/en/setup/service-agent/java-agent/token-auth/index.html
+++ b/docs/main/latest/en/setup/service-agent/java-agent/token-auth/index.html
@@ -64,8 +64,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -938,19 +938,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/setup/service-agent/server-agents/index.html b/docs/main/latest/en/setup/service-agent/server-agents/index.html
index c682f78..c76b068 100644
--- a/docs/main/latest/en/setup/service-agent/server-agents/index.html
+++ b/docs/main/latest/en/setup/service-agent/server-agents/index.html
@@ -61,8 +61,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -918,19 +918,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/en/ui/readme/index.html b/docs/main/latest/en/ui/readme/index.html
index 7d98efb..6d859d7 100644
--- a/docs/main/latest/en/ui/readme/index.html
+++ b/docs/main/latest/en/ui/readme/index.html
@@ -64,8 +64,8 @@ if (!doNotTrack) {
 
 
 
-<link rel="preload" href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" as="style">
-<link href="/scss/main.min.47fb3abdc4acc7f634ea3832299986022ed5251b9bdb53a1c86cb11b43d390a4.css" rel="stylesheet" integrity="">
+<link rel="preload" href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" as="style">
+<link href="/scss/main.min.977b8641549dc8bd529a799aab00c330c84d2c6e559d818934b327eac8aaf66e.css" rel="stylesheet" integrity="">
 
 
 <script
@@ -940,19 +940,38 @@ if (!doNotTrack) {
       return;
     }
     var top = $toc.offset().top;
+    $(window).on("scroll", debounce(setTop, 100))
+    $(window).on("scroll", debounce(addActive, 30))
 
-    window.onscroll = debounce(setTop)
+    function addActive() {
+      var scrollValue = $(window).scrollTop();
+      var topEle = null;
+      $.each($('main h1, main h2, main h3'), function (index, item) {
+        if ($(item).offset().top - 70 > scrollValue) {
+          return
+        }
+        if (!topEle) {
+          topEle = item
+        } else if ($(item).offset().top >= $(topEle).offset().top) {
+          topEle = item
+        }
+        if (topEle) {
+          var id = $(item).attr('id');
+          $toc.find('a').removeClass("active").end().find('a[href="' + '#' + id + '"]').addClass("active")
+        }
+      })
+    }
 
     function setTop() {
       var scrollValue = $(window).scrollTop();
       if (scrollValue >= top - 70) {
-        $toc.addClass('fix')
+        $toc.addClass('fixed')
       } else {
-        $toc.removeClass('fix')
+        $toc.removeClass('fixed')
       }
     }
 
-    function debounce(fn, wait = 200) {
+    function debounce(fn, wait) {
       var timeout = null;
       return function () {
         clearTimeout(timeout);
diff --git a/docs/main/latest/readme/index.html b/docs/main/latest/readme/index.html
index 76d26e7..166bfe6 100644
--- a/docs/main/latest/readme/index.html
... 31967 lines suppressed ...