Skip to content

Commit 2ea9b36

Browse files
authored
Merge pull request #326 from cakephp/3.x-vitepress
convert docs to Vitepress
2 parents 7262242 + 99e7565 commit 2ea9b36

File tree

94 files changed

+4688
-3331
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+4688
-3331
lines changed

.github/workflows/deploy_docs_3x.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@ jobs:
2121
with:
2222
git_remote_url: 'ssh://dokku@apps.cakephp.org:22/authorization-docs-3'
2323
ssh_private_key: ${{ secrets.DOKKU_SSH_PRIVATE_KEY }}
24+
branch: '3.x'
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Documentation Validation
2+
3+
on:
4+
push:
5+
branches:
6+
- 3.x
7+
paths:
8+
- 'docs/**'
9+
- '.github/**'
10+
pull_request:
11+
paths:
12+
- 'docs/**'
13+
- '.github/**'
14+
15+
jobs:
16+
validate:
17+
uses: cakephp/.github/.github/workflows/docs-validation.yml@5.x
18+
with:
19+
docs-path: 'docs'
20+
vitepress-path: 'docs/.vitepress'
21+
enable-config-js-check: true
22+
enable-json-lint: true
23+
enable-toc-check: true
24+
enable-spell-check: true
25+
enable-markdown-lint: true
26+
enable-link-check: true
27+
tools-ref: '5.x'

Dockerfile

Lines changed: 36 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,36 @@
1-
# Basic docker based environment
2-
# Necessary to trick dokku into building the documentation
3-
# using dockerfile instead of herokuish
4-
FROM ubuntu:22.04
5-
6-
# Add basic tools
7-
RUN apt-get update && \
8-
apt-get install -y build-essential \
9-
software-properties-common \
10-
curl \
11-
git \
12-
libxml2 \
13-
libffi-dev \
14-
libssl-dev
15-
16-
# Prevent interactive timezone input
17-
ENV DEBIAN_FRONTEND=noninteractive
18-
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php && \
19-
apt-get update && \
20-
apt-get install -y php8.1-cli php8.1-mbstring php8.1-xml php8.1-zip php8.1-intl php8.1-opcache php8.1-sqlite
21-
22-
WORKDIR /code
23-
24-
VOLUME ["/code"]
25-
26-
CMD [ '/bin/bash' ]
1+
# ----------------------
2+
# 1. Build stage
3+
# ----------------------
4+
FROM node:22-alpine AS builder
5+
6+
# Git is required because docs/package.json pulls a dependency from GitHub.
7+
RUN apk add --no-cache git openssh-client
8+
9+
WORKDIR /app/docs
10+
11+
# Copy dependency manifests first to preserve Docker layer caching.
12+
COPY docs/ ./
13+
RUN npm ci
14+
15+
# Increase max-old-space-size to avoid memory issues during build
16+
ENV NODE_OPTIONS="--max-old-space-size=8192"
17+
18+
# Build the site.
19+
RUN npm run docs:build
20+
21+
# ----------------------
22+
# 2. Runtime stage (nginx)
23+
# ----------------------
24+
FROM nginx:1.27-alpine AS runner
25+
26+
# Copy built files
27+
COPY --from=builder /app/docs/.vitepress/dist /usr/share/nginx/html
28+
29+
# Expose port
30+
EXPOSE 80
31+
32+
# Health check (optional)
33+
HEALTHCHECK CMD wget --quiet --tries=1 --spider http://localhost:80/ || exit 1
34+
35+
# Start nginx
36+
CMD ["nginx", "-g", "daemon off;"]

docs.Dockerfile

Lines changed: 0 additions & 25 deletions
This file was deleted.

docs/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules
2+
*/public/
3+
.vitepress/cache
4+
.vitepress/dist

