From 4b921fbccd34084f67379d42d6d4c3f88ab02c4f Mon Sep 17 00:00:00 2001 From: Greg Annandale Date: Tue, 31 Mar 2026 11:31:47 +0100 Subject: [PATCH] chore(docs): add Docusaurus supporting elements Sidebar, index page, ToCs --- packages/docs/sidebars.js | 1454 ++++++++++++++++++++++++++++++ packages/docs/src/pages/index.js | 61 ++ packages/docs/toc.yaml | 58 ++ 3 files changed, 1573 insertions(+) create mode 100644 packages/docs/sidebars.js create mode 100644 packages/docs/src/pages/index.js create mode 100644 packages/docs/toc.yaml diff --git a/packages/docs/sidebars.js b/packages/docs/sidebars.js new file mode 100644 index 000000000..da0c85ef4 --- /dev/null +++ b/packages/docs/sidebars.js @@ -0,0 +1,1454 @@ +import {referenceSidebar} from './docs/reference/_reference' + +// @ts-nocheck + +// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) + +/** + * Creating a sidebar enables you to: + - create an ordered group of docs +- render a sidebar for each doc of that group +- provide next/previous navigation + +The sidebars can be generated from the filesystem, or explicitly defined here. + +Create as many sidebars as you want. + +@type {import('@docusaurus/plugin-content-docs').SidebarsConfig} +*/ +const sidebars = { + codelabsSidebar: [ + { + "type": "doc", + "label": "Codelabs", + "id": "codelabs/index", + }, + { + type: 'category', + label: 'Getting started with Blockly', + items: [ + { + "type": "doc", + "label": "1. Codelab-overview", + "id": "codelabs/getting-started/codelab-overview" + }, + { + "type": "doc", + "label": "2. Setup", + "id": "codelabs/getting-started/setup" + }, + { + "type": "doc", + "label": "3. Explore the app", + "id": "codelabs/getting-started/explore-the-app" + }, + { + "type": "doc", + "label": "4. Add Blockly libraries", + "id": "codelabs/getting-started/add-blockly-libraries" + }, + { + "type": "doc", + "label": "5. Create a Blockly workspace", + "id": "codelabs/getting-started/create-a-blockly-workspace" + }, + { + "type": "doc", + "label": "6. Create a custom block", + "id": "codelabs/getting-started/create-a-custom-block" + }, + { + "type": "doc", + "label": "7. Save/load workspace", + "id": "codelabs/getting-started/save-load-workspace" + }, + { + "type": "doc", + "label": "8. Generate JavaScript code", + "id": "codelabs/getting-started/generate-javaScript-code" + }, + { + "type": "doc", + "label": "9. Run generated code", + "id": "codelabs/getting-started/run-generated-code" + }, + { + "type": "doc", + "label": "10. The End", + "id": "codelabs/getting-started/the-end" + }, + ] + }, + { + type: 'category', + label: 'Customizing a Blockly toolbox', + items: [ + { + "type": "doc", + "label": "1. Codelab-overview", + "id": "codelabs/custom-toolbox/codelab-overview", + }, + { + "type": "doc", + "label": "2. Setup", + "id": "codelabs/custom-toolbox/setup", + }, + { + "type": "doc", + "label": "3. Change the look of a category", + "id": "codelabs/custom-toolbox/change-the-look-of-a-category", + }, + { + "type": "doc", + "label": "4. Change the look of a selected category", + "id": "codelabs/custom-toolbox/change-the-look-of-a-selected-category", + }, + { + "type": "doc", + "label": "5. Add an icon to your category", + "id": "codelabs/custom-toolbox/add-an-icon-to-your-category", + }, + { + "type": "doc", + "label": "6. Change the category HTML", + "id": "codelabs/custom-toolbox/change-the-category-HTML", + }, + { + "type": "doc", + "label": "7. Adding a custom toolbox item", + "id": "codelabs/custom-toolbox/adding-a-custom-toolbox-item", + }, + { + "type": "doc", + "label": "8. Summary", + "id": "codelabs/custom-toolbox/summary", + }, + ] + }, + { + type: 'category', + label: 'Customizing your themes', + items: [ + { + "type": "doc", + "label": "1. Codelab-overview", + "id": "codelabs/theme-extension-identifier/codelab-overview", + }, + { + "type": "doc", + "label": "2. Setup", + "id": "codelabs/theme-extension-identifier/setup", + }, + { + "type": "doc", + "label": "3. Workspace Theme", + "id": "codelabs/theme-extension-identifier/workspace-theme", + }, + { + "type": "doc", + "label": "4. Customize Components", + "id": "codelabs/theme-extension-identifier/customize-components", + }, + { + "type": "doc", + "label": "5. Customize Category Styles", + "id": "codelabs/theme-extension-identifier/customize-category-styles", + }, + { + "type": "doc", + "label": "6. Customize Block Styles", + "id": "codelabs/theme-extension-identifier/customize-block-styles", + }, + { + "type": "doc", + "label": "7. Summary", + "id": "codelabs/theme-extension-identifier/summary", + }, + ] + }, + { + type: 'category', + label: 'Customizing context menus', + items: [ + { + "type": "doc", + "label": "1. Codelab-overview", + "id": "codelabs/context-menu-option/codelab-overview", + }, + { + "type": "doc", + "label": "2. Setup", + "id": "codelabs/context-menu-option/setup", + }, + { + "type": "doc", + "label": "3. Add a context menu item", + "id": "codelabs/context-menu-option/add-a-context-menu-item", + }, + { + "type": "doc", + "label": "4. Precondition: Node type", + "id": "codelabs/context-menu-option/precondition-node-type", + }, + { + "type": "doc", + "label": "5. Precondition: External state", + "id": "codelabs/context-menu-option/precondition-external-state", + }, + { + "type": "doc", + "label": "6. Precondition: Blockly state", + "id": "codelabs/context-menu-option/precondition-blockly-state", + }, + { + "type": "doc", + "label": "7. Callback", + "id": "codelabs/context-menu-option/callback", + }, + { + "type": "doc", + "label": "8. Display text", + "id": "codelabs/context-menu-option/display-text", + }, + { + "type": "doc", + "label": "9. Weight and id", + "id": "codelabs/context-menu-option/weight-and-id", + }, + { + "type": "doc", + "label": "10. Separators", + "id": "codelabs/context-menu-option/separators", + }, + { + "type": "doc", + "label": "11. Summary", + "id": "codelabs/context-menu-option/summary", + }, + ] + }, + { + type: 'category', + label: 'Block validation and warnings', + items: [ + { + "type": "doc", + "label": "1. Codelab-overview", + "id": "codelabs/validation-and-warnings/codelab-overview", + }, + { + "type": "doc", + "label": "2. Setup", + "id": "codelabs/validation-and-warnings/setup", + }, + { + "type": "doc", + "label": "3. Validating blocks", + "id": "codelabs/validation-and-warnings/validating-blocks", + }, + { + "type": "doc", + "label": "4. Displaying warnings", + "id": "codelabs/validation-and-warnings/displaying-warnings", + }, + { + "type": "doc", + "label": "5. Summary", + "id": "codelabs/validation-and-warnings/summary", + }, + ] + }, + { + type: 'category', + label: 'Use CSS in Blockly', + items: [ + { + "type": "doc", + "label": "1. Codelab-overview", + "id": "codelabs/css/codelab-overview", + }, + { + "type": "doc", + "label": "2. Setup", + "id": "codelabs/css/setup", + }, + { + "type": "doc", + "label": "3. A tour of Blockly's elements", + "id": "codelabs/css/tour", + }, + { + "type": "doc", + "label": "4. Components", + "id": "codelabs/css/components", + }, + { + "type": "doc", + "label": "5. Toolbox categories", + "id": "codelabs/css/categories", + }, + { + "type": "doc", + "label": "6. Blocks", + "id": "codelabs/css/blocks", + }, + { + "type": "doc", + "label": "7. Summary", + "id": "codelabs/css/summary", + }, + ] + }, + { + type: 'category', + label: 'Build a custom generator', + items: [ + { + "type": "doc", + "label": "1. Codelab-overview", + "id": "codelabs/custom-generator/codelab-overview", + }, + { + "type": "doc", + "label": "2. Setup", + "id": "codelabs/custom-generator/setup", + }, + { + "type": "doc", + "label": "3. The basics", + "id": "codelabs/custom-generator/the-basics", + }, + { + "type": "doc", + "label": "4. Block generator overview", + "id": "codelabs/custom-generator/block-generator-overview", + }, + { + "type": "doc", + "label": "5. Value block generators", + "id": "codelabs/custom-generator/value-block-generators", + }, + { + "type": "doc", + "label": "6. Member block generator", + "id": "codelabs/custom-generator/member-block-generator", + }, + { + "type": "doc", + "label": "7. Array block generator", + "id": "codelabs/custom-generator/array-block-generator", + }, + { + "type": "doc", + "label": "8. Object block generator", + "id": "codelabs/custom-generator/object-block-generator", + }, + { + "type": "doc", + "label": "9. Generating a stack", + "id": "codelabs/custom-generator/generating-a-stack", + }, + { + "type": "doc", + "label": "10. Summary", + "id": "codelabs/custom-generator/summary", + }, + ] + }, + { + type: 'category', + label: 'Build custom renderers', + items: [ + { + "type": "doc", + "label": "1. Codelab-overview", + "id": "codelabs/custom-renderer/codelab-overview", + }, + { + "type": "doc", + "label": "2. Setup", + "id": "codelabs/custom-renderer/setup", + }, + { + "type": "doc", + "label": "3. Observe the built-in renderers", + "id": "codelabs/custom-renderer/observe-the-built-in-renderers", + }, + { + "type": "doc", + "label": "4. Define and register a custom renderer", + "id": "codelabs/custom-renderer/define-and-register-a-custom-renderer", + }, + { + "type": "doc", + "label": "5. Override constants", + "id": "codelabs/custom-renderer/override-constants", + }, + { + "type": "doc", + "label": "6. Understand connection shapes", + "id": "codelabs/custom-renderer/understand-connection-shapes", + }, + { + "type": "doc", + "label": "7. Change connection shapes", + "id": "codelabs/custom-renderer/change-connection-shapes", + }, + { + "type": "doc", + "label": "8. Typed connection shapes", + "id": "codelabs/custom-renderer/typed-connection-shapes", + }, + { + "type": "doc", + "label": "9. Summary", + "id": "codelabs/custom-renderer/summary", + } + ] + }, + ], + guidesSidebar: [ + { + type: "category", + label: "Get started", + items: [ + { + type: "doc", + label: "What Is Blockly", + id: "guides/get-started/what-is-blockly", + }, + { + type: "doc", + label: "Why Blockly", + id: "guides/get-started/why-blockly", + }, + { + type: "doc", + label: "Get The Code", + id: "guides/get-started/get-the-code", + }, + { + type: "doc", + label: "Visual glossary", + id: "guides/get-started/workspace-anatomy", + }, + { + type: "category", + label: "Basic steps", + items: [ + { + type: "doc", + label: "Create a workspace", + id: "guides/get-started/workspace-creation", + }, + { + type: "doc", + label: "Add a toolbox", + id: "guides/get-started/toolbox", + }, + { + type: "doc", + label: "Define custom blocks", + id: "guides/get-started/blocks", + }, + { + type: "doc", + label: "Generate code", + id: "guides/get-started/code-generation", + }, + { + type: "doc", + label: "Save and load", + id: "guides/get-started/save-and-load", + }, + ], + }, + { + type: "category", + label: "Try Blockly", + items: [ + { + type: "link", + label: "Get started codelab", + href: "/codelabs/getting-started/codelab-overview", + }, + { + type: "link", + label: "Blockly Playground", + href: "https://blockly-demo.appspot.com/static/tests/playground.html", + }, + { + type: "link", + label: "Block Factory", + href: "https://raspberrypifoundation.github.io/blockly-samples/examples/developer-tools/index.html", + }, + ], + }, + ], + }, + { + type: "category", + label: "Design considerations", + items: [ + { + type: "doc", + label: "Introduction to Blockly applications", + id: "guides/design/app-overview", + }, + { + type: "doc", + label: "Application design", + id: "guides/design/applications", + }, + { + type: "doc", + label: "Educational applications", + id: "guides/design/education", + }, + { + type: "doc", + label: "Block design", + id: "guides/design/blocks", + }, + { + type: "doc", + label: "Block- vs text-based languages", + id: "guides/design/languages", + }, + { + type: "doc", + label: "Block appearance", + id: "guides/design/appearance", + }, + ], + }, + { + type: "category", + label: "Programming considerations", + items: [ + { + type: "doc", + label: "API visibility", + id: "guides/programming/using_blockly_apis", + }, + { + type: "doc", + label: "Plugins", + id: "guides/programming/plugin_overview", + }, + { + type: "doc", + label: "Fork Blockly", + id: "guides/programming/forking_blockly", + }, + { + type: "doc", + label: "Unfork Blockly", + id: "guides/programming/unforking_blockly", + }, + ], + }, + { + type: "category", + label: "Build your editor", + items: [ + { + type: "category", + label: "Workspaces", + items: [ + { + type: "category", + label: "Create a workspace", + items: [ + { + type: "doc", + label: "Create a workspace", + id: "guides/configure/web/configuration_struct", + }, + { + type: "doc", + label: "Grid option", + id: "guides/configure/web/grid", + }, + { + type: "doc", + label: "Media folder option", + id: "guides/configure/web/media", + }, + { + type: "doc", + label: "Move option", + id: "guides/configure/web/move", + }, + { + type: "doc", + label: "Zoom option", + id: "guides/configure/web/zoom", + }, + ], + }, + { + type: "category", + label: "Workspace size", + items: [ + { + type: "doc", + label: "Fixed-size workspace", + id: "guides/configure/web/fixed-size", + }, + { + type: "doc", + label: "Resizable workspace", + id: "guides/configure/web/resizable", + }, + { + type: "doc", + label: "Metrics Manager", + id: "guides/configure/web/metrics_manager", + }, + ], + }, + ], + }, + { + type: "category", + label: "Toolboxes", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/configure/web/toolboxes/toolbox", + }, + { + type: "category", + label: "Flyout toolboxes", + items: [ + { + type: "doc", + label: "Define a flyout toolbox", + id: "guides/configure/web/toolboxes/flyout", + }, + ], + }, + { + type: "category", + label: "Category toolboxes", + items: [ + { + type: "doc", + label: "Define a category toolbox", + id: "guides/configure/web/toolboxes/category", + }, + { + type: "doc", + label: "Nested categories", + id: "guides/configure/web/toolboxes/nested", + }, + { + type: "doc", + label: "Dynamic categories", + id: "guides/configure/web/toolboxes/dynamic", + }, + { + type: "doc", + label: "Disable, hide, or expand categories", + id: "guides/configure/web/toolboxes/disable-categories", + }, + { + type: "doc", + label: "Category appearance", + id: "guides/configure/web/toolboxes/appearance", + }, + { + type: "doc", + label: "Programmatic access", + id: "guides/configure/web/toolboxes/programmatic", + }, + ], + }, + { + type: "doc", + label: "Preset blocks", + id: "guides/configure/web/toolboxes/preset", + }, + { + type: "doc", + label: "Separators", + id: "guides/configure/web/toolboxes/separators", + }, + { + type: "doc", + label: "Buttons and labels", + id: "guides/configure/web/toolboxes/buttons", + }, + { + type: "doc", + label: "Modify toolboxes", + id: "guides/configure/web/toolboxes/modify", + }, + ], + }, + { + type: "category", + label: "Appearance", + items: [ + { + type: "doc", + label: "Themes", + id: "guides/configure/web/appearance/themes", + }, + { + type: "doc", + label: "Colour formats", + id: "guides/configure/web/appearance/colour-formats", + }, + { + type: "doc", + label: "Block colours", + id: "guides/configure/web/appearance/block-colour", + }, + { + type: "doc", + label: "Style with CSS", + id: "guides/configure/web/appearance/css", + } + ], + }, + { + type: "doc", + label: "Save and load", + id: "guides/configure/web/serialization", + }, + { + type: "doc", + label: "Events", + id: "guides/configure/web/events", + }, + { + type: "category", + label: "Shortcuts and context menus", + items: [ + { + type: "doc", + label: "Keyboard shortcuts", + id: "guides/configure/web/keyboard-shortcuts", + }, + { + type: "doc", + label: "Copy and paste", + id: "guides/configure/web/copy-paste", + }, + { + type: "doc", + label: "Context menus", + id: "guides/configure/web/context-menus", + }, + ], + }, + { + type: "category", + label: "Drag and drop", + items: [ + { + type: "doc", + label: "Custom draggables", + id: "guides/configure/web/dragging/draggable", + }, + { + type: "doc", + label: "Custom block drag strategies", + id: "guides/configure/web/dragging/block-drag-strategies", + }, + { + type: "doc", + label: "Custom draggers", + id: "guides/configure/web/dragging/dragger", + }, + ], + }, + { + type: "category", + label: "Comments", + items: [ + { + type: "doc", + label: "Workspace comments", + id: "guides/configure/web/workspace_comment", + }, + { + type: "doc", + label: "Block comments", + id: "guides/configure/web/block_comment", + }, + ], + }, + { + type: "doc", + label: "Localization", + id: "guides/configure/web/translations", + }, + { + type: "doc", + label: "Focus system", + id: "guides/configure/web/focus", + }, + { + type: "doc", + label: "Advanced customization", + id: "guides/configure/web/customization", + }, + { + type: "category", + label: "Accessibility", + items: [ + { + type: "doc", + label: "Keyboard navigation", + id: "guides/configure/web/keyboard-nav", + }, + { + type: "doc", + label: "Colour and accessibility", + id: "guides/configure/web/colour-a11y", + }, + ], + }, + ], + }, + { + type: "category", + label: "Build your blocks", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/create-custom-blocks/overview", + }, + { + type: "category", + label: "Block definitions", + items: [ + { + type: "doc", + label: "What's a block definition?", + id: "guides/create-custom-blocks/define/block-definitions", + }, + { + type: "category", + label: "Ways to define blocks", + items: [ + { + type: "doc", + label: "Blockly Developer Tools", + id: "guides/create-custom-blocks/blockly-developer-tools", + }, + { + type: "doc", + label: "JSON and JavaScript", + id: "guides/create-custom-blocks/define/json-and-js", + }, + { + type: "doc", + label: "Extensions and mixins", + id: "guides/create-custom-blocks/define/extensions", + }, + { + type: "doc", + label: "Modify block definitions", + id: "guides/create-custom-blocks/define/modify-definitions", + }, + ], + }, + { + type: "category", + label: "Block structure", + items: [ + { + type: "doc", + label: "Anatomy of a block", + id: "guides/create-custom-blocks/define/block-anatomy", + }, + { + type: "doc", + label: "Top-level connections", + id: "guides/create-custom-blocks/define/top-level-connections", + }, + { + type: "doc", + label: "Block structure in JSON", + id: "guides/create-custom-blocks/define/structure-json", + }, + { + type: "doc", + label: "Block structure in JavaScript", + id: "guides/create-custom-blocks/define/structure-js", + }, + { + type: "doc", + label: "Inline vs external inputs", + id: "guides/create-custom-blocks/define/inline-vs-external", + }, + ], + }, + { + type: "doc", + label: "Block state", + id: "guides/create-custom-blocks/define/block-state", + }, + { + type: "doc", + label: "Destroy hook", + id: "guides/create-custom-blocks/define/destroy", + }, + { + type: "doc", + label: "Block help", + id: "guides/create-custom-blocks/define/block-help", + }, + ], + }, + { + type: "category", + label: "Code generation", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/create-custom-blocks/code-generation/overview", + }, + { + type: "doc", + label: "Block-code generators", + id: "guides/create-custom-blocks/code-generation/block-code", + }, + { + type: "doc", + label: "Transform field values", + id: "guides/create-custom-blocks/code-generation/fields", + }, + { + type: "doc", + label: "Add parentheses", + id: "guides/create-custom-blocks/code-generation/operator-precedence", + }, + { + type: "doc", + label: "Cache inner value block code", + id: "guides/create-custom-blocks/code-generation/caching-arguments", + }, + ], + }, + { + type: "category", + label: "Connections", + items: [ + { + type: "doc", + label: "Connection checks", + id: "guides/create-custom-blocks/inputs/connection-checks", + }, + { + type: "doc", + label: "Connection check playbook", + id: "guides/create-custom-blocks/inputs/connection-check-playbook", + }, + { + type: "doc", + label: "Custom connection checkers", + id: "guides/create-custom-blocks/inputs/connection_checker", + }, + { + type: "doc", + label: "Connection previewers", + id: "guides/create-custom-blocks/inputs/connection-previews", + }, + ], + }, + { + type: "category", + label: "Inputs", + items: [ + { + type: "doc", + label: "Create custom inputs", + id: "guides/create-custom-blocks/inputs/creating-custom-inputs", + }, + ], + }, + { + type: "category", + label: "Fields", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/create-custom-blocks/fields/overview", + }, + { + type: "doc", + label: "Fields vs icons", + id: "guides/create-custom-blocks/fields/fields-vs-icons", + }, + { + type: "doc", + label: "Anatomy of a field", + id: "guides/create-custom-blocks/fields/anatomy-of-a-field", + }, + { + type: "doc", + label: "Validators", + id: "guides/create-custom-blocks/fields/validators", + }, + { + type: "category", + label: "Built-in fields", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/create-custom-blocks/fields/built-in-fields/overview", + }, + { + type: "doc", + label: "Checkbox", + id: "guides/create-custom-blocks/fields/built-in-fields/checkbox", + }, + { + type: "doc", + label: "Dropdown", + id: "guides/create-custom-blocks/fields/built-in-fields/dropdown", + }, + { + type: "doc", + label: "Image", + id: "guides/create-custom-blocks/fields/built-in-fields/image", + }, + { + type: "doc", + label: "Label", + id: "guides/create-custom-blocks/fields/built-in-fields/label", + }, + { + type: "doc", + label: "Label (serializable)", + id: "guides/create-custom-blocks/fields/built-in-fields/label-serializable", + }, + { + type: "doc", + label: "Number", + id: "guides/create-custom-blocks/fields/built-in-fields/number", + }, + { + type: "doc", + label: "Text input", + id: "guides/create-custom-blocks/fields/built-in-fields/text-input", + }, + { + type: "doc", + label: "Variable", + id: "guides/create-custom-blocks/fields/built-in-fields/variable", + }, + ], + }, + { + type: "category", + label: "Custom fields", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/create-custom-blocks/fields/customizing-fields/overview", + }, + { + type: "doc", + label: "Extend an existing field", + id: "guides/create-custom-blocks/fields/customizing-fields/extending", + }, + { + type: "doc", + label: "Create a custom field", + id: "guides/create-custom-blocks/fields/customizing-fields/creating", + }, + { + type: "doc", + label: "Upgrade a custom field", + id: "guides/create-custom-blocks/fields/customizing-fields/upgrading", + }, + ], + }, + ], + }, + { + type: "doc", + label: "Variables", + id: "guides/create-custom-blocks/variables", + }, + { + type: "category", + label: "Procedures", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/create-custom-blocks/procedures/overview", + }, + { + type: "doc", + label: "Use built-in procedure blocks", + id: "guides/create-custom-blocks/procedures/using-procedures", + }, + { + type: "doc", + label: "Create custom procedure blocks", + id: "guides/create-custom-blocks/procedures/creating-custom-procedure-blocks", + }, + { + type: "doc", + label: "Create custom procedure data models", + id: "guides/create-custom-blocks/procedures/creating-custom-procedure-data-models", + }, + ], + }, + { + type: "category", + label: "Icons", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/create-custom-blocks/icons/overview", + }, + { + type: "doc", + label: "Fields vs icons", + id: "guides/create-custom-blocks/fields/fields-vs-icons", + }, + { + type: "doc", + label: "Override comment icon", + id: "guides/create-custom-blocks/icons/creating-custom-icons/override-built-in", + }, + { + type: "category", + label: "Create custom icons", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/create-custom-blocks/icons/creating-custom-icons/basic-implementation", + }, + { + type: "doc", + label: "Save and load icons", + id: "guides/create-custom-blocks/icons/creating-custom-icons/save-and-load", + }, + { + type: "doc", + label: "Use pop-up bubbles", + id: "guides/create-custom-blocks/icons/creating-custom-icons/use-bubbles", + }, + { + type: "doc", + label: "Create custom bubbles", + id: "guides/create-custom-blocks/icons/creating-custom-icons/creating-custom-bubbles", + }, + { + type: "doc", + label: "Use custom icons", + id: "guides/create-custom-blocks/icons/creating-custom-icons/use-custom-icons", + }, + ], + }, + ], + }, + { + type: "category", + label: "Block shape", + items: [ + { + type: "doc", + label: "Mutators", + id: "guides/create-custom-blocks/mutators", + }, + { + type: "category", + label: "Renderers", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/create-custom-blocks/renderers/overview", + }, + { + type: "category", + label: "Concepts", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/create-custom-blocks/renderers/concepts/overview", + }, + { + type: "doc", + label: "Renderer", + id: "guides/create-custom-blocks/renderers/concepts/renderer", + }, + { + type: "doc", + label: "Constant provider", + id: "guides/create-custom-blocks/renderers/concepts/constants", + }, + { + type: "doc", + label: "Render info", + id: "guides/create-custom-blocks/renderers/concepts/info", + }, + { + type: "doc", + label: "Path object", + id: "guides/create-custom-blocks/renderers/concepts/path-object", + }, + { + type: "doc", + label: "Drawer", + id: "guides/create-custom-blocks/renderers/concepts/drawer", + }, + { + type: "doc", + label: "Rows", + id: "guides/create-custom-blocks/renderers/concepts/rows", + }, + { + type: "doc", + label: "Elements", + id: "guides/create-custom-blocks/renderers/concepts/elements", + }, + ], + }, + { + type: "doc", + label: "Create custom renderers", + id: "guides/create-custom-blocks/renderers/create-custom-renderers/basic-implementation", + }, + { + type: "doc", + label: "Connection shapes", + id: "guides/create-custom-blocks/renderers/create-custom-renderers/connection-shapes", + }, + ], + }, + ], + }, + ], + }, + { + type: "category", + label: "Build your application", + items: [ + { + type: "category", + label: "Generate and run code", + items: [ + { + type: "doc", + label: "Generate and run code", + id: "guides/app-integration/run-code", + }, + { + type: "doc", + label: "Generate and run JavaScript", + id: "guides/app-integration/running-javascript", + }, + ], + }, + { + type: "doc", + label: "Attribute Blockly", + id: "guides/app-integration/attribution", + }, + ], + }, + { + type: "category", + label: "Contribute to Blockly", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/contribute/index", + }, + { + type: "category", + label: "Get started", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/contribute/get-started/index", + }, + { + type: "doc", + label: "Development tools", + id: "guides/contribute/get-started/development_tools", + }, + { + type: "doc", + label: "Write a good issue", + id: "guides/contribute/get-started/write_a_good_issue", + }, + { + type: "doc", + label: "Write a good pull request", + id: "guides/contribute/get-started/write_a_good_pr", + }, + { + type: "doc", + label: "Commit message guide", + id: "guides/contribute/get-started/commits", + }, + { + type: "doc", + label: "Code review process", + id: "guides/contribute/get-started/pr_review_process", + }, + { + type: "doc", + label: "Issue labels", + id: "guides/contribute/get-started/issue_labels", + }, + { + type: "doc", + label: "Use the playground", + id: "guides/contribute/get-started/playground", + }, + ], + }, + { + type: "category", + label: "Contribute to core", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/contribute/core/index", + }, + { + type: "category", + label: "Core architecture", + items: [ + { + type: "doc", + label: "Render management", + id: "guides/contribute/core-architecture/render-management", + }, + ], + }, + { + type: "doc", + label: "Style guide", + id: "guides/contribute/core/style_guide", + }, + { + type: "doc", + label: "Build scripts", + id: "guides/contribute/core/building", + }, + { + type: "doc", + label: "Advanced compilation", + id: "guides/contribute/core/advanced", + }, + { + type: "category", + label: "Localization", + items: [ + { + type: "doc", + label: "Add a new localization token", + id: "guides/contribute/core/add_localization_token", + }, + { + type: "doc", + label: "Translate text", + id: "guides/contribute/core/translating", + }, + { + type: "doc", + label: "Klingon", + id: "guides/contribute/core/klingon", + }, + ], + }, + { + type: "doc", + label: "Unit tests", + id: "guides/contribute/core/unit_testing", + }, + { + type: "doc", + label: "Write a codelab", + id: "guides/contribute/core/write_a_codelab", + }, + ], + }, + { + type: "category", + label: "Contribute to samples", + items: [ + { + type: "doc", + label: "Overview", + id: "guides/contribute/samples/index", + }, + { + type: "doc", + label: "Repository structure", + id: "guides/contribute/samples/repository_structure", + }, + { + type: "category", + label: "Plugins", + items: [ + { + type: "doc", + label: "Add a plugin", + id: "guides/contribute/samples/add_a_plugin", + }, + { + type: "doc", + label: "Plugin naming conventions", + id: "guides/contribute/samples/naming", + }, + { + type: "doc", + label: "Debug plugins", + id: "guides/contribute/samples/debugging", + }, + { + type: "doc", + label: "Publish block libraries", + id: "guides/contribute/samples/block_libraries", + }, + { + type: "doc", + label: "Add a plugin field to Block Factory", + id: "guides/contribute/samples/block_factory", + }, + ], + }, + ], + }, + ], + }, + ], + //referenceSidebar: referenceSidebar + referenceSidebar: [ + { + "type": "doc", + "label": "Codelabs", + "id": "codelabs/index", + }, + ], +}; + +export default sidebars; diff --git a/packages/docs/src/pages/index.js b/packages/docs/src/pages/index.js new file mode 100644 index 000000000..8209e185d --- /dev/null +++ b/packages/docs/src/pages/index.js @@ -0,0 +1,61 @@ +import React from 'react'; +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import Layout from '@theme/Layout'; +import HomepageFeatures from '@site/src/components/HomepageFeatures'; + +import Heading from '@theme/Heading'; +import styles from './index.module.css'; + +function HomepageHeader() { + const {siteConfig} = useDocusaurusContext(); + const homePageGif = useBaseUrl('/images/HomePage/home-animation.gif'); + + return ( +
+
+
+
+
Developer docs
+ + Build with Blockly + +

