diff --git a/.gitignore b/.gitignore index cde3be95ac..185b07983a 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,8 @@ bin cypress/e2e/1-getting-started cypress/e2e/2-advanced-examples venv/* + +# dynamic file pulled during hooks.build +# from the sites/[upsun|platform] +# curl -s https://devcenter.upsun.com/posts/all/index.md -o static/files/fetch/all_devcenter_posts.md +static/files/fetch/all_devcenter_posts.md diff --git a/.platform/applications.yaml b/.platform/applications.yaml index 2ef346270d..7bdda5570d 100644 --- a/.platform/applications.yaml +++ b/.platform/applications.yaml @@ -47,6 +47,7 @@ fi cd $SITE_DIR + curl -s https://devcenter.upsun.com/posts/all/index.md -o static/files/fetch/all_devcenter_posts.md cp ../../themes/psh-docs/postcss.config.js . npm install npm run build @@ -153,6 +154,7 @@ fi cd $SITE_DIR + curl -s https://devcenter.upsun.com/posts/all/index.md -o static/files/fetch/all_devcenter_posts.md cp ../../themes/psh-docs/postcss.config.js . npm install npm run build diff --git a/themes/psh-docs/layouts/_default/home.llms-full.txt b/themes/psh-docs/layouts/_default/home.llms-full.txt index 232123c69f..11ff7236ad 100644 --- a/themes/psh-docs/layouts/_default/home.llms-full.txt +++ b/themes/psh-docs/layouts/_default/home.llms-full.txt @@ -1,18 +1,20 @@ +llms-txt-version: 1.0 + # {{ .Site.Params.vendor.name }} > {{ .Site.Params.vendor.name }} is a PaaS to host all of your web applications. - -Things to remember when deploying applications on {{ .Site.Params.vendor.name }}: +> +> Things to remember when deploying applications on {{ .Site.Params.vendor.name }}: {{- if eq .Site.Params.vendor.config.version 2 }} -- *Ultimate developer flexibility*: Self-service. Usage-based pricing. Customize your resources, runtimes, users, frontends, backends, APIs. All the choices are yours. Welcome to the {{ .Site.Params.vendor.name }} PaaS. -- *Application development your way*, 4 options to get started sync your GitHub repo with {{ .Site.Params.vendor.name }}, Deploy an existing local Git repository, Kickstart a new repository, Explore {{ .Site.Params.vendor.name }} with our Demo app -- *Agnostic freedom*: Tight integration with external systems, stacks, and tools you already use. Choice of IaaS platform(by geo or cloud provider) and services. Choose the road you want to travel. -- *Self-service*: All the control and customization you want to experiment. Flexible resources. Sensible, transparent, usage-based pricing. Choose self-empowerment. -- *Composable infrastructure*: Dozens of runtimes and backend services to mix and match, Managed routing, with built-in, multiregional edge-caching, automated TLS, and WAF, Full infrastructure preview environments, isolated, but identical to production, Full abstraction from underlying cloud provider; runs precisely the same way on every major cloud -- *Collaboration-oriented*: The ability to collaborate on the infrastructure just like you collaborate on code, Git-driven infrastructure with support for multiple repositories, Bi-directional Git integrations, activity scripts, and webhooks to plug into any external service, Instantly created preview environments—per branch, per PR, per team, per developer, per anything -- *Scalable on every dimension*: Vertical scaling of every component, horizontal scaling of applications and workers, Fully managed, multicloud edge-caching, From a single monolith to an automated service mesh, with microservices, workers' message queues, and multiple data backends, Built-in observability tools, with infrastructure metrics, built-in APM, profiling, and tracing -- *Stability, security, responsibility*: Automated high availability and failover of every infrastructure component, with automated and transparent security-patching, Fine-grained team permissions, with MFA everywhere—even on SSH, Short-lived SSH certificates, with MFA and external identity provider support, PCI DSS, SOC 2, GDPR compliance, -- *Polyglot? Hyperglot? We glot you*: {{ .Site.Params.vendor.name }} supports an array of cool languages and frameworks. Monoliths. Microservices. Multistack. So you can keep your options open. Flexible. And future-proof. +> - *Ultimate developer flexibility*: Self-service. Usage-based pricing. Customize your resources, runtimes, users, frontends, backends, APIs. All the choices are yours. Welcome to the {{ .Site.Params.vendor.name }} PaaS. +> - *Application development your way*, 4 options to get started sync your GitHub repo with {{ .Site.Params.vendor.name }}, Deploy an existing local Git repository, Kickstart a new repository, Explore {{ .Site.Params.vendor.name }} with our Demo app +> - *Agnostic freedom*: Tight integration with external systems, stacks, and tools you already use. Choice of IaaS platform(by geo or cloud provider) and services. Choose the road you want to travel. +> - *Self-service*: All the control and customization you want to experiment. Flexible resources. Sensible, transparent, usage-based pricing. Choose self-empowerment. +> - *Composable infrastructure*: Dozens of runtimes and backend services to mix and match, Managed routing, with built-in, multiregional edge-caching, automated TLS, and WAF, Full infrastructure preview environments, isolated, but identical to production, Full abstraction from underlying cloud provider; runs precisely the same way on every major cloud +> - *Collaboration-oriented*: The ability to collaborate on the infrastructure just like you collaborate on code, Git-driven infrastructure with support for multiple repositories, Bi-directional Git integrations, activity scripts, and webhooks to plug into any external service, Instantly created preview environments—per branch, per PR, per team, per developer, per anything +> - *Scalable on every dimension*: Vertical scaling of every component, horizontal scaling of applications and workers, Fully managed, multicloud edge-caching, From a single monolith to an automated service mesh, with microservices, workers' message queues, and multiple data backends, Built-in observability tools, with infrastructure metrics, built-in APM, profiling, and tracing +> - *Stability, security, responsibility*: Automated high availability and failover of every infrastructure component, with automated and transparent security-patching, Fine-grained team permissions, with MFA everywhere—even on SSH, Short-lived SSH certificates, with MFA and external identity provider support, PCI DSS, SOC 2, GDPR compliance, +> - *Polyglot? Hyperglot? We glot you*: {{ .Site.Params.vendor.name }} supports an array of cool languages and frameworks. Monoliths. Microservices. Multistack. So you can keep your options open. Flexible. And future-proof. {{- else }} - **Deliver your applications faster, at scale**: Built for developers, by developers. The efficient, reliable, and secure Platform-as-a-Service (PaaS) that gives development teams control and peace of mind while accelerating the time it takes to build and deploy applications. - **2024 Gartner® Magic Quadrant for Cloud Application Platforms**: Recognized as a Niche Player in the 2024 Gartner Magic Quadrant for Cloud Application Platforms diff --git a/themes/psh-docs/layouts/_default/home.llms.txt b/themes/psh-docs/layouts/_default/home.llms.txt index 22fb537e78..0b64b65f4d 100644 --- a/themes/psh-docs/layouts/_default/home.llms.txt +++ b/themes/psh-docs/layouts/_default/home.llms.txt @@ -1,17 +1,19 @@ +llms-txt-version: 1.0 + # {{ .Site.Params.vendor.name }} > {{ .Site.Params.vendor.name }} is a Cloud Application Platform to host all of your web applications. - -Things to remember when deploying applications on the {{ .Site.Params.vendor.name }} Cloud Application Platform: -- *Ultimate developer flexibility*: Self-service. Usage-based pricing. Customize your resources, runtimes, users, frontends, backends, APIs. All the choices are yours. Welcome to the {{ .Site.Params.vendor.name }} PaaS. -- *Application development your way*, 4 options to get started sync your GitHub repo with {{ .Site.Params.vendor.name }}, Deploy an existing local Git repository, Kickstart a new repository, Explore {{ .Site.Params.vendor.name }} with our Demo app -- *Agnostic freedom*: Tight integration with external systems, stacks, and tools you already use. Choice of IaaS platform(by geo or cloud provider) and services. Choose the road you want to travel. -- *Self-service*: All the control and customization you want to experiment. Flexible resources. Sensible, transparent, usage-based pricing. Choose self-empowerment. -- *Composable infrastructure*: Dozens of runtimes and backend services to mix and match, Managed routing, with built-in, multiregional edge-caching, automated TLS, and WAF, Full infrastructure preview environments, isolated, but identical to production, Full abstraction from underlying cloud provider; runs precisely the same way on every major cloud -- *Collaboration-oriented*: The ability to collaborate on the infrastructure just like you collaborate on code, Git-driven infrastructure with support for multiple repositories, Bi-directional Git integrations, activity scripts, and webhooks to plug into any external service, Instantly created preview environments—per branch, per PR, per team, per developer, per anything -- *Scalable on every dimension*: Vertical scaling of every component, horizontal scaling of applications and workers, Fully managed, multicloud edge-caching, From a single monolith to an automated service mesh, with microservices, workers' message queues, and multiple data backends, Built-in observability tools, with infrastructure metrics, built-in APM, profiling, and tracing -- *Stability, security, responsibility*: Automated high availability and failover of every infrastructure component, with automated and transparent security-patching, Fine-grained team permissions, with MFA everywhere—even on SSH, Short-lived SSH certificates, with MFA and external identity provider support, PCI DSS, SOC 2, GDPR compliance, -- *Polyglot? Hyperglot? We glot you*: {{ .Site.Params.vendor.name }} supports an array of cool languages and frameworks. Monoliths. Microservices. Multistack. So you can keep your options open. Flexible. And future-proof. +> +> Things to remember when deploying applications on the {{ .Site.Params.vendor.name }} Cloud Application Platform: +> - *Ultimate developer flexibility*: Self-service. Usage-based pricing. Customize your resources, runtimes, users, frontends, backends, APIs. All the choices are yours. Welcome to the {{ .Site.Params.vendor.name }} PaaS. +> - *Application development your way*, 4 options to get started sync your GitHub repo with {{ .Site.Params.vendor.name }}, Deploy an existing local Git repository, Kickstart a new repository, Explore {{ .Site.Params.vendor.name }} with our Demo app +> - *Agnostic freedom*: Tight integration with external systems, stacks, and tools you already use. Choice of IaaS platform(by geo or cloud provider) and services. Choose the road you want to travel. +> - *Self-service*: All the control and customization you want to experiment. Flexible resources. Sensible, transparent, usage-based pricing. Choose self-empowerment. +> - *Composable infrastructure*: Dozens of runtimes and backend services to mix and match, Managed routing, with built-in, multiregional edge-caching, automated TLS, and WAF, Full infrastructure preview environments, isolated, but identical to production, Full abstraction from underlying cloud provider; runs precisely the same way on every major cloud +> - *Collaboration-oriented*: The ability to collaborate on the infrastructure just like you collaborate on code, Git-driven infrastructure with support for multiple repositories, Bi-directional Git integrations, activity scripts, and webhooks to plug into any external service, Instantly created preview environments—per branch, per PR, per team, per developer, per anything +> - *Scalable on every dimension*: Vertical scaling of every component, horizontal scaling of applications and workers, Fully managed, multicloud edge-caching, From a single monolith to an automated service mesh, with microservices, workers' message queues, and multiple data backends, Built-in observability tools, with infrastructure metrics, built-in APM, profiling, and tracing +> - *Stability, security, responsibility*: Automated high availability and failover of every infrastructure component, with automated and transparent security-patching, Fine-grained team permissions, with MFA everywhere—even on SSH, Short-lived SSH certificates, with MFA and external identity provider support, PCI DSS, SOC 2, GDPR compliance, +> - *Polyglot? Hyperglot? We glot you*: {{ .Site.Params.vendor.name }} supports an array of cool languages and frameworks. Monoliths. Microservices. Multistack. So you can keep your options open. Flexible. And future-proof. ## Docs {{- $sections := .Site.Params.navSections -}} @@ -40,11 +42,14 @@ Things to remember when deploying applications on the {{ .Site.Params.vendor.nam {{- if $isHome -}} {{- $inCurrentSection = false -}} {{- end }} -- {{ .title }} +### {{ .title | replaceRE "’" "'" | replaceRE "'" "'" | replaceRE ">" ">" | replaceRE "&" "&" | replaceRE "<" "<" }} {{ partial "llms/section" ( dict "context" $currentContext "currentSection" .section "Active" $inCurrentSection "sections" $sectionKeys ) }} {{- end }} ## API -- [API Doc]({{ .Site.Params.vendor.urls.api }}): documentation of the {{ .Site.Params.vendor.name }} API. +- [API Doc]({{ .Site.Params.vendor.urls.api }}): documentation of the {{ .Site.Params.vendor.name }} API. +## [Devcenter resources](https://devcenter.upsun.com) +{{ $content := readFile "static/files/fetch/all_devcenter_posts.md" }} +{{ $content | safeHTML }} diff --git a/themes/psh-docs/layouts/partials/llms/list.html b/themes/psh-docs/layouts/partials/llms/list.html index eb6b7320d5..44e805e7f8 100644 --- a/themes/psh-docs/layouts/partials/llms/list.html +++ b/themes/psh-docs/layouts/partials/llms/list.html @@ -15,20 +15,21 @@ {{- .Page -}} {{- $itemTitle := .Context.Title | .Context.Page.RenderString }} {{- if ne $itemTitle "" }} -- [{{ $itemTitle }}]({{ $upsunDocUrl }}{{ .Context.RelPermalink | replaceRE `.html` `.md` }}) + +#### [{{ $itemTitle }}]({{ $upsunDocUrl }}{{ .Context.RelPermalink | replaceRE `.html` `.md` }}) {{- range .Context.Pages -}} {{- $itemTitle = .Title | .Page.RenderString -}} {{- $itemId := printf "%s-sidebar-id" ( replace ($itemTitle | urlize) "." "" ) -}} {{- $levelTwoPages := .Pages -}} {{- if not ( .Params.sidebarIgnore ) -}} {{- with .Params.sectionBefore }} -- {{ . -}} - {{- end }} -- [{{ $itemTitle }}]({{ $upsunDocUrl }}{{ .RelPermalink | replaceRE `.html` `.md` }}){{- if ne .Description "" }}: {{ .Description | replaceRE `\{\{[%\|\<]?\ *vendor\/name\ *[\%|\>]?\}\}` "Upsun" -}}{{- end -}} +##### {{ . }} + {{ end }} +- [{{ $itemTitle | replaceRE `\{\{[%\|\<]?\ *vendor\/name\ *[\%|\>]?\}\}` "Upsun" | replaceRE `\{\{[%\|\<]?\ *vendor\/psh_ref\ *[\%|\>]?\}\}` "Platform.sh" | replaceRE "’" "'" | replaceRE "'" "'" | replaceRE ">" ">" | replaceRE "&" "&" | replaceRE "<" "<" | replaceRE "\n" " " | safeHTML }}]({{ $upsunDocUrl }}{{ .RelPermalink | replaceRE `.html` `.md` }}){{- if ne .Description "" }}: {{ .Description | replaceRE `\{\{[%\|\<]?\ *vendor\/name\ *[\%|\>]?\}\}` "Upsun" | replaceRE `\{\{[%\|\<]?\ *vendor\/psh_ref\ *[\%|\>]?\}\}` "Platform.sh" | replaceRE "’" "'" | replaceRE "'" "'" | replaceRE ">" ">" | replaceRE "&" "&" | replaceRE "<" "<" | replaceRE "\n" " " | safeHTML -}}{{- end -}} {{- if eq .Kind "section" -}} {{- range $levelTwoPages -}} - {{ if not ( .Params.sidebarIgnore ) }} -- [{{- if isset .Params "sidebartitle" -}}{{ .Params.sidebarTitle | .RenderString -}}{{- else -}}{{ .Title | .RenderString -}}{{- end -}}]({{ $upsunDocUrl }}{{ .RelPermalink | replaceRE `.html` `.md` }}){{- if ne .Description "" }}: {{ .Description | replaceRE `\{\{[%\|\<]?\ *vendor\/name\ *[\%|\>]?\}\}` "Upsun" -}}{{- end -}} + {{- if not ( .Params.sidebarIgnore ) }} +- [{{- if isset .Params "sidebartitle" -}}{{ .Params.sidebarTitle | .RenderString | replaceRE `\{\{[%\|\<]?\ *vendor\/name\ *[\%|\>]?\}\}` "Upsun" | replaceRE `\{\{[%\|\<]?\ *vendor\/psh_ref\ *[\%|\>]?\}\}` "Platform.sh" | replaceRE "’" "'" | replaceRE "'" "'" | replaceRE ">" ">" | replaceRE "&" "&" | replaceRE "<" "<" | replaceRE "\n" " " | safeHTML -}}{{- else -}}{{ .Title | .RenderString | replaceRE `\{\{[%\|\<]?\ *vendor\/name\ *[\%|\>]?\}\}` "Upsun" | replaceRE `\{\{[%\|\<]?\ *vendor\/psh_ref\ *[\%|\>]?\}\}` "Platform.sh" | replaceRE "’" "'" | replaceRE "'" "'" | replaceRE ">" ">" | replaceRE "&" "&" | replaceRE "<" "<" | replaceRE "\n" " " | safeHTML -}}{{- end -}}]({{ $upsunDocUrl }}{{ .RelPermalink | replaceRE `.html` `.md` }}){{- if ne .Description "" }}: {{ .Description | replaceRE `\{\{[%\|\<]?\ *vendor\/name\ *[\%|\>]?\}\}` "Upsun" | replaceRE `\{\{[%\|\<]?\ *vendor\/psh_ref\ *[\%|\>]?\}\}` "Platform.sh" | replaceRE "’" "'" | replaceRE "'" "'" | replaceRE ">" ">" | replaceRE "&" "&" | replaceRE "<" "<" | replaceRE "\n" " " | safeHTML -}}{{- end -}} {{- end -}} {{- end -}} {{- end -}} diff --git a/themes/psh-docs/layouts/partials/llms/replace-html.md b/themes/psh-docs/layouts/partials/llms/replace-html.md index 034f2b1186..0998390644 100644 --- a/themes/psh-docs/layouts/partials/llms/replace-html.md +++ b/themes/psh-docs/layouts/partials/llms/replace-html.md @@ -96,6 +96,10 @@ {{- $content = $content | replaceRE "(?m)^(#{2,6})(\\s|$)" (printf "${1}%s " $hashes) -}} {{- end -}} +{{- $content = $content +| replaceRE `\{\{\s*now\.Year\s*\}\}` (printf "%d" now.Year) +-}} + {{- $content = $content | replaceRE ` ([a-zA-Z0-9\@:-]){2,}="([][a-zA-Z0-9\.\_\!\+:='\''\;,\/\{\}\(\)\&><↗\ -]{0,})"` `` | replaceRE `<([A-Z0-9_]+)>` "##PLACEHOLDER_START##${1}##PLACEHOLDER_END##"