diff --git a/.github/workflows/links.yaml b/.github/workflows/links.yaml index 916db347..f116de27 100644 --- a/.github/workflows/links.yaml +++ b/.github/workflows/links.yaml @@ -14,30 +14,55 @@ on: workflow_dispatch: jobs: - links: + readme: + if: ${{ github.repository_owner == 'nuejs' || github.event_name == 'workflow_dispatch' }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Check README links + uses: lycheeverse/lychee-action@v2 + with: + args: > + --no-progress + --exclude-path node_modules + --exclude localhost + --base . + -- + "**/README.md" + token: ${{ secrets.GITHUB_TOKEN }} + + site: if: ${{ github.repository_owner == 'nuejs' || github.event_name == 'workflow_dispatch' }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v2 - - name: Install and build docs + - name: Install and build site run: | bun install cd packages/nuekit bun link - cd - - nue build -pr packages/nuejs.org + cd ../nuejs.org + nue build -p + nue -pP 8080 & - - name: Check links - if: success() || failure() + - name: Find files to check + run: | + links=$(find packages/nuejs.org/.dist/prod -name "*.html" -printf "http://localhost:8080/%P ") + echo "LINKS=$links" >> $GITHUB_ENV + + - name: Check site links uses: lycheeverse/lychee-action@v2 with: args: > --no-progress - --exclude-path node_modules - --exclude localhost + --accept "403, 429, 503" + --remap "http://localhost:8080/@ https://nuejs.org/@" + --remap "http://localhost:8080/todomvc https://nuejs.org/todomvc" + --remap "http://localhost:8080/glow-demo https://nuejs.org/glow-demo" + --exclude "http://localhost:8080/404.html" -- - **/README.md - packages/**/.dist/prod/ + ${{ env.LINKS }} token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 18886f24..7afd5177 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -5,10 +5,12 @@ on: branches: - master paths-ignore: + - .github/** - packages/examples/** - packages/nuejs.org/** pull_request: paths-ignore: + - .github/** - packages/examples/** - packages/nuejs.org/** workflow_dispatch: diff --git a/packages/nuejs.org/README.md b/packages/nuejs.org/README.md index 3c061b7b..c9a2a954 100644 --- a/packages/nuejs.org/README.md +++ b/packages/nuejs.org/README.md @@ -1,6 +1,6 @@ ## Nue website -The source code for https://nuejs.org +The source code for @@ -9,9 +9,10 @@ The source code for https://nuejs.org ### Running locally -1. [Install Nue](//nuejs.org/docs/installation.html) +1. [Install Nue](https://nuejs.org/docs/installation.html) 2. Clone this repository 3. `cd nue/packages/nuejs.org` 4. `nue` -The website runs at http://localhost:8080/ \ No newline at end of file +The website runs at + diff --git a/packages/nuejs.org/docs/content-syntax.md b/packages/nuejs.org/docs/content-syntax.md index f5e26cbf..76ecc15c 100644 --- a/packages/nuejs.org/docs/content-syntax.md +++ b/packages/nuejs.org/docs/content-syntax.md @@ -333,7 +333,7 @@ This creates a flexible layout where a main **feature** block contains a nested The possibilities are endless. You can combine blocks in creative ways, stacking sections within sections to build rich, interactive landing pages. Imagine a **hero section** that introduces key features, followed by a **grid of cards**, each with its own stacked content blocks highlighting product details, testimonials, or case studies. With the power of **nesting**, you can craft visually complex layouts while keeping your Markdown easy to read and maintain. Whether you're building product showcases, multi-section promotional pages, or detailed service breakdowns, nesting unlocks a new level of creative control over your content structure—letting design systems handle the visual complexity. ### Code blocks -Code blocks in Nue are enclosed between triple backticks and can include an optional language hint for syntax highlighting using the [Glow syntax highlighter](blog/introducing-glow/). For example, a CSS code block would look like this: +Code blocks in Nue are enclosed between triple backticks and can include an optional language hint for syntax highlighting using the [Glow syntax highlighter](/blog/introducing-glow/). For example, a CSS code block would look like this: ```md \```css @@ -447,7 +447,7 @@ This simple example demonstrates how you can create a **stacked layout** with co ### Content tags -Nue offers a large amount of [tags](/content-tags.html) that significantly enhance your ability to create rich and interactive websites. You can add responsive images, videos, buttons, accordions, tabs, and more. +Nue offers a large amount of [tags](content-tags.html) that significantly enhance your ability to create rich and interactive websites. You can add responsive images, videos, buttons, accordions, tabs, and more. You can also extend the syntax with [custom components](custom-components.html). diff --git a/packages/nuejs.org/docs/content.md b/packages/nuejs.org/docs/content.md index 3f388df3..f2dc4181 100644 --- a/packages/nuejs.org/docs/content.md +++ b/packages/nuejs.org/docs/content.md @@ -148,7 +148,7 @@ Nue supports an [extended Markdown syntax](content-syntax.html) that handles all ### Cloud storage -While the current YAML/Markdown-based editing is well-suited for technical users, we recognize the need for a cloud storage solution for non-technical users. This will allow content management directly through the website. A cloud-based backend is on our roadmap, aligning with Nue's **decoupled architecture**, where content can be fetched from the cloud before rendering. See the [roadmap](index.md#roadmap) for more details. +While the current YAML/Markdown-based editing is well-suited for technical users, we recognize the need for a cloud storage solution for non-technical users. This will allow content management directly through the website. A cloud-based backend is on our roadmap, aligning with Nue's **decoupled architecture**, where content can be fetched from the cloud before rendering. See the [roadmap](/#roadmap) for more details. ## Content-first development diff --git a/packages/nuejs.org/docs/reactivity.md b/packages/nuejs.org/docs/reactivity.md index 05390b8f..e6403872 100644 --- a/packages/nuejs.org/docs/reactivity.md +++ b/packages/nuejs.org/docs/reactivity.md @@ -217,7 +217,7 @@ After this, we can use this component in a Markdown file: ## Reactive components -More complex components with dynamically generated HTML are better implemented with a [reactive component](reactive-components.html). These components support the same [template syntax](template-syntax.html) as the server-side components, but the components can respond to user input. +More complex components with dynamically generated HTML are better implemented with a [reactive component](islands.html). These components support the same [template syntax](template-syntax.html) as the server-side components, but the components can respond to user input. diff --git a/packages/nuejs.org/docs/settings.md b/packages/nuejs.org/docs/settings.md index 3be83525..2695f8ea 100644 --- a/packages/nuejs.org/docs/settings.md +++ b/packages/nuejs.org/docs/settings.md @@ -63,7 +63,7 @@ Setting this to `true` enables [view transitions](reactivity.html#view-transitio ### inline_css -Setting this to `true` inlines all CSS directly into the HTML page, enabling the entire page to render in one request. This setting can also be configured at the area and page levels. For more details, see [performance optimization](performance-optimization.html). +Setting this to `true` inlines all CSS directly into the HTML page, enabling the entire page to render in one request. This setting can also be configured at the area and page levels. For more details, see [performance optimization](optimization.html). ## Global Metadata