diff --git a/packages/common-config/preset/commonDocusaurusConfig.ts b/packages/common-config/preset/commonDocusaurusConfig.ts index c7b3bd99..af0cdecc 100644 --- a/packages/common-config/preset/commonDocusaurusConfig.ts +++ b/packages/common-config/preset/commonDocusaurusConfig.ts @@ -21,7 +21,12 @@ const commonDocusaurusConfig: Partial = { crossorigin: "anonymous", }, ], - plugins: ["docusaurus-lunr-search", "vercel-analytics", llmsTxtPlugin, acknowledgementPlugin], + plugins: [ + "docusaurus-lunr-search", + "vercel-analytics", + llmsTxtPlugin, + acknowledgementPlugin, + ], themeConfig: { colorMode: { defaultMode: "dark", @@ -74,7 +79,7 @@ const commonDocusaurusConfig: Partial = { style: "dark", links: [ { - html: '', + html: '', }, { html: '', diff --git a/sites/wonderland/README.md b/sites/wonderland/README.md index cebe9576..4057bc45 100644 --- a/sites/wonderland/README.md +++ b/sites/wonderland/README.md @@ -21,11 +21,13 @@ This repository contains the Wonderland Handbook, a documentation site built wit From the monorepo root: 1. Install dependencies: + ```bash pnpm install ``` 2. Build assets and start the development server: + ```bash pnpm --filter wonderland-handbook build:assets pnpm --filter wonderland-handbook start @@ -50,56 +52,65 @@ The handbook is automatically deployed to Vercel when changes are pushed to the ## Contributing ### To the handbook: + 1. Create a new branch for your changes 2. Make your changes in the `docs/` directory 3. If you add new folders or files, you must also update `sidebars.ts`: - - This file defines the sidebar navigation using [Docusaurus sidebar configuration](https://docusaurus.io/docs/sidebar). - - Add your new documents to the appropriate category, or create a new one as needed. + +- This file defines the sidebar navigation using [Docusaurus sidebar configuration](https://docusaurus.io/docs/sidebar). +- Add your new documents to the appropriate category, or create a new one as needed. + 4. Test locally using `pnpm --filter wonderland-handbook start` 5. Submit a pull request -If you have any ideas for improving the handbook, feel free to open an issue (check the templates!) to start a discussion! +If you have any ideas for improving the handbook, feel free to open an issue (check the templates!) to start a discussion! ### To the blog: Add a new Markdown/MDX file under `sites/wonderland/blog/`. - Frontmatter (at the top of the file): + ```md --- title: Your post title description: One-sentence summary shown in previews authors: - - key: lumi # must exist in `blog/authors.yml` - date: 2024-11-06 # ISO date; time optional - image: /img/blog/slug/cover.png # social/OG image - tags: [topic1, topic2] # optional + - key: lumi # must exist in `blog/authors.yml` + date: 2024-11-06 # ISO date; time optional + image: /img/blog/slug/cover.png # social/OG image + tags: [topic1, topic2] # optional --- ``` + - For multiple authors, use an array of `{ key }` objects. Example: `[{ key: lumi }, { key: shishigami }]`. - Author profiles live in `sites/wonderland/blog/authors.yml` (keys must match). - Images: + - Put post-specific images under `sites/wonderland/static/img/blog-posts-img//`. - Reference them with absolute paths: `/img/blog-posts-img//image.png`. - Recommended: a `cover.png` (1200×630) for social sharing via the `image` frontmatter. - Naming: + - Prefer date-prefixed filenames to keep chronology: `YYYY-MM-DD-.md(x)`. - The `` will become your URL segment. Keep it short, lowercase, and hyphenated. - Content tips: + - Use standard Markdown. Code blocks get Prism syntax highlighting (e.g. solidity, ts). - Headings create the right-hand table of contents automatically. - For math, LaTeX is supported via remark-math/rehype-katex. - Local preview: + ```bash pnpm --filter wonderland-handbook start ``` - PR checklist: - - Nice to have: in your PR description, add a small thread about your article to share on Wonderland's twitter 🤍 Remember to include a small description about yourself. Reference [here](https://x.com/DeFi_Wonderland/status/1958612299859841473) and [here](https://x.com/DeFi_Wonderland/status/1958249234429575375). + - Nice to have: in your PR description, add a small thread about your article to share on Wonderland's twitter 🤍 Remember to include a small description about yourself. Reference [here](https://x.com/Wonderland/status/1958612299859841473) and [here](https://x.com/Wonderland/status/1958249234429575375). - Frontmatter present and valid. - Images placed in `static/img/blog-posts-img//` and referenced with `/img/blog-posts-img//...`. - Links work and code blocks render. diff --git a/sites/wonderland/blog/2023-08-12-a-zero-day-exploit-in-geb.md b/sites/wonderland/blog/2023-08-12-a-zero-day-exploit-in-geb.md index 2c759ad0..eabdfeb1 100644 --- a/sites/wonderland/blog/2023-08-12-a-zero-day-exploit-in-geb.md +++ b/sites/wonderland/blog/2023-08-12-a-zero-day-exploit-in-geb.md @@ -12,7 +12,7 @@ image: /img/blog-posts-img/a-zero-day-exploit-in-geb/cover.jpg ![Cover Image](/img/blog-posts-img/a-zero-day-exploit-in-geb/easter-island.jpg) -During our ["retreat,"](https://twitter.com/DeFi_Wonderland/status/1724121953512947965) on a night filled with wine, chess games, frisbee, and laughter, the break naturally turned into a work session. Working groups, motivated by enthusiasm (and a bit of alcohol), grouped to tackle some pending tasks. The HAI team was focused on the **last finding** of the 46 points raised in the two auditing processes. +During our ["retreat,"](https://twitter.com/Wonderland/status/1724121953512947965) on a night filled with wine, chess games, frisbee, and laughter, the break naturally turned into a work session. Working groups, motivated by enthusiasm (and a bit of alcohol), grouped to tackle some pending tasks. The HAI team was focused on the **last finding** of the 46 points raised in the two auditing processes. The finding named “**Liquidation DOS**” was categorized as **"minor severity"** in one of the two audit reports, in our opinion, due to the following: @@ -45,6 +45,7 @@ A week later, the [innocent proposal](https://www.tally.xyz/gov/reflexer-ungover This is the story of how Wonderland endangered and rescued two protocols with a combined TVL of over \$25 million from a 500+ days old bug. ## **Background** + ![](/img/blog-posts-img/a-zero-day-exploit-in-geb/moais.jpg) @@ -292,4 +293,4 @@ We have partnered with some of the most successful and promising protocols in We We champion public good creation and believe in the invincibility of protocols backed by the right talent and incentives. We deeply believe in fostering a supportive community where collaboration trumps competition and building together is the norm, not the exception. -**DeFi sucks, but we are here to make it better.** \ No newline at end of file +**DeFi sucks, but we are here to make it better.** diff --git a/sites/wonderland/docs/development/solidity/onboarding/challenges/security-challenges.md b/sites/wonderland/docs/development/solidity/onboarding/challenges/security-challenges.md index 88d25308..cdee316c 100644 --- a/sites/wonderland/docs/development/solidity/onboarding/challenges/security-challenges.md +++ b/sites/wonderland/docs/development/solidity/onboarding/challenges/security-challenges.md @@ -15,4 +15,4 @@ In this section of the onboarding, our goal is to familiarize you with the most 7. [GeistHeist](https://github.com/defi-wonderland/security-onboarding/tree/dev/solidity/challenges/medium/GeistHeist) 8. [Arcanery](https://github.com/defi-wonderland/security-onboarding/tree/dev/solidity/challenges/medium/Arcanery) -> ⚠️ **Note:** These challenges are private for now; [follow us](https://x.com/DeFi_Wonderland) to stay updated on the handbook's evolution +> ⚠️ **Note:** These challenges are private for now; [follow us](https://x.com/Wonderland) to stay updated on the handbook's evolution diff --git a/sites/wonderland/src/theme/BlogPostPage/index.tsx b/sites/wonderland/src/theme/BlogPostPage/index.tsx index f96ac62b..0fe2974a 100644 --- a/sites/wonderland/src/theme/BlogPostPage/index.tsx +++ b/sites/wonderland/src/theme/BlogPostPage/index.tsx @@ -32,7 +32,7 @@ export default function BlogPostPageWrapper(props: any) {
{(() => { const currentUrl = typeof window !== "undefined" ? window.location.href : meta?.permalink ?? ""; - const shareText = `I went through the @DeFi_Wonderland's blog rabbit hole 🐇 Take a look at this post 👉${meta?.title ?? ""}\n${currentUrl}`; + const shareText = `I went through the @Wonderland's blog rabbit hole 🐇 Take a look at this post 👉${meta?.title ?? ""}\n${currentUrl}`; const intent = `https://twitter.com/intent/tweet?text=${encodeURIComponent(shareText)}`; return (