Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
8356b82
Redesign the homepage and documentation shell
krishankumar01 Sep 16, 2026
a661d15
Add Testing to the Laravel comparison and deepen the examples
krishankumar01 Sep 16, 2026
2cddc99
Carry the homepage's label voice into the docs shell
krishankumar01 Sep 16, 2026
3d0502f
Rebuild the primary nav around four destinations
krishankumar01 Sep 16, 2026
c6281d0
Link the facade list, group the Community menu, complete the Lite build
krishankumar01 Sep 16, 2026
2f3c2ac
Make the nav menu a panel that drops out of the bar
krishankumar01 Sep 16, 2026
8349ec9
Draw the last two menu icons, and fix a heading that was a callout
krishankumar01 Sep 16, 2026
b97a60b
Put back the heading emoji on the installation page
krishankumar01 Sep 16, 2026
45e5e3c
Rework the docs shell, typography and markdown rendering
krishankumar01 Sep 16, 2026
d89445c
Polish the docs reading experience
krishankumar01 Sep 16, 2026
c21e7b1
Simplify the theme so each style lives in one place
krishankumar01 Sep 17, 2026
4c94db4
Give the Contribute links real icons
krishankumar01 Sep 17, 2026
03ccce1
Draw the homepage mark as SVG and drop hand-written helpers
krishankumar01 Sep 17, 2026
4c057aa
Translate the docs breadcrumb
krishankumar01 Sep 17, 2026
ba68880
Polish the docs and vary the homepage sections
krishankumar01 Sep 17, 2026
5c4d9e2
Make every rule reach another line at any screen width
krishankumar01 Sep 17, 2026
8503148
Localize the homepage links and share repeated theme code
krishankumar01 Sep 17, 2026
db426fb
Draw the homepage mark in the logo's own colours
krishankumar01 Sep 18, 2026
d0f011d
Apply the review's homepage and sidebar changes
krishankumar01 Sep 18, 2026
950fe1f
Keep the site 1440px wide on wider screens
krishankumar01 Sep 18, 2026
e2eaea1
Give nav and footer links .html, and stop turning tildes into subscript
krishankumar01 Sep 18, 2026
5875160
Read the homepage's GitHub numbers live
krishankumar01 Sep 18, 2026
3860ef1
Translate the remaining theme text and load less on doc pages
krishankumar01 Sep 18, 2026
aab9ee5
Build the coverage bars with the page, and tidy the review's small fi…
krishankumar01 Sep 19, 2026
8700868
feat: rebuild the homepage around real framework features
krishankumar01 Sep 19, 2026
b5e28ff
docs: fix stale examples and refresh the share preview
krishankumar01 Sep 19, 2026
62dd64f
fix: keep the Laravel tabs animating after a manual pick
krishankumar01 Sep 19, 2026
a497424
docs: use proper containers for notes, tips and warnings
krishankumar01 Sep 19, 2026
5fb936a
docs: rebuild the Laravel comparison as one labelled table
krishankumar01 Sep 19, 2026
84de43a
docs: fix broken anchors, wrong method names and shell comments acros…
krishankumar01 Sep 19, 2026
2d760d3
fix: address second review round
krishankumar01 Sep 20, 2026
05170c8
docs: drop the empty outline column on the packages and upgrade histo…
krishankumar01 Sep 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Build

# a pull request is built the way a deploy is, so dead links and build errors show up before merging
on:
pull_request:

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: true

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: pnpm

- name: Build with VitePress
run: pnpm docs:build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 2 additions & 0 deletions .github/workflows/deploy-sub.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ jobs:

- name: Build with VitePress
run: pnpm docs:build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Push build
uses: peaceiris/actions-gh-pages@v4
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:

- name: Build with VitePress
run: pnpm docs:build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Push gh-pages
uses: peaceiris/actions-gh-pages@v4
Expand Down
51 changes: 51 additions & 0 deletions .vitepress/config/community.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import type { DefaultTheme } from 'vitepress'
import { LINKS } from '../links'

interface Words {
title: string
connect: string
learn: string
videos: string
contribute: string
guide: string
language: string
languageAnchor: string
}

const row = (text: string, link: string, icon: string, color?: string) => ({
text: `<span class="g-menu-row"><span class="g-menu-icon ${icon}"${color ? ` style="color:${color}"` : ''}></span>${text}</span>`,
link,
noIcon: true // the theme only drops its external arrow for links holding an svg or img
})

export function community(words: Words, prefix = '', videos: 'youtube' | 'bilibili' = 'youtube'): DefaultTheme.NavItemWithChildren {
return {
text: words.title,
items: [
{
text: words.connect,
items: [
row('Discord', LINKS.discord, 'icon-[simple-icons--discord]', '#5865F2'),
row('X', LINKS.x, 'icon-[simple-icons--x]', '#000000')
]
},
{
text: words.learn,
items: [
videos === 'youtube'
? row(words.videos, LINKS.youtube, 'icon-[simple-icons--youtube]', '#FF0000')
: row(words.videos, LINKS.bilibili, 'icon-[simple-icons--bilibili]', '#00A1D6'),
row('DevChalk', LINKS.devchalk, 'is-devchalk')
]
},
{
text: words.contribute,
items: [
row(words.guide, `${prefix}/prologue/contributions`, 'icon-[lucide--git-pull-request]'),
row(words.language, `${prefix}/prologue/contributions#${words.languageAnchor}`, 'icon-[lucide--languages]'),
row('Open Collective', LINKS.openCollective, 'icon-[simple-icons--opencollective]', '#7FADF2')
]
}
]
}
}
74 changes: 37 additions & 37 deletions .vitepress/config/en.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { defineConfig, type DefaultTheme } from 'vitepress'
import { community } from './community'

