Files
blockly/packages/docs/sidebars.js
T
Greg Annandale 7a8f646997 chore(docs): fix broken links
Primarily to reference docs, also links to the GitHub repo prior to the monorepo reshuffle.
2026-04-08 16:59:43 +01:00

1455 lines
42 KiB
JavaScript

// @ts-nocheck
let referenceSidebar = [];
try {
referenceSidebar = require('./docs/reference/_reference.js').referenceSidebar;
} catch {
console.warn(
'Reference sidebar not found — run "npm run docs" in packages/blockly to generate it.',
);
}
// 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,
};
export default sidebars;