Skip to content

Commit

Permalink
First pass at adding chef.sh www directory
Browse files Browse the repository at this point in the history
Signed-off-by: Tom Duffield <tom@chef.io>
  • Loading branch information
tduffield committed May 3, 2018
1 parent 19bcf68 commit 87ac720
Show file tree
Hide file tree
Showing 13 changed files with 217 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
test_results/
tags


# chef.sh website
www/site/public
www/chef-sh
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "www/chef-www"]
path = www/chef-www
url = https://github.com/chef/chef-www.git
6 changes: 6 additions & 0 deletions www/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
sync:
git submodule update
aws --profile chef-cd s3 sync s3://chef-www-acceptance.cd.chef.co chef-sh

serve:
cd site && hugo serve
90 changes: 90 additions & 0 deletions www/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Chef Workstation + http://chef.sh

Chef Workstation hosts it's marketing and documentation content on [chef.sh](https://chef.sh) (the microsite) along with marketing and documentation for other Chef products including Chef Server, Chef Client, and ChefDK. The primary source code for [chef.sh](https://chef.sh) is kept with the [chef/chef-www](https://github.com/chef/chef-www) code along with most of the marketing materials, but the documentation source is kept with the code repositories. To handle this, we have a dedicated code structure here in `chef/chef-workstation` that is pulled into `chef/chef-www` when it is updated.

## Structure

### High Level
```
.
├── Makefile # contains helpers to quickly start up the development environment
├── README.md
├── chef-sh # hidden directory that contains the pre-compiled source for chef.sh
├── chef-www # chef/chef-www submodule to pull in the chef-sh theme for local development
├── site # the hugo site directory used for local development
```

### Local Content
```
.
├── site
│   ├── content
│   │   ├── docs
│   │   │   ├── chef-workstation # where to keep markdown file documentation
│   ├── data
│   │   ├── chef-workstation # where to keep structured data files used for data templates
│   ├── layouts
| │   ├── shortcodes
| │   │   ├── cw-* # how to name your workstation-specific shortcodes
| ├── static
| | ├── images
| | | ├── chef-workstation # where to keep any images you need to reference in your documentation
```

### What is happening behind the scenes

Everytime a PR is merged into `chef/chef-workstation`, the contents of the `chef-workstation` directories from the `site` directory are synced to `chef/chef-www` and the `chef-www-acceptance.cd.chef.co` acceptance environment is automatically updated. This is handled by the Expeditor subscriptions in the `chef/chef-www` GitHub repository.

## Helpers

make sync
: Pull down the current chef.sh content and chef-www submodule (for the chef-sh theme)

make serve
: Start the live-reload development environment

## Markdown Content

Please try to keep all your documentation in the `chef-workstation` directory. Any new documents should automatically show up in the sidebar. If you need to control the ordering of the sidebar, you can add `weight` to the frontmatter of the documents.

To add a new Markdown file, simply run the followin command from the `www/site` directory:

```
hugo new docs/chef-workstation/<filename>.md
```

This will create the file and fill in the necessary frontmatter automatically.

## Data Content

Hugo allows us to nest our data directory structure as much as necessary. You can add as many folders as necessary under `site/data/chef-workstation`, Expeditor will sync them all into `chef/chef-www`.

```
.
├── site
│   ├── data
│   │   ├── chef-workstation
| │   │   ├── cli
| | │   │   ├── command_one.yml
| | │   │   └── command_two.yml
```

## Shortcode Content

