Skip to content

luobenwang/TuyaOpen.io

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TuyaOpen Website

Built using Docusaurus 3, a modern static website generator.

Contribute with Gitpod

Table of Contents

File Paths

Documentation Path

  • English Docs ./docs
  • ZH Chinese Docs ./i18n/zh/docusaurus-plugin-content-docs/current
  • Sidebar (Manages what's listed on the sidebar) ./sidebars.js
  • Blogs ./blog

How to develop

To develop this website locally, you'll need to have Node.js installed (version 18 or higher) and npm. If you don't have them installed, you can install them using:

# Ubuntu/Linux

# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"
# Download and install Node.js:
nvm install 22

for other OS enviroment https://nodejs.org/en/download

Building and Serving Website Locally

npm install # install deps
npm start

This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.

By default, the start command will only preview documents in English. If you want to preview documents in other languages, such as Chinese, then add --locale after the command:

npm start -- --locale zh

Build

npm build

This command generates static content into the build directory and can be served using any static contents hosting service.

Deploy to Production

To deploy the website to the production server, run:

# SSH login into remote server 
$ ssh {REMOTE_USER}@{REMOTE_IP}

#then

# Enter into code, and run deploy script. It pulls the latest git master commits. And automated Docker Build/Serve. to production enviroment.
$(remote-server) cd ~/code/TuyaOpen.io && sh ./deploy_local.sh

Release a new version

Release a major or minor version

npm docusaurus docs:version x.x.x

The doc versions are split into two parts, one is the latest (in docs/) and the others are versioned (in versioned_docs/). When releasing a new version, the current latest docs/ will be copied into versioned_docs/ (by running the command above).

Update i18n

All translated docs won't be copied automatically. You have to handle them manually. For example, release 2.2.0:

  1. Copy i18n/zh/docusaurus-plugin-content-docs/current.json to the same folder and rename it to i18n/zh/docusaurus-plugin-content-docs/version-2.2.0.json.

  2. The replace Next and current in version-2.2.0.json, e.g.:

    "version.label": {
      "message": "Next",
      "description": "The label for version current"
    }

    to:

     "version.label": {
       "message": "2.2.0",
       "description": "The label for version 2.2.0"
     }

Don't forget test the new version build after you've done the above steps!

Release a patch version

For patch versions, it's only needed to move some folders and change some text. For example, v2.1.3 to v2.1.4:

  1. Replace 2.1.3 in versions.json with 2.1.4.
  2. versioned_docs/version-2.1.3 to versioned_docs/version-2.1.4.
  3. versioned_sidebars/version-2.1.3-sidebars.json to versioned_sidebars/version-2.1.4-sidebars.json.
  4. i18n/zh/docusaurus-plugin-content-docs/version-2.1.3 to i18n/zh/docusaurus-plugin-content-docs/version-2.1.4.
  5. i18n/zh/docusaurus-plugin-content-docs/version-2.1.3.json to i18n/zh/docusaurus-plugin-content-docs/version-2.1.4.json and replace 2.1.3 with 2.1.4 in json.
  6. Update src/data/versions.js.

Don't forget test the new version build after you've done the above steps!

How to add a new language translation

Please refer to https://docusaurus.io/docs/i18n/tutorial for the basic steps.

Below are some specific points:

  1. Some translations are not placed in the i18n/code.json because they are not simple strings. For example, below is the translation for the slogan in the homepage:

    {
      /* Due to the below texts are not simple strings, so we can't use <Translate /> here. */
    }
    {
      i18n.currentLocale === 'en' && (
        <>
          <span>Break</span>
          <br />
          <span>Your System</span>
          <br />
          <span>Constructively</span>
        </>
      )
    }
    {
      i18n.currentLocale === 'zh' && (
        <>
          <span>破而后立</span>
          <br />
          <span className="tw-text-3xl">建设性地解构与优化你的系统</span>
        </>
      )
    }

    You can find the above code in src/pages/index.js. For all these cases, search for i18n.currentLocale in the codebase.

How to contribute

You usually only need to modify the content in the docs/ directory, but if some old versions also need to be updated, please update the related content in the versioned_docs/ directory.

License

Distributed under CC-BY-4.0.

About

tuyaopen.io

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 69.0%
  • CSS 18.2%
  • MDX 10.4%
  • Shell 2.4%