mirror of
https://codeberg.org/Codeberg/Documentation.git
synced 2026-06-16 05:13:54 -07:00
# Changelog The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## Fixed - Lint issues: - Line length ([MD013](https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md013.md)). - Heading levels should only increment by one level at a time ([MD001](https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md001.md)). - Link fragments should be valid ([MD051](https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md051.md)). --- Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/629 Reviewed-by: Gusted <gusted@noreply.codeberg.org> Co-authored-by: Javier Pérez <walpo@noreply.codeberg.org> Co-committed-by: Javier Pérez <walpo@noreply.codeberg.org>
107 lines
3.8 KiB
Markdown
107 lines
3.8 KiB
Markdown
---
|
||
eleventyNavigation:
|
||
key: PushingOutput
|
||
title: Pushing output from SSGs into Codeberg Pages
|
||
parent: CodebergPages
|
||
author: Fayçal Alami Hassani - https://codeberg.org/ka2in
|
||
date: January 2022
|
||
order: 101
|
||
---
|
||
|
||
If you are using a static site generator (SSG) and are satisfied with the result of your project on your local development
|
||
environment, you can push the files to your Codeberg Pages repository.
|
||
|
||
## Manual pushing
|
||
|
||
To begin with, we will have two separate repositories, both locally and on Codeberg:
|
||
|
||
- A main repository for the source files, i.e. where the source files related to your main project will be located.
|
||
We will refer to this repository as the `source` repository.
|
||
This repository is the one associated with your [mydocs](/codeberg-pages/examples/docs-as-code/#mydocs) folder.
|
||
|
||
- A second repository for Codeberg pages that we will call the `pages` repository.
|
||
This repository will only contain the files available in the `html` folder located under docs/build/html.
|
||
|
||
{% admonition "warning" %}
|
||
|
||
The `pages` repository **must** be public, as Codeberg Pages will directly fetch the files from the repository,
|
||
just like an ordinary user would.
|
||
|
||
{% endadmonition %}
|
||
|
||
{% admonition "info" %}
|
||
|
||
For the purpose of this guide, we have chosen to use two separate folders/repositories.
|
||
However, you may want to have a different setup that involves creating a [submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules)
|
||
instead of having folders and repositories in separate locations. With a submodule, your configuration may look like so:
|
||
|
||
```bash
|
||
├── sources --> This is a git repo
|
||
│ ├── build
|
||
│ │ └── html
|
||
│ │ └── pages --> This is a separate git repo
|
||
│ └── content
|
||
```
|
||
|
||
{% endadmonition %}
|
||
|
||
To copy the content of the `html` folder to your new `pages` folder, run the command:
|
||
|
||
```bash
|
||
(.venv) $ cp -R docs/build/html/ pages
|
||
```
|
||
|
||
We will now initialize an empty repository inside the pages folder. To do this, type the command:
|
||
|
||
```bash
|
||
git init
|
||
```
|
||
|
||
To check the status of your project’s files, type the command:
|
||
|
||
```bash
|
||
git status
|
||
```
|
||
|
||
To add all the files that are available in your directory to Git, run the command:
|
||
|
||
```bash
|
||
git add -A
|
||
```
|
||
|
||
Now we will commit:
|
||
|
||
```bash
|
||
git commit -m "Example commit message"
|
||
```
|
||
|
||
Repeat these steps in your `source` folder, then push your local commits to the remote repository with the command:
|
||
|
||
```bash
|
||
git push origin HEAD:your-remote-branch-name
|
||
```
|
||
|
||
{% admonition "info" "Note" %}
|
||
|
||
Replace `your-remote-branch-name` with the name of your remote branch. It is recommended to initially push your commits
|
||
to a branch other than the default branch. Once you have made sure everything went smoothly, you can then make a pull
|
||
request to merge it into the default branch. To learn more about pull requests, read the article [Pull requests and Git flow](https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/).
|
||
|
||
{% endadmonition %}
|
||
|
||
You should now be able to access your content by visiting https://{username}.codeberg.page.
|
||
You can find more information in the [Codeberg Pages](/codeberg-pages/) section.
|
||
|
||
## Using a CI
|
||
|
||
Both the [Woodpecker CI](/ci/#using-codeberg's-instance-of-woodpecker-ci) and the [hosted Forgejo Actions](/ci/actions/)
|
||
can be used to automate the build and deployment of your static website.
|
||
|
||
For the Woodpecker CI, you can see the [existing example workflows in the `Codeberg-CI/examples` repo](https://codeberg.org/Codeberg-CI/examples),
|
||
which provides examples for Jekyll, Hugo, Zola and many other popular SSG.
|
||
|
||
Currently, we do not have any examples for the Forgejo Actions yet, but individual SSG tools might
|
||
have details in their own documentation.
|
||
|
||
Note that if you use Forgejo Actions to publish the website, you should make sure that `.domains`
|
||
file will be preserved in the root directory of the **output** branch or repository.
|