+ An open-source, flexible library for developers to build visual programming editors with drag-and-drop blocks - powering the world’s most popular block-based coding platforms. +

+
+ + Get started + +
+
+
+ Blockly code block example +
+
+
+
+ ); +} + +export default function Home() { + const {siteConfig} = useDocusaurusContext(); + return ( + + +
+ +
+
+ ); +} diff --git a/packages/docs/toc.yaml b/packages/docs/toc.yaml new file mode 100644 index 000000000..4a8390dc2 --- /dev/null +++ b/packages/docs/toc.yaml @@ -0,0 +1,58 @@ + +- label: 'Get started' + items: + - label: 'What is Blockly?' + id: 'guides/get-started/what-is-blockly' + - label: 'Visual glossary' + id: 'guides/get-started/workspace-anatomy' + +- label: 'Programming considerations' + items: + - label: 'Fork Blockly' + id: 'guides/programming/forking_blockly' + +- label: 'Build your editor' + items: + - label: 'Workspaces' + items: + - label: 'Create a workspace' + items: + - label: 'Create a workspace' + id: 'guides/configure/web/configuration_struct' + + - label: 'Localization' + id: 'guides/configure/web/translations' + +- label: 'Build your blocks' + items: + - label: 'Block definitions' + items: + - label: 'Ways to define blocks' + items: + - label: 'JSON and JavaScript' + id: 'guides/create-custom-blocks/define/json-and-js' + + - label: 'Legacy Blockly Developer Tools' + id: 'guides/create-custom-blocks/define/legacy-blockly-developer-tools' + + - label: 'Block structure' + items: + - label: 'Anatomy of a block' + id: 'guides/create-custom-blocks/define/block-anatomy' + + - label: 'Code generation' + items: + - label: 'Block-code generators' + id: 'guides/create-custom-blocks/code-generation/block-code' + + - label: 'Fields' + items: + - label: 'Built-in fields' + items: + - label: 'Dropdown' + id: 'guides/create-custom-blocks/fields/built-in-fields/dropdown' + - label: 'Custom fields' + items: + - label: 'Create a custom field' + id: 'guides/create-custom-blocks/fields/customizing-fields/creating' +