Skip to content

Commit

Permalink
docs with Hugo
Browse files Browse the repository at this point in the history
docs with Hugo
595d8e2be947f2521ed6db28fdbd645f5759014a
  • Loading branch information
oke11o committed Jul 11, 2024
1 parent 14d9dd0 commit 5b8e11e
Show file tree
Hide file tree
Showing 167 changed files with 4,078 additions and 1,035 deletions.
84 changes: 84 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Deploy Hugo site to Pages

on:
push:
branches:
- dev

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

defaults:
run:
shell: bash

jobs:
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.128.0
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
hugo version
- name: Install Dart Sass
run: sudo snap install dart-sass
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 20
- name: Install Node.js dependencies
run: |
cd docs
echo "npm install -g postcss postcss-cli autoprefixer"
npm i
[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true
- name: Build with Hugo
env:
# For maximum backward compatibility with Hugo modules
HUGO_ENVIRONMENT: production
HUGO_ENV: production
TZ: America/Los_Angeles
run: |
cd docs
hugo \
--gc \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/"
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./docs/public

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,4 @@ out/

vendor/

docs/_*
.DS_Store
211 changes: 160 additions & 51 deletions .mapping.json

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions docs/.cspell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# cSpell:ignore textlintrc
# For settings, see
# https://www.streetsidesoftware.com/vscode-spell-checker/docs/configuration/
version: '0.2'
caseSensitive: true
words:
- Docsy
- Yandex
- Pandora
5 changes: 5 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/public
resources/
node_modules/
package-lock.json
.hugo_build.lock
1 change: 1 addition & 0 deletions docs/.nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
lts/*
184 changes: 184 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
# Docsy Example

[Docsy][] is a [Hugo theme module][] for technical documentation sites, providing easy
site navigation, structure, and more. This **Docsy Example Project** uses the Docsy
theme component as a hugo module and provides a skeleton documentation structure for you to use.
You can clone/copy this project and edit it with your own content, or use it as an example.

In this project, the Docsy theme is pulled in as a Hugo module, together with
its dependencies:

```console
$ hugo mod graph
...
```

For Docsy documentation, see [Docsy user guide][].

This Docsy Example Project is hosted on [Netlify][] at [example.docsy.dev][].
You can view deploy logs from the [deploy section of the project's Netlify
dashboard][deploys], or this [alternate dashboard][].

This is not an officially supported Google product. This project is currently maintained.

## Using the Docsy Example Project as a template

A simple way to get started is to use this project as a template, which gives you a site project that is set up and ready to use. To do this:

1. Use the dropdown for switching branches/tags to change to the **latest** released tag.

2. Click **Use this template**.

3. Select a name for your new project and click **Create repository from template**.

4. Make your own local working copy of your new repo using git clone, replacing https://github.com/me/example.git with your repo’s web URL:

```bash
git clone --depth 1 https://github.com/me/example.git
```

You can now edit your own versions of the site’s source files.

If you want to do SCSS edits and want to publish these, you need to install `PostCSS`

```bash
npm install
```

## Running the website locally

Building and running the site locally requires a recent `extended` version of [Hugo](https://gohugo.io).
You can find out more about how to install Hugo for your environment in our
[Getting started](https://www.docsy.dev/docs/getting-started/#prerequisites-and-installation) guide.

Once you've made your working copy of the site repo, from the repo root folder, run:

```bash
hugo server
```

## Running a container locally

You can run docsy-example inside a [Docker](https://docs.docker.com/)
container, the container runs with a volume bound to the `docsy-example`
folder. This approach doesn't require you to install any dependencies other
than [Docker Desktop](https://www.docker.com/products/docker-desktop) on
Windows and Mac, and [Docker Compose](https://docs.docker.com/compose/install/)
on Linux.

1. Build the docker image

```bash
docker-compose build
```

1. Run the built image

```bash
docker-compose up
```

> NOTE: You can run both commands at once with `docker-compose up --build`.

1. Verify that the service is working.

Open your web browser and type `http://localhost:1313` in your navigation bar,
This opens a local instance of the docsy-example homepage. You can now make
changes to the docsy example and those changes will immediately show up in your
browser after you save.

### Cleanup

To stop Docker Compose, on your terminal window, press **Ctrl + C**.

To remove the produced images run:

```bash
docker-compose rm
```
For more information see the [Docker Compose documentation][].

## Using a local Docsy clone

Make sure your installed go version is `1.18` or higher.

Clone the latest version of the docsy theme into the parent folder of your project. The newly created repo should now reside in a sibling folder of your site's root folder.
```shell
cd root-of-your-site
git clone --branch v0.7.2 https://github.com/google/docsy.git ../docsy
```
Now run:
```shell
HUGO_MODULE_WORKSPACE=docsy.work hugo server --ignoreVendorPaths "**"
```
or, when using npm, prepend `local` to the script you want to invoke, e.g.:
```shell
npm run local serve
```
By using the `HUGO_MODULE_WORKSPACE` directive (either directly or via prefix `local` when using npm), the server now watches all files and directories inside the sibling directory `../docsy` , too. Any changes inside the local `docsy` theme clone are now immediately picked up (hot reload), you can instantly see the effect of your local edits.
In the command above, we used the environment variable `HUGO_MODULE_WORKSPACE` to tell hugo about the local workspace file `docsy.work`. Alternatively, you can declare the workspace file inside your settings file `hugo.toml`:
```toml
[module]
workspace = "docsy.work"
```
Your project's `hugo.toml` file already contains these lines, the directive for workspace assignment is commented out, however. Remove the two trailing comment characters '//' so that this line takes effect.

## Troubleshooting

As you run the website locally, you may run into the following error:

```console
$ hugo server
WARN 2023/06/27 16:59:06 Module "project" is not compatible with this Hugo version; run "hugo mod graph" for more information.
Start building sites …
hugo v0.101.0-466fa43c16709b4483689930a4f9ac8add5c9f66+extended windows/amd64 BuildDate=2022-06-16T07:09:16Z VendorInfo=gohugoio
Error: Error building site: "C:\Users\foo\path\to\docsy-example\content\en\_index.md:5:1": failed to extract shortcode: template for shortcode "blocks/cover" not found
Built in 27 ms
```

This error occurs if you are running an outdated version of Hugo. As of docsy theme version `v0.7.0`, hugo version `0.110.0` or higher is required.
See this [section](https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#install-hugo) of the user guide for instructions on how to install Hugo.

Or you may be confronted with the following error:

```console
$ hugo server
INFO 2021/01/21 21:07:55 Using config file:
Building sites … INFO 2021/01/21 21:07:55 syncing static files to /
Built in 288 ms
Error: Error building site: TOCSS: failed to transform "scss/main.scss" (text/x-scss): resource "scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68" not found in file cache
```

This error occurs if you have not installed the extended version of Hugo.
See this [section](https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#install-hugo) of the user guide for instructions on how to install Hugo.

Or you may encounter the following error:

```console
$ hugo server
Error: failed to download modules: binary with name "go" not found
```

This error occurs if you have not installed the `go` programming language on your system.
See this [section](https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#install-go-language) of the user guide for instructions on how to install `go`.


[alternate dashboard]: https://app.netlify.com/sites/goldydocs/deploys
[deploys]: https://app.netlify.com/sites/docsy-example/deploys
[Docsy user guide]: https://docsy.dev/docs
[Docsy]: https://github.com/google/docsy
[example.docsy.dev]: https://example.docsy.dev
[Hugo theme module]: https://gohugo.io/hugo-modules/use-modules/#use-a-module-for-a-theme
[Netlify]: https://netlify.com
[Docker Compose documentation]: https://docs.docker.com/compose/gettingstarted/
6 changes: 6 additions & 0 deletions docs/assets/scss/_variables_project.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/*
Add styles or override variables from the theme here.
*/

15 changes: 15 additions & 0 deletions docs/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# THIS IS A TEST CONFIG ONLY!
# FOR THE CONFIGURATION OF YOUR SITE USE hugo.yaml.
#
# As of Docsy 0.7.0, Hugo 0.110.0 or later must be used.
#
# The sole purpose of this config file is to detect Hugo-module builds that use
# an older version of Hugo.
#
# DO NOT add any config parameters to this file. You can safely delete this file
# if your project is using the required Hugo version.

module:
hugoVersion:
extended: true
min: 0.110.0
7 changes: 7 additions & 0 deletions docs/content/en/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Documentation
linkTitle: Docs
---

Pandora is a high-performance load generator in Go language. It has built-in HTTP(S) and HTTP/2 support and you can
write your own load scenarios in Go, compiling them just before your test.
22 changes: 6 additions & 16 deletions docs/eng/architecture.md → docs/content/en/architecture.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
[Home](../index.md)

---

# Architectural overview

- [Architectural scheme](#architectural-scheme)
- [Component types](#component-types)
- [Ammo Provider](#ammo-provider)
- [Instances Pool](#instances-pool)
- [Scheduler](#scheduler)
- [Instances and Guns](#instances-and-guns)
- [Aggregator](#aggregator)
title: Architectural overview
description: Pandora is a set of components talking to each other through Go channels. There are different types of components.
categories: [Get started]
tags: [architecture]
weight: 14
---

## Architectural scheme

Expand Down Expand Up @@ -64,7 +58,3 @@ a request to your service and measures the parameters (time, error codes, etc.)
### Aggregator

Aggregator collects measured samples and saves them somewhere.

---

[Home](../index.md)
6 changes: 6 additions & 0 deletions docs/content/en/best-practices/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Best practices
description:
categories: [Best practices]
weight: 6
---
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
[Home](../../index.md)

---

# Discard Overflow
title: Discard overflow
description: The setting includes the behavior of discarding overdue requests
categories: [Best practices]
tags: [best_practices, discard_overflow]
weight: 1
---

When you specify a [load profile](../load-profile.md), the generator calculates the order and timing of requests. This
can be referred to as the schedule of requests execution. Pandora's scheduler is responsible for this. It receives
Expand Down Expand Up @@ -43,7 +45,3 @@ To avoid such situations, you can:
- Increase the number of instances.
- Decrease the load profile.
- Optimize the server being tested to reduce response time.

---

[Home](../../index.md)
Loading

0 comments on commit 5b8e11e

Please sign in to comment.