docs/.vitepress/config.js

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import baseConfig from '@cakephp/docs-skeleton/config'
2+
import { createRequire } from 'module'
3+
4+
const require = createRequire(import.meta.url)
5+
const tocEn = require('./toc_en.json')
6+
const tocEs = require('./toc_es.json')
7+
const tocFr = require('./toc_fr.json')
8+
const tocJa = require('./toc_ja.json')
9+
10+
const versions = {
11+
text: '3.x',
12+
items: [
13+
{ text: '3.x (current)', link: 'https://book.cakephp.org/authorization/3/', target: '_self' },
14+
{ text: '2.x', link: 'https://book.cakephp.org/authorization/2/en/', target: '_self' },
15+
],
16+
}
17+
18+
export default {
19+
extends: baseConfig,
20+
srcDir: '.',
21+
title: 'Authorization',
22+
description: 'CakePHP Authorization Documentation',
23+
base: '/authorization/3/',
24+
rewrites: {
25+
'en/:slug*': ':slug*',
26+
},
27+
sitemap: {
28+
hostname: 'https://book.cakephp.org/authorization/3/',
29+
},
30+
themeConfig: {
31+
socialLinks: [
32+
{ icon: 'github', link: 'https://github.com/cakephp/authorization' },
33+
],
34+
editLink: {
35+
pattern: 'https://github.com/cakephp/authorization/edit/3.x/docs/:path',
36+
text: 'Edit this page on GitHub',
37+
},
38+
sidebar: tocEn,
39+
nav: [
40+
{ text: 'CakePHP', link: 'https://cakephp.org' },
41+
{ text: 'API', link: 'https://api.cakephp.org/authorization/' },
42+
{ ...versions },
43+
],
44+
},
45+
locales: {
46+
root: {
47+
label: 'English',
48+
lang: 'en',
49+
themeConfig: {
50+
sidebar: tocEn,
51+
},
52+
},
53+
es: {
54+
label: 'Español',
55+
lang: 'es',
56+
themeConfig: {
57+
sidebar: tocEs,
58+
},
59+
},
60+
fr: {
61+
label: 'Français',
62+
lang: 'fr',
63+
themeConfig: {
64+
sidebar: tocFr,
65+
},
66+
},
67+
ja: {
68+
label: '日本語',
69+
lang: 'ja',
70+
themeConfig: {
71+
sidebar: tocJa,
72+
},
73+
},
74+
},
75+
}

docs/.vitepress/theme/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default } from '@cakephp/docs-skeleton'

docs/.vitepress/toc_en.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"/": [
3+
{
4+
"text": "Getting Started",
5+
"collapsed": false,
6+
"items": [
7+
{ "text": "Quick Start", "link": "/" },
8+
{ "text": "Policies", "link": "/policies" },
9+
{ "text": "Policy Resolvers", "link": "/policy-resolvers" },
10+
{ "text": "Authorization Middleware", "link": "/middleware" },
11+
{ "text": "Checking Authorization", "link": "/checking-authorization" },
12+
{ "text": "AuthorizationComponent", "link": "/component" },
13+
{ "text": "Request Authorization Middleware", "link": "/request-authorization-middleware" }
14+
]
15+
},
16+
{
17+
"text": "Migration Guides",
18+
"collapsed": false,
19+
"items": [
20+
{ "text": "2.0 Migration Guide", "link": "/2-0-migration-guide" },
21+
{ "text": "3.0 Migration Guide", "link": "/3-0-migration-guide" }
22+
]
23+
}
24+
]
25+
}

docs/.vitepress/toc_es.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"/es/": [
3+
{
4+
"text": "Introducción",
5+
"collapsed": false,
6+
"items": [
7+
{ "text": "Inicio Rápido", "link": "/es/" },
8+
{ "text": "Policy", "link": "/es/policies" }
9+
]
10+
}
11+
]
12+
}

docs/.vitepress/toc_fr.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"/fr/": [
3+
{
4+
"text": "Prise en main",
5+
"collapsed": false,
6+
"items": [
7+
{ "text": "Introduction", "link": "/fr/" },
8+
{ "text": "Policies", "link": "/fr/policies" },
9+
{ "text": "Résolveurs de Policy", "link": "/fr/policy-resolvers" },
10+
{ "text": "Middleware Authorization", "link": "/fr/middleware" },
11+
{ "text": "Vérifier une Autorisation", "link": "/fr/checking-authorization" },
12+
{ "text": "AuthorizationComponent", "link": "/fr/component" },
13+
{ "text": "Middleware d'Autorisation de Requête", "link": "/fr/request-authorization-middleware" }
14+
]
15+
},
16+
{
17+
"text": "Migration",
18+
"collapsed": false,
19+
"items": [
20+
{ "text": "Guide de Migration vers 2.0", "link": "/fr/2-0-migration-guide" }
21+
]
22+
}
23+
]
24+
}

0 commit comments

Comments
 (0)