upcontent 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/.github/workflows/ci.yml +61 -0
  2. package/.github/workflows/deploy.yml +59 -0
  3. package/.github/workflows/reusable-pages.yml +74 -0
  4. package/.upcontent/config.json +82 -0
  5. package/.upcontent/favicon.svg +4 -0
  6. package/.upcontent/logo.svg +6 -0
  7. package/.upcontent/portal.css +139 -0
  8. package/Makefile +29 -0
  9. package/README.md +114 -2
  10. package/SHOWCASE.mdx +163 -0
  11. package/astro.config.mjs +125 -0
  12. package/customization/config-json.md +92 -0
  13. package/customization/content.md +48 -0
  14. package/customization/environment.md +43 -0
  15. package/customization/index.md +33 -0
  16. package/customization/navigation.md +57 -0
  17. package/customization/site-identity.md +43 -0
  18. package/customization/theme.md +47 -0
  19. package/deployment/github-pages.md +46 -0
  20. package/deployment/index.md +24 -0
  21. package/deployment/static-hosts.md +34 -0
  22. package/getting-started/consumer-repository.md +156 -0
  23. package/getting-started/first-build.md +78 -0
  24. package/guides/authoring-content.md +105 -0
  25. package/guides/validate-your-site.md +53 -0
  26. package/package.json +33 -3
  27. package/scripts/upcontent-cli.mjs +113 -0
  28. package/scripts/verify-external-build.mjs +24 -0
  29. package/src/components/MermaidLoader.astro +290 -0
  30. package/src/components/PaletteShowcase.astro +122 -0
  31. package/src/components/StructuredDataCopy.astro +22 -0
  32. package/src/content/__mocks__/astro-content.ts +7 -0
  33. package/src/content/__mocks__/astro-loaders.ts +3 -0
  34. package/src/content.config.test.ts +163 -0
  35. package/src/content.config.ts +90 -0
  36. package/src/lib/content-blocklist.test.ts +47 -0
  37. package/src/lib/content-blocklist.ts +55 -0
  38. package/src/lib/doc-links.test.ts +62 -0
  39. package/src/lib/doc-links.ts +31 -0
  40. package/src/lib/mermaid-render.test.ts +42 -0
  41. package/src/lib/mermaid-render.ts +24 -0
  42. package/src/lib/portal-config.test.ts +143 -0
  43. package/src/lib/portal-config.ts +176 -0
  44. package/src/lib/product-identity.ts +2 -0
  45. package/src/lib/rehype-callouts.test.ts +69 -0
  46. package/src/lib/rehype-callouts.ts +61 -0
  47. package/src/lib/remark-strip-duplicate-title.test.ts +73 -0
  48. package/src/lib/remark-strip-duplicate-title.ts +37 -0
  49. package/src/lib/remark-structured-data-preview.test.ts +104 -0
  50. package/src/lib/remark-structured-data-preview.ts +66 -0
  51. package/src/lib/remark-wiki-links.test.ts +102 -0
  52. package/src/lib/remark-wiki-links.ts +110 -0
  53. package/src/lib/sidebar.test.ts +142 -0
  54. package/src/lib/sidebar.ts +113 -0
  55. package/src/lib/structured-data-tree.test.ts +75 -0
  56. package/src/lib/structured-data-tree.ts +55 -0
  57. package/src/overrides/Footer.astro +114 -0
  58. package/src/overrides/Head.astro +20 -0
  59. package/src/pages/index.astro +20 -0
  60. package/src/styles/callouts.css +29 -0
  61. package/src/styles/structured-data-preview.css +95 -0
  62. package/test-fixtures/external-consumer/.upcontent/config.json +26 -0
  63. package/test-fixtures/external-consumer/.upcontent/favicon.svg +4 -0
  64. package/test-fixtures/external-consumer/.upcontent/logo.svg +4 -0
  65. package/test-fixtures/external-consumer/.upcontent/theme.css +4 -0
  66. package/test-fixtures/external-consumer/.upcontent-renderer/README.md +3 -0
  67. package/test-fixtures/external-consumer/README.md +6 -0
  68. package/test-fixtures/external-consumer/forbidden.md +5 -0
  69. package/tsconfig.json +7 -0
  70. package/vitest.config.ts +18 -0
@@ -0,0 +1,26 @@
1
+ {
2
+ "site": {
3
+ "title": "External Consumer",
4
+ "description": "A fixture proving consumer-owned configuration.",
5
+ "logo": {
6
+ "src": ".upcontent/logo.svg",
7
+ "alt": "External Consumer"
8
+ },
9
+ "favicon": ".upcontent/favicon.svg"
10
+ },
11
+ "repo": {
12
+ "url": "https://github.com/example/external-consumer"
13
+ },
14
+ "theme": {
15
+ "customCss": [".upcontent/theme.css"]
16
+ },
17
+ "content": {
18
+ "titleField": "heading"
19
+ },
20
+ "navigation": {
21
+ "roots": ["README.md"],
22
+ "blocklist": {
23
+ "exact": ["forbidden.md"]
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
2
+ <rect width="64" height="64" rx="14" fill="#0f766e"/>
3
+ <path d="M18 20h28v8H18zm0 16h21v8H18z" fill="#fff"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72">
2
+ <rect width="56" height="56" x="8" y="8" rx="16" fill="#0f766e"/>
3
+ <path d="M20 24h32v8H20zm0 16h24v8H20z" fill="#fff"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ :root {
2
+ --sl-color-accent: #0f766e;
3
+ --sl-color-accent-high: #115e59;
4
+ }
@@ -0,0 +1,3 @@
1
+ # Renderer-only content
2
+
3
+ This sentinel must never become a published consumer page.
@@ -0,0 +1,6 @@
1
+ ---
2
+ heading: External Consumer Fixture
3
+ description: A minimal consumer repository used by the Upcontent build contract.
4
+ ---
5
+
6
+ This document proves that content, identity, assets, CSS, and title fields come from an external consumer repository.
@@ -0,0 +1,5 @@
1
+ ---
2
+ heading: This must not be published
3
+ ---
4
+
5
+ The external consumer blocklist should exclude this document.
package/tsconfig.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "astro/tsconfigs/strict",
3
+ "compilerOptions": {
4
+ "baseUrl": ".",
5
+ "paths": {}
6
+ }
7
+ }
@@ -0,0 +1,18 @@
1
+ import { defineConfig } from 'vitest/config'
2
+ import { fileURLToPath } from 'url'
3
+ import { resolve } from 'path'
4
+
5
+ const __dirname = fileURLToPath(new URL('.', import.meta.url))
6
+
7
+ export default defineConfig({
8
+ resolve: {
9
+ alias: {
10
+ 'astro:content': resolve(__dirname, 'src/content/__mocks__/astro-content.ts'),
11
+ 'astro/loaders': resolve(__dirname, 'src/content/__mocks__/astro-loaders.ts'),
12
+ },
13
+ },
14
+ test: {
15
+ include: ['src/**/*.test.ts'],
16
+ exclude: ['src/content/docs/**'],
17
+ },
18
+ })