export const config = defineConfig({
lang: 'en-US',
Expand All @@ -10,56 +11,67 @@ export const config = defineConfig({
{
text: 'Prologue',
base: '/prologue/',
collapsed: true,
items: sidebarPrologue()
},
{
text: 'Upgrade',
base: '/upgrade/',
collapsed: true,
items: sidebarUpgrade()
},
{
text: 'Getting Started',
base: '/getting-started/',
collapsed: true,
items: sidebarGettingStarted()
},
{
text: 'Architecture Concepts',
base: '/architecture-concepts/',
collapsed: true,
items: sidebarFoundation()
},
{
text: 'The Basics',
base: '/the-basics/',
collapsed: true,
items: sidebarBasic()
},
{
text: 'Digging Deeper',
base: '/digging-deeper/',
collapsed: true,
items: sidebarAdvanced()
},
{
text: 'AI',
base: '/ai/',
collapsed: true,
items: sidebarAI()
},
{
text: 'Security',
base: '/security/',
collapsed: true,
items: sidebarSecurity()
},
{
text: 'Database',
base: '/database/',
collapsed: true,
items: sidebarDatabase()
},
{
text: 'ORM',
base: '/orm/',
collapsed: true,
items: sidebarOrm()
},
{
text: 'Testing',
base: '/testing/',
collapsed: true,
items: sidebarTesting()
}
],
Expand Down Expand Up @@ -99,44 +111,32 @@ export const config = defineConfig({
function nav(): DefaultTheme.NavItem[] {
return [
{
text: 'Quickstart',
text: 'Docs',
link: '/getting-started/installation',
activeMatch: '/getting-started/'
},
{
text: 'Video Tutorials',
items: [
{
text: '<span style="display:inline-flex;align-items:center;gap:6px;"><img src="https://www.youtube.com/favicon.ico" alt="" aria-hidden="true" style="width:14px;height:14px;display:block;" /><span>YouTube</span></span>',
link: 'https://www.youtube.com/playlist?list=PL40Xne4u-oXJ0Z5uFiPWHqIMvzZaG_BDf'
},
{
text: '<span style="display:inline-flex;align-items:center;gap:6px;"><img src="https://devchalk.com/mark-480.webp" alt="" aria-hidden="true" style="width:14px;height:14px;border-radius:3px;display:block;" /><span>DevChalk</span></span>',
link: 'https://devchalk.com/goravel'
},
]
},
{
text: 'Versions',
items: [
{
text: 'v1.18 (Latest)',
link: 'https://www.goravel.dev/'
},
{
text: 'v1.17',
link: 'https://v117.goravel.dev/'
},
{
text: 'v1.16',
link: 'https://v116.goravel.dev/'
},
]
},
{
text: 'Translate',
link: '/prologue/contributions#add-a-new-language'
}
activeMatch: '^/(?!getting-started/packages)(getting-started|architecture-concepts|the-basics|digging-deeper|database|orm|testing|security|ai)/'
},
{
text: 'Packages',
link: '/getting-started/packages',
activeMatch: '^/getting-started/packages'
},
{
text: 'Releases',
link: '/prologue/releases',
activeMatch: '^/(prologue/releases|upgrade/)'
},
community(
{
title: 'Community',
connect: 'Connect',
learn: 'Learn',
videos: 'Video Tutorials',
contribute: 'Contribute',
guide: 'Contribution Guide',
language: 'Add a Language',
languageAnchor: 'add-a-new-language'
}
)
]
}

Expand Down
36 changes: 36 additions & 0 deletions .vitepress/config/goravel-code.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import type { ThemeOptions } from 'vitepress'

const INK = '#101820'
const GREY = '#68747d'
const CYAN = '#0077b3'
const RED = '#b02b2b'

const rule = (scope: string[], foreground: string) => ({ scope, settings: { foreground } })

export const goravelCode: ThemeOptions = {
name: 'goravel',
type: 'light',
// transparent, so a callout's lighter ground shows through
colors: { 'editor.background': '#00000000', 'editor.foreground': INK },
tokenColors: [
{ settings: { foreground: INK } },
rule(['comment', 'punctuation.definition.comment', 'string.comment'], GREY),
rule(['keyword', 'storage', 'constant.language', 'variable.language'], INK),
rule(['entity.name.function', 'support.function', 'entity.name.command'], CYAN),
rule(['string', 'constant.numeric', 'constant.character'], GREY),
rule(['punctuation', 'keyword.operator', 'meta.brace'], GREY),
rule(['markup.inserted', 'meta.diff.header.to-file'], CYAN),
rule(['markup.deleted', 'meta.diff.header.from-file'], RED),
// narrower scopes that override the grey and cyan rules above
rule(
[
'entity.name.type', 'entity.name.class', 'entity.name.package', 'entity.name.import.go',
'support.type', 'support.class', 'storage.type.numeric.go', 'storage.type.string.go',
'storage.type.boolean.go', 'storage.type.byte.go', 'storage.type.error.go',
'variable', 'meta.definition.variable', 'punctuation.definition.variable.php',
'string.unquoted.argument.shell', 'constant.other.option'
],
INK
)
]
}
Loading
Loading