Skip to content

Commit a0c11ea

Browse files
authored
Merge pull request #2 from DirectProjectJavaRI/docs-migration
Migrate GitHub Pages to a VitePress hub-and-spoke site (all 6 components)
2 parents f63181a + 4ea14e0 commit a0c11ea

14 files changed

Lines changed: 3195 additions & 37 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Deploy VitePress site to Pages
2+
3+
on:
4+
push:
5+
branches: [master]
6+
repository_dispatch:
7+
types: [docs-updated]
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
pages: write
13+
id-token: write
14+
15+
concurrency:
16+
group: pages
17+
cancel-in-progress: false
18+
19+
jobs:
20+
build:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- name: Checkout
24+
uses: actions/checkout@v4
25+
with:
26+
fetch-depth: 0 # needed for lastUpdated in VitePress
27+
28+
- name: Setup Node
29+
uses: actions/setup-node@v4
30+
with:
31+
node-version: 22
32+
cache: npm
33+
34+
- name: Install dependencies
35+
run: npm ci
36+
37+
- name: Fetch component docs and build
38+
run: npm run docs:build
39+
40+
- name: Setup Pages
41+
uses: actions/configure-pages@v5
42+
43+
- name: Upload artifact
44+
uses: actions/upload-pages-artifact@v3
45+
with:
46+
path: docs/.vitepress/dist
47+
48+
deploy:
49+
environment:
50+
name: github-pages
51+
url: ${{ steps.deployment.outputs.page_url }}
52+
needs: build
53+
runs-on: ubuntu-latest
54+
steps:
55+
- name: Deploy to GitHub Pages
56+
id: deployment
57+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
1-
# Compiled class file
2-
*.class
1+
# Node
2+
node_modules/
3+
npm-debug.log*
34

4-
# Log file
5-
*.log
5+
# VitePress build output and cache (built by CI, not committed)
6+
docs/.vitepress/dist/
7+
docs/.vitepress/cache/
68

7-
# BlueJ files
8-
*.ctxt
9+
# Component docs fetched at build/dev time (scripts/fetch-docs.mjs) — the
10+
# source of truth lives in each component repo's own docs/ folder, not here.
11+
# Keep this list in sync with the slugs in scripts/components.json.
12+
docs/agent/
13+
docs/gateway/
14+
docs/direct-msg-monitor/
15+
docs/direct-policy/
16+
docs/dns/
17+
docs/direct-project-stock/
918

10-
# Mobile Tools for Java (J2ME)
11-
.mtj.tmp/
19+
# Local override for scripts/fetch-docs.mjs during development, so a
20+
# not-yet-pushed component repo can be pointed at a local filesystem path
21+
scripts/components.local.json
1222

13-
# Package Files #
14-
*.jar
15-
*.war
16-
*.nar
17-
*.ear
18-
*.zip
19-
*.tar.gz
20-
*.rar
21-
22-
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
23-
hs_err_pid*
23+
# IDE metadata
24+
.project
25+
.settings/
26+
.classpath
27+
.idea/
28+
.vscode/

Gemfile

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

_config.yml

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

