Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cake-build/website

:earth_americas: The Cake website: https://cakebuild.net
https://github.com/cake-build/website

build-system cake cake-build hacktoberfest website

Last synced: about 1 month ago
JSON representation

:earth_americas: The Cake website: https://cakebuild.net

Awesome Lists containing this project

README

        

# Cake Website

This is the Cake website. It's a static site generated by [Wyam](http://wyam.io) 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](https://github.com/cake-build/cake/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](https://docsearch.algolia.com/) 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/`.