Skip to content

Poofread blogs and make minor modifications - #13

Closed
DerekHJH wants to merge 28 commits into
mainfrom
hjh/blog
Closed

Poofread blogs and make minor modifications#13
DerekHJH wants to merge 28 commits into
mainfrom
hjh/blog

Conversation

@DerekHJH

Copy link
Copy Markdown
Collaborator

What changed

  • Updated the blog construction section copy in both languages.

Validation

  • npm run build

Saigyouji-Yuyuko1000 and others added 28 commits June 18, 2026 12:22
## What changed
- Moved site copy, links, benchmark data, and icon definitions into pure JS files under `site/src/content/`.
- Added Markdown rendering for localized long-form copy via `react-markdown`.
- Updated homepage/blog components to read copy from content files while keeping chart metrics and benchmark values data-driven.
- Tightened blog heading and body spacing after the Markdown rendering change.

## Why
This makes bilingual copy easier to edit and align by page, and keeps data/config separate from React component layout.

## Validation
- `npm run build`
- Opened homepage and blog page locally with Playwright and confirmed Markdown renders without raw syntax.
## What changed
- Rebased the construction-copy updates onto the latest `ljzhou/dev_2026_06_18_react_site_docs` branch.
- Updated the blog construction section copy in both languages.
- Refined the rule-hybridization heading and supporting paragraphs.
- Added Markdown links for GDPval, SOP-Bench, JobBench, and Loop Engineering where applicable.

## Validation
- `npm run build`
Copilot AI review requested due to automatic review settings June 18, 2026 16:07
@DerekHJH DerekHJH closed this Jun 18, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request migrates the static GDPevo site to a React/Vite application, restructures the repository by removing legacy Slidev assets, and updates documentation to reflect the shift from 'skills' to 'self-evolution' terminology. The review highlights three key issues: a path resolution bug in the post-build script that fails to locate the root assets folder, a ReferenceError in the Vite configuration caused by using __dirname in an ES module, and a missing clipboard fallback in the blog page's citation copy feature.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

const dist = join(root, "dist");

await copyFile(join(root, ".nojekyll"), join(dist, ".nojekyll"));
await cp(join(root, "assets"), join(dist, "assets"), { recursive: true });

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The assets folder is located at the repository root (/assets), but root is defined as the site/ directory (/site). Therefore, join(root, "assets") resolves to /site/assets, which does not exist and will cause the build script to fail with an ENOENT error.

To fix this, resolve the path relative to the repository root by going up one directory level using "..".

await cp(join(root, "..", "assets"), join(dist, "assets"), { recursive: true });

Comment thread site/vite.config.js
Comment on lines +1 to +18
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { resolve } from "node:path";

export default defineConfig({
base: "/GDPevo/",
plugins: [react()],
build: {
outDir: "dist",
emptyOutDir: true,
rollupOptions: {
input: {
index: resolve(__dirname, "index.html"),
blog: resolve(__dirname, "blog.html")
}
}
}
});

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Since site/package.json specifies "type": "module", vite.config.js is treated as an ES module. In ES modules, __dirname is not defined and will throw a ReferenceError: __dirname is not defined in strict Node.js environments.

To fix this, define __dirname using fileURLToPath and dirname from node:url and node:path respectively.

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { resolve, dirname } from "node:path";
import { fileURLToPath } from "node:url";

const __dirname = dirname(fileURLToPath(import.meta.url));

export default defineConfig({
  base: "/GDPevo/",
  plugins: [react()],
  build: {
    outDir: "dist",
    emptyOutDir: true,
    rollupOptions: {
      input: {
        index: resolve(__dirname, "index.html"),
        blog: resolve(__dirname, "blog.html")
      }
    }
  }
});

Comment on lines +163 to +168
const copyCitation = async () => {
if (!navigator.clipboard) return;
await navigator.clipboard.writeText(citation);
setCopied(true);
window.setTimeout(() => setCopied(false), 1500);
};

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Unlike copyBlogLink which implements a robust fallback using a temporary textarea for environments where navigator.clipboard is not available (such as non-secure HTTP contexts or older browsers), copyCitation lacks any fallback. Clicking the button in such environments will silently fail.

To ensure consistency and robustness, add the same fallback mechanism to copyCitation.

  const copyCitation = async () => {
    try {
      if (navigator.clipboard) {
        await navigator.clipboard.writeText(citation);
      } else {
        const input = document.createElement("textarea");
        input.value = citation;
        input.setAttribute("readonly", "");
        input.style.position = "fixed";
        input.style.opacity = "0";
        document.body.appendChild(input);
        input.select();
        document.execCommand("copy");
        document.body.removeChild(input);
      }
      setCopied(true);
      window.setTimeout(() => setCopied(false), 1500);
    } catch (e) {
      setCopied(false);
    }
  };

