Skip to content

Commit 19817b1

Browse files
committed
Mount component docs under /docs/<slug>/ to avoid Pages URL collision
Each component repo (agent, gateway, etc.) has its own GitHub Pages site registered at directprojectjavari.github.io/<reponame>/, and this org's account can't fully disable that via the API or the Settings UI. Since that path is permanently claimed at the platform level regardless of what this site builds, mounting the hub's own component sections there was unreachable (404s on every component subpage, only / and /overview worked). Uses VitePress's `rewrites` config to remap docs/<slug>/* to /docs/<slug>/* routes without touching fetch-docs.mjs or requiring any further changes to the component repos' own (now largely orphaned) Pages sites.
1 parent a0c11ea commit 19817b1

3 files changed

Lines changed: 79 additions & 65 deletions

File tree

docs/.vitepress/config.mts

Lines changed: 72 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,20 @@ export default defineConfig({
66
base: '/',
77
cleanUrls: true,
88

9+
// Each component repo's own GitHub Pages site (e.g. directprojectjavari.github.io/agent/)
10+
// can't be fully disabled via this org's GitHub settings, so it permanently shadows that
11+
// exact path at the root domain. Mount component docs under /docs/<slug>/ instead to avoid
12+
// the collision — fetch-docs.mjs still writes them to docs/<slug>/ on disk, this just remaps
13+
// the output route.
14+
rewrites: {
15+
'agent/:page': 'docs/agent/:page',
16+
'gateway/:page': 'docs/gateway/:page',
17+
'direct-msg-monitor/:page': 'docs/direct-msg-monitor/:page',
18+
'direct-policy/:page': 'docs/direct-policy/:page',
19+
'dns/:page': 'docs/dns/:page',
20+
'direct-project-stock/:page': 'docs/direct-project-stock/:page'
21+
},
22+
923
themeConfig: {
1024
logo: '/logo.png',
1125
siteTitle: false,
@@ -19,166 +33,166 @@ export default defineConfig({
1933
{ text: 'Overview', link: '/overview' },
2034
{
2135
text: 'Security And Trust Agent',
22-
link: '/agent/',
36+
link: '/docs/agent/',
2337
collapsed: true,
2438
items: [
2539
{
2640
text: 'Development Guide',
27-
link: '/agent/dev-guide',
41+
link: '/docs/agent/dev-guide',
2842
collapsed: true,
2943
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' }
44+
{ text: 'Agent Architecture', link: '/docs/agent/agent-architecture' },
45+
{ text: 'NHINDAgent Component', link: '/docs/agent/nhind-agent' },
46+
{ text: 'Cryptographer Component', link: '/docs/agent/cryptographer' },
47+
{ text: 'Certificate Resolvers', link: '/docs/agent/cert-resolver' },
48+
{ text: 'Trust', link: '/docs/agent/trust' },
49+
{ text: 'Mail Library', link: '/docs/agent/mail-lib' }
3650
]
3751
},
3852
{
3953
text: 'Tools',
40-
link: '/agent/tools',
54+
link: '/docs/agent/tools',
4155
collapsed: true,
4256
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' }
57+
{ text: 'Certificate Generation', link: '/docs/agent/cert-gen' },
58+
{ text: 'DNS Certificate Dumper', link: '/docs/agent/dns-dumper' },
59+
{ text: 'LDAP Certificate Dumper', link: '/docs/agent/ldap-dumper' }
4660
]
4761
}
4862
]
4963
},
5064
{
5165
text: 'Gateway',
52-
link: '/gateway/',
66+
link: '/docs/gateway/',
5367
collapsed: true,
5468
items: [
5569
{
5670
text: 'Development Guide',
57-
link: '/gateway/dev-guide',
71+
link: '/docs/gateway/dev-guide',
5872
collapsed: true,
5973
items: [
60-
{ text: 'Protocol Bridge Architecture', link: '/gateway/bridge-arch' },
61-
{ text: 'Writing A Protocol Bridge', link: '/gateway/write-a-bridge' }
74+
{ text: 'Protocol Bridge Architecture', link: '/docs/gateway/bridge-arch' },
75+
{ text: 'Writing A Protocol Bridge', link: '/docs/gateway/write-a-bridge' }
6276
]
6377
},
6478
{
6579
text: 'Deployment Guide',
66-
link: '/gateway/dep-guide',
80+
link: '/docs/gateway/dep-guide',
6781
collapsed: true,
6882
items: [
69-
{ text: 'SMTP Agent WebService Configuration', link: '/gateway/smtp-web-configuration' },
70-
{ text: 'Fined Grained Tuning', link: '/gateway/tuning' },
83+
{ text: 'SMTP Agent WebService Configuration', link: '/docs/gateway/smtp-web-configuration' },
84+
{ text: 'Fined Grained Tuning', link: '/docs/gateway/tuning' },
7185
{
7286
text: 'SMTP Protocol Implementation Deployment',
73-
link: '/gateway/smtp-deployments',
87+
link: '/docs/gateway/smtp-deployments',
7488
collapsed: true,
7589
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' }
90+
{ text: 'Apache James Deployment', link: '/docs/gateway/apache-james' },
91+
{ text: 'SpringBoot Deployement', link: '/docs/gateway/spring-boot' },
92+
{ text: 'DNS Failure Generation Config', link: '/docs/gateway/dsn-config' }
7993
]
8094
},
81-
{ text: 'PKCS11 Configuration', link: '/gateway/pkcs11-configuration' }
95+
{ text: 'PKCS11 Configuration', link: '/docs/gateway/pkcs11-configuration' }
8296
]
8397
}
8498
]
8599
},
86100
{
87101
text: 'Message Monitoring',
88-
link: '/direct-msg-monitor/',
102+
link: '/docs/direct-msg-monitor/',
89103
collapsed: true,
90104
items: [
91-
{ text: 'Monitoring Overview', link: '/direct-msg-monitor/overview' },
105+
{ text: 'Monitoring Overview', link: '/docs/direct-msg-monitor/overview' },
92106
{
93107
text: 'Developers Guide',
94-
link: '/direct-msg-monitor/dev-guide',
108+
link: '/docs/direct-msg-monitor/dev-guide',
95109
collapsed: true,
96110
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' }
111+
{ text: 'Message Monitor Architecture', link: '/docs/direct-msg-monitor/mon-arch' },
112+
{ text: 'Correlation Component', link: '/docs/direct-msg-monitor/mon-correlator' },
113+
{ text: 'Aggregator Component', link: '/docs/direct-msg-monitor/aggregator' },
114+
{ text: 'Completion and Timeout Condition Components', link: '/docs/direct-msg-monitor/comp-and-timeout' },
115+
{ text: 'Message Failure Generation', link: '/docs/direct-msg-monitor/failure-gen' },
116+
{ text: 'Notification Duplication Checking', link: '/docs/direct-msg-monitor/dup-checking' },
117+
{ text: 'Extending and Writing Custom Components', link: '/docs/direct-msg-monitor/custom-components' }
104118
]
105119
},
106120
{
107121
text: 'Deployment Guide',
108-
link: '/direct-msg-monitor/dep-guide',
122+
link: '/docs/direct-msg-monitor/dep-guide',
109123
collapsed: true,
110124
items: [
111-
{ text: 'Deployment and Configuration', link: '/direct-msg-monitor/dep-and-config' },
112-
{ text: 'Deployment Considerations', link: '/direct-msg-monitor/dep-considerations' }
125+
{ text: 'Deployment and Configuration', link: '/docs/direct-msg-monitor/dep-and-config' },
126+
{ text: 'Deployment Considerations', link: '/docs/direct-msg-monitor/dep-considerations' }
113127
]
114128
}
115129
]
116130
},
117131
{
118132
text: 'Policy Enablement',
119-
link: '/direct-policy/',
133+
link: '/docs/direct-policy/',
120134
collapsed: true,
121135
items: [
122136
{
123137
text: 'Architecture Guide',
124-
link: '/direct-policy/arch-guide',
138+
link: '/docs/direct-policy/arch-guide',
125139
collapsed: true,
126140
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' }
141+
{ text: 'Policy Engine Architecture', link: '/docs/direct-policy/eng-arch' },
142+
{ text: 'Security and Trust (STA) Integration and Configuration', link: '/docs/direct-policy/sta-int' }
129143
]
130144
},
131145
{
132146
text: 'Tools',
133-
link: '/direct-policy/tools',
147+
link: '/docs/direct-policy/tools',
134148
collapsed: true,
135149
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' }
150+
{ text: 'Simple Text Lexicon Version I', link: '/docs/direct-policy/stext-lexicon' },
151+
{ text: 'Policy Builder', link: '/docs/direct-policy/pol-builder' },
152+
{ text: 'Example Policies', link: '/docs/direct-policy/examples' }
139153
]
140154
}
141155
]
142156
},
143157
{
144158
text: 'DNS Services',
145-
link: '/dns/',
159+
link: '/docs/dns/',
146160
collapsed: true,
147161
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' }
162+
{ text: 'DNS Service Deployment', link: '/docs/dns/dep-guide' },
163+
{ text: 'DNS Record Configuration', link: '/docs/dns/dns-rec-config' },
164+
{ text: 'Integration With GoDaddy', link: '/docs/dns/godaddy' }
151165
]
152166
},
153167
{
154168
text: 'BareMetal Assembly Project',
155-
link: '/direct-project-stock/',
169+
link: '/docs/direct-project-stock/',
156170
collapsed: true,
157171
items: [
158172
{
159173
text: 'Deployment Guide',
160-
link: '/direct-project-stock/dep-guide',
174+
link: '/docs/direct-project-stock/dep-guide',
161175
collapsed: true,
162176
items: [
163177
{
164178
text: 'HISP Only Deployment (no source)',
165-
link: '/direct-project-stock/dep-hisp-only',
179+
link: '/docs/direct-project-stock/dep-hisp-only',
166180
collapsed: true,
167181
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' }
182+
{ text: 'Legacy HISP Deployment Model', link: '/docs/direct-project-stock/legacy-deployment' },
183+
{ text: 'Cloud Native HISP Deployment Model', link: '/docs/direct-project-stock/cloud-native-deployment' }
170184
]
171185
}
172186
]
173187
},
174188
{
175189
text: 'Deployment Options',
176-
link: '/direct-project-stock/imp-options',
190+
link: '/docs/direct-project-stock/imp-options',
177191
collapsed: true,
178192
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' }
193+
{ text: 'Configuration and Message Monitor Storage', link: '/docs/direct-project-stock/config-store' },
194+
{ text: 'Single Use Certificates', link: '/docs/direct-project-stock/single-use-certs' },
195+
{ text: 'Enhanced Private Key Security', link: '/docs/direct-project-stock/enhanced-key-security' }
182196
]
183197
}
184198
]

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ title: The DirectProject
1111
<p class="home-hero-tagline">Open source reference implementation of the Direct specifications</p>
1212
<div class="home-hero-actions">
1313
<a class="home-hero-btn brand" href="/overview">Overview</a>
14-
<a class="home-hero-btn alt" href="/agent/">Security And Trust Agent</a>
14+
<a class="home-hero-btn alt" href="/docs/agent/">Security And Trust Agent</a>
1515
</div>
1616
</div>

docs/overview.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ The reference implementation adopts a modular design for easy asset reuse and ex
2727
### Java Components
2828

2929
* [Commons Library](http://api.directproject.info/direct-common/6.0/)
30-
* [Security And Trust Agent](/agent/)
31-
* [Gateway](/gateway/)
32-
* [Message Monitoring](/direct-msg-monitor/)
33-
* [Policy Enablement](/direct-policy/)
34-
* [DNS Services](/dns/)
35-
* [BareMetal Assembly Project](/direct-project-stock/)
30+
* [Security And Trust Agent](/docs/agent/)
31+
* [Gateway](/docs/gateway/)
32+
* [Message Monitoring](/docs/direct-msg-monitor/)
33+
* [Policy Enablement](/docs/direct-policy/)
34+
* [DNS Services](/docs/dns/)
35+
* [BareMetal Assembly Project](/docs/direct-project-stock/)

0 commit comments

Comments
 (0)