[Shortcodes](https://gohugo.io/content-management/shortcodes/) are how we inject non-markdown content into markdown pages. This is especially useful when you want to inject read in data files, parse them, and then inject them into one or more Markdown pages. Since Hugo does not supported a nested directory structure, you'll need to prefix all your chef-workstation shortcodes with `cw-` when you use them.

For example, below is how you can use a shortcode in a Markdown page to inject CLI documentation generated using a Data file.

```
+++
title = "CLI"
weight = 10
[menu]
[menu.docs]
parent = "Chef Workstation"
+++
Below you'll find all our amazing Chef Workstation CLI documentation!
{{< cw-cli-documentation >}}
```
1 change: 1 addition & 0 deletions www/chef-www
Submodule chef-www added at 80601a
11 changes: 11 additions & 0 deletions www/site/archetypes/default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
+++
title = "{{ replace .Name "-" " " | title }}"
linktitle = "{{ replace .Name "-" " " | title }}"
date = {{ .Date }}
draft = true
weight = 10
[menu]
[menu.docs]
parent = "Chef Workstation"
+++

7 changes: 7 additions & 0 deletions www/site/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
baseURL = "/"
languageCode = "en-us"
title = "chef.sh (Chef Workstation)"

theme = "chef-sh"
themesDir = "../chef-www/site/themes"
staticDir = ["./static", "../chef-sh"]
46 changes: 46 additions & 0 deletions www/site/content/docs/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
+++
title = "Sample Docs Page"
+++

This is not synced into chef-www, only the `chef-workstation` folder is. This file exists simply to provide a "supported Markdown" reference and to make the main docs page not...empty. The content on this page will NOT be synced to `chef/chef-www`

---

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

![Alt Text](http://placehold.it/750x400 "Title")

## Lorem ipsum dolor (H2)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

### Lorem ipsum dolor (H3)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

#### Lorem ipsum dolor (H4)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

##### Lorem ipsum dolor (H5)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

###### Lorem ipsum dolor (H6)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

* Sed vitae turpis quis ligula eleifend consectetur.
* Donec accumsan purus vitae felis semper fermentum.
* Vivamus auctor nisl sit amet tortor luctus dapibus.
* Nulla fermentum ligula vitae enim maximus bibendum.

{{% styled-nums %}}
1. Sed vitae turpis quis ligula eleifend consectetur.
1. Donec accumsan purus vitae felis semper fermentum.
1. Vivamus auctor nisl sit amet tortor luctus dapibus.
1. Nulla fermentum ligula vitae enim maximus bibendum.
{{% /styled-nums %}}

This is a [paragraph link](#).

This is a {{< cta href="#" text="call to action" >}}

These are buttons: {{< orange-button href="#" text="Button" >}} {{< white-button href="#" text="Button" >}}
3 changes: 3 additions & 0 deletions www/site/content/docs/chef-workstation/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
+++
title = "Chef Workstation"
+++
45 changes: 45 additions & 0 deletions www/site/content/docs/chef-workstation/getting-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
+++
title = "Getting Started"
[menu]
[menu.docs]
parent = "Chef Workstation"
+++

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

![Alt Text](http://placehold.it/750x400 "Title")

## Lorem ipsum dolor (H2)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

### Lorem ipsum dolor (H3)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

#### Lorem ipsum dolor (H4)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

##### Lorem ipsum dolor (H5)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

###### Lorem ipsum dolor (H6)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ipsum accumsan placerat auctor. Ut in mollis lectus. Ut ac mauris aliquet, blandit metus non, tincidunt orci. Nunc commodo dignissim condimentum. Mauris sit amet congue purus. Duis odio lacus, ultrices vitae orci rutrum, pulvinar scelerisque metus. Suspendisse tempus ligula sit amet dapibus ultricies. Vestibulum a arcu nisl.

* Sed vitae turpis quis ligula eleifend consectetur.
* Donec accumsan purus vitae felis semper fermentum.
* Vivamus auctor nisl sit amet tortor luctus dapibus.
* Nulla fermentum ligula vitae enim maximus bibendum.

{{% styled-nums %}}
1. Sed vitae turpis quis ligula eleifend consectetur.
1. Donec accumsan purus vitae felis semper fermentum.
1. Vivamus auctor nisl sit amet tortor luctus dapibus.
1. Nulla fermentum ligula vitae enim maximus bibendum.
{{% /styled-nums %}}

This is a [paragraph link](#).

This is a {{< cta href="#" text="call to action" >}}

These are buttons: {{< orange-button href="#" text="Button" >}} {{< white-button href="#" text="Button" >}}
Empty file.
Empty file.
Empty file.

0 comments on commit 87ac720

Please sign in to comment.