@DerekHJH DerekHJH reopened this Jun 18, 2026
@DerekHJH DerekHJH closed this Jun 18, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request substantially restructures the public website and related docs: it removes the prior Slidev “teaser” decks and migrates the site/ GitHub Pages content to a React/Vite build with a new home/blog implementation and updated styling/copy.

Changes:

  • Removed legacy Slidev teaser decks (teaser/, teaser2/, teaser3/).
  • Introduced a React/Vite site build (new site/src/*, vite.config.js, postbuild.mjs) and updated GitHub Pages workflow to build and deploy site/dist.
  • Updated site styling and refreshed project documentation/boards to align with “self-evolution” framing and held-out test terminology.

Reviewed changes

Copilot reviewed 42 out of 48 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
teaser3/slides.md Removed Slidev v3 deck.
teaser3/package.json Removed Slidev v3 package manifest.
teaser3/components/Pipeline.vue Removed Slidev v3 pipeline component.
teaser2/slides.md Removed Slidev v2 deck.
teaser2/package.json Removed Slidev v2 package manifest.
teaser2/components/Pipeline.vue Removed Slidev v2 pipeline component.
teaser/slides.md Removed Slidev v1 deck.
teaser/package.json Removed Slidev v1 package manifest.
teaser/components/Pipeline.vue Removed Slidev v1 pipeline component.
site/vite.config.js Added Vite build config for multi-page output (index.html, blog.html).
site/styles.css Updated layout/typography and added blog-specific UI (TOC, benchmark figure, share button, etc.).
site/src/pages/HomePage.jsx Added React home page (hero, results, tasks table).
site/src/pages/BlogPage.jsx Added React blog page (sections, TOC, share/copy interactions).
site/src/main.jsx Added React entrypoint.
site/src/lib/theme.js Added theme selection + system theme resolution helpers.
site/src/lib/i18n.jsx Added i18n helpers and localized Markdown rendering.
site/src/content/links.js Centralized outbound links.
site/src/content/icons.js Added icon definitions used by the React UI.
site/src/content/home.js Added localized home-page copy/config.
site/src/content/blog.js Added localized blog copy/config and citation.
site/src/content/benchmark.js Added benchmark data feeding charts/tables.
site/src/components/Layout.jsx Added shared header/footer with theme + language controls.
site/src/components/icons.jsx Added SVG icon renderer/components.
site/src/components/BenchmarkFigure.jsx Added interactive benchmark figure (metric toggle).
site/src/App.jsx Added app shell handling routing-by-pathname, lang/theme persistence, and blog/home selection.
site/scripts/postbuild.mjs Added postbuild script to copy .nojekyll + assets/ into dist/.
site/README.md Updated site README (but currently contains inaccuracies called out in review comments).
site/package.json Added site package manifest for React/Vite build.
site/blog.html Converted blog page to React/Vite entry HTML with early theme/lang bootstrap.
README.zh.md Refreshed Chinese top-level README copy and structure.
README.md Refreshed English top-level README copy and structure.
experiments/README.zh.md Updated terminology around evolution artifacts.
experiments/README.md Updated terminology around evolution artifacts.
experiments/EXPERIMENT_BOARD.zh.md Updated board copy to “self-evolution” framing and artifact terminology.
experiments/EXPERIMENT_BOARD.md Updated board copy to “self-evolution” framing and artifact terminology.
data/README.zh.md Updated data README to emphasize held-out test tasks and artifact terminology.
data/README.md Updated data README to emphasize held-out test tasks and artifact terminology.
data/DATA_BOARD.zh.md Updated board copy to held-out test framing and self-evolution wording.
data/DATA_BOARD.md Updated board copy to held-out test framing and self-evolution wording.
assets/.gitkeep Removed placeholder file.
.gitignore Ignored site/dist.
.github/workflows/pages.yml Updated Pages workflow to install/build the site and deploy site/dist.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 1 to 7
name: Deploy GitHub Pages

on:
push:
branches:
- main
paths:
- site/**
- .github/workflows/pages.yml
workflow_dispatch:
Comment thread site/README.md
Comment on lines +5 to +6
The landing page is rendered by React and built into `dist/` before deployment.
`blog.html` remains a static article file and is copied into the build output.
Comment thread site/README.md
Comment on lines +12 to +15
| `src/` | React components and page data for the landing page. |
| `styles.css` | Shared site styling. |
| `blog.html` | Static blog article copied into `dist/` during build. |
| `scripts/postbuild.mjs` | Copies the static blog, assets, and `.nojekyll` into `dist/`. |
Comment on lines +163 to +168
const copyCitation = async () => {
if (!navigator.clipboard) return;
await navigator.clipboard.writeText(citation);
setCopied(true);
window.setTimeout(() => setCopied(false), 1500);
};
@Saigyouji-Yuyuko1000
Saigyouji-Yuyuko1000 deleted the hjh/blog branch June 18, 2026 17:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants