{"id":18382933,"url":"https://github.com/sermant-io/sermant-website","last_synced_at":"2026-03-03T09:31:25.852Z","repository":{"id":64951271,"uuid":"557141366","full_name":"sermant-io/Sermant-website","owner":"sermant-io","description":"sermant website and documentation repo","archived":false,"fork":false,"pushed_at":"2025-07-01T09:37:59.000Z","size":88562,"stargazers_count":3,"open_issues_count":0,"forks_count":13,"subscribers_count":6,"default_branch":"develop","last_synced_at":"2025-07-01T10:34:17.510Z","etag":null,"topics":["sermant","website"],"latest_commit_sha":null,"homepage":"https://sermant.io/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sermant-io.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-10-25T06:36:47.000Z","updated_at":"2025-02-24T22:30:12.000Z","dependencies_parsed_at":"2022-12-20T00:03:04.451Z","dependency_job_id":"9caf2632-be8b-421e-8f28-1e3a68791549","html_url":"https://github.com/sermant-io/Sermant-website","commit_stats":null,"previous_names":["sermant-io/sermant-website","huaweicloud/sermant-website"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sermant-io/Sermant-website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sermant-io%2FSermant-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sermant-io%2FSermant-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sermant-io%2FSermant-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sermant-io%2FSermant-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sermant-io","download_url":"https://codeload.github.com/sermant-io/Sermant-website/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sermant-io%2FSermant-website/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30039884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T06:58:30.252Z","status":"ssl_error","status_checked_at":"2026-03-03T06:58:15.329Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sermant","website"],"created_at":"2024-11-06T01:09:14.806Z","updated_at":"2026-03-03T09:31:25.819Z","avatar_url":"https://github.com/sermant-io.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Development Guide\n[简体中文](README_zh.md) | [English](README.md)\n\n## How to deploy\nFirst, ensure that the Node.js environment exists. You can download it from the official website. After [Node.js](https://nodejs.org/en/download/) is installed, you can use\n```shell\nnode -v\nnpm -v\n```\nto check whether the installation is successful. Then go to the root directory, the SERMANT-WEBSITE directory, run\n```shell\nnpm install\n```\nto install project required dependencies. Local deploy instruction is\n```shell\nnpm run dev\n```\nProject packaging instruction is\n```shell\n```\n## Structure\n```\nsermant-website\n    └─docs\n        ├─.vuepress\n        │  ├─components (vue component)\n        │  ├─public (static resources)\n        │  │  ├─img （pictures）\n        │  │  └─user-story-logo （user logos of user story）\n        │  ├─styles （global style）\n        │  └─theme  （theme configuration）\n        │      ├─components\n        │      └─styles\n        ├─en （english document directory）\n        │  ├─document\n        │  │  ├─community (community documents)\n        │  │  ├─developer-guide (development documents)\n        │  │  ├─faq (frequently asked questions)\n        │  │  ├─plugin (plugin documents)\n        │  │  └─user-guide (user documents)\n        │  ├─blog\n        │  │  └─README.md (blogs)\n        │  ├─QuickStart.md\n        │  └─README.md (homepage)\n        └─zh (same as en)\n```\n## Markdown usage\nThe url links in the article need to be changed to the relative path of the desired jump location, and the title can be added after the path to set the jump to the corresponding title of the corresponding document. The special symbol in the title is changed to \"-\", and the special symbol at the end of the title is omitted (such as \"?\"). All uppercase letters in the English title need to be changed to lowercase letters.\n```\n../../about/question/flowcontrol.md#possible-causes-for-the-retry-rule-does-not-take-effect\n```\n\nImages in the article need to be tagged 'MyImage'. As shown below.\n```\n\u003cMyImage src=\"/docs-img/sermant-rt-arch.png\" /\u003e\n```\nThe path in src is the image path, and the images are stored in the .vuepress/public directory. You can create an image directory under the directory.\n\n## Homepage\n\nThe home page content can be edited in the first README.md file in the zh and en document directories. The content is placed between slot-footer and the header using Markdown syntax. The content is populated above footer on the home page.\n\n## Blog\n\nEnter the blog directory, when you need to publish a blog, you can add blog content in the README.md.\n```yml\nblogArr: \n    - name: blog1\n      description: 'This is description'\n      path: 'blogtest1'\n      tags:\n      - html\n      - javascript\n    - name: blog2\n      description: 'This is description'\n      path: 'blogtest2'\n      tags:\n      - html\n      - javascript\n```\nThe name field indicates the name of the blog, the description field indicates the description information, and the path indicates the address of the newly created blog. You can add user-defined tag to tags. Note that the format of the tags is consistent with that above.\n\n## 文档 （document）\nThere is a README.md file in the document root where you can write information such as an introduction or overview of the entire module.\nYou can then create multiple document information, all of which are md files, in which you can edit the document content. After editing, in order to make the documentation information jump through the left sidebar, you need to go to the .vuepress directory config.js to add configuration information. Add the appropriate content under the sidebar field, as shown below.\n```javascript\nsidebar: {\n          \"/en/document/\": [\"\", \"one\", \"two\"],\n          \"/en/plugin/\": [\"\"],\n          \"/en/blog/\": [\"\"],\n        },\n```\nIf you create a new document called one, add the file name (without suffix) to the \"/zh/document/\" property in the form of an array. At the same time, note that this step should be carried out in the sidebar in both English and Chinese, otherwise it may cause inconsistency between the Chinese and English sidebars.\n\nAdvanced usage: Groups can be used when there are more levels.\n```\n{\n    title: \"begin\",\n    path: \"\",\n    collapsable: false,\n    sidebarDepth: 1,\n    children: [\"\", \"QuickStart\"],\n},\n```\nUse the object to group, title attribute is the group name and path is the path to be jumped when you click. If empty, you cannot click the group name to jump. Collapsable refers to whether the group can be shrunk; if set to false, all group names in the group name will be collapsable, and if true, all group names in the group name can be shrunk. The sidebarDepth property is the depth of the sidebar title. The default value is 1.\n\nThe children attribute is all the md files to be displayed under this group, and the empty string represents the README.md file, where nesting can continue. The string can be changed to the above object form, and the grading can continue (but too many layers can cause confusion in the sidebar and is not recommended).\n\nThe sidebar will eventually display the Level 1 title in the md file. If you want to change the title displayed in the sidebar, you can directly modify the level 1 title in the md file. Due to the strict extraction of the sidebar, the title level in the md file should strictly start with the first-level title, and do not skip each level. The current setting expands to show secondary headings when you click on the md file title in a sidebar. To extract deeper titles, modify the sidebarDepth in the configuration file .vuepress/config.js. As shown below, 1 will extract the second-level title, and 2 will extract the second-level title and third-level title, with a maximum of 2.\n```\nthemeConfig: {\n    logo: \"/img/sermant-logo.png\",\n    displayAllHeaders: false,\n    smoothScroll: true,\n    sidebarDepth: 1,\n    }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsermant-io%2Fsermant-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsermant-io%2Fsermant-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsermant-io%2Fsermant-website/lists"}