Website Summary Files Commits Branches @commit @diff @stats
path: root / website / README.md
blob: 67283543039bd16ae34f767e1aa03a22978d0713 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Implementation of Programming Languages

This is the code of the website of a course on implementing a programming
language. The website is hosted at https://sofiacpp.github.io/IPL.

## Working with the website

The website is deployed as GitHub pages from the contents of the gh-pages branch
of this repository.


### Requirements

- Git and Git-Bash on Windows
- [hugo](https://gohugo.io)

### Checking out the code

Simply clone this repository.

### Setting up the clone

1. Make sure that `git` and `hugo` are in the path
2. Add the gh-pages as a *git worktree* under the public folder

        git fetch origin gh-pages:gh-pages
        git branch --set-upstream-to=origin/gh-pages gh-pages
        git worktree add public gh-pages

### Creating new content

#### Creating new posts

The normal hugo way of creating new posts applies

    hugo new content/posts/post.md
    hugo new content/page/page.md

#### Creating new slides

Creating new slides requires using a different template. You can use the
*content/slides* as boilerplate.

    cp -R content/slides/template content/slides/myslides
    edit content/slides/myslides/_index.md

### Checking out changes

Run

    hugo serve -D -F

to checkout the website locally with drafts (*-D*) and future articles (*-F*).
The `hugo` server will watch for changes and automatically reload the browser
tab.

### Publishing changes

1. Make any changes to the content and **COMMIT**
2. Run the publish.sh script

        sh publish.sh

    It will generate the new version inside the *public* folder, commit and push
    it.