Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
b9f115f
refactor: remove unneeded index.js
anegg0 Apr 18, 2025
4a44b41
refactor: convert jsx component files to tsx
anegg0 Apr 18, 2025
36a0bab
refactoring: converted index.jsx to TS
anegg0 Apr 18, 2025
b79949a
feat: add inline documentation
anegg0 Apr 18, 2025
43f1c5b
refactor: add inline documentation
anegg0 Apr 18, 2025
f7a92b7
refactor: reformat
anegg0 Apr 18, 2025
b92760e
refactor: remove unneeded MDXComponents
anegg0 Apr 18, 2025
41c3fb1
refactor: add inline docs
anegg0 Apr 18, 2025
8e3809c
refactor: add inline docs
anegg0 Apr 18, 2025
f975223
refactor: add inline docs
anegg0 Apr 18, 2025
1b95570
refactor: rename sub-project PictureWithClickableNumbers
anegg0 Apr 18, 2025
9705582
feat: add README
anegg0 Apr 18, 2025
ab6e6ca
refactor: NumberComponent
anegg0 Apr 18, 2025
637066b
refactor: Modal
anegg0 Apr 18, 2025
5c08336
refactor: types interfaces
anegg0 Apr 18, 2025
ad932b0
refactor: fix attempt on Circle.animated method call
anegg0 Apr 19, 2025
36a3f4f
Revert "refactor: fix attempt on Circle.animated method call"
anegg0 Apr 21, 2025
25acbae
refactor: fix `circle` component
anegg0 Apr 21, 2025
98e898b
refactor: fix typing issues
anegg0 Apr 21, 2025
cf6e4db
refactor: refactor css component
anegg0 Apr 21, 2025
5f191bb
refactor: remove unneeded Timeboost directory
anegg0 Apr 21, 2025
f404e01
fix: reformat
anegg0 Apr 21, 2025
b19397b
fix: reformat
anegg0 Apr 21, 2025
f5d7778
refactor: update README
anegg0 Apr 21, 2025
d7933e0
refactor: improve usability with less code
anegg0 Apr 21, 2025
a953962
test: add test file to see if invalidate-projectile-cache works
anegg0 Apr 26, 2025
f3cb201
refactor: ensure each "flowchart" component receives distinct args
anegg0 Apr 27, 2025
d0343e4
fix: remove test.org file from InteractiveDiagrams/PictureWithClickab…
anegg0 Apr 27, 2025
04ca19a
refactor: re-write README.md to remove timeboost-related content
anegg0 Apr 27, 2025
92e4534
refactor: add timeboost auction svg file
anegg0 Apr 28, 2025
b9a7235
fix: remove jpg version of timeboost auction diagram
anegg0 Apr 28, 2025
36d4443
refactor: remove duplicate number characters from svg auction file
anegg0 Apr 28, 2025
8a91fc9
fix: correct clickable numbers
anegg0 Apr 28, 2025
834498f
refactor: remove centralized timeboost auction workflow png
anegg0 Apr 28, 2025
ecb285e
refactot: add timeboost express lane diagram
anegg0 Apr 28, 2025
1d3bae0
refactor: correct diagram1 on page
anegg0 Apr 28, 2025
237c662
refactor: add diagram1 to diagram2
anegg0 Apr 28, 2025
e22700d
refactor: switch timeboost express lane to use plain svg
anegg0 Apr 28, 2025
3ccda6e
refactor: fix svg file's tags
anegg0 Apr 28, 2025
c65aa27
Merge branch 'master' into interactive-diagram-refactor
anegg0 Apr 28, 2025
393fc50
refactor: tmp re-add jpg version of express lane workflow
anegg0 Apr 28, 2025
1f1deb0
Revert "refactor: tmp re-add jpg version of express lane workflow"
anegg0 Apr 28, 2025
1c2ca4b
Reapply "refactor: tmp re-add jpg version of express lane workflow"
anegg0 Apr 28, 2025
f60ae1c
Revert "refactor: tmp re-add jpg version of express lane workflow"
anegg0 Apr 28, 2025
d1e1ab9
fix: correct SVG path visibility
anegg0 Apr 28, 2025
93e5576
fix: update timeboost express lane diagram for visibility
anegg0 Apr 28, 2025
f6a7967
Fix: remove numbers from background SVG
anegg0 Apr 28, 2025
802a9d5
Refactor: limit numbers to a single character
anegg0 Apr 28, 2025
2a1ae0d
Feat: More composable NumberComponent
anegg0 Apr 29, 2025
5aa2925
refactor: separete background image from the main component
anegg0 May 1, 2025
b811be2
refactor: clean up
anegg0 May 1, 2025
6513f94
refactor improve and rename button component
anegg0 May 1, 2025
7cb4545
refactor: create Button component: merged from NumberComponent and Bu…
anegg0 May 2, 2025
ce7fe1e
refactor: enable any svg image to be used as background
anegg0 May 5, 2025
d605d27
refactor: no dynamic buttons by default
anegg0 May 5, 2025
7b35e08
refactor: correct REAME
anegg0 May 5, 2025
83a37ec
Refactor: no default button
anegg0 May 6, 2025
d146e27
Merge branch 'master' into interactive-diagram-refactor
anegg0 May 9, 2025
f5674ca
Refactor: adapt claude.md to diagram refactor requirements
anegg0 May 9, 2025
6525557
Refactor: enable rendering of mdx partials in interactive diagrams
anegg0 May 9, 2025
0b332e5
Feat: add dynamic modal content rendering plugin
anegg0 May 9, 2025
01d99ee
Refactor: add code blocks highlighting and remove unused code
anegg0 May 9, 2025
f289820
feat: add plugin index.js
anegg0 May 9, 2025
a234f1e
Refactor: separate modals-as-pages-plugin + better reusability
anegg0 May 9, 2025
f8f3e3c
Refactor: separate modals-as-pages-plugin + better reusability
anegg0 May 9, 2025
6d4d78b
Refactor: better separation of concerns and naming convention
anegg0 May 9, 2025
ed795cb
Merge branch 'master' into interactive-diagram-refactor
anegg0 May 12, 2025
942e5b6
Delete CLAUDE.md
anegg0 May 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,5 @@ Users submit bids through the auctioneer's RPC API for the upcoming round.
signature: "0x..."
}
```

[Read comprehensive explanation](https://docs.arbitrum.io/run-arbitrum-node/how-to-use-timeboost#step-2-submit-bids)
61 changes: 40 additions & 21 deletions arbitrum-docs/how-arbitrum-works/timeboost/gentle-introduction.mdx

Large diffs are not rendered by default.

187 changes: 92 additions & 95 deletions website/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
const markdownPreprocessor = require('./src/scripts/markdown-preprocessor');
const sdkSidebarGenerator = require('./src/scripts/sdk-sidebar-generator');
const sdkCodebasePath = '../arbitrum-sdk';
import remarkMath from 'remark-math';
import rehypeKatex from 'rehype-katex';
const path = require('path');
const remarkMath = require('remark-math');
const rehypeKatex = require('rehype-katex');

/** @type {import('@docusaurus/types').Config} */
const config = {
Expand Down Expand Up @@ -70,6 +71,51 @@ const config = {
],
],
plugins: [
// Modals-as-pages plugin
[
require.resolve('./src/components/InteractiveDiagrams/modals-as-pages-plugin'),
{
contentDir: [
// Primary content directory for interactive diagrams
'src/components/InteractiveDiagrams/content',

// Keep the old path for backward compatibility during transition
'../arbitrum-docs/how-arbitrum-works/timeboost/diagrams-modals',
],
filePattern: '**/*.mdx',
debug: true,
// Custom content ID generator to support both new and legacy file naming
contentIdGenerator: (filePath) => {
// Legacy pattern: _partial-{diagramId}-step-{stepNumber}.mdx
const legacyMatch = path.basename(filePath).match(/^_partial-([^-]+)-step-(\d+)\.mdx$/);
if (legacyMatch) {
return {
contextId: 'diagrams',
groupId: legacyMatch[1],
contentId: `step-${legacyMatch[2]}`,
};
}

// New pattern: diagrams/{groupId}/step-{stepNumber}.mdx
const parts = filePath.split('/');

if (parts.length < 3) {
return {
contextId: 'default',
groupId: path.dirname(filePath).replace(/\//g, '-'),
contentId: path.basename(filePath, '.mdx'),
};
}

return {
contextId: parts[0],
groupId: parts[1],
contentId: path.basename(parts[2], '.mdx'),
};
},
},
],

[
'docusaurus-plugin-typedoc',
{
Expand Down Expand Up @@ -189,156 +235,107 @@ const config = {
// there may be a way to show the dropdown only on pages that have been translated, but that's out of scope for the initial version
// {
// type: 'localeDropdown',
// position: 'right',
// }
// },
],
},
footer: {
style: 'dark',
links: [
{},
{
title: 'Ecosystem',
items: [
{
label: 'Arbitrum.io',
to: 'https://arbitrum.io/',
label: 'Arbitrum One',
href: 'https://arbitrum.io',
},
{
label: 'Arbitrum Rollup',
to: 'https://arbitrum.io/rollup',
label: 'Arbitrum Nova',
href: 'https://nova.arbitrum.io/',
},
{
label: 'Arbitrum AnyTrust',
to: 'https://arbitrum.io/anytrust',
label: 'Arbitrum Portal',
href: 'https://portal.arbitrum.io',
},
{
label: 'Arbitrum Orbit',
to: 'https://arbitrum.io/orbit',
label: 'Arbitrum Bridge',
href: 'https://bridge.arbitrum.io',
},
{
label: 'Arbitrum Stylus',
to: 'https://arbitrum.io/stylus',
label: 'Arbitrum Governance',
href: 'https://arbitrum.foundation',
},
{
label: 'Arbitrum Foundation',
to: 'https://arbitrum.foundation/',
label: 'Arbitrum Token Lists',
href: 'https://tokenlists.org/token-list?url=https://tokenlist.arbitrum.io/ArbTokenLists/arbed_arb_whitelist_era.json',
},
{
label: 'Nitro whitepaper',
to: 'https://github.com/OffchainLabs/nitro/blob/master/docs/Nitro-whitepaper.pdf',
label: 'Stylus Live',
href: 'https://live.stylus-sdk.xyz/playground',
},
],
},
{
title: 'Resources',
items: [
{
label: 'Network status',
to: 'https://status.arbitrum.io/',
},
{
label: 'Portal',
to: 'https://portal.arbitrum.io/',
label: 'Arbitrum One Explorer',
href: 'https://arbiscan.io',
},
{
label: 'Bridge',
to: 'https://bridge.arbitrum.io/',
label: 'Arbitrum Nova Explorer',
href: 'https://nova.arbiscan.io',
},
{
label: 'Governance docs',
to: 'https://docs.arbitrum.foundation/',
label: 'Arbitrum Sepolia Explorer',
href: 'https://sepolia.arbiscan.io/',
},
{
label: 'Careers',
to: 'https://offchainlabs.com/careers/',
label: 'Stylus By Example',
href: 'https://example.arbitrum.io/',
},
{
label: 'Support',
to: 'https://support.arbitrum.io/',
},
{
label: 'Bug Bounties',
to: 'https://immunefi.com/bounty/arbitrum/',
label: 'Analytics',
href: 'https://dune.com/arbitrum/arbitrum-protocol-metrics',
},
],
},
{
title: 'Community',
items: [
{
label: 'Discord',
to: 'https://discord.gg/ZpZuw7p',
},
{
label: 'Twitter',
to: 'https://twitter.com/OffchainLabs',
href: 'https://discord.gg/arbitrum',
},
{
label: 'Youtube',
to: 'https://www.youtube.com/@Arbitrum',
label: 'Offchain Labs Twitter',
href: 'https://twitter.com/OffchainLabs',
},
{
label: 'Medium Blog',
to: 'https://medium.com/offchainlabs',
label: 'Arbitrum Twitter',
href: 'https://twitter.com/arbitrum',
},
{
label: 'Research forum',
to: 'https://research.arbitrum.io/',
label: 'Forum',
href: 'https://forum.arbitrum.foundation/',
},
{
label: 'Privacy Policy',
to: 'https://arbitrum.io/privacy',
},
{
label: 'Terms of Service',
to: 'https://arbitrum.io/tos',
label: 'Research Papers',
href: 'https://github.com/OffchainLabs/arbitrum/blob/master/docs/Arbitrum_and_Fraud_Proofs.pdf',
},
],
},
],
copyright: `© ${new Date().getFullYear()} Offchain Labs`,
copyright: `Copyright © ${new Date().getFullYear()} Offchain Labs, Inc.`,
},
prism: {
additionalLanguages: ['solidity', 'rust', 'bash', 'toml'],
sidebar: {
hideable: true,
},
liveCodeBlock: {
/**
* The position of the live playground, above or under the editor
* Possible values: "top" | "bottom"
*/
playgroundPosition: 'top',
},
mermaid: {
options: {
securityLevel: 'loose',
flowchart: {
curve: 'basis',
},
},
},
docs: {
sidebar: {
autoCollapseCategories: true,
},
colorMode: {
defaultMode: 'light',
disableSwitch: false,
respectPrefersColorScheme: true,
},
}),
};

// HACK
// this was originally included above
// it broke local builds on Windows, not sure why yet. Works fine on Mac
// `generate_sdk_docs` runs fine, no difference in outputs between environments, so it's not easy to debug - low pri
const isRunningLocally = process.env.NODE_ENV === 'development';
const isRunningOnWindows = process.platform === 'win32';
if (isRunningLocally && isRunningOnWindows) {
config.plugins = config.plugins.filter((plugin) => {
if (Array.isArray(plugin) && plugin[0] === '@docusaurus/plugin-content-docs') {
return false; // remove the offending plugin config
}
return true; // keep everything else
});
} else {
// another hack for another strange windows-specific issue, reproduceable through clean clone of repo
config.themeConfig.prism.theme = require('prism-react-renderer/themes/github');
config.themeConfig.prism.darkTheme = require('prism-react-renderer/themes/palenight');
}

module.exports = config;
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* Compatibility file that re-exports the DiagramContentLoader from the modals-as-pages-plugin.
* This file exists solely to prevent import errors with existing code.
*/

import { DiagramContentLoader } from './modals-as-pages-plugin/compatibility';

export default DiagramContentLoader;
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* Compatibility file that re-exports the DiagramContentMap from the modals-as-pages-plugin.
* This file exists solely to prevent import errors with existing code.
*/

import { DiagramContentMap } from './modals-as-pages-plugin/compatibility';

export default DiagramContentMap;
Loading
Loading