docs/.vitepress/config.mts

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
import { defineConfig } from 'vitepress'
2+
3+
export default defineConfig({
4+
title: 'DirectProject Java Reference Implementation',
5+
description: 'Documentation for the DirectProject Java Reference Implementation',
6+
base: '/',
7+
cleanUrls: true,
8+
9+
themeConfig: {
10+
logo: '/logo.png',
11+
siteTitle: false,
12+
13+
nav: [{ text: 'Overview', link: '/overview' }],
14+
15+
// Hand-maintained: adding a page in a component repo's docs/ folder also
16+
// requires a sidebar entry here in the hub repo — the two live in
17+
// different repos, so this coupling can't be enforced automatically.
18+
sidebar: [
19+
{ text: 'Overview', link: '/overview' },
20+
{
21+
text: 'Security And Trust Agent',
22+
link: '/agent/',
23+
collapsed: true,
24+
items: [
25+
{
26+
text: 'Development Guide',
27+
link: '/agent/dev-guide',
28+
collapsed: true,
29+
items: [
30+
{ text: 'Agent Architecture', link: '/agent/agent-architecture' },
31+
{ text: 'NHINDAgent Component', link: '/agent/nhind-agent' },
32+
{ text: 'Cryptographer Component', link: '/agent/cryptographer' },
33+
{ text: 'Certificate Resolvers', link: '/agent/cert-resolver' },
34+
{ text: 'Trust', link: '/agent/trust' },
35+
{ text: 'Mail Library', link: '/agent/mail-lib' }
36+
]
37+
},
38+
{
39+
text: 'Tools',
40+
link: '/agent/tools',
41+
collapsed: true,
42+
items: [
43+
{ text: 'Certificate Generation', link: '/agent/cert-gen' },
44+
{ text: 'DNS Certificate Dumper', link: '/agent/dns-dumper' },
45+
{ text: 'LDAP Certificate Dumper', link: '/agent/ldap-dumper' }
46+
]
47+
}
48+
]
49+
},
50+
{
51+
text: 'Gateway',
52+
link: '/gateway/',
53+
collapsed: true,
54+
items: [
55+
{
56+
text: 'Development Guide',
57+
link: '/gateway/dev-guide',
58+
collapsed: true,
59+
items: [
60+
{ text: 'Protocol Bridge Architecture', link: '/gateway/bridge-arch' },
61+
{ text: 'Writing A Protocol Bridge', link: '/gateway/write-a-bridge' }
62+
]
63+
},
64+
{
65+
text: 'Deployment Guide',
66+
link: '/gateway/dep-guide',
67+
collapsed: true,
68+
items: [
69+
{ text: 'SMTP Agent WebService Configuration', link: '/gateway/smtp-web-configuration' },
70+
{ text: 'Fined Grained Tuning', link: '/gateway/tuning' },
71+
{
72+
text: 'SMTP Protocol Implementation Deployment',
73+
link: '/gateway/smtp-deployments',
74+
collapsed: true,
75+
items: [
76+
{ text: 'Apache James Deployment', link: '/gateway/apache-james' },
77+
{ text: 'SpringBoot Deployement', link: '/gateway/spring-boot' },
78+
{ text: 'DNS Failure Generation Config', link: '/gateway/dsn-config' }
79+
]
80+
},
81+
{ text: 'PKCS11 Configuration', link: '/gateway/pkcs11-configuration' }
82+
]
83+
}
84+
]
85+
},
86+
{
87+
text: 'Message Monitoring',
88+
link: '/direct-msg-monitor/',
89+
collapsed: true,
90+
items: [
91+
{ text: 'Monitoring Overview', link: '/direct-msg-monitor/overview' },
92+
{
93+
text: 'Developers Guide',
94+
link: '/direct-msg-monitor/dev-guide',
95+
collapsed: true,
96+
items: [
97+
{ text: 'Message Monitor Architecture', link: '/direct-msg-monitor/mon-arch' },
98+
{ text: 'Correlation Component', link: '/direct-msg-monitor/mon-correlator' },
99+
{ text: 'Aggregator Component', link: '/direct-msg-monitor/aggregator' },
100+
{ text: 'Completion and Timeout Condition Components', link: '/direct-msg-monitor/comp-and-timeout' },
101+
{ text: 'Message Failure Generation', link: '/direct-msg-monitor/failure-gen' },
102+
{ text: 'Notification Duplication Checking', link: '/direct-msg-monitor/dup-checking' },
103+
{ text: 'Extending and Writing Custom Components', link: '/direct-msg-monitor/custom-components' }
104+
]
105+
},
106+
{
107+
text: 'Deployment Guide',
108+
link: '/direct-msg-monitor/dep-guide',
109+
collapsed: true,
110+
items: [
111+
{ text: 'Deployment and Configuration', link: '/direct-msg-monitor/dep-and-config' },
112+
{ text: 'Deployment Considerations', link: '/direct-msg-monitor/dep-considerations' }
113+
]
114+
}
115+
]
116+
},
117+
{
118+
text: 'Policy Enablement',
119+
link: '/direct-policy/',
120+
collapsed: true,
121+
items: [
122+
{
123+
text: 'Architecture Guide',
124+
link: '/direct-policy/arch-guide',
125+
collapsed: true,
126+
items: [
127+
{ text: 'Policy Engine Architecture', link: '/direct-policy/eng-arch' },
128+
{ text: 'Security and Trust (STA) Integration and Configuration', link: '/direct-policy/sta-int' }
129+
]
130+
},
131+
{
132+
text: 'Tools',
133+
link: '/direct-policy/tools',
134+
collapsed: true,
135+
items: [
136+
{ text: 'Simple Text Lexicon Version I', link: '/direct-policy/stext-lexicon' },
137+
{ text: 'Policy Builder', link: '/direct-policy/pol-builder' },
138+
{ text: 'Example Policies', link: '/direct-policy/examples' }
139+
]
140+
}
141+
]
142+
},
143+
{
144+
text: 'DNS Services',
145+
link: '/dns/',
146+
collapsed: true,
147+
items: [
148+
{ text: 'DNS Service Deployment', link: '/dns/dep-guide' },
149+
{ text: 'DNS Record Configuration', link: '/dns/dns-rec-config' },
150+
{ text: 'Integration With GoDaddy', link: '/dns/godaddy' }
151+
]
152+
},
153+
{
154+
text: 'BareMetal Assembly Project',
155+
link: '/direct-project-stock/',
156+
collapsed: true,
157+
items: [
158+
{
159+
text: 'Deployment Guide',
160+
link: '/direct-project-stock/dep-guide',
161+
collapsed: true,
162+
items: [
163+
{
164+
text: 'HISP Only Deployment (no source)',
165+
link: '/direct-project-stock/dep-hisp-only',
166+
collapsed: true,
167+
items: [
168+
{ text: 'Legacy HISP Deployment Model', link: '/direct-project-stock/legacy-deployment' },
169+
{ text: 'Cloud Native HISP Deployment Model', link: '/direct-project-stock/cloud-native-deployment' }
170+
]
171+
}
172+
]
173+
},
174+
{
175+
text: 'Deployment Options',
176+
link: '/direct-project-stock/imp-options',
177+
collapsed: true,
178+
items: [
179+
{ text: 'Configuration and Message Monitor Storage', link: '/direct-project-stock/config-store' },
180+
{ text: 'Single Use Certificates', link: '/direct-project-stock/single-use-certs' },
181+
{ text: 'Enhanced Private Key Security', link: '/direct-project-stock/enhanced-key-security' }
182+
]
183+
}
184+
]
185+
}
186+
],
187+
188+
search: {
189+
provider: 'local'
190+
},
191+
192+
outline: {
193+
level: [2, 3]
194+
}
195+
}
196+
})

0 commit comments

Comments
 (0)