Skip to content

cake-build/website

Repository files navigation

Cake Website

This is the Cake website. It's a static site generated by Wyam which is hosted on Azure. Wyam is a static content toolkit and can be used to generate web sites, produce documentation, create ebooks, and much more.

Contributing

Any contributions are appreciated, no matter how big or small. The Cake site consists of several different sections and each one is described below.

NOTE If you're interested in contributing please reach out to us on GitHub Discussions first.

Documentation

The basic documentation pages can be found under ./input/docs. The directory structure mirrors what's on the site. Most pages are written in Markdown. To add a new page, just add a new file.

Blog

The Cake site contains a blog where important announcements and other relevant information are posted. The blog posts can be found under ./input/blog. As with documentation pages, blog posts are written in Markdown. The file name for each blog post contains its published date in the format YYYY-MM-DD-title.md.

Extensions

PLEASE NOTE: Extension authors do not have to manually create YAML files as there is an automated process that scans nuget.org twice per day to find all extensions that follow the recommended naming convention (which is Cake.xxx for addins and Cake.xxx.Module for modules, where xxx describes the functionality provided by the extension) and generates the appropriate YAML content based on the metadata for the NuGet package.

All extensions are specified in individual YAML files under ./extensions. Adding an extension here will trigger downloading it's NuGet Package during site generation and will include it in the "Reference" and "Extensions" sections of the Cake site.

The format of an extension file generally looks like:

Type: Addin
Name: Cake.Wyam
NuGet: Cake.Wyam
Assemblies:
- "/**/Cake.Wyam.dll"
Repository: https://github.com/Wyamio/Wyam
Author: Dave Glick, Gary Ewan Park
Description: "An alias that generates static sites and other content using Wyam."
Categories:
- Documentation
- Static Site Generation

Type can be one of the following values: Addin, Module, Recipe.

Search

Search uses Algolia DocSearch as backend. Configuration for crawler is available at https://github.com/algolia/docsearch-configs/blob/master/configs/cakebuild.json.

Building

The site is built using Cake (of course!). There are a number of different targets depending on what you're working on and how complete you want the generated site to be.

build --target=GetSource will download the Cake source code that the generation process uses to create the "API" section.

build --target=GetExtensionPackages will download new NuGet packages for all specified extensions. These packages are used to create the "Reference" and "Extensions" sections.

build --target=GetArtifacts will download both the Cake source code and the extension NuGet packages.

build --target=Build will run a complete build, downloading new copies of Cake source code and extension NuGet packages. Note that due to the number of extensions and the complexity of generating complete API documentation, the site generation may take a while (sometimes as long as 20 minutes).

build --target=Preview will run a build but will not download Cake source code or NuGet packages. This lets you shorten the build cycle by avoiding the time to obtain those resources if you've already downloaded them, or to bypass them altogether if you're just working on something like general documentation pages. This target will also launch a preview server to look at the generated site from a local web browser. The URL of the generated preview site is http://localhost:5080/.