diff --git a/.github/workflows/build-check.yml b/.github/workflows/build-check.yml index 592d12d78cfaf..773158e8d52a9 100644 --- a/.github/workflows/build-check.yml +++ b/.github/workflows/build-check.yml @@ -79,149 +79,291 @@ jobs: echo "=== Changed files ===" echo "$CHANGED_FILES" + # --------------------------------------------------------------- + # The build scope is three independent questions. Answering them + # separately is what keeps a website-only PR from paying for a + # 4-version x 2-locale build (~1h, and enough memory pressure to + # kill the runner outright). + # + # TIER how much has to be compiled at all + # skip nothing that reaches the bundler changed + # build compile the version set computed below + # full the *set of versions itself* changed, so every + # active version has to be re-validated + # VERSIONS which doc versions have content changes + # LOCALES which locales have *content* changes + # + # Site code (src/**, docusaurus.config.js, deps) deliberately does + # NOT force `full`: the React/TS/SCSS compile is identical for + # every doc version, so one representative version catches exactly + # the same errors at a quarter of the cost. Only versions.json and + # config/versions-plugin.js — the files that define which versions + # exist — earn a full build. + # + # Unrecognised paths fall through to `build` (minimal, but real), + # so a new kind of file is never silently skipped. + # --------------------------------------------------------------- + VERSIONS="" - LOCALES="en" - NEED_FULL_BUILD="false" + LOCALES="" + TIER="skip" + JSON_TO_VALIDATE="" + + # Representative version for compile-only checks: the latest + # released version, i.e. the stable one the navbar defaults to. + PROBE_VERSION=$(jq -r '.[0] // "4.x"' versions.json) + + # skip < build < full; never lower an already-raised tier. + raise_tier() { + case "$1" in + full) + TIER="full" + ;; + build) + if [ "$TIER" = "skip" ]; then TIER="build"; fi + ;; + esac + } + + add_version() { + VERSIONS="$1,$VERSIONS" + raise_tier build + } + + add_locale() { + case ",$LOCALES," in + *",$1,"*) ;; + *) LOCALES="${LOCALES:+$LOCALES,}$1" ;; + esac + raise_tier build + } + + # Translation JSON only needs a syntax check (see below). + validate_json_later() { + JSON_TO_VALIDATE="${JSON_TO_VALIDATE}${1}"$'\n' + } - # Check each changed file and map to doc version + # First match wins, so order matters: the most specific paths and + # the version-defining files come before the broad catch-alls. while IFS= read -r file; do + [ -n "$file" ] || continue case "$file" in - # English Dev source (current/unreleased version) - docs/*) - VERSIONS="current,$VERSIONS" + # ---- Files that define which versions exist ---------- + # These change the version set itself, so every active + # version has to be rebuilt to stay honest. + versions.json|config/versions-plugin.js) + raise_tier full ;; - # Chinese Dev source (current/unreleased version) - i18n/zh-CN/docusaurus-plugin-content-docs/current/*) - VERSIONS="current,$VERSIONS" - LOCALES="en,zh-CN" + + # ---- English doc content ----------------------------- + # Dev / unreleased version. + docs/*) + add_locale en + add_version current ;; - # English versioned docs versioned_docs/version-*/*) ver=$(echo "$file" | sed -n 's|versioned_docs/version-\([^/]*\)/.*|\1|p') - VERSIONS="${ver},$VERSIONS" + add_locale en + add_version "$ver" + ;; + + # ---- Chinese doc content ----------------------------- + # Only zh-CN is built: an en page cannot break because a + # zh-CN page changed. With a single --locale, Docusaurus + # drops the locale path prefix (baseUrl becomes / instead + # of /zh-CN/) — the same path `yarn start:zh-CN` takes. + # That only shifts output paths, and onBrokenLinks is + # 'warn', so it cannot manufacture a failure. + i18n/zh-CN/docusaurus-plugin-content-docs/current/*) + add_locale zh-CN + add_version current ;; - # Chinese versioned docs i18n/zh-CN/docusaurus-plugin-content-docs/version-*/*) ver=$(echo "$file" | sed -n 's|i18n/zh-CN/docusaurus-plugin-content-docs/version-\([^/]*\)/.*|\1|p') - VERSIONS="${ver},$VERSIONS" - LOCALES="en,zh-CN" - ;; - # Per-version label translations (e.g. version-4.x.json) - i18n/zh-CN/docusaurus-plugin-content-docs/version-*.json) - ver=$(echo "$file" | sed -n 's|i18n/zh-CN/docusaurus-plugin-content-docs/version-\([^.]*\)\.json|\1|p') - VERSIONS="${ver},$VERSIONS" - LOCALES="en,zh-CN" + add_locale zh-CN + add_version "$ver" ;; - # Chinese community docs - i18n/zh-CN/docusaurus-plugin-content-docs-community/*|i18n/zh-CN/code.json) - LOCALES="en,zh-CN" + + # ---- Translation tables (JSON) ----------------------- + # code.json and the per-version label files are lookup + # tables, not content: Docusaurus falls back to the + # source string and warns on a missing/stale key, it does + # not fail. The single build-breaking failure mode is + # malformed JSON, which `jq` catches in milliseconds — so + # these no longer drag a whole zh-CN site build along. + i18n/*/code.json|i18n/*/docusaurus-plugin-content-docs*/*.json) + validate_json_later "$file" ;; - # Versioned sidebars: extract version from filename + + # ---- Version-scoped sidebars ------------------------- # e.g. versioned_sidebars/version-4.x-sidebars.json → 4.x versioned_sidebars/version-*-sidebars.json) ver=$(echo "$file" | sed -n 's|versioned_sidebars/version-\(.*\)-sidebars\.json|\1|p') - VERSIONS="${ver},$VERSIONS" + add_locale en + add_version "$ver" ;; - # Current-version (Dev) sidebar sidebars.ts) - VERSIONS="current,$VERSIONS" + add_locale en + add_version current + ;; + + # ---- Always-built, version-independent plugins ------- + # Blog, community, releases and course are separate + # plugin instances that Docusaurus compiles regardless of + # DOCS_VERSIONS, so they need a build but no extra + # versions. Their sidebars belong here for the same + # reason — they used to force a full multi-version build + # for nothing. + blog/*|community/*|releasenotes/*|course/*) + add_locale en + raise_tier build + ;; + sidebarsCommunity.json|sidebarsReleases.json|sidebarsCourse.ts) + add_locale en + raise_tier build + ;; + i18n/zh-CN/docusaurus-plugin-content-docs-community/*|i18n/zh-CN/docusaurus-plugin-content-docs-releases/*) + add_locale zh-CN + raise_tier build ;; - # versions.json controls which versions are built; any change - # warrants a full multi-version build. - versions.json) - NEED_FULL_BUILD="true" + + # ---- Nothing the bundler ever sees ------------------- + # static/ is copied verbatim into the output. A change + # there cannot fail (or be validated by) a build, so it + # must not widen the scope on its own. A doc that + # references a new asset triggers its own build above. + static/*) + ;; + # CI config, governance tooling, repo-level prose and + # helper scripts. No Python or shell file in this repo is + # compiled into the site. + .github/*|.claude/*|.agents/*|.vscode/*|.idea/*) ;; - # Blog and community are independent plugins, not - # controlled by DOCS_VERSIONS. They are always built - # regardless of version filtering. - blog/*|community/*|releasenotes/*) - NEED_BUILD="true" + scripts/docs-governance/*|website-quality-governance/*) ;; - # Releases i18n docs - i18n/zh-CN/docusaurus-plugin-content-docs-releases/*) - LOCALES="en,zh-CN" + *.py|*.sh) ;; - # Static image assets are copied verbatim to the - # build output and don't affect page rendering, so - # they should NOT trigger a full rebuild on their - # own. Any doc change that references these images - # will trigger its own version-scoped build above. - static/images/*|static/images/**) + README.md|AGENTS.md|TOC.md|LICENSE|NOTICE|store_format_v3.md|cspell.json|author.yml|buildVersions.json|.gitignore|.prettierrc|.prettierignore|.eslintrc|.eslintrc.js) ;; - # Config, source code, or other structural changes - # require a full build to validate - sidebarsCommunity.json|sidebarsReleases.json|docusaurus.config.js|src/*|static/*|config/*|package.json|yarn.lock|tailwind.config.js) - NEED_FULL_BUILD="true" + + # ---- Site code, config and deps ---------------------- + # Compiled once and shared by every version and locale, + # so the representative version is a complete check. + # scripts/ entries listed here are genuine build inputs: + # key-features/ and last-update/ are read by + # docusaurus.config.js, patch-search-tokenize.js runs on + # postinstall. + src/*|config/*|docusaurus.config.js|package.json|yarn.lock|tailwind.config.js|tsconfig.json|scripts/key-features/*|scripts/last-update/*|scripts/patch-search-tokenize.js) + add_locale en + raise_tier build + ;; + + # ---- Anything else: fail safe ------------------------ + *) + echo "Unclassified path '$file' — falling back to a minimal build." + add_locale en + raise_tier build ;; esac done <<< "$CHANGED_FILES" - # Build the set of versions Docusaurus actually builds: - # `current` (the dev/unreleased version) plus everything in versions.json. - # Older version dirs (e.g. version-1.2, version-2.0) may still exist on - # disk but be absent from versions.json — touching them must not poison - # onlyIncludeVersions, which would fail the build with "unknown versions". + # Syntax-check the translation tables we chose not to build. + if [ -n "$JSON_TO_VALIDATE" ]; then + echo "" + echo "=== Validating changed i18n JSON ===" + while IFS= read -r f; do + [ -n "$f" ] || continue + # Deleted in this PR — nothing left to parse. + [ -f "$f" ] || { echo " skip (deleted) $f"; continue; } + if jq empty "$f" >/dev/null 2>&1; then + echo " ok $f" + else + echo " INVALID JSON $f" + jq empty "$f" || true + exit 1 + fi + done <<< "$JSON_TO_VALIDATE" + fi + + # The versions Docusaurus can actually build: `current` (dev) + # plus everything in versions.json. Older dirs (version-1.2, + # version-2.0) may still sit on disk while being absent from + # versions.json — feeding those to onlyIncludeVersions fails the + # build with "unknown versions". ACTIVE_VERSIONS=$(jq -r '.[]' versions.json | tr '\n' ',' | sed 's/,$//') ACTIVE_VERSIONS="current,${ACTIVE_VERSIONS}" + echo "" echo "Active versions (current + versions.json): $ACTIVE_VERSIONS" - # Deduplicate versions - if [ "$NEED_FULL_BUILD" = "true" ]; then - # Structural changes: build all active versions - DOCS_VERSIONS="" - echo "Structural changes detected, will build ALL versions." - elif [ -n "$VERSIONS" ]; then - # Only doc content changes: build only affected versions. - # Intersect detected versions with the active set so that edits to - # retired version dirs (e.g. version-1.2) don't break the build. - RAW_VERSIONS=$(echo "$VERSIONS" | tr ',' '\n' | sort -u | grep -v '^$') + SKIP_BUILD="false" + NEED_FULL_BUILD="false" + DOCS_VERSIONS="" + + if [ "$TIER" = "skip" ]; then + SKIP_BUILD="true" + LOCALES="en" + # An empty DOCS_VERSIONS means "every version" to + # docusaurus.config.js. Nothing should read it while + # skip_build is set, but pin it to the probe version anyway so + # a future edit can't turn a skipped build into the most + # expensive one. + DOCS_VERSIONS="$PROBE_VERSION" + echo "Nothing that reaches the bundler changed — skipping the site build." + elif [ "$TIER" = "full" ]; then + NEED_FULL_BUILD="true" DOCS_VERSIONS="" - SKIPPED_VERSIONS="" + echo "The version set itself changed — building ALL active versions." + else + RAW_VERSIONS=$(echo "$VERSIONS" | tr ',' '\n' | sort -u | grep -v '^$' || true) + KEPT="" + DROPPED="" for v in $RAW_VERSIONS; do if echo ",$ACTIVE_VERSIONS," | grep -q ",$v,"; then - DOCS_VERSIONS="${v},$DOCS_VERSIONS" + KEPT="${v},$KEPT" else - SKIPPED_VERSIONS="${v},$SKIPPED_VERSIONS" + DROPPED="${v},$DROPPED" fi done - DOCS_VERSIONS=$(echo "$DOCS_VERSIONS" | sed 's/,$//') - SKIPPED_VERSIONS=$(echo "$SKIPPED_VERSIONS" | sed 's/,$//') - if [ -n "$SKIPPED_VERSIONS" ]; then - echo "Ignoring changes to retired/unknown versions: $SKIPPED_VERSIONS" + DOCS_VERSIONS=$(echo "$KEPT" | sed 's/,$//') + DROPPED=$(echo "$DROPPED" | sed 's/,$//') + if [ -n "$DROPPED" ]; then + echo "Ignoring changes to retired/unknown versions: $DROPPED" fi if [ -z "$DOCS_VERSIONS" ]; then - # Everything we detected was retired/unknown; fall back to a - # minimal build so the workflow still validates the site. - DOCS_VERSIONS="4.x" - echo "All detected versions were retired/unknown, doing minimal build with '4.x' only." + # Either no versioned content changed (site code, blog, + # community, course...) or everything we found was + # retired. One representative version is enough. + DOCS_VERSIONS="$PROBE_VERSION" + echo "No active versioned content changed — probing with '$PROBE_VERSION' only." else - echo "Doc-only changes detected for versions: $DOCS_VERSIONS" + echo "Versioned content changed for: $DOCS_VERSIONS" fi - else - # No versioned doc changes (e.g., only blog, community, or scripts). - # Blog and community plugins are always compiled by Docusaurus - # regardless of DOCS_VERSIONS, so we just set the minimal docs - # scope to keep the build fast. - DOCS_VERSIONS="4.x" - echo "No doc version changes detected, doing minimal build with '4.x' only." - echo "(Blog and community plugins are always built regardless.)" fi - # Determine locales for the build command + # Default the locale when a build is needed but no locale-specific + # content changed (site code, deps, blog, ...). + if [ "$SKIP_BUILD" != "true" ] && [ -z "$LOCALES" ]; then + LOCALES="en" + fi + LOCALE_ARGS="" IFS=',' read -ra LOCALE_ARR <<< "$LOCALES" for locale in "${LOCALE_ARR[@]}"; do + [ -n "$locale" ] || continue LOCALE_ARGS="$LOCALE_ARGS --locale $locale" done echo "docs_versions=$DOCS_VERSIONS" >> "$GITHUB_OUTPUT" echo "locale_args=$LOCALE_ARGS" >> "$GITHUB_OUTPUT" echo "need_full_build=$NEED_FULL_BUILD" >> "$GITHUB_OUTPUT" + echo "skip_build=$SKIP_BUILD" >> "$GITHUB_OUTPUT" echo "" echo "=== Build plan ===" - echo " DOCS_VERSIONS: ${DOCS_VERSIONS:-all}" - echo " LOCALE_ARGS: $LOCALE_ARGS" + echo " TIER: $TIER" + echo " SKIP_BUILD: $SKIP_BUILD" + echo " DOCS_VERSIONS: ${DOCS_VERSIONS:-all}" + echo " LOCALE_ARGS: ${LOCALE_ARGS:- (none)}" echo " NEED_FULL_BUILD: $NEED_FULL_BUILD" - name: Build @@ -234,6 +376,14 @@ jobs: yarn yarn key-features:generate + # Dependencies are installed unconditionally above because the + # governance steps below need node_modules; only the site build + # itself is scoped by the detect step. + if [ "${{ steps.detect.outputs.skip_build }}" = "true" ]; then + echo "No site-affecting changes detected — skipping the docusaurus build." + exit 0 + fi + echo "Building with DOCS_VERSIONS=${DOCS_VERSIONS:-all}" PWA_SERVICE_WORKER_URL=https://doris.apache.org/sw.js yarn docusaurus build ${{ steps.detect.outputs.locale_args }} rm -rf build diff --git a/docusaurus.config.js b/docusaurus.config.js index 11df557dc7737..37208cafaaa31 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -100,6 +100,17 @@ function buildRedirectIndex() { add('/download', '/download-next'); add('/zh-CN/download', '/zh-CN/download-next'); + // The hand-curated /learning sitemap page was retired; Doris 101 is now + // the structured entry point for newcomers. + add('/course', '/learning'); + add('/zh-CN/course', '/zh-CN/learning'); + + // /vendors lost its navigation entry in the new-homepage refactor and has + // no obvious successor page, so it lands on the homepage. Its source is + // parked at src/pages/_vendors (underscore = not routed). + add('/', '/vendors'); + add('/zh-CN', '/zh-CN/vendors'); + // /ecosystem/* was retired; its closest spiritual home is the Dev tree's // Data Integration intro, which catalogs the same connector/tool families // the old /ecosystem/ pages did. @@ -364,8 +375,10 @@ const config = { // Static redirects indexed by target. Trim trailing slash // for the lookup since Docusaurus' trailingSlash:true - // gives us paths like /docs/4.x/foo/. - const normalized = existingPath.replace(/\/$/, ''); + // gives us paths like /docs/4.x/foo/. The locale root + // ('/' or '/zh-CN/') is the one path whose slash is the + // whole path, so keep it as-is. + const normalized = existingPath === '/' ? '/' : existingPath.replace(/\/$/, ''); if (REDIRECT_INDEX[normalized]) { redirects.push(...REDIRECT_INDEX[normalized]); } diff --git a/i18n/zh-CN/code.json b/i18n/zh-CN/code.json index ab98f26312f61..ca68b95015e41 100644 --- a/i18n/zh-CN/code.json +++ b/i18n/zh-CN/code.json @@ -1,72 +1,4 @@ { - "archive.layout.title": { - "message": "Apache Doris - 归档文档中心", - "description": "Apache Doris - Archive Document Center" - }, - "archive.layout.description": { - "message": "收录Apache doris归档文档", - "description": "Collection of Apache doris archive documents" - }, - "archive.page.title": { - "message": "归档文档中心", - "description": "The label for archived docs page title" - }, - "archive.admonition.1": { - "message": "此为 Apache Doris 归档文档,已归档文档不再提供任何更新。", - "description": "The label for admonition in archived docs page" - }, - "archive.admonition.2": { - "message": "建议使用", - "description": "The label for admonition in archived docs page" - }, - "archive.page.2": { - "message": "建议使用 {stableLink}或{latestLink}。", - "description": "The label for admonition in archived docs page" - }, - "archive.admonition.stable": { - "message": "版本(2.1)", - "description": "stable version" - }, - "archive.admonition.latest": { - "message": "版本(3.x)", - "description": "latest version" - }, - "archive.admonition.and": { - "message": "或", - "description": "and" - }, - "archive.page.version": { - "message": "版本:1.2", - "description": "Archive Version" - }, - "archive.preview.v12": { - "message": "归档文档链接:{previewLink}", - "description": "Archive preview link" - }, - "archive.preview.link": { - "message": "Apache Doris v1.2 中文文档", - "description": "Archive preview link" - }, - "archive.preview.date": { - "message": "归档日期:{date}", - "description": "Archive date" - }, - "archive-tips-1": { - "message": "本页将归档 Apache Doris 暂停维护版本的所有文档,并提供 PDF 格式供用户下载。", - "description": "Archive tips" - }, - "archive-tips-2": { - "message": "请注意,归档文档将不再进行任何更新,建议用户使用{latestVersion}。", - "description": "Archive tips" - }, - "archive-download-text": { - "message": "下载 PDF", - "description": "archive download text" - }, - "archive.latest.version": { - "message": "最新版本", - "description": "archive latest version" - }, "theme.docs.versions.latestVersionSuggestionLabel": { "message": "使用参考请跳转至 {v4xLink}/{v3xLink}/{v21Link} 正式版本文档进行查阅。" }, diff --git a/src/constant/common.tsx b/src/constant/common.tsx index 2c5673b37bcdb..3f16c270e2c12 100644 --- a/src/constant/common.tsx +++ b/src/constant/common.tsx @@ -17,6 +17,4 @@ export const BLOG_TAG_ICONS = { 'Release Notes': , 'Top News': , All: , -}; - -export const ARCHIVE_PATH = 'archive-docs'; \ No newline at end of file +}; \ No newline at end of file diff --git a/src/pages/_download/index.scss b/src/pages/_download/index.scss deleted file mode 100644 index 85d3b8eb704ae..0000000000000 --- a/src/pages/_download/index.scss +++ /dev/null @@ -1,308 +0,0 @@ -.download { - margin: 3rem 0; - - a { - transition: all 0.3s; - - &:hover { - text-decoration: underline; - } - } - - .page-column { - padding: 1.875rem 0; - } - - .maven { - .page-column-title { - font-size: 1.5rem; - } - } - .downlaod-document { - color: var(--ifm-color-primary); - cursor: pointer; - padding-left: 0.4rem; - display: flex; - align-items: center; - } - - &-box { - padding: 3.125rem; - box-shadow: 10px 12px 38px rgba(33, 39, 116, 0.07); - border-radius: 4px; - background-color: var(--global-colors-white); - - .download-type { - display: flex; - align-items: center; - - & + .download-type { - margin-top: 1rem; - } - - &.way { - align-items: start; - } - - label { - font-size: var(--global-font-size-default); - font-weight: 600; - color: var(--global-colors-text-primary); - margin-right: 2.125rem; - flex-shrink: 0; - width: 9.0625rem; - } - - .tabs-radio { - flex: 1; - display: flex; - align-items: center; - border-radius: 2px; - - .radio { - border: var(--ifm-color-primary) solid 1px; - flex: 1; - text-align: center; - font-size: var(--global-font-size-medium); - color: var(--global-colors-text-primary); - min-height: 3.125rem; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - cursor: pointer; - - &.disabled { - background-color: var(--global-colors-background); - cursor: not-allowed; - border-color: var(--global-colors-split); - color: var(--global-colors-text); - } - - &.checked { - background-color: var(--ifm-color-primary); - color: var(--global-colors-white); - } - - & + .radio { - margin-left: -1px; - } - & + .disabled { - border-left: none; - margin-left: 0; - } - - .inner { - margin: 0.3125rem; - background-color: #f7faff; - width: calc(100% - 0.625rem); - color: var(--ifm-color-primary); - - & + .inner { - margin-top: 0; - } - } - } - } - } - .download-way { - display: none; - &.show { - display: block; - width: 100%; - } - &.all-in-one { - .theme-code-block { - font-size: 0.875rem ; - padding-left: 2rem; - position: relative; - &:before { - content: '$'; - position: absolute; - left: 1rem; - top: 50%; - transform: translateY(-50%); - font-size: 1rem; - } - } - } - } - - .tips { - margin-top: 1rem; - .title { - color: #556986; - font-weight: 600; - font-size: var(--global-font-size-smaller); - } - .notice-text { - font-size: var(--global-font-size-smaller); - font-weight: 600; - color: #556986; - a { - margin: 0 0.3125rem; - } - } - .notice-dir { - display: flex; - // margin-bottom: 0.5rem; - .notice-dir-name { - min-width: 10rem; - padding-left: 3.5rem; - &.md { - position: relative; - &:before { - position: absolute; - left: 0.8rem; - content: ''; - width: 0; - height: 100%; - border-left: 1.5px solid #556986; - } - &:after { - position: absolute; - left: 0.8rem; - top: 50%; - content: ''; - width: 2rem; - height: 0; - border-top: 1.5px solid #556986; - } - } - &.end { - position: relative; - &:before { - position: absolute; - left: 0.8rem; - content: ''; - width: 0; - height: 50%; - border-left: 1.5px solid #556986; - } - &:after { - position: absolute; - left: 0.8rem; - top: 50%; - content: ''; - width: 2rem; - height: 0; - border-top: 1.5px solid #556986; - } - } - } - .notice-dir-val { - margin-left: 1rem; - } - } - ul { - margin: 0; - padding: 0; - padding-left: 0.9375rem; - li { - color: #556986; - font-size: var(--global-font-size-smaller); - line-height: 1.5; - font-weight: 600; - margin-top: 0.3125rem; - - code { - border-radius: 0.125rem; - border-width: 1px; - padding: 0.125rem 0.3125rem; - margin: 0 0.3125rem; - } - a { - margin: 0 0.3125rem; - } - } - } - } - } - - @media screen and (max-width: 996px) { - &-box { - padding: 0; - box-shadow: none; - - .download-type { - flex-direction: column; - align-items: flex-start; - - label { - width: 100%; - } - - .tabs-radio { - width: 100%; - } - } - - .intr { - margin-left: 0; - } - - .tips { - margin-left: 0; - } - } - } - - .table-content { - .content { - overflow: auto; - } - - table { - width: 100%; - display: table; - margin-bottom: 0; - - thead { - tr { - background-color: #f7faff; - border-bottom: none; - border-top: none; - - th { - font-size: var(--global-font-size-default); - color: var(--global-colors-text-primary); - font-weight: 700; - border-color: #dbe4f3; - line-height: 1.9; - white-space: nowrap; - } - } - } - - tbody { - tr { - td { - border-color: #dbe4f3; - font-size: var(--global-font-size-medium); - white-space: nowrap; - - a + a { - margin-left: 1.25rem; - } - } - } - } - } - - .more { - margin-top: 2.5rem; - - @media screen and (max-width: 996px) { - margin-top: 1.5rem; - } - } - } - - .verify { - font-size: var(--global-font-size-smaller); - - .page-column { - line-height: 1.8; - } - } -} diff --git a/src/pages/_download/index.tsx b/src/pages/_download/index.tsx deleted file mode 100644 index 26a4a5b69382c..0000000000000 --- a/src/pages/_download/index.tsx +++ /dev/null @@ -1,607 +0,0 @@ -import clsx from 'clsx'; -import CodeBlock from '@theme/CodeBlock'; -import Layout from '../../theme/Layout'; -import Link from '@docusaurus/Link'; -import More from '@site/src/components/More'; -import PageColumn from '@site/src/components/PageColumn'; -import React, { useEffect, useState } from 'react'; -import Translate, { translate } from '@docusaurus/Translate'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import './index.scss'; -import { - CPUEnum, - DownloadLinkProps, - JDKEnum, - VersionEnum, - getAllDownloadLinks, - getAllFlinkConnectorDownloadLinks, - getAllSparkConnectorDownloadLinks, - getAllRelease, -} from '@site/src/constant/download.data'; -import DropdownNavbarItem from '@theme/NavbarItem/DropdownNavbarItem'; - -const BINARY_VERSION = [ - { label: `${VersionEnum.Latest} ( Latest )`, value: VersionEnum.Latest }, - { label: `${VersionEnum.Prev}`, value: VersionEnum.Prev }, - { label: `${VersionEnum.Earlier} ( Stable )`, value: VersionEnum.Earlier }, -]; - -const JDK = [ - { label: 'JDK 8', value: JDKEnum.JDK8 }, - { label: 'JDK 11', value: JDKEnum.JDK11 }, -]; - -export default function Download(): JSX.Element { - const { - siteConfig, - i18n: { currentLocale, locales, localeConfigs }, - } = useDocusaurusContext(); - const dataLocale = currentLocale === 'zh-CN' ? 'zh-CN' : 'en'; - - const [version, setVersion] = useState(VersionEnum.Latest); - const [cpus, setCpus] = useState([]); - const [cpu, setCPU] = useState(CPUEnum.IntelAvx2); - const [jdk, setJDK] = useState(JDKEnum.JDK8); - const [current, setCurrent] = useState(); - const [downloadWay, setDownloadWay] = useState('all-in-one'); - - const FLINK_CONNECTOR = getAllFlinkConnectorDownloadLinks(dataLocale); - const SPARK_CONNECTOR = getAllSparkConnectorDownloadLinks(dataLocale); - const ALL_RELEASE = getAllRelease(dataLocale); - let ALL_RELEASE_VERSION = {}; - ALL_RELEASE.forEach(item => { - const info: any = Array.isArray(item.download) ? item.download.find(item => item.cpu === 'X64 ( avx2 )') : {}; - ALL_RELEASE_VERSION[item.version] = { - cpu: CPUEnum.IntelAvx2, - binary: info.binary, - source: info.source, - }; - }); - const [releaseUrls, setReleaseUrls] = useState(ALL_RELEASE_VERSION); - - const changeVersion = (val: string) => { - setVersion(val); - }; - const changeCPU = (val: string) => { - setCPU(val); - }; - const changeJDK = (val: string) => { - // if (version === VersionEnum.Latest && val !== JDKEnum.JDK8) return; - if (val !== JDKEnum.JDK8) return; - setJDK(val); - }; - - const getDownloadLinks = () => { - const text = `${version}-${cpu}-${jdk}`; - const linkObj = getAllDownloadLinks(dataLocale).find(item => item.id === text); - setCurrent(linkObj); - if (linkObj && !linkObj.sh) { - setDownloadWay('download'); - } - }; - - function downloadFile(url: string) { - const a = document.createElement('a'); - a.download = url; - a.href = url; - a.target = '_blank'; - const clickEvt = new MouseEvent('click', { - view: window, - bubbles: true, - cancelable: true, - }); - a.dispatchEvent(clickEvt); - a.remove(); - } - - const downloadDocument = () => { - const url = - currentLocale === 'zh-CN' - ? 'https://doris.apache.org/assets/files/Apache Doris Docs (中文).pdf' - : 'https://doris.apache.org/assets/files/Apache Doris Docs (English).pdf'; - downloadFile(url); - }; - - const CPU = [ - { label: 'X64 ( avx2 )', value: CPUEnum.IntelAvx2 }, - { label: 'X64 ( no avx2 )', value: CPUEnum.IntelNoAvx2 }, - { label: 'ARM64', value: CPUEnum.ARM }, - ]; - - const getCpus = version => { - const currentCpus = []; - getAllDownloadLinks(dataLocale).forEach(item => { - if (item.id.includes(version)) { - const matchCpu = CPU.find(cpu => item.id.includes(cpu.value)); - currentCpus.push(matchCpu); - } - }); - return currentCpus; - }; - - useEffect(() => { - getDownloadLinks(); - }, [version, cpu, jdk]); - - useEffect(() => { - const currentCpus = getCpus(version); - setCpus(currentCpus); - setCPU(CPUEnum.X64); - setJDK(JDKEnum.JDK8); - }, [version]); - - function handleCPUChange(cpu: any, currentVersionInfo: any) { - const info = currentVersionInfo.download.find(item => item.cpu === cpu); - setReleaseUrls({ - ...releaseUrls, - [currentVersionInfo.version]: { - binary: info.binary, - source: info.source, - }, - }); - } - - return ( - -
- - Quick Download - - } - > -
-
- -
- {BINARY_VERSION.map(item => ( -
changeVersion(item.value)} - > - {item.label} -
- ))} -
-
-
- -
- {cpus.map(item => ( -
changeCPU(item.value)} - > - {item.label} -
- ))} -
-
- {/*
- -
- {JDK.map(item => ( -
changeJDK(item.value)} - > - {item.label} -
- ))} -
-
*/} - {current && current?.sh && ( -
- -
-
setDownloadWay('all-in-one')} - className={clsx('radio', { - checked: downloadWay === 'all-in-one', - })} - > - Binary -
- -
setDownloadWay('download')} - className={clsx('radio', { - checked: downloadWay === 'download', - })} - > - Source -
-
-
- )} - -
- -
- {current && current.sh && ( -
-
-
- {current.sh?.label} - ( - asc,{' '} - sha512 - ) -
-
-
- )} - {version === VersionEnum.Latest && ( -
-
- Notice: -
-
- For detailed upgrade precautions, please refer to the - 2.0.3 - and the - deployment and - cluster - upgrade - manual. -
-
- )} -
-
-
-
- {current?.items.map(item => ( -
- {item?.label} - ( - asc,{' '} - sha512 - ) -
- ))} -
-
-
-
-
-
-
-
- All Releases} - footer={ - More} - link="https://archive.apache.org/dist/doris/" - /> - } - > -
- - - - - - - - - - - - {ALL_RELEASE.map((item, index) => ( - - - - - - - - ))} - -
- Version - - Release Date - - CPU Model - - Download - - Release Notes -
{item.version}{item.date} - {/* , */} - - {Array.isArray(item.download) ? ( - - ) : ( - <> - )} - - {Array.isArray(item.download) ? ( -
- - Source - - / - - Binary - -
- ) : ( - - Source / Binary - - )} -
- Release Notes -
-
-
-
-
- - Flink Doris Connector - - } - > -
- - - - - - - - - - - - - {FLINK_CONNECTOR.map((item, index) => ( - - - - - - - - - ))} - -
- Version - - Release Date - - Flink Version - - Scala Version - - Doris Version - - Source -
{item.version}{item.date}{item.flink}{item.scala}{item.doris} - - Download - - GitHub -
-
-
-
-
- - Maven - - } - > - - {` - org.apache.doris - flink-doris-connector-1.14_2.12 - - - - - 1.1.0 -`} - - -
-
- - Spark Doris Connector - - } - > -
- - - - - - - - - - - - - {SPARK_CONNECTOR.map((item, index) => ( - - - - - - - - - ))} - -
- Version - - Release Date - - Spark Version - - Scala Version - - Doris Version - - Source -
{item.version}{item.date}{item.spark}{item.scala}{item.doris} - - Download - - GitHub -
-
-
-
-
- - Maven - - } - > - - {` - org.apache.doris - spark-doris-connector-3.2_2.12 - - - - 1.1.0 -`} - - -
- {/*
- - Document - - } - > -
-

- Click to download the latest - - offline documents{' '} - - -

-
-
-
*/} -
- - Verify - - } - > - To verify the downloaded files, please read - - Verify Apache Release - - and using these - - Keys - - . After verification, please read - - Compilation - - and - - Installation and Deployment - - to compile and install Doris. - -
-
- ); -} diff --git a/src/pages/vendors/index.tsx b/src/pages/_vendors/index.tsx similarity index 92% rename from src/pages/vendors/index.tsx rename to src/pages/_vendors/index.tsx index 151af71ccfb8e..29f055e09765a 100644 --- a/src/pages/vendors/index.tsx +++ b/src/pages/_vendors/index.tsx @@ -1,3 +1,7 @@ +// Parked page: kept for reference but intentionally not routed. The underscore +// prefix tells Docusaurus to skip it, and /vendors now redirects to the +// homepage (see buildRedirectIndex in docusaurus.config.js). Restore it by +// renaming this directory back to `vendors` and dropping that redirect. import Layout from '../../theme/Layout'; import { VelodbLogo } from '../../components/Icons/velodb-logo'; import Link from '@docusaurus/Link'; diff --git a/src/pages/archive-docs/index.scss b/src/pages/archive-docs/index.scss deleted file mode 100644 index e3e8322d1ff91..0000000000000 --- a/src/pages/archive-docs/index.scss +++ /dev/null @@ -1,90 +0,0 @@ -.archive-container { - padding: 0 1rem; - width: 100%; - margin-bottom: 5.5rem; - .archive-admonition { - padding: 2rem; - margin-top: 1.25rem; - margin-bottom: 1.25rem; - background-color: rgb(255, 248, 230); - border-radius: 6px; - border: 0 solid rgb(230, 167, 0); - border-left-width: 5px; - p { - color: rgb(107, 88, 39); - font-weight: 600; - } - } - h1 { - font-size: 2.25rem; - font-weight: 700; - line-height: 45px; - margin-top: 2.875rem; - margin-bottom: 1.5rem; - } - h2 { - padding-top: 1.25rem; - margin-top: 2.875rem; - margin-bottom: 1.25rem; - font-size: 1.625rem; - font-weight: 700; - line-height: 32px; - } - - ul li { - margin-bottom: 1.25rem; - color: rgb(85, 95, 115); - } - - .preview-item-content { - display: flex; - justify-content: space-between; - border-bottom: 1px solid #d6dfe6; - } - - .preview-link { - display: flex; - align-items: center; - } - - .preview-link > svg { - margin-left: 8px; - } - - .preview-link:hover { - cursor: pointer; - } - - .download-link:hover { - text-decoration: underline; - color: var(--ifm-color-primary); - } - - .archive-tips-content { - margin-bottom: 5.5rem; - } - - .latest-version-link { - color: var(--ifm-color-primary); - text-decoration: underline; - } - - .preview-item-version { - font-size: 1.125rem; - font-weight: 600; - } - .preview-link { - font-size: 1.125rem; - font-weight: 600; - } -} - -@media (min-width: 1280px) { - .archive-container { - margin: 0 0 5.5rem 5rem; - width: 834px; - .archive-admonition { - max-width: 75%; - } - } -} diff --git a/src/pages/archive-docs/index.tsx b/src/pages/archive-docs/index.tsx deleted file mode 100644 index 44c96f34ed834..0000000000000 --- a/src/pages/archive-docs/index.tsx +++ /dev/null @@ -1,165 +0,0 @@ -import React from 'react'; -import Layout from '@site/src/theme/Layout'; -import Link from '@docusaurus/Link'; -import Translate, { translate } from '@docusaurus/Translate'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import PdfIcon from '@site/static/images/toc-icon/pdf.svg'; -import { getLocalePrefix } from '@site/src/utils/locale'; -import './index.scss'; - -const PREVIEW_LINK_ZH = 'https://cdn.selectdb.com/static/doris_1_2_2_18e810982b.pdf'; -const PREVIEW_LINK_EN = 'https://cdn.selectdb.com/static/doris_1_2_en_0d0a9b6a03.pdf'; -const PREVIEW_LINK_V20 = 'https://doris.apache.org/pdf/Apache_Doris_v2_0_0b89998444.pdf'; - -const DATE_LINK = '2025-01-17'; - -export default function Archive() { - const { - i18n: { currentLocale, defaultLocale }, - } = useDocusaurusContext(); - const isZH = currentLocale === 'zh-CN'; - const localePrefix = getLocalePrefix(currentLocale, defaultLocale); - const handleMouseEnter = (id: string) => { - const dom = document.getElementById(id); - dom!.style.color = 'var(--brand-primary)'; - dom!.firstChild!.style.fill = 'var(--brand-primary)'; - }; - - const handleMouseLeave = (id: string) => { - const dom = document.getElementById(id); - dom!.style.color = '#7F7F83'; - dom!.firstChild!.style.fill = '#7F7F83'; - }; - - return ( - -
-

