From 11ab3e56ca2e68d06f1e1b88cc01c0148a727797 Mon Sep 17 00:00:00 2001 From: James <5511220+Zamiell@users.noreply.github.com> Date: Wed, 29 Nov 2023 23:32:06 -0500 Subject: [PATCH] chore: convert config files to typescript --- docs/about.mdx | 2 +- docs/beginner/2-save-question-1.mdx | 2 +- docs/beginner/2-save-question-2.mdx | 2 +- docs/beginner/2-save-question-3.mdx | 2 +- docs/beginner/2-save.mdx | 2 +- docs/beginner/5-save-question-1.mdx | 2 +- docs/beginner/5-save-question-2.mdx | 2 +- docs/beginner/5-save.mdx | 2 +- docs/beginner/card-layout.mdx | 2 +- docs/beginner/card-notes.mdx | 2 +- docs/beginner/chop-question-1.mdx | 2 +- docs/beginner/chop-question-2.mdx | 2 +- docs/beginner/chop-question-3.mdx | 2 +- docs/beginner/chop-question-4.mdx | 2 +- docs/beginner/chop.mdx | 2 +- .../clue-interpretation-question-1.mdx | 2 +- .../clue-interpretation-question-2.mdx | 2 +- .../clue-interpretation-question-3.mdx | 2 +- .../clue-interpretation-question-4.mdx | 2 +- docs/beginner/clue-interpretation.mdx | 2 +- docs/beginner/critical-save-question-1.mdx | 2 +- docs/beginner/critical-save-question-2.mdx | 2 +- docs/beginner/critical-save-question-3.mdx | 2 +- docs/beginner/critical-save-question-4.mdx | 2 +- docs/beginner/critical-save.mdx | 2 +- .../delayed-play-clues-question-1.mdx | 2 +- .../delayed-play-clues-question-2.mdx | 2 +- .../delayed-play-clues-question-3.mdx | 2 +- docs/beginner/delayed-play-clues.mdx | 2 +- docs/beginner/early-game-question-1.mdx | 2 +- docs/beginner/early-game-question-2.mdx | 2 +- docs/beginner/early-game-question-3.mdx | 2 +- docs/beginner/early-game-question-4.mdx | 2 +- docs/beginner/early-game.mdx | 2 +- docs/beginner/finesse-question-1.mdx | 2 +- docs/beginner/finesse-question-2.mdx | 2 +- docs/beginner/finesse.mdx | 2 +- .../good-touch-principle-question-1.mdx | 2 +- .../good-touch-principle-question-2.mdx | 2 +- .../good-touch-principle-question-3.mdx | 2 +- .../good-touch-principle-question-4.mdx | 2 +- docs/beginner/good-touch-principle.mdx | 2 +- ...inimum-clue-value-principle-question-1.mdx | 2 +- .../beginner/minimum-clue-value-principle.mdx | 2 +- docs/beginner/next-steps.mdx | 2 +- .../other-general-strategy-question-1.mdx | 2 +- .../other-general-strategy-question-2.mdx | 2 +- .../other-general-strategy-question-3.mdx | 2 +- .../other-general-strategy-question-4.mdx | 2 +- .../other-general-strategy-question-5.mdx | 2 +- docs/beginner/other-general-strategy.mdx | 2 +- docs/beginner/play-clues-question-1.mdx | 2 +- docs/beginner/play-clues-question-2.mdx | 2 +- docs/beginner/play-clues.mdx | 2 +- docs/beginner/prompt-question-1.mdx | 2 +- docs/beginner/prompt-question-2.mdx | 2 +- docs/beginner/prompt-question-3.mdx | 2 +- docs/beginner/prompt.mdx | 2 +- docs/beginner/save-clues.mdx | 2 +- docs/beginner/save-principle-question-1.mdx | 2 +- docs/beginner/save-principle-question-2.mdx | 2 +- docs/beginner/save-principle.mdx | 2 +- .../beginner/single-card-focus-question-1.mdx | 2 +- .../beginner/single-card-focus-question-2.mdx | 2 +- .../beginner/single-card-focus-question-3.mdx | 2 +- .../beginner/single-card-focus-question-4.mdx | 2 +- docs/beginner/single-card-focus.mdx | 2 +- docs/beginner/special-moves.mdx | 2 +- docs/beginner/three-main-principles.mdx | 2 +- docs/beginner/two-types-of-clues.mdx | 2 +- docs/level-1.mdx | 6 +- docusaurus.config.js | 108 --------------- docusaurus.config.ts | 122 +++++++++++++++++ misc/FAQ.md | 124 +++++++++--------- move-levels.sh | 2 +- scripts/.eslintrc.cjs | 23 ++++ sidebars.js => sidebars.ts | 7 +- src/{beginnersGuide.js => beginnersGuide.tsx} | 26 ++-- src/components/HomepageFeatures/index.tsx | 4 +- src/pages/index.tsx | 2 +- static/js/hotkey.js | 2 +- tsconfig.json | 2 + 82 files changed, 309 insertions(+), 259 deletions(-) delete mode 100644 docusaurus.config.js create mode 100644 docusaurus.config.ts create mode 100644 scripts/.eslintrc.cjs rename sidebars.js => sidebars.ts (98%) rename src/{beginnersGuide.js => beginnersGuide.tsx} (55%) diff --git a/docs/about.mdx b/docs/about.mdx index e6b3336a93..30b1f7952c 100644 --- a/docs/about.mdx +++ b/docs/about.mdx @@ -5,7 +5,7 @@ title: About [Hanabi](https://boardgamegeek.com/boardgame/98778/hanabi) is a fantastic cooperative card game of logic and reasoning. Our group, called the _H-Group_, was started back in February 2016. We play Hanabi a lot, using the [Hanab Live](https://hanab.live) website and a [Discord server](https://discord.gg/FADvkJp) to get pick-up games going. Everything doesn't always go perfectly, but we strive to constantly improve. Naturally, we have also built up a set of conventions that we all agree upon at the beginning of the game so that it is easier to understand what everyone else is doing. As the list of conventions got longer, we wanted to make sure that everything was documented in an official capacity. -Are you looking to start playing games with the _H-Group_? Head on over to [the beginner's guide](/docs/beginner). +Are you looking to start playing games with the _H-Group_? Head on over to [the beginner's guide](/beginner). Have you found your way here from the Internet? That's fine too. Feel free to cherry-pick strategies for your own group, or even adopt the whole convention framework. We enjoy talking to other Hanabi players, so make sure to say hi in the Discord server as well. (Discord is a voice and text chat application that you can run in a browser.) diff --git a/docs/beginner/2-save-question-1.mdx b/docs/beginner/2-save-question-1.mdx index 0d2b88713f..1a3a170d24 100644 --- a/docs/beginner/2-save-question-1.mdx +++ b/docs/beginner/2-save-question-1.mdx @@ -3,7 +3,7 @@ id: 2-save-question-1 title: The 2 Save (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import TwoSaveQuestion1 from "@site/image-generator/yml/beginner/2-save-question-1.yml"; diff --git a/docs/beginner/2-save-question-2.mdx b/docs/beginner/2-save-question-2.mdx index 2df8d99a25..f903fe4ebd 100644 --- a/docs/beginner/2-save-question-2.mdx +++ b/docs/beginner/2-save-question-2.mdx @@ -3,7 +3,7 @@ id: 2-save-question-2 title: The 2 Save (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import TwoSaveQuestion2 from "@site/image-generator/yml/beginner/2-save-question-2.yml"; diff --git a/docs/beginner/2-save-question-3.mdx b/docs/beginner/2-save-question-3.mdx index 39e3f60424..2d6f71e0ec 100644 --- a/docs/beginner/2-save-question-3.mdx +++ b/docs/beginner/2-save-question-3.mdx @@ -3,7 +3,7 @@ id: 2-save-question-3 title: The 2 Save (Question 3) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import TwoSaveQuestion3 from "@site/image-generator/yml/beginner/2-save-question-3.yml"; diff --git a/docs/beginner/2-save.mdx b/docs/beginner/2-save.mdx index 260cc2fd40..0f5b1c8426 100644 --- a/docs/beginner/2-save.mdx +++ b/docs/beginner/2-save.mdx @@ -3,7 +3,7 @@ id: 2-save title: The 2 Save --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import TwoSave from "@site/image-generator/yml/beginner/2-save.yml"; import TwoSaveIllegal from "@site/image-generator/yml/beginner/2-save-illegal.yml"; diff --git a/docs/beginner/5-save-question-1.mdx b/docs/beginner/5-save-question-1.mdx index ff1e60da93..145a14a638 100644 --- a/docs/beginner/5-save-question-1.mdx +++ b/docs/beginner/5-save-question-1.mdx @@ -3,7 +3,7 @@ id: 5-save-question-1 title: The 5 Save (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import FiveSaveQuestion1 from "@site/image-generator/yml/beginner/5-save-question-1.yml"; diff --git a/docs/beginner/5-save-question-2.mdx b/docs/beginner/5-save-question-2.mdx index d9ed769531..1f93c083e5 100644 --- a/docs/beginner/5-save-question-2.mdx +++ b/docs/beginner/5-save-question-2.mdx @@ -3,7 +3,7 @@ id: 5-save-question-2 title: The 5 Save (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import FiveSaveQuestion2 from "@site/image-generator/yml/beginner/5-save-question-2.yml"; diff --git a/docs/beginner/5-save.mdx b/docs/beginner/5-save.mdx index 03e7d8c033..a09a972686 100644 --- a/docs/beginner/5-save.mdx +++ b/docs/beginner/5-save.mdx @@ -3,7 +3,7 @@ id: 5-save title: The 5 Save --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import FiveSave from "@site/image-generator/yml/beginner/5-save.yml"; diff --git a/docs/beginner/card-layout.mdx b/docs/beginner/card-layout.mdx index 130cbba697..62f6b8c3ae 100644 --- a/docs/beginner/card-layout.mdx +++ b/docs/beginner/card-layout.mdx @@ -3,7 +3,7 @@ id: card-layout title: Card Layout --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import CardLayout1 from "@site/image-generator/yml/beginner/card-layout-1.yml"; import CardLayout2 from "@site/image-generator/yml/beginner/card-layout-2.yml"; diff --git a/docs/beginner/card-notes.mdx b/docs/beginner/card-notes.mdx index d19fbb93c5..87f36ac698 100644 --- a/docs/beginner/card-notes.mdx +++ b/docs/beginner/card-notes.mdx @@ -3,7 +3,7 @@ id: card-notes title: Card Notes --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; diff --git a/docs/beginner/chop-question-1.mdx b/docs/beginner/chop-question-1.mdx index fc716f9fb9..f3be3d6dc0 100644 --- a/docs/beginner/chop-question-1.mdx +++ b/docs/beginner/chop-question-1.mdx @@ -3,7 +3,7 @@ id: chop-question-1 title: The Chop (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import ChopQuestion1 from "@site/image-generator/yml/beginner/chop-question-1.yml"; diff --git a/docs/beginner/chop-question-2.mdx b/docs/beginner/chop-question-2.mdx index bee5855be0..7b9d5d2958 100644 --- a/docs/beginner/chop-question-2.mdx +++ b/docs/beginner/chop-question-2.mdx @@ -3,7 +3,7 @@ id: chop-question-2 title: The Chop (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import ChopQuestion2 from "@site/image-generator/yml/beginner/chop-question-2.yml"; diff --git a/docs/beginner/chop-question-3.mdx b/docs/beginner/chop-question-3.mdx index 43fe205513..f6fb6343c6 100644 --- a/docs/beginner/chop-question-3.mdx +++ b/docs/beginner/chop-question-3.mdx @@ -3,7 +3,7 @@ id: chop-question-3 title: The Chop (Question 3) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import ChopQuestion3 from "@site/image-generator/yml/beginner/chop-question-3.yml"; diff --git a/docs/beginner/chop-question-4.mdx b/docs/beginner/chop-question-4.mdx index 97908ed37d..b9a573d3df 100644 --- a/docs/beginner/chop-question-4.mdx +++ b/docs/beginner/chop-question-4.mdx @@ -3,7 +3,7 @@ id: chop-question-4 title: The Chop (Question 4) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import ChopQuestion4 from "@site/image-generator/yml/beginner/chop-question-4.yml"; diff --git a/docs/beginner/chop.mdx b/docs/beginner/chop.mdx index 2cfac8416d..977f4fdaf1 100644 --- a/docs/beginner/chop.mdx +++ b/docs/beginner/chop.mdx @@ -3,7 +3,7 @@ id: chop title: The Chop --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Chop1 from "@site/image-generator/yml/beginner/chop-1.yml"; import Chop2 from "@site/image-generator/yml/beginner/chop-2.yml"; diff --git a/docs/beginner/clue-interpretation-question-1.mdx b/docs/beginner/clue-interpretation-question-1.mdx index e73e703c44..b34c44ea65 100644 --- a/docs/beginner/clue-interpretation-question-1.mdx +++ b/docs/beginner/clue-interpretation-question-1.mdx @@ -3,7 +3,7 @@ id: clue-interpretation-question-1 title: Clue Interpretation (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import ClueInterpretationQuestion1 from "@site/image-generator/yml/beginner/clue-interpretation-question-1.yml"; diff --git a/docs/beginner/clue-interpretation-question-2.mdx b/docs/beginner/clue-interpretation-question-2.mdx index 8b2262df0f..293f3b1240 100644 --- a/docs/beginner/clue-interpretation-question-2.mdx +++ b/docs/beginner/clue-interpretation-question-2.mdx @@ -3,7 +3,7 @@ id: clue-interpretation-question-2 title: Clue Interpretation (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import ClueInterpretationQuestion2 from "@site/image-generator/yml/beginner/clue-interpretation-question-2.yml"; diff --git a/docs/beginner/clue-interpretation-question-3.mdx b/docs/beginner/clue-interpretation-question-3.mdx index 00af76c7d6..e49977acb6 100644 --- a/docs/beginner/clue-interpretation-question-3.mdx +++ b/docs/beginner/clue-interpretation-question-3.mdx @@ -3,7 +3,7 @@ id: clue-interpretation-question-3 title: Clue Interpretation (Question 3) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import ClueInterpretationQuestion3 from "@site/image-generator/yml/beginner/clue-interpretation-question-3.yml"; diff --git a/docs/beginner/clue-interpretation-question-4.mdx b/docs/beginner/clue-interpretation-question-4.mdx index 3e4b138fb2..81a343a4f1 100644 --- a/docs/beginner/clue-interpretation-question-4.mdx +++ b/docs/beginner/clue-interpretation-question-4.mdx @@ -3,7 +3,7 @@ id: clue-interpretation-question-4 title: Clue Interpretation (Question 4) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import ClueInterpretationQuestion4 from "@site/image-generator/yml/beginner/clue-interpretation-question-4.yml"; diff --git a/docs/beginner/clue-interpretation.mdx b/docs/beginner/clue-interpretation.mdx index 0909a52af6..1acafb4a60 100644 --- a/docs/beginner/clue-interpretation.mdx +++ b/docs/beginner/clue-interpretation.mdx @@ -3,7 +3,7 @@ id: clue-interpretation title: Clue Interpretation --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; diff --git a/docs/beginner/critical-save-question-1.mdx b/docs/beginner/critical-save-question-1.mdx index b0a0d15f48..0a9a703bf1 100644 --- a/docs/beginner/critical-save-question-1.mdx +++ b/docs/beginner/critical-save-question-1.mdx @@ -3,7 +3,7 @@ id: critical-save-question-1 title: The Critical Save (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import CriticalSaveQuestion1 from "@site/image-generator/yml/beginner/critical-save-question-1.yml"; diff --git a/docs/beginner/critical-save-question-2.mdx b/docs/beginner/critical-save-question-2.mdx index 9000e8d568..a9c7dce505 100644 --- a/docs/beginner/critical-save-question-2.mdx +++ b/docs/beginner/critical-save-question-2.mdx @@ -3,7 +3,7 @@ id: critical-save-question-2 title: The Critical Save (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import CriticalSaveQuestion2 from "@site/image-generator/yml/beginner/critical-save-question-2.yml"; diff --git a/docs/beginner/critical-save-question-3.mdx b/docs/beginner/critical-save-question-3.mdx index e5811dbdc1..59893c032a 100644 --- a/docs/beginner/critical-save-question-3.mdx +++ b/docs/beginner/critical-save-question-3.mdx @@ -3,7 +3,7 @@ id: critical-save-question-3 title: The Critical Save (Question 3) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import CriticalSaveQuestion3 from "@site/image-generator/yml/beginner/critical-save-question-3.yml"; diff --git a/docs/beginner/critical-save-question-4.mdx b/docs/beginner/critical-save-question-4.mdx index 2f61b8bc38..293ec74835 100644 --- a/docs/beginner/critical-save-question-4.mdx +++ b/docs/beginner/critical-save-question-4.mdx @@ -3,7 +3,7 @@ id: critical-save-question-4 title: The Critical Save (Question 4) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import CriticalSaveQuestion4 from "@site/image-generator/yml/beginner/critical-save-question-4.yml"; diff --git a/docs/beginner/critical-save.mdx b/docs/beginner/critical-save.mdx index c31c6243cf..35aff977d0 100644 --- a/docs/beginner/critical-save.mdx +++ b/docs/beginner/critical-save.mdx @@ -3,7 +3,7 @@ id: critical-save title: The Critical Save --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import CriticalSave from "@site/image-generator/yml/beginner/critical-save.yml"; diff --git a/docs/beginner/delayed-play-clues-question-1.mdx b/docs/beginner/delayed-play-clues-question-1.mdx index ac9ab54dab..4a79d78913 100644 --- a/docs/beginner/delayed-play-clues-question-1.mdx +++ b/docs/beginner/delayed-play-clues-question-1.mdx @@ -3,7 +3,7 @@ id: delayed-play-clues-question-1 title: Delayed Play Clues (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import DelayedPlayCluesQuestion1 from "@site/image-generator/yml/beginner/delayed-play-clues-question-1.yml"; diff --git a/docs/beginner/delayed-play-clues-question-2.mdx b/docs/beginner/delayed-play-clues-question-2.mdx index 50cef83c04..f3a2a6730e 100644 --- a/docs/beginner/delayed-play-clues-question-2.mdx +++ b/docs/beginner/delayed-play-clues-question-2.mdx @@ -3,7 +3,7 @@ id: delayed-play-clues-question-2 title: Delayed Play Clues (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import DelayedPlayCluesQuestion2 from "@site/image-generator/yml/beginner/delayed-play-clues-question-2.yml"; diff --git a/docs/beginner/delayed-play-clues-question-3.mdx b/docs/beginner/delayed-play-clues-question-3.mdx index cc46767eab..1c695b8bff 100644 --- a/docs/beginner/delayed-play-clues-question-3.mdx +++ b/docs/beginner/delayed-play-clues-question-3.mdx @@ -3,7 +3,7 @@ id: delayed-play-clues-question-3 title: Delayed Play Clues (Question 3) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import DelayedPlayCluesQuestion3 from "@site/image-generator/yml/beginner/delayed-play-clues-question-3.yml"; diff --git a/docs/beginner/delayed-play-clues.mdx b/docs/beginner/delayed-play-clues.mdx index 9e867016f6..cd4f9fc35d 100644 --- a/docs/beginner/delayed-play-clues.mdx +++ b/docs/beginner/delayed-play-clues.mdx @@ -3,7 +3,7 @@ id: delayed-play-clues title: Delayed Play Clues --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import DelayedPlayClues from "@site/image-generator/yml/beginner/delayed-play-clues.yml"; diff --git a/docs/beginner/early-game-question-1.mdx b/docs/beginner/early-game-question-1.mdx index 2defc04fdf..a6d6d9b314 100644 --- a/docs/beginner/early-game-question-1.mdx +++ b/docs/beginner/early-game-question-1.mdx @@ -3,7 +3,7 @@ id: early-game-question-1 title: The Early Game (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import EarlyGameQuestion1 from "@site/image-generator/yml/beginner/early-game-question-1.yml"; diff --git a/docs/beginner/early-game-question-2.mdx b/docs/beginner/early-game-question-2.mdx index bac290edde..22d968c7d9 100644 --- a/docs/beginner/early-game-question-2.mdx +++ b/docs/beginner/early-game-question-2.mdx @@ -3,7 +3,7 @@ id: early-game-question-2 title: The Early Game (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import EarlyGameQuestion2 from "@site/image-generator/yml/beginner/early-game-question-2.yml"; diff --git a/docs/beginner/early-game-question-3.mdx b/docs/beginner/early-game-question-3.mdx index 5d8554ee8b..b625ed6e69 100644 --- a/docs/beginner/early-game-question-3.mdx +++ b/docs/beginner/early-game-question-3.mdx @@ -3,7 +3,7 @@ id: early-game-question-3 title: The Early Game (Question 3) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import EarlyGameQuestion3 from "@site/image-generator/yml/beginner/early-game-question-3.yml"; diff --git a/docs/beginner/early-game-question-4.mdx b/docs/beginner/early-game-question-4.mdx index 68f3cb4cc2..a18794b49c 100644 --- a/docs/beginner/early-game-question-4.mdx +++ b/docs/beginner/early-game-question-4.mdx @@ -3,7 +3,7 @@ id: early-game-question-4 title: The Early Game (Question 4) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import EarlyGameQuestion4 from "@site/image-generator/yml/beginner/early-game-question-4.yml"; diff --git a/docs/beginner/early-game.mdx b/docs/beginner/early-game.mdx index 7ba3746af4..47d2e115d9 100644 --- a/docs/beginner/early-game.mdx +++ b/docs/beginner/early-game.mdx @@ -3,7 +3,7 @@ id: early-game title: The Early Game --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; diff --git a/docs/beginner/finesse-question-1.mdx b/docs/beginner/finesse-question-1.mdx index 8f7e470212..5a82fd2936 100644 --- a/docs/beginner/finesse-question-1.mdx +++ b/docs/beginner/finesse-question-1.mdx @@ -3,7 +3,7 @@ id: finesse-question-1 title: The Finesse (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import FinesseQuestion1 from "@site/image-generator/yml/beginner/finesse-question-1.yml"; diff --git a/docs/beginner/finesse-question-2.mdx b/docs/beginner/finesse-question-2.mdx index 8e8744e001..00477b1589 100644 --- a/docs/beginner/finesse-question-2.mdx +++ b/docs/beginner/finesse-question-2.mdx @@ -3,7 +3,7 @@ id: finesse-question-2 title: The Finesse (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import FinesseQuestion2 from "@site/image-generator/yml/beginner/finesse-question-2.yml"; diff --git a/docs/beginner/finesse.mdx b/docs/beginner/finesse.mdx index 0a1cf96e1d..8af4c0faff 100644 --- a/docs/beginner/finesse.mdx +++ b/docs/beginner/finesse.mdx @@ -3,7 +3,7 @@ id: finesse title: The Finesse --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Finesse1 from "@site/image-generator/yml/beginner/finesse-1.yml"; import Finesse2 from "@site/image-generator/yml/beginner/finesse-2.yml"; diff --git a/docs/beginner/good-touch-principle-question-1.mdx b/docs/beginner/good-touch-principle-question-1.mdx index a9b1db8975..c3bc59130d 100644 --- a/docs/beginner/good-touch-principle-question-1.mdx +++ b/docs/beginner/good-touch-principle-question-1.mdx @@ -3,7 +3,7 @@ id: good-touch-principle-question-1 title: Good Touch Principle (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import GoodTouchPrincipleQuestion1 from "@site/image-generator/yml/beginner/good-touch-principle-question-1.yml"; diff --git a/docs/beginner/good-touch-principle-question-2.mdx b/docs/beginner/good-touch-principle-question-2.mdx index 7623a5e823..cb3ccda924 100644 --- a/docs/beginner/good-touch-principle-question-2.mdx +++ b/docs/beginner/good-touch-principle-question-2.mdx @@ -3,7 +3,7 @@ id: good-touch-principle-question-2 title: Good Touch Principle (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import GoodTouchPrincipleQuestion2 from "@site/image-generator/yml/beginner/good-touch-principle-question-2.yml"; diff --git a/docs/beginner/good-touch-principle-question-3.mdx b/docs/beginner/good-touch-principle-question-3.mdx index a6f66ad92a..8a58ca95c2 100644 --- a/docs/beginner/good-touch-principle-question-3.mdx +++ b/docs/beginner/good-touch-principle-question-3.mdx @@ -3,7 +3,7 @@ id: good-touch-principle-question-3 title: Good Touch Principle (Question 3) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import GoodTouchPrincipleQuestion3 from "@site/image-generator/yml/beginner/good-touch-principle-question-3.yml"; diff --git a/docs/beginner/good-touch-principle-question-4.mdx b/docs/beginner/good-touch-principle-question-4.mdx index 869c3eccd5..f9c03e1bfc 100644 --- a/docs/beginner/good-touch-principle-question-4.mdx +++ b/docs/beginner/good-touch-principle-question-4.mdx @@ -3,7 +3,7 @@ id: good-touch-principle-question-4 title: Good Touch Principle (Question 4) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import GoodTouchPrincipleQuestion4 from "@site/image-generator/yml/beginner/good-touch-principle-question-4.yml"; diff --git a/docs/beginner/good-touch-principle.mdx b/docs/beginner/good-touch-principle.mdx index ec1b514b18..56a485aae8 100644 --- a/docs/beginner/good-touch-principle.mdx +++ b/docs/beginner/good-touch-principle.mdx @@ -3,7 +3,7 @@ id: good-touch-principle title: Good Touch Principle (GTP) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import GoodTouchPrinciple1 from "@site/image-generator/yml/beginner/good-touch-principle-1.yml"; import GoodTouchPrinciple2 from "@site/image-generator/yml/beginner/good-touch-principle-2.yml"; import GoodTouchPrinciple3 from "@site/image-generator/yml/beginner/good-touch-principle-3.yml"; diff --git a/docs/beginner/minimum-clue-value-principle-question-1.mdx b/docs/beginner/minimum-clue-value-principle-question-1.mdx index db41d513f3..8b1d434f0c 100644 --- a/docs/beginner/minimum-clue-value-principle-question-1.mdx +++ b/docs/beginner/minimum-clue-value-principle-question-1.mdx @@ -3,7 +3,7 @@ id: minimum-clue-value-principle-question-1 title: Minimum Clue Value Principle (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import MinimumClueValuePrincipleQuestion1 from "@site/image-generator/yml/beginner/minimum-clue-value-principle-question-1.yml"; diff --git a/docs/beginner/minimum-clue-value-principle.mdx b/docs/beginner/minimum-clue-value-principle.mdx index 3ae2182538..0d7aede3a1 100644 --- a/docs/beginner/minimum-clue-value-principle.mdx +++ b/docs/beginner/minimum-clue-value-principle.mdx @@ -3,7 +3,7 @@ id: minimum-clue-value-principle title: Minimum Clue Value Principle (MCVP) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import TempoClue from "@site/image-generator/yml/beginner/tempo-clue.yml"; diff --git a/docs/beginner/next-steps.mdx b/docs/beginner/next-steps.mdx index 3b063bd85a..dcefd11808 100644 --- a/docs/beginner/next-steps.mdx +++ b/docs/beginner/next-steps.mdx @@ -3,7 +3,7 @@ id: next-steps title: Next Steps --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; diff --git a/docs/beginner/other-general-strategy-question-1.mdx b/docs/beginner/other-general-strategy-question-1.mdx index a8174efb09..0f24f4cfce 100644 --- a/docs/beginner/other-general-strategy-question-1.mdx +++ b/docs/beginner/other-general-strategy-question-1.mdx @@ -3,7 +3,7 @@ id: other-general-strategy-question-1 title: Other General Strategy (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import OtherGeneralStrategyQuestion1 from "@site/image-generator/yml/beginner/other-general-strategy-question-1.yml"; diff --git a/docs/beginner/other-general-strategy-question-2.mdx b/docs/beginner/other-general-strategy-question-2.mdx index 4d9e456f4f..607a1384b8 100644 --- a/docs/beginner/other-general-strategy-question-2.mdx +++ b/docs/beginner/other-general-strategy-question-2.mdx @@ -3,7 +3,7 @@ id: other-general-strategy-question-2 title: Other General Strategy (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import OtherGeneralStrategyQuestion2 from "@site/image-generator/yml/beginner/other-general-strategy-question-2.yml"; diff --git a/docs/beginner/other-general-strategy-question-3.mdx b/docs/beginner/other-general-strategy-question-3.mdx index 8901f918f2..ae497817f8 100644 --- a/docs/beginner/other-general-strategy-question-3.mdx +++ b/docs/beginner/other-general-strategy-question-3.mdx @@ -3,7 +3,7 @@ id: other-general-strategy-question-3 title: Other General Strategy (Question 3) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import OtherGeneralStrategyQuestion3 from "@site/image-generator/yml/beginner/other-general-strategy-question-3.yml"; diff --git a/docs/beginner/other-general-strategy-question-4.mdx b/docs/beginner/other-general-strategy-question-4.mdx index 9c666165c5..0dd20e51ec 100644 --- a/docs/beginner/other-general-strategy-question-4.mdx +++ b/docs/beginner/other-general-strategy-question-4.mdx @@ -3,7 +3,7 @@ id: other-general-strategy-question-4 title: Other General Strategy (Question 4) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import OtherGeneralStrategyQuestion4 from "@site/image-generator/yml/beginner/other-general-strategy-question-4.yml"; diff --git a/docs/beginner/other-general-strategy-question-5.mdx b/docs/beginner/other-general-strategy-question-5.mdx index 75522a0bd2..427706d33b 100644 --- a/docs/beginner/other-general-strategy-question-5.mdx +++ b/docs/beginner/other-general-strategy-question-5.mdx @@ -3,7 +3,7 @@ id: other-general-strategy-question-5 title: Other General Strategy (Question 5) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import OtherGeneralStrategyQuestion5 from "@site/image-generator/yml/beginner/other-general-strategy-question-5.yml"; diff --git a/docs/beginner/other-general-strategy.mdx b/docs/beginner/other-general-strategy.mdx index 993e90f4d7..4a6c06063f 100644 --- a/docs/beginner/other-general-strategy.mdx +++ b/docs/beginner/other-general-strategy.mdx @@ -3,7 +3,7 @@ id: other-general-strategy title: Other General Strategy --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; diff --git a/docs/beginner/play-clues-question-1.mdx b/docs/beginner/play-clues-question-1.mdx index f13b2ce535..1354ecddac 100644 --- a/docs/beginner/play-clues-question-1.mdx +++ b/docs/beginner/play-clues-question-1.mdx @@ -3,7 +3,7 @@ id: play-clues-question-1 title: Play Clues (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import PlayCluesQuestion1 from "@site/image-generator/yml/beginner/play-clues-question-1.yml"; diff --git a/docs/beginner/play-clues-question-2.mdx b/docs/beginner/play-clues-question-2.mdx index 47b3c57182..130e8fb7ae 100644 --- a/docs/beginner/play-clues-question-2.mdx +++ b/docs/beginner/play-clues-question-2.mdx @@ -3,7 +3,7 @@ id: play-clues-question-2 title: Play Clues (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import PlayCluesQuestion2 from "@site/image-generator/yml/beginner/play-clues-question-2.yml"; diff --git a/docs/beginner/play-clues.mdx b/docs/beginner/play-clues.mdx index bf175c1297..7aed2d1a22 100644 --- a/docs/beginner/play-clues.mdx +++ b/docs/beginner/play-clues.mdx @@ -3,7 +3,7 @@ id: play-clues title: Play Clues --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import PlayClue1 from "@site/image-generator/yml/beginner/play-clue-1.yml"; import PlayClue2 from "@site/image-generator/yml/beginner/play-clue-2.yml"; diff --git a/docs/beginner/prompt-question-1.mdx b/docs/beginner/prompt-question-1.mdx index a17d9046b7..67519158c0 100644 --- a/docs/beginner/prompt-question-1.mdx +++ b/docs/beginner/prompt-question-1.mdx @@ -3,7 +3,7 @@ id: prompt-question-1 title: The Prompt (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import PromptQuestion1 from "@site/image-generator/yml/beginner/prompt-question-1.yml"; diff --git a/docs/beginner/prompt-question-2.mdx b/docs/beginner/prompt-question-2.mdx index 2000019596..57c61f976e 100644 --- a/docs/beginner/prompt-question-2.mdx +++ b/docs/beginner/prompt-question-2.mdx @@ -3,7 +3,7 @@ id: prompt-question-2 title: The Prompt (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import PromptQuestion2 from "@site/image-generator/yml/beginner/prompt-question-2.yml"; diff --git a/docs/beginner/prompt-question-3.mdx b/docs/beginner/prompt-question-3.mdx index c11e1cf478..1c3ba5a177 100644 --- a/docs/beginner/prompt-question-3.mdx +++ b/docs/beginner/prompt-question-3.mdx @@ -3,7 +3,7 @@ id: prompt-question-3 title: The Prompt (Question 3) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import PromptQuestion3 from "@site/image-generator/yml/beginner/prompt-question-3.yml"; diff --git a/docs/beginner/prompt.mdx b/docs/beginner/prompt.mdx index a4fc786519..9839c2a529 100644 --- a/docs/beginner/prompt.mdx +++ b/docs/beginner/prompt.mdx @@ -3,7 +3,7 @@ id: prompt title: The Prompt --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Prompt1 from "@site/image-generator/yml/beginner/prompt-1.yml"; import Prompt2 from "@site/image-generator/yml/beginner/prompt-2.yml"; import Prompt3 from "@site/image-generator/yml/beginner/prompt-3.yml"; diff --git a/docs/beginner/save-clues.mdx b/docs/beginner/save-clues.mdx index 84f13ef91d..2a4eaa122e 100644 --- a/docs/beginner/save-clues.mdx +++ b/docs/beginner/save-clues.mdx @@ -3,7 +3,7 @@ id: save-clues title: Save Clues --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; diff --git a/docs/beginner/save-principle-question-1.mdx b/docs/beginner/save-principle-question-1.mdx index 20ab7ef1f5..8f9aad9e06 100644 --- a/docs/beginner/save-principle-question-1.mdx +++ b/docs/beginner/save-principle-question-1.mdx @@ -3,7 +3,7 @@ id: save-principle-question-1 title: Save Principle (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import SavePrincipleQuestion1 from "@site/image-generator/yml/beginner/save-principle-question-1.yml"; diff --git a/docs/beginner/save-principle-question-2.mdx b/docs/beginner/save-principle-question-2.mdx index 3ae9ad2434..3eba502c62 100644 --- a/docs/beginner/save-principle-question-2.mdx +++ b/docs/beginner/save-principle-question-2.mdx @@ -3,7 +3,7 @@ id: save-principle-question-2 title: Save Principle (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import SavePrincipleQuestion2 from "@site/image-generator/yml/beginner/save-principle-question-2.yml"; diff --git a/docs/beginner/save-principle.mdx b/docs/beginner/save-principle.mdx index 0dcd4fc8f8..d8663a71a7 100644 --- a/docs/beginner/save-principle.mdx +++ b/docs/beginner/save-principle.mdx @@ -3,7 +3,7 @@ id: save-principle title: Save Principle --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import SavePrinciple from "@site/image-generator/yml/beginner/save-principle.yml"; diff --git a/docs/beginner/single-card-focus-question-1.mdx b/docs/beginner/single-card-focus-question-1.mdx index ff12c67557..6629640f43 100644 --- a/docs/beginner/single-card-focus-question-1.mdx +++ b/docs/beginner/single-card-focus-question-1.mdx @@ -3,7 +3,7 @@ id: single-card-focus-question-1 title: Single Card Focus (Question 1) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import SingleCardFocusQuestion1 from "@site/image-generator/yml/beginner/single-card-focus-question-1.yml"; diff --git a/docs/beginner/single-card-focus-question-2.mdx b/docs/beginner/single-card-focus-question-2.mdx index f5899cfe0c..ef5c1fdfd5 100644 --- a/docs/beginner/single-card-focus-question-2.mdx +++ b/docs/beginner/single-card-focus-question-2.mdx @@ -3,7 +3,7 @@ id: single-card-focus-question-2 title: Single Card Focus (Question 2) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import SingleCardFocusQuestion2 from "@site/image-generator/yml/beginner/single-card-focus-question-2.yml"; diff --git a/docs/beginner/single-card-focus-question-3.mdx b/docs/beginner/single-card-focus-question-3.mdx index 3d3491b517..edb5913ffb 100644 --- a/docs/beginner/single-card-focus-question-3.mdx +++ b/docs/beginner/single-card-focus-question-3.mdx @@ -3,7 +3,7 @@ id: single-card-focus-question-3 title: Single Card Focus (Question 3) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import SingleCardFocusQuestion3 from "@site/image-generator/yml/beginner/single-card-focus-question-3.yml"; diff --git a/docs/beginner/single-card-focus-question-4.mdx b/docs/beginner/single-card-focus-question-4.mdx index d701b85908..a94a069faf 100644 --- a/docs/beginner/single-card-focus-question-4.mdx +++ b/docs/beginner/single-card-focus-question-4.mdx @@ -3,7 +3,7 @@ id: single-card-focus-question-4 title: Single Card Focus (Question 4) --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import SingleCardFocusQuestion4 from "@site/image-generator/yml/beginner/single-card-focus-question-4.yml"; diff --git a/docs/beginner/single-card-focus.mdx b/docs/beginner/single-card-focus.mdx index e55075831b..b46c1d519c 100644 --- a/docs/beginner/single-card-focus.mdx +++ b/docs/beginner/single-card-focus.mdx @@ -3,7 +3,7 @@ id: single-card-focus title: Single Card Focus --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; import LeftMostFocus from "@site/image-generator/yml/beginner/left-most-focus.yml"; import ChopFocus from "@site/image-generator/yml/beginner/chop-focus.yml"; diff --git a/docs/beginner/special-moves.mdx b/docs/beginner/special-moves.mdx index f448e494d8..206277c6ef 100644 --- a/docs/beginner/special-moves.mdx +++ b/docs/beginner/special-moves.mdx @@ -3,7 +3,7 @@ id: special-moves title: Special Moves --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; diff --git a/docs/beginner/three-main-principles.mdx b/docs/beginner/three-main-principles.mdx index 9833af81fd..825c08eb19 100644 --- a/docs/beginner/three-main-principles.mdx +++ b/docs/beginner/three-main-principles.mdx @@ -3,7 +3,7 @@ id: three-main-principles title: The Three Main Principles --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; diff --git a/docs/beginner/two-types-of-clues.mdx b/docs/beginner/two-types-of-clues.mdx index 47ce5fa20f..d7644d5a76 100644 --- a/docs/beginner/two-types-of-clues.mdx +++ b/docs/beginner/two-types-of-clues.mdx @@ -3,7 +3,7 @@ id: two-types-of-clues title: The Two Types of Clues --- -import BeginnersGuideProgress from "@site/src/beginnersGuide.js"; +import BeginnersGuideProgress from "@site/src/beginnersGuide.tsx"; diff --git a/docs/level-1.mdx b/docs/level-1.mdx index de0cec82fd..5350bb3e59 100644 --- a/docs/level-1.mdx +++ b/docs/level-1.mdx @@ -149,7 +149,7 @@ This process is represented in the following flowchart: ## Website Features - If you have played a few games on [Hanab Live](https://hanab.live), then you may have noticed that the website has several features. -- The website has an [extensive documentation](https://github.com/Zamiell/hanabi-live/blob/master/docs/features.md#notes). You can get to that page by pressing the "Help" icon in the upper-right part of the website lobby. +- The website has an [extensive documentation](https://github.com/Hanabi-Live/hanabi-live/blob/master/docs/features.md#notes). You can get to that page by pressing the "Help" icon in the upper-right part of the website lobby. - Below are a few of the most important features that a beginner should know about.
@@ -159,7 +159,7 @@ This process is represented in the following flowchart: - If you are following the beginner's guide, then you should be [writing card notes](beginner/card-notes.mdx) in every game. -- Certain special notes [change the appearance of the card for you](https://github.com/Zamiell/hanabi-live/blob/master/docs/features.md#notes). +- Certain special notes [change the appearance of the card for you](https://github.com/Hanabi-Live/hanabi-live/blob/master/docs/features.md#notes). - If you write the name of a card like "red 2" or "r2", the image of the card will snap to the written card. - A note of "f" is used to indicate a card is _Finessed_ (meaning that it will blind-play in the future). The website draws a special border around _Finessed_ cards. - You can use `shift + right-click` as a shortcut to add this note. @@ -173,7 +173,7 @@ This process is represented in the following flowchart: ### Rewind -- During a game, clicking the arrow button in the bottom-left-hand corner opens the [in-game replay feature](https://github.com/Zamiell/hanabi-live/blob/master/docs/features.md#in-game-replay). +- During a game, clicking the arrow button in the bottom-left-hand corner opens the [in-game replay feature](https://github.com/Hanabi-Live/hanabi-live/blob/master/docs/features.md#in-game-replay). - You can also use the arrow keys as a shortcut to move backwards and forwards through time. - This is useful if you need to recall what happened several turns ago. diff --git a/docusaurus.config.js b/docusaurus.config.js deleted file mode 100644 index ef91c7c42b..0000000000 --- a/docusaurus.config.js +++ /dev/null @@ -1,108 +0,0 @@ -const path = require("node:path"); - -/** @type {import('@docusaurus/preset-classic').ThemeConfig} */ -const themeConfig = { - // Vanilla components - navbar: { - title: "H-Group Conventions", - logo: { - alt: "H-Group Logo", - src: "img/logo.png", - }, - items: [ - { - to: "docs/beginner", - activeBasePath: "docs", - label: "Beginner", - position: "left", - }, - { - to: "docs/learning-path", - activeBasePath: "docs", - label: "Learning Path", - position: "left", - }, - { - to: "docs/reference", - activeBasePath: "docs", - label: "Reference", - position: "left", - }, - { - to: "docs/variant-specific", - activeBasePath: "docs", - label: "Variant-Specific", - position: "left", - }, - { - href: "https://github.com/hanabi/hanabi.github.io/", - label: "Repo", - position: "right", - }, - { - href: "https://github.com/hanabi/hanabi.github.io/issues", - label: "Proposals", - position: "right", - }, - ], - }, - - docs: { - sidebar: { - hideable: true, - }, - }, - - // Extra settings - algolia: { - appId: "24AGYEOQ7J", // cspell:disable-line - apiKey: "7e647fd7de142915da9f459b345dfca4", - indexName: "hanabi-conventions", - contextualSearch: false, // Enabled by default; only useful for versioned sites. - }, - - colorMode: { - defaultMode: "dark", - }, -}; - -/** @type {import('@docusaurus/preset-classic').Options} */ -const presetsClassicOptions = { - docs: { - sidebarPath: require.resolve("./sidebars.js"), - editUrl: "https://github.com/hanabi/hanabi.github.io/edit/main/", - }, - theme: { - customCss: require.resolve("./src/css/custom.css"), - }, -}; - -/** @type {import('@docusaurus/types').Config} */ -const config = { - title: "H-Group Conventions", - favicon: "img/favicon.ico", - - url: "https://hanabi.github.io", - baseUrl: "/", - - organizationName: "hanabi", - projectName: "hanabi.github.io", - - onBrokenLinks: "throw", - onBrokenMarkdownLinks: "warn", - - presets: [["classic", presetsClassicOptions]], - themeConfig, - - // Added fields from vanilla. - plugins: [path.resolve(__dirname, "image-generator")], - scripts: [ - { - src: "https://kit.fontawesome.com/1932a73877.js", - crossorigin: "anonymous", - }, - "/js/hotkey.js", - ], -}; - -module.exports = config; diff --git a/docusaurus.config.ts b/docusaurus.config.ts new file mode 100644 index 0000000000..123328cb45 --- /dev/null +++ b/docusaurus.config.ts @@ -0,0 +1,122 @@ +import type * as Preset from "@docusaurus/preset-classic"; +import type { Config } from "@docusaurus/types"; +import path from "node:path"; +import url from "node:url"; + +const __dirname = path.dirname(url.fileURLToPath(import.meta.url)); + +const config: Config = { + title: "H-Group Conventions", + tagline: undefined, + favicon: "img/favicon.ico", + + url: "https://hanabi.github.io", + baseUrl: "/", + + organizationName: "hanabi", + projectName: "hanabi.github.io", + + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + + i18n: { + defaultLocale: "en", + locales: ["en"], + }, + + presets: [ + [ + "classic", + { + docs: { + routeBasePath: "/", // Serve the docs at the site's root. + sidebarPath: "./sidebars.ts", + editUrl: "https://github.com/hanabi/hanabi.github.io/edit/main/", + }, + theme: { + customCss: "./src/css/custom.css", + }, + } satisfies Preset.Options, + ], + ], + + themeConfig: { + // Vanilla components + navbar: { + title: "H-Group Conventions", + logo: { + alt: "H-Group Logo", + src: "img/logo.png", + }, + items: [ + { + to: "beginner", + activeBasePath: "docs", + label: "Beginner", + position: "left", + }, + { + to: "learning-path", + activeBasePath: "docs", + label: "Learning Path", + position: "left", + }, + { + to: "reference", + activeBasePath: "docs", + label: "Reference", + position: "left", + }, + { + to: "variant-specific", + activeBasePath: "docs", + label: "Variant-Specific", + position: "left", + }, + { + href: "https://github.com/hanabi/hanabi.github.io/", + label: "Repo", + position: "right", + }, + { + href: "https://github.com/hanabi/hanabi.github.io/issues", + label: "Proposals", + position: "right", + }, + ], + }, + + docs: { + sidebar: { + hideable: true, + }, + }, + + // Extra settings + algolia: { + appId: "24AGYEOQ7J", // cspell:disable-line + apiKey: "7e647fd7de142915da9f459b345dfca4", + indexName: "hanabi-conventions", + contextualSearch: false, // Enabled by default; only useful for versioned sites. + }, + + colorMode: { + defaultMode: "dark", + }, + } satisfies Preset.ThemeConfig, + + // ------------------------- + // Added fields from vanilla + // ------------------------- + + plugins: [path.resolve(__dirname, "image-generator")], + scripts: [ + { + src: "https://kit.fontawesome.com/1932a73877.js", + crossorigin: "anonymous", + }, + "/js/hotkey.js", + ], +}; + +export default config; diff --git a/misc/FAQ.md b/misc/FAQ.md index 44b35153d1..2ad587613f 100644 --- a/misc/FAQ.md +++ b/misc/FAQ.md @@ -1,31 +1,31 @@ -## Frequently Asked Questions (FAQ) +# Frequently Asked Questions (FAQ) -_Written by Valetta6789_ +This page was originally written by Valetta6789.
-### Are there 2-player conventions for the _H-Group_? +## Are there 2-player conventions for the _H-Group_? [Yes](https://github.com/hanabi/hanabi.github.io/blob/main/misc/2-player.md).
-### What is the reason to play 1's in the starting hand from right-to-left (instead of from left-to-right)? +## What is the reason to play 1's in the starting hand from right-to-left (instead of from left-to-right)? See the [convention reasons document](https://github.com/hanabi/hanabi.github.io/blob/main/misc/convention-reasons.md#play-order-of-multiple-1s).
-### I found a bug on the website. What should I do? +## I found a bug on the website. What should I do? -- First, [do a search](https://github.com/Zamiell/hanabi-live/issues) to see if someone has already posted an issue about the bug. -- If there is not an existing issue, then [make one](https://github.com/Zamiell/hanabi-live/issues/new). (You will need to create a free GitHub account.) +- First, [do a search](https://github.com/Hanabi-Live/hanabi-live/issues) to see if someone has already posted an issue about the bug. +- If there is not an existing issue, then [make one](https://github.com/Hanabi-Live/hanabi-live/issues/new). (You will need to create a free GitHub account.)
-### Why isn't [situation X] defined in the convention docs? +## Why isn't [situation X] defined in the convention docs? @@ -35,7 +35,7 @@ Not everything has to have a meaning. We intentionally want to have situations b -### [Situation X] is undefined in the convention docs. I want to propose a new convention to define what it will mean. +## [Situation X] is undefined in the convention docs. Can I propose a new convention to define it? @@ -43,139 +43,139 @@ Not everything has to have a meaning. We intentionally want to have situations b
-### In what order should 1's be played? +## In what order should 1's be played? Chop, fresh 1's left to right, opening 1's right to left.
-### Am I allowed to perform a _2 Save_ or a _5 Save_ on someone who has a play? +## Am I allowed to perform a _2 Save_ or a _5 Save_ on someone who has a play? Yes.
-### Can a 2 be saved with a color clue if the other copy is in the trash? +## Can a 2 be saved with a color clue if the other copy is in the trash? Yes.
-### What is the precedence of the different "5 moves"? +## What is the precedence of the different "5 moves"? _5 Save_ > _5 Stall_ > _5 Chop Move_ > _5 Pull_
-### Is a number 5 clue always a _5 Save_ on the chop card, if there are play clues available? +## Is a number 5 clue always a _5 Save_ on the chop card, if there are play clues available? Yes.
-### Does it matter who gives a _Save Clue_? +## Does it matter who gives a _Save Clue_? No. Unless it is super, super bad for one person to be giving it, then it would be a _Finesse_ or something.
-### Why do _5 Stalls_ exist? +## Why do _5 Stalls_ exist? It means that random 3's and 4's on people's chop survive longer.
-### What should I do in a _Double Discard Situation_ if there are no allowable stall clues to give? +## What should I do in a _Double Discard Situation_ if there are no allowable stall clues to give? Discard. Alternatively, you could try cluing a useful 3 and getting a strike, if you can see that a misplayed card would be trash.
-### Are all _Finesses_ by a _5-Pulled_ player _Certain Finesses_? +## Are all _Finesses_ by a _5-Pulled_ player _Certain Finesses_? Yes.
-### If a _5 Pull_ touches slot 1 and slot 3 in 3-player game, does this call for a blind-play on slot 2 or slot 4? +## If a _5 Pull_ touches slot 1 and slot 3 in 3-player game, does this call for a blind-play on slot 2 or slot 4? Slot 2.
-### Is known-trash considered to be the chop card? +## Is known-trash considered to be the chop card? No. Even if you have a known safe discard, your chop is still the right-most unclued card.
-### If my chop is _Finessed_, does it still count as chop? +## If my chop is _Finessed_, does it still count as chop? No.
-### Does discarding known-trash end the _Early Game_? +## Does discarding known-trash end the _Early Game_? No, only discarding an unknown card from chop does.
-### Does misplaying end the _Early Game_? +## Does misplaying end the _Early Game_? No, only discarding an unknown card from chop does.
-### If I have a clued card in my hand that is _Chop Moved_ in someone else's hand, should I perform a _Sarcastic Discard_? +## If I have a clued card in my hand that is _Chop Moved_ in someone else's hand, should I perform a _Sarcastic Discard_? No, they will misplay their _Finesse Position_ as a _Gentleman's Discard_. This forces someone else on the team to waste a clue as a _Fix_.
-### When should a _Fix Clue_ be done? +## When should a _Fix Clue_ be done? Anytime. Doesn't necessarily have to be early, doesn't necessarily have to be done "just in time".
-### Who should give a _Fix Clue_ when a player performs a _Finesse with a Lie Component_? +## Who should give a _Fix Clue_ when a player performs a _Finesse with a Lie Component_? - Almost always, the player who initiated the move. - Alternatively, someone else on the time can also give a _Fix Clue_ if they are "in" on the lie, meaning that they see both copies of the card, etc.
-### If I am _Finessed_, and I get a _Fix Clue_ to stop me from bombing my _Finesse Position_, and the _Fix Clue_ touches my chop and some other card, which one should I play into the _Finesse_? +## If I am _Finessed_, and I get a _Fix Clue_ to stop me from bombing my _Finesse Position_, and the _Fix Clue_ touches my chop and some other card, which one should I play into the _Finesse_? You should not play the chop. You should play the card that is closest to your _Finesse Position_. -### I receive a clue that touches several cards and focuses on chop. Later I am _Prompted_. Which card should I play? +## I receive a clue that touches several cards and focuses on chop. Later I am _Prompted_. Which card should I play? Left-most.
-### Should I always _Chop Move_ after receiving a _Tempo Clue_? +## Should I always _Chop Move_ after receiving a _Tempo Clue_? No! There are **four** conditions where _Tempo Clues_ are allowed. If [any of these four conditions](https://hanabi.github.io/docs/level-6#the-valuable-tempo-clue) are true, then you should not _Chop Move_.
-### Does _[Schrodinger's Cat Principle](https://hanabi.github.io/docs/level-5/#schr%C3%B6dingers-cat-principle)_ always take priority over _[Occam's Razor](https://hanabi.github.io/docs/level-10/#clue-interpretation--occams-razor)_? +## Does _[Schrodinger's Cat Principle](https://hanabi.github.io/docs/level-5/#schr%C3%B6dingers-cat-principle)_ always take priority over _[Occam's Razor](https://hanabi.github.io/docs/level-10/#clue-interpretation--occams-razor)_? Yes.
-### What does "one-away-from-playable" mean? +## What does "one-away-from-playable" mean? - For example, a red 4 is one-away-from-playable if the red 2 is played. - For example, a red 4 is one-away-from-playable if the red 1 is played and the red 3 is already clued in someone's hand.
-### A card has a positive number 3 clue on it. It is clued again with red, which fills in the card. A red 1 blind-plays. Is it a _Finesse_ or a _Bluff_? +## A card has a positive number 3 clue on it. It is clued again with red, which fills in the card. A red 1 blind-plays. Is it a _Finesse_ or a _Bluff_? - It does not matter if the card is "new" or if it has a clue on it already. - All that matters is if the clue connects to the blind-play. @@ -183,7 +183,7 @@ Yes.
-### A card has a positive red clue on it. It is clued again with number 3, which fills in the card. A red 1 blind-plays. Is it a _Finesse_ or a _Bluff_? +## A card has a positive red clue on it. It is clued again with number 3, which fills in the card. A red 1 blind-plays. Is it a _Finesse_ or a _Bluff_? - It does not matter if the card is "new" or if it has a clue on it already. - All that matters is if the clue connects to the blind-play. @@ -191,164 +191,164 @@ Yes.
-### Can I perform a _Certain Finesse_ from _Bluff Seat_? +## Can I perform a _Certain Finesse_ from _Bluff Seat_? No.
-### Should I play all known-playable clued cards before blind-playing _Finesse Position_ in case it is a _Layered Finesse_? +## Should I play all known-playable clued cards before blind-playing _Finesse Position_ in case it is a _Layered Finesse_? No. You must blind-play immediately.
-### If I have _Elimination Notes_, and receive a clue that identifies the exact position of this card, and other cards are touched, are the other cards promised to be playable? +## If I have _Elimination Notes_, and receive a clue that identifies the exact position of this card, and other cards are touched, are the other cards promised to be playable? No. The clue is only focused on the card with the _Elimination Notes_.
-### Can you do an _Elimination Finesse_ on the second card of a _Double Finesse_? +## Can you do an _Elimination Finesse_ on the second card of a _Double Finesse_? Yes. Any type of _Finesse_ can be an _Elimination Finesse_.
-### What takes precedence: a _Finesse_ through a touched card, or a _Hard Bluff_? +## What takes precedence: a _Finesse_ through a touched card, or a _Hard Bluff_? _Hard Bluff_.
-### What takes precedence: a _Finesse with a Lie Component_ or a _Patch Finesse_? +## What takes precedence: a _Finesse with a Lie Component_ or a _Patch Finesse_? Everything takes precedence over a _Patch Finesse_.
-### Can I delay playing into a _Finesse_ to perform a _Gentleman's Discard_? +## Can I delay playing into a _Finesse_ to perform a _Gentleman's Discard_? No. You are only allowed to delay playing into a _Finesse_ if you are performing a _Finesse_ or a _Bluff_.
-### Why does _Gentleman's Discard_ only get the matching card instead of all of the various possibilities? +## Why does _Gentleman's Discard_ only get the matching card instead of all of the various possibilities? Because the discarding player might have asymmetric information about the identity of the card. In other words, they may have information that you do not know.
-### Can I discard a _Finessed_ card as a _Gentleman's Discard_? +## Can I discard a _Finessed_ card as a _Gentleman's Discard_? No. It could also be a _Layered Finesse_ on you. The only time you are ever allowed to blind-discard _Finesse Position_ is in response to a _Certain Finesse_.
-### Can I discard a _Finessed_ card if the _Finesse_ is ambiguous and I want to pass it back? +## Can I discard a _Finessed_ card if the _Finesse_ is ambiguous and I want to pass it back? No. It could also be a _Layered Finesse_ on you. The only time you are ever allowed to blind-discard _Finesse Position_ is in response to a _Certain Finesse_.
-### Can I pass back an _Ambiguous Finesse_ that was passed back to me? +## Can I pass back an _Ambiguous Finesse_ that was passed back to me? No.
-### Can blind-playing a card from a _Gentleman's Discard_ trigger _Priority_? +## Can blind-playing a card from a _Gentleman's Discard_ trigger _Priority_? Yes. Playing a card from a _Gentleman's Discard_ does not count as blind-playing a card.
-### Which has _Priority_: red 3 or blue 5 while the team is at 8 clues? +## Which has _Priority_: red 3 or blue 5 while the team is at 8 clues? Red 3, so the extra clue from the 5 is not wasted.
-### Which has _Priority_: red 3 or green 4 if both red 4's have been discarded? +## Which has _Priority_: red 3 or green 4 if both red 4's have been discarded? Green 4. The red 3 does not count as being a "lower rank" card in this case. It is equivalent in rank to a 5.
-### Should I play my _Finesse Position_ into a _Priority Finesse_ if I see the connecting card in the middle of someone else's hand? +## Should I play my _Finesse Position_ into a _Priority Finesse_ if I see the connecting card in the middle of someone else's hand? - No. A _Load Clue_ takes precedence over a _Priority Finesse_ or a _Priority Bluff_. - The only exception is if the card is uncluable (e.g. blocked on both sides).
-### Alice has two playable 5s and plays the right-most. Is it a _Known Bluff_? +## Alice has two playable 5s and plays the right-most. Is it a _Known Bluff_? Playing 5s not in the left-to-right order is considered to be a known mistake.
-### Can I _Bluff_ a clued card? +## Can I _Bluff_ a clued card? No. Playing a clued card does not "prove" anything because the player might have found out that the card was playable through some other read.
-### Can I perform a _Reverse Double Bluff_? +## Can I perform a _Reverse Double Bluff_? Only if both blind-plays would happen immediately. (e.g. Alice clues Bob, Bob blind-plays, Cathy blind-plays.)
-### Can I perform a _Priority Bluff_ that gets a blind-play of a card that is clued in my hand or clued in someone else's hand? +## Can I perform a _Priority Bluff_ that gets a blind-play of a card that is clued in my hand or clued in someone else's hand? No. That is defined as a _Layered Priority Finesse_.
-### Can I perform a _Layered Baton Discard_? +## Can I perform a _Layered Baton Discard_? No. After a _Baton Discard_ happens, any follow-up _Finesses_ will skip over the slot promised from the _Baton Discard_.
-### If a clue is clearly a _Bad Touch_, does it promise the missing card on _Finesse Position_? +## If a clue is clearly a _Bad Touch_, does it promise the missing card on _Finesse Position_? No. It only promises that the missing cards are in your hand. Write _Trash Touch Elimination Notes_.
-### What is the reason behind discarding trash from left to right? +## What is the reason behind discarding trash from left to right? See [the convention reasons document](convention-reasons.md#discarding-trash-from-left-to-right).
-### Are _Loaded Play Clues_ turned on for brown cards, even if it is the _Early Game_ and there is nothing else to do? +## Are _Loaded Play Clues_ turned on for brown cards, even if it is the _Early Game_ and there is nothing else to do? Yes.
-### Is it allowed to perform a _Locked Hand Save_ on a brown card? +## Is it allowed to perform a _Locked Hand Save_ on a brown card? Yes.
-### Does _Good Touch Principle_ apply to pink cards? +## Does _Good Touch Principle_ apply to pink cards? Yes.
-### Which convention takes precedence: _Bubblegum Bluff_ or a _Trash Finesse_ / _Unknown Trash Discharge_ / _4 Charm_? +## Which convention takes precedence: _Bubblegum Bluff_ or a _Trash Finesse_ / _Unknown Trash Discharge_ / _4 Charm_? Variant-specific take precedence over non-variant-specific conventions.
-### If I am _Prompted_ for a card, but I got a _Save Clue_ earlier for that color/rank, what do I do? +## If I am _Prompted_ for a card, but I got a _Save Clue_ earlier for that color/rank, what do I do? - If you get a _Save Clue_ on a chop card and you can narrow down the possibilities to one exact card, then: - You should write a note on the card for that exact possibility. @@ -361,7 +361,7 @@ Variant-specific take precedence over non-variant-specific conventions.
-### In variants with a pink suit, if I have cards in my hand that only have a rank clue on them, which ones am I allowed to play? +## In variants with a pink suit, if I have cards in my hand that only have a rank clue on them, which ones am I allowed to play? - You can only play cards with a number 1 clue on them. - If a card with a number 1 clue on it happens to be some other unplayable pink card, then someone else on the team is required to give a _Pink Fix Clue_. @@ -370,7 +370,7 @@ Variant-specific take precedence over non-variant-specific conventions.
-### In variants with a pink suit, If 1's were clued in my hand, and all of the 1's are already played, should I play my next number 1 card as a pink 2? +## In variants with a pink suit, If 1's were clued in my hand, and all of the 1's are already played, should I play my next number 1 card as a pink 2? No. You should hold on to it for later. It could be any other useful pink card. diff --git a/move-levels.sh b/move-levels.sh index e46c41ab37..83eb18f74f 100755 --- a/move-levels.sh +++ b/move-levels.sh @@ -46,7 +46,7 @@ done echo "+----------------------------------------------------------+" echo "| == REMINDERS == |" -echo "| Adjust sidebars.js and MAX_LEVEL in static/js/hotkey.js |" +echo "| Adjust sidebars.ts and MAX_LEVEL in static/js/hotkey.js |" echo "| and verify he table at the end of docs/learning-path.mdx |" echo "| You should also create the file docs/level-$1.mdx |" echo "+----------------------------------------------------------+" diff --git a/scripts/.eslintrc.cjs b/scripts/.eslintrc.cjs new file mode 100644 index 0000000000..41407dff62 --- /dev/null +++ b/scripts/.eslintrc.cjs @@ -0,0 +1,23 @@ +// This is the configuration file for ESLint, the TypeScript linter: +// https://eslint.org/docs/latest/use/configure/ + +/** @type {import("eslint").Linter.Config} */ +const config = { + extends: [ + // The linter base is the shared IsaacScript config: + // https://github.com/IsaacScript/isaacscript/blob/main/packages/eslint-config-isaacscript/base.js + "eslint-config-isaacscript/base", + ], + + parserOptions: { + // ESLint needs to know about the project's TypeScript settings in order for TypeScript-specific + // things to lint correctly. + project: "./scripts/tsconfig.json", + }, + + rules: { + // Insert changed or disabled rules here, if necessary. + }, +}; + +module.exports = config; diff --git a/sidebars.js b/sidebars.ts similarity index 98% rename from sidebars.js rename to sidebars.ts index a4d9eddb03..cb1ab408fc 100644 --- a/sidebars.js +++ b/sidebars.ts @@ -1,5 +1,6 @@ -/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ -const sidebars = { +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; + +const sidebars: SidebarsConfig = { mainSidebar: [ "about", { @@ -226,4 +227,4 @@ const sidebars = { ], }; -module.exports = sidebars; +export default sidebars; diff --git a/src/beginnersGuide.js b/src/beginnersGuide.tsx similarity index 55% rename from src/beginnersGuide.js rename to src/beginnersGuide.tsx index 4af444f34e..6dfab018b9 100644 --- a/src/beginnersGuide.js +++ b/src/beginnersGuide.tsx @@ -1,39 +1,49 @@ import { useEffect } from "react"; import { CircularProgressbar } from "react-circular-progressbar"; import "react-circular-progressbar/dist/styles.css"; // eslint-disable-line import/no-unassigned-import, @typescript-eslint/no-restricted-imports -import { mainSidebar } from "../sidebars.js"; +import sidebars from "../sidebars"; +const { mainSidebar } = sidebars; +if (mainSidebar === undefined || !Array.isArray(mainSidebar)) { + throw new Error('Failed to parse the "mainSidebar" from "sidebars.ts".'); +} + +// @ts-expect-error Too lazy to type this. +// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const beginnersGuidePartsRaw = mainSidebar.find( + // @ts-expect-error Too lazy to type this. (item) => item["Beginner's Guide"], )["Beginner's Guide"]; -const parts = []; +const parts: string[] = []; +// eslint-disable-next-line @typescript-eslint/no-unsafe-argument parseSidebar(parts, beginnersGuidePartsRaw); if (parts[0] === "beginner") { parts.shift(); } -function parseSidebar(acc, partsRaw) { +function parseSidebar(acc: string[], partsRaw: unknown[]) { for (const item of partsRaw) { if (typeof item === "string") { acc.push(item); } else { + // @ts-expect-error Too lazy to type this. parseSidebar(acc, Object.values(item)[0]); } } } -const TOTAL_PARTS = parts.length; +const totalParts = parts.length; -export default function Progress({ id }) { +export default function Progress({ id }: { id: string }): React.JSX.Element { const part = parts.indexOf(`beginner/${id}`); if (part === -1) { throw new Error("page id not found in sidebar"); } - const percentage = Math.round(((part + 1) / TOTAL_PARTS) * 100); + const percentage = Math.round(((part + 1) / totalParts) * 100); // Once the component is rendered, stick it underneath the table of contents and make it visible. useEffect(() => { - const toc = document.querySelector("ul.table-of-contents"); - if (toc) { + const toc = document.querySelector("ul.table-of-contents"); + if (toc !== null) { toc.style.paddingTop = "6em"; } }); diff --git a/src/components/HomepageFeatures/index.tsx b/src/components/HomepageFeatures/index.tsx index a1e4bc7d57..87c61bc93e 100644 --- a/src/components/HomepageFeatures/index.tsx +++ b/src/components/HomepageFeatures/index.tsx @@ -43,7 +43,7 @@ function Feature({ num, title, iconName, description, link }: FeatureItem) { {iconStyles !== "" && ( )}

- {title} + {title}

{description}

diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 246a3d1016..c705a4e913 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -31,7 +31,7 @@ function HomepageHeader() { "button button--outline button--secondary button--lg", styles["getStarted"], )} - to={useBaseUrl("docs/about")} + to={useBaseUrl("about")} > Learn More diff --git a/static/js/hotkey.js b/static/js/hotkey.js index 1b1fecbb3b..ef8a1730bd 100644 --- a/static/js/hotkey.js +++ b/static/js/hotkey.js @@ -86,7 +86,7 @@ keyMap.set("l", () => { return; } - window.location = `/docs/level-${level}`; + window.location = `/level-${level}`; }); function isOnLandingPage() { diff --git a/tsconfig.json b/tsconfig.json index b16b3067b2..69495faed2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -39,4 +39,6 @@ "./**/*.tsx", "./**/.*.tsx", ], + + "exclude": ["scripts"], }