This repository contains the source files for the Apache Geode project website.
The project website also contains the documentation for the Apache Geode project, as well as the Apache Geode community blog.
The project website is built with Docusaurus.
- Node.js:
>= 18.0 - Package Manager:
pnpm
Install dependencies:
pnpm installStart a local development server with live reload at http://localhost:3000/:
pnpm startGenerate static production assets and preview the build locally:
pnpm build
pnpm serveInstructions for maintaining various components of the Apache Geode project website.
Source code for the Apache Geode project website is stored in the src folder.
Elements of the home page are stored in src/components/Homepage Features and src/pages. These pages are written in TypeScript.
Subpages are stored in src/pages. These pages are written in Markdown.
Page styles are stored as CSS files that reside in the same folders as the pages they style.
Apache Geode project documentation is stored as Markdown files in the docs folder.
To edit project documentation:
- Locate the Markdown file for the document you wish to edit.
- Edit that file to introduce the changes you'd like to see.
- Open a pull request and ask a project maintainer to review it.
The project documentation is split into 3 distinct Docusaurus docs plugins/instances:
| Document | Plugin ID | Source Directory | Version Command |
|---|---|---|---|
| Apache Geode | default |
docs/geode |
pnpm docusaurus docs:version <version> |
| Geode Native C++ | geode_native_cpp |
docs/geode_native_cpp |
pnpm docusaurus docs:version:geode_native_cpp <version> |
| Geode Native .NET | geode_native_dotnet |
docs/geode_native_dotnet |
pnpm docusaurus docs:version:geode_native_dotnet <version> |
To cut a new version for any of the 3 documents:
-
Run the versioning command for the target document:
- For Apache Geode:
(or
pnpm docusaurus docs:version <version>
pnpm docusaurus docs:version:default <version>) - For Geode Native C++:
pnpm docusaurus docs:version:geode_native_cpp <version>
- For Geode Native .NET:
pnpm docusaurus docs:version:geode_native_dotnet <version>
This snapshots the current source directory and sidebar into versioned files:
- Apache Geode: creates
versioned_docs/version-<version>/,versioned_sidebars/version-<version>-sidebars.json, and updatesversions.json. - Geode Native C++: creates
geode_native_cpp_versioned_docs/version-<version>/,geode_native_cpp_versioned_sidebars/version-<version>-sidebars.json, and updatesgeode_native_cpp_versions.json. - Geode Native .NET: creates
geode_native_dotnet_versioned_docs/version-<version>/,geode_native_dotnet_versioned_sidebars/version-<version>-sidebars.json, and updatesgeode_native_dotnet_versions.json.
- For Apache Geode:
-
Add documentation variables for the new version in
config/doc-vars/:config/doc-vars/geode.tsfor Apache Geodeconfig/doc-vars/cpp.tsfor Geode Native C++config/doc-vars/dotnet.tsfor Geode Native .NET
Add a new configuration block matching the version string (e.g.
'1.15') containing version-specific tokens such asproduct_version,min_java_version, etc. -
Configure version metadata in
docusaurus.config.ts(optional): Customize the version's label, banner, or behavior under theversionsproperty of the corresponding docs plugin indocusaurus.config.ts:versions: { current: { label: 'Apache Geode (Next)', }, '<version>': { label: 'Apache Geode <version>', banner: 'none', }, }
-
Editing versioned content:
- Changes to the upcoming / unreleased version are made in
docs/<document_folder>/. - Changes or backports to an already versioned release are made in the respective versioned directory (e.g.,
versioned_docs/version-<version>/,geode_native_cpp_versioned_docs/version-<version>/, orgeode_native_dotnet_versioned_docs/version-<version>/).
- Changes to the upcoming / unreleased version are made in
Posts on the Apache Geode project blog are stored as Markdown files in the blog folder.
To add a new blog post:
- Create a new Markdown file in the
blogfolder. The filename should follow the conventionYYYY-MM-DD-title-slug.md. - Add the appropriate header to the top of the Markdown file. Use an existing blog post as a guide.
- If you're a new author, add your bio details to
authors.yml. - Compose your blog post, open a pull request, and ask a project maintainer to review it.
This project is licensed under the Apache License 2.0. See NOTICE for additional details.
