@pagenary/publisher 2026.5.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.
- package/LICENSE +661 -0
- package/README.md +337 -0
- package/bin/pagenary.mjs +116 -0
- package/build.config.json +5 -0
- package/package.json +66 -0
- package/scripts/build-site.js +87 -0
- package/scripts/build-tenants.js +3569 -0
- package/scripts/build.js +99 -0
- package/scripts/generate-sections.js +41 -0
- package/scripts/lib/seo-generator.js +558 -0
- package/scripts/lint-content.js +62 -0
- package/scripts/seo-smoke.js +94 -0
- package/scripts/serve.js +142 -0
- package/site/app.js +1 -0
- package/site/index.html +57 -0
- package/site/lib/categories.js +1 -0
- package/site/lib/export.js +1 -0
- package/site/lib/manifest-utils.js +1 -0
- package/site/lib/router.js +1 -0
- package/site/lib/search.js +1 -0
- package/site/llms.txt +22 -0
- package/site/manifest.js +132 -0
- package/site/mermaid-init.js +1 -0
- package/site/pages/api.html +339 -0
- package/site/pages/architecture.html +303 -0
- package/site/pages/deployment.html +282 -0
- package/site/pages/developer-guide.html +157 -0
- package/site/pages/extending.html +135 -0
- package/site/pages/quickstart.html +318 -0
- package/site/pages/seo-strategy.html +121 -0
- package/site/pages/tenant-config.html +519 -0
- package/site/pages/welcome.html +116 -0
- package/site/robots.txt +10 -0
- package/site/sections/api.js +3 -0
- package/site/sections/architecture.js +3 -0
- package/site/sections/deployment.js +3 -0
- package/site/sections/developer-guide.js +3 -0
- package/site/sections/extending.js +3 -0
- package/site/sections/quickstart.js +3 -0
- package/site/sections/section-templates.js +1 -0
- package/site/sections/seo-strategy.js +3 -0
- package/site/sections/tenant-config.js +3 -0
- package/site/sections/welcome.js +3 -0
- package/site/seo.js +1 -0
- package/site/sitemap.xml +63 -0
- package/site/styles.css +1982 -0
- package/site/syntax-highlight.js +1 -0
- package/src/app.js +988 -0
- package/src/index.html +56 -0
- package/src/lib/categories.js +55 -0
- package/src/lib/export.js +195 -0
- package/src/lib/manifest-utils.js +69 -0
- package/src/lib/router.js +44 -0
- package/src/lib/search.js +151 -0
- package/src/manifest.js +246 -0
- package/src/mermaid-init.js +207 -0
- package/src/sections/archive-future-roadmap.js +7 -0
- package/src/sections/archive-initiative-alpha.js +7 -0
- package/src/sections/archive-milestone-records.js +7 -0
- package/src/sections/archive-timeline-overview.js +7 -0
- package/src/sections/core-technology-compliance-frameworks.js +7 -0
- package/src/sections/core-technology-coordination-model.js +7 -0
- package/src/sections/core-technology-data-definitions.js +7 -0
- package/src/sections/core-technology-hardware-integration.js +7 -0
- package/src/sections/core-technology-integrity-controls.js +7 -0
- package/src/sections/core-technology-network-topology.js +7 -0
- package/src/sections/core-technology-operator-requirements.js +7 -0
- package/src/sections/core-technology-overview.js +7 -0
- package/src/sections/core-technology-service-interfaces.js +7 -0
- package/src/sections/core-technology-synchronization-strategy.js +7 -0
- package/src/sections/core-technology-system-foundation.js +7 -0
- package/src/sections/developers-api-credentials.js +7 -0
- package/src/sections/developers-api-operations.js +7 -0
- package/src/sections/developers-api-reference.js +7 -0
- package/src/sections/developers-api-websocket.js +7 -0
- package/src/sections/developers-automation-blueprints.js +7 -0
- package/src/sections/developers-automation-modules.js +7 -0
- package/src/sections/developers-automation-patterns.js +7 -0
- package/src/sections/developers-deployment-playbook.js +7 -0
- package/src/sections/developers-overview.js +7 -0
- package/src/sections/developers-scheduling-patterns.js +7 -0
- package/src/sections/developers-sdk-go.js +7 -0
- package/src/sections/developers-sdk-javascript.js +7 -0
- package/src/sections/developers-sdk-python.js +7 -0
- package/src/sections/developers-sdk-rust.js +7 -0
- package/src/sections/developers-sdks.js +7 -0
- package/src/sections/developers-solution-examples.js +7 -0
- package/src/sections/developers-testing-framework.js +7 -0
- package/src/sections/getting-started-architecture-basics.js +7 -0
- package/src/sections/getting-started-introduction.js +7 -0
- package/src/sections/getting-started-performance-overview.js +7 -0
- package/src/sections/governance-community-initiatives.js +7 -0
- package/src/sections/governance-dao-overview.js +7 -0
- package/src/sections/governance-multi-token.js +7 -0
- package/src/sections/governance-overview.js +7 -0
- package/src/sections/governance-proposal-process.js +7 -0
- package/src/sections/governance-proposals.js +7 -0
- package/src/sections/governance-structure.js +7 -0
- package/src/sections/governance-token-distribution.js +7 -0
- package/src/sections/governance-treasury.js +7 -0
- package/src/sections/operations-environment-prep.js +7 -0
- package/src/sections/operations-getting-started.js +7 -0
- package/src/sections/operations-incentives-guide.js +7 -0
- package/src/sections/operations-incentives-strategies.js +7 -0
- package/src/sections/operations-incentives.js +7 -0
- package/src/sections/operations-infrastructure.js +7 -0
- package/src/sections/operations-monitoring.js +7 -0
- package/src/sections/operations-overview.js +7 -0
- package/src/sections/operations-performance.js +7 -0
- package/src/sections/operations-power-infrastructure.js +7 -0
- package/src/sections/operations-setup-guide.js +7 -0
- package/src/sections/operations-sync-setup.js +7 -0
- package/src/sections/products-flagship-solution.js +7 -0
- package/src/sections/products-solution-library.js +7 -0
- package/src/sections/resources-brand-assets.js +7 -0
- package/src/sections/resources-faq.js +7 -0
- package/src/sections/resources-glossary.js +7 -0
- package/src/sections/resources-research-papers.js +7 -0
- package/src/sections/section-templates.js +873 -0
- package/src/sections/security-audits.js +7 -0
- package/src/sections/security-best-practices.js +7 -0
- package/src/sections/security-bug-bounty.js +7 -0
- package/src/sections/security-incident-response.js +7 -0
- package/src/sections/security-overview.js +7 -0
- package/src/sections/technical-architecture.js +7 -0
- package/src/sections/technical-whitepaper.js +7 -0
- package/src/sections/tutorial-automation-bot.js +7 -0
- package/src/sections/tutorial-build-first-integration.js +7 -0
- package/src/sections/tutorial-deploy-automation.js +7 -0
- package/src/sections/tutorial-event-driven-experience.js +7 -0
- package/src/sections/tutorial-operations-onboarding.js +7 -0
- package/src/sections/tutorial-systems-integration.js +7 -0
- package/src/sections/tutorials-overview.js +7 -0
- package/src/sections/use-case-connected-devices.js +7 -0
- package/src/sections/use-case-digital-auctions.js +7 -0
- package/src/sections/use-case-financial-automation.js +7 -0
- package/src/sections/use-case-interactive-media.js +7 -0
- package/src/sections/use-case-realtime-execution.js +7 -0
- package/src/sections/use-case-research-analytics.js +7 -0
- package/src/sections/use-case-supply-operations.js +7 -0
- package/src/sections/use-cases-overview.js +7 -0
- package/src/sections/welcome-overview.js +7 -0
- package/src/seo.js +90 -0
- package/src/styles.css +1982 -0
- package/src/syntax-highlight.js +90 -0
- package/tenants.json.example +68 -0
- package/tenants.schema.json +231 -0
package/src/seo.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
const DEFAULT_TITLE = 'Docs Toolkit';
|
|
2
|
+
const DESCRIPTION_TAG = 'meta[name="description"]';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Ensure a meta tag exists with the given selector, creating it if needed.
|
|
6
|
+
* @param {string} selector - CSS selector for the meta tag
|
|
7
|
+
* @param {Function} creator - Function that creates the element if not found
|
|
8
|
+
* @returns {HTMLElement} The meta tag element
|
|
9
|
+
*/
|
|
10
|
+
function ensureMeta(selector, creator) {
|
|
11
|
+
let el = document.querySelector(selector);
|
|
12
|
+
if (!el) {
|
|
13
|
+
el = creator();
|
|
14
|
+
document.head.appendChild(el);
|
|
15
|
+
}
|
|
16
|
+
return el;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Set or create a meta tag by property attribute (for og: and twitter: tags)
|
|
21
|
+
* @param {string} attr - Attribute name ('property' or 'name')
|
|
22
|
+
* @param {string} value - Attribute value (e.g., 'og:title')
|
|
23
|
+
* @param {string} content - Content value
|
|
24
|
+
*/
|
|
25
|
+
function setMeta(attr, value, content) {
|
|
26
|
+
const el = ensureMeta(
|
|
27
|
+
`meta[${attr}="${value}"]`,
|
|
28
|
+
() => {
|
|
29
|
+
const meta = document.createElement('meta');
|
|
30
|
+
meta.setAttribute(attr, value);
|
|
31
|
+
return meta;
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
el.setAttribute('content', content);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Set or create a link tag by rel attribute
|
|
39
|
+
* @param {string} rel - Rel value (e.g., 'canonical')
|
|
40
|
+
* @param {string} href - Href value
|
|
41
|
+
*/
|
|
42
|
+
function setLink(rel, href) {
|
|
43
|
+
const el = ensureMeta(
|
|
44
|
+
`link[rel="${rel}"]`,
|
|
45
|
+
() => {
|
|
46
|
+
const link = document.createElement('link');
|
|
47
|
+
link.setAttribute('rel', rel);
|
|
48
|
+
return link;
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
el.setAttribute('href', href);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Update all SEO meta tags for the current section.
|
|
56
|
+
* Called on every route change to keep meta tags in sync with content.
|
|
57
|
+
*
|
|
58
|
+
* @param {object} opts
|
|
59
|
+
* @param {string} [opts.title] - Page title
|
|
60
|
+
* @param {string} [opts.description] - Page description
|
|
61
|
+
* @param {string} [opts.siteTitle] - Site title (overrides DEFAULT_TITLE)
|
|
62
|
+
* @param {string} [opts.siteUrl] - Base URL for canonical/og:url (e.g., 'https://docs.aiwg.io')
|
|
63
|
+
* @param {string} [opts.sectionId] - Section ID for canonical URL hash fragment
|
|
64
|
+
*/
|
|
65
|
+
export function updateMetaTags({ title, description, siteTitle, siteUrl, sectionId }) {
|
|
66
|
+
const brand = siteTitle || DEFAULT_TITLE;
|
|
67
|
+
const pageTitle = title ? `${title} · ${brand}` : brand;
|
|
68
|
+
document.title = pageTitle;
|
|
69
|
+
|
|
70
|
+
// Description
|
|
71
|
+
const desc = description || '';
|
|
72
|
+
setMeta('name', 'description', desc);
|
|
73
|
+
|
|
74
|
+
// Open Graph
|
|
75
|
+
setMeta('property', 'og:title', title || brand);
|
|
76
|
+
setMeta('property', 'og:description', desc);
|
|
77
|
+
setMeta('property', 'og:type', 'article');
|
|
78
|
+
|
|
79
|
+
// Twitter Card
|
|
80
|
+
setMeta('name', 'twitter:card', 'summary');
|
|
81
|
+
setMeta('name', 'twitter:title', title || brand);
|
|
82
|
+
setMeta('name', 'twitter:description', desc);
|
|
83
|
+
|
|
84
|
+
// Canonical URL and og:url
|
|
85
|
+
if (siteUrl) {
|
|
86
|
+
const canonical = sectionId ? `${siteUrl}/#${sectionId}` : siteUrl;
|
|
87
|
+
setLink('canonical', canonical);
|
|
88
|
+
setMeta('property', 'og:url', canonical);
|
|
89
|
+
}
|
|
90
|
+
}
|