- Archived Docs -

- {/*
-

- - The older releases are provided for archival purposes only, and are no longer receives - updates. - -

-

- - version(2.1) - - ), - latestLink: ( - - version(3.0) - - ), - }} - > - {'For up-to-date documentation,please see the {stableLink} or {latestLink}'} - -

-
*/} - {/*

- Version:1.2 -

-
    -
  • - - Apache Doris v1.2 - - ), - }} - > - {'Archived documentation: {previewLink}'} - {' '} -
  • -
  • - {DATE_LINK}, - }} - > - {'Archive date: {date}'} - -
  • -
*/} -

- - This page archives all documents of Apache Doris's discontinued maintenance versions and - provides PDF format for users to download. - -
-
- - latest version - - ), - }} - > - { - 'Please note that archived documents no longer receive updates; therefore, Doris encourages you to use the {latestVersion}.' - } - -

- {isZH && ( - - )} -
-
Apache Doris v1.2
- -
handleMouseEnter('toc-icon-pdf-v12')} - onMouseLeave={() => handleMouseLeave('toc-icon-pdf-v12')} - > - - Download PDF -
- -
-
-
- ); -} diff --git a/src/pages/learning/index.tsx b/src/pages/learning/index.tsx deleted file mode 100644 index 4e1e80bc1610d..0000000000000 --- a/src/pages/learning/index.tsx +++ /dev/null @@ -1,341 +0,0 @@ -import Layout from '../../theme/Layout'; -import React from 'react'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import Translate, { translate } from '@docusaurus/Translate'; -import './siteMap.scss'; -import Link from '@docusaurus/Link'; -import More from '@site/src/components/More/index'; -import PageColumn from '@site/src/components/PageColumn'; - -const sitemapList = [ - { - title: Get Started, - icon: require('@site/static/images/sitemap/sitemap-start.png').default, - list: [ - { - title: Introduction to Apache Doris, - link: '/docs/dev/get-starting/what-is-apache-doris', - }, - { - title: Get Started, - link: '/docs/dev/get-starting/quick-start/quick-start', - }, - { - title: Installation and deployment, - link: '/docs/dev/install/standard-deployment', - }, - { - title: Compilation, - link: '/docs/dev/install/source-install/compilation-general', - }, - ], - }, - { - title: Table Design, - icon: require('@site/static/images/sitemap/sitemap-model.png').default, - list: [ - { - title: Data Model, - link: '/docs/dev/data-table/data-model', - }, - { - title: Data Partition, - link: '/docs/dev/data-table/data-partition', - }, - { - title: Guidelines for Creating Table, - link: '/docs/dev/data-table/basic-usage', - }, - { - title: Rollup and Query, - link: '/docs/dev/data-table/hit-the-rollup', - }, - { - title: Practices of Creating Table, - link: '/docs/dev/data-table/best-practice', - }, - { - title: Index, - link: '/docs/dev/data-table/index/index-overview', - }, - ], - }, - { - title: Data Import, - icon: require('@site/static/images/sitemap/sitemap-refresh.png').default, - list: [ - { - title: Import Overview, - link: '/docs/dev/data-operate/import/load-manual', - }, - { - title: Import Local Data, - link: '/docs/dev/data-operate/import/import-scenes/local-file-load', - }, - { - title: Import External Storage Data, - link: '/docs/dev/data-operate/import/import-scenes/external-storage-load', - }, - { - title: Subscribe Kafka Data, - link: '/docs/dev/data-operate/import/import-scenes/kafka-load', - }, - { - title: Synchronize Data Through External Table, - link: '/docs/dev/data-operate/import/import-scenes/external-table-load', - }, - ], - }, - { - title: Data Export, - icon: require('@site/static/images/sitemap/sitemap-setting.png').default, - list: [ - { - title: Export Data, - link: '/docs/dev/data-operate/export/export-manual', - }, - { - title: Export Query Result, - link: '/docs/dev/data-operate/export/outfile', - }, - { - title: Export Table Structure or Data, - link: '/docs/dev/data-operate/export/export-with-mysql-dump', - }, - { - title: Data Backup, - link: '/docs/dev/admin-manual/data-admin/backup', - }, - ], - }, - { - title: Update and Delete, - icon: require('@site/static/images/sitemap/sitemap-export.png').default, - list: [ - { - title: Update, - link: '/docs/dev/data-operate/update-delete/update', - }, - { - title: Delete, - link: '/docs/dev/data-operate/update-delete/delete-manual', - }, - { - title: Batch Delete, - link: '/docs/dev/data-operate/update-delete/batch-delete-manual', - }, - { - title: Sequence Column, - link: '/docs/dev/data-operate/update-delete/sequence-column-manual', - }, - ], - }, - { - title: Advanced Usage, - icon: require('@site/static/images/sitemap/sitemap-book.png').default, - list: [ - { - title: Schema Change, - link: '/docs/dev/advanced/alter-table/schema-change', - }, - { - title: Dynamic Partition, - link: '/docs/dev/advanced/partition/dynamic-partition', - }, - { - title: Data Cache, - link: '/docs/dev/advanced/cache/partition-cache', - }, - { - title: Join Optimization, - link: '/docs/dev/query-acceleration/join-optimization/doris-join-optimization', - }, - { - title: Materialized view, - link: '/docs/dev/query-acceleration/materialized-view', - }, - { - title: BITMAP Precise De-Duplication, - link: '/docs/dev/advanced/orthogonal-bitmap-manual', - }, - { - title: HLL ApproximateDe-duplication, - link: '/docs/dev/advanced/using-hll', - }, - { - title: Variables, - link: '/docs/dev/advanced/variables', - }, - { - title: Time Zone, - link: '/docs/dev/advanced/time-zone', - }, - { - title: File Manager, - link: '/docs/dev/advanced/small-file-mgr', - }, - ], - }, - { - title: Ecosystem, - icon: require('@site/static/images/sitemap/sitemap-search.png').default, - list: [ - { - title: Spark Doris Connector, - link: '/docs/dev/ecosystem/spark-doris-connector', - }, - { - title: Flink Doris Connector, - link: '/docs/dev/ecosystem/flink-doris-connector', - }, - { - title: Seatunnel Connector, - link: '/docs/dev/ecosystem/seatunnel', - }, - { - title: DataX doriswriter, - link: '/docs/dev/ecosystem/datax', - }, - { - title: UDF, - link: '/docs/dev/ecosystem/udf/java-user-defined-function', - }, - { - title: Audit log plugin, - link: '/docs/dev/ecosystem/audit-plugin', - }, - ], - }, - { - title: SQL Manual, - icon: require('@site/static/images/sitemap/sitemap-sql.png').default, - list: [ - { - title: SQL Function, - link: '/docs/dev/sql-manual/sql-functions/array-functions/array', - }, - { - title: DDL, - link: '/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-CATALOG', - }, - { - title: DML, - link: '/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/INSERT', - }, - { - title: Data Types, - link: '/docs/dev/sql-manual/sql-reference/Data-Types/BOOLEAN', - }, - { - title: Utility, - link: '/docs/dev/sql-manual/sql-reference/Utility-Statements/HELP', - }, - ], - }, - { - title: Cluster Management, - icon: require('@site/static/images/sitemap/sitemap-admin.png').default, - list: [ - { - title: Cluster Upgrade, - link: '/docs/dev/admin-manual/cluster-management/upgrade', - }, - { - title: Elastic Scaling, - link: '/docs/dev/admin-manual/cluster-management/elastic-expansion', - }, - { - title: Statistics of Query Execution, - link: '/docs/dev/admin-manual/query-profile', - }, - { - title: Maintenance and Monitor, - link: '/docs/dev/admin-manual/maint-monitor/monitor-alert', - }, - { - title: Metadata Operation, - link: '/docs/dev/admin-manual/maint-monitor/metadata-operation', - }, - { - title: Error Code, - link: '/docs/dev/admin-manual/maint-monitor/doris-error-code', - }, - { - title: Config, - link: '/docs/dev/admin-manual/config/fe-config', - }, - { - title: Authority Management, - link: '/docs/dev/admin-manual/privilege-ldap/user-privilege', - }, - { - title: Multi-tenancy, - link: '/docs/dev/admin-manual/multi-tenant', - }, - ], - }, - { - title: FAQ, - icon: require('@site/static/images/sitemap/sitemap-question.png').default, - list: [ - { - title: FAQs of Operation and Maintenance, - link: '/docs/dev/faq/install-faq', - }, - { - title: FAQs of Data Operation, - link: '/docs/dev/faq/data-faq', - }, - { - title: SQL FAQs, - link: '/docs/dev/faq/sql-faq', - }, - ], - }, -]; -export default function Learning(): JSX.Element { - const { siteConfig } = useDocusaurusContext(); - return ( - -
- - Learning Path - - } - subTitle={ - - Start your journey here to discover infinite possibilities with Apache Doris. - - } - > -
- {sitemapList.map((item, index) => ( -
-
{item.title}
-
- -
-
- {item.list.map(path => ( - - {path.title} - - ))} -
-
- ))} -
-
-
-
- ); -} diff --git a/src/pages/learning/siteMap.scss b/src/pages/learning/siteMap.scss deleted file mode 100644 index be4e7db7a772c..0000000000000 --- a/src/pages/learning/siteMap.scss +++ /dev/null @@ -1,104 +0,0 @@ -.sitemap { - .page-column { - padding-top: 3rem; - } -} - -.sitemap-list { - display: flex; - flex-direction: column; - padding: 0 1rem; - line-height: 1.6; - margin-top: 3rem; - - .sitemap-item { - display: flex; - align-items: center; - position: relative; - padding-bottom: 1.25rem; - - &:first-child .sitemap-icon:after { - top: 50%; - } - - &:last-child .sitemap-icon:after { - bottom: 50%; - } - - .sitemap-title { - font-size: 1.2rem; - width: 12rem; - } - - .sitemap-icon { - padding: 0 3rem; - display: flex; - align-items: center; - - img { - width: 2.6rem; - height: 2.6rem; - position: relative; - z-index: 2; - } - - &:after { - content: ''; - border-left: 1px solid #F0F1FC; - position: absolute; - left: 16.3rem; - top: 0; - bottom: 0; - } - } - - .sitemap-paths { - flex: 1; - border: 1px solid #E6E8FB; - color: #252734; - font-size: 1rem; - padding: 0.8rem 0.8rem; - - .path-link { - display: inline-block; - width: 33.333%; - padding: 0 0.5rem; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - line-height: 2; - color: #484954; - text-decoration: none; - - &:hover { - color: var(--ifm-color-primary); - } - } - } - } -} - -@media (max-width: 996px) { - .sitemap-list { - .sitemap-item { - .sitemap-title { - width: 7rem; - padding-right: 0.4rem; - word-break: break-word; - } - - .sitemap-icon { - display: none; - } - - .sitemap-paths { - padding: 0.6rem; - - .path-link { - width: 50%; - } - } - } - } - -} \ No newline at end of file diff --git a/static/images/sitemap/sitemap-admin.png b/static/images/sitemap/sitemap-admin.png deleted file mode 100644 index 7f2b396377b71..0000000000000 Binary files a/static/images/sitemap/sitemap-admin.png and /dev/null differ diff --git a/static/images/sitemap/sitemap-book.png b/static/images/sitemap/sitemap-book.png deleted file mode 100644 index b995857f31351..0000000000000 Binary files a/static/images/sitemap/sitemap-book.png and /dev/null differ diff --git a/static/images/sitemap/sitemap-export.png b/static/images/sitemap/sitemap-export.png deleted file mode 100644 index 6895360af34cb..0000000000000 Binary files a/static/images/sitemap/sitemap-export.png and /dev/null differ diff --git a/static/images/sitemap/sitemap-model.png b/static/images/sitemap/sitemap-model.png deleted file mode 100644 index aef5d27658453..0000000000000 Binary files a/static/images/sitemap/sitemap-model.png and /dev/null differ diff --git a/static/images/sitemap/sitemap-question.png b/static/images/sitemap/sitemap-question.png deleted file mode 100644 index de920cd13c263..0000000000000 Binary files a/static/images/sitemap/sitemap-question.png and /dev/null differ diff --git a/static/images/sitemap/sitemap-refresh.png b/static/images/sitemap/sitemap-refresh.png deleted file mode 100644 index a08a27bf353c4..0000000000000 Binary files a/static/images/sitemap/sitemap-refresh.png and /dev/null differ diff --git a/static/images/sitemap/sitemap-search.png b/static/images/sitemap/sitemap-search.png deleted file mode 100644 index ba7babe3fcb09..0000000000000 Binary files a/static/images/sitemap/sitemap-search.png and /dev/null differ diff --git a/static/images/sitemap/sitemap-setting.png b/static/images/sitemap/sitemap-setting.png deleted file mode 100644 index 66e05964e1602..0000000000000 Binary files a/static/images/sitemap/sitemap-setting.png and /dev/null differ diff --git a/static/images/sitemap/sitemap-sql.png b/static/images/sitemap/sitemap-sql.png deleted file mode 100644 index 26d3aedeedefb..0000000000000 Binary files a/static/images/sitemap/sitemap-sql.png and /dev/null differ diff --git a/static/images/sitemap/sitemap-start.png b/static/images/sitemap/sitemap-start.png deleted file mode 100644 index 12fe09063ccde..0000000000000 Binary files a/static/images/sitemap/sitemap-start.png and /dev/null differ diff --git a/static/images/toc-icon/pdf.svg b/static/images/toc-icon/pdf.svg deleted file mode 100644 index 6edc4f745545d..0000000000000 --- a/static/images/toc-icon/pdf.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - \ No newline at end of file