GitSite helps you organize your contents. There are 3 types of contents that GitSite supports. All files are put in source
directory:
source/
├── books/
├── blogs/
├── pages/
└── site.yml
A book contains a set of markdown documents organized with a tree structure:
books/
└── guide/
├── book.yml <-- book information
├── a/ <-- URL: /books/guide/a/index.html
│ ├── m/ <-- URL: /books/guide/a/m/index.html
│ ├── n/ <-- URL: /books/guide/a/n/index.html
│ │ ├── p/ <-- URL: /books/guide/a/n/p/index.html
│ │ └── q/ <-- URL: /books/guide/a/n/q/index.html
│ └── l/
├── b/
│ ├── x/
│ ├── y/
│ └── z/
│ ├── v1/
│ └── v2/
└── c/
├── w1/
└── w2/
Each directory must have a markdown file named README.md
. GitSite scans the directory and generates book index as tree, sorted by directory name.
To specify the order, you can add sequence number in the directory name. For example:
books/
└── guide/
├── 10-b/ <-- URL: /books/guide/b/index.html
├── 20-c/ <-- URL: /books/guide/c/index.html
└── 30-a/ <-- URL: /books/guide/a/index.html
├── 10-n/ <-- URL: /books/guide/a/n/index.html
└── 20-m/ <-- URL: /books/guide/a/m/index.html
This re-order the index with b
, c
and a
. The sequence number is used for order and will be dropped in URL, so re-order a directory does not change the URL.
Blogs are simple markdown files organized with a list of categories, and each directory name starts with ISO date format yyyy-MM-dd
:
blogs/
└── tech/ <-- category: /blogs/tech/index.html
├── index.json <-- URL: /blogs/tech/index.json
├── 2024-01-01-hello/ <-- URL: /blogs/tech/2024-01-01-hello/index.html
├── 2024-01-05/ <-- URL: /blogs/tech/2024-01-05/index.html
└── 2024-02-10-style/ <-- URL: /blogs/tech/2024-02-10-style/index.html
Pages are used to display single pages. Each page has a simple directory name:
pages/
├── about/ <-- URL: /pages/about/index.html
├── license/ <-- URL: /pages/license/index.html
└── privacy/ <-- URL: /pages/privacy/index.html
Pages are usually serves pages like License
, Term of Service
, etc.
All markdown documents are named README.md
for this can be viewed on GitHub directly, and build to index.html
. The first line of README.md
must be heading 1, which is treated as title, and the rest of lines are content:
# This is title
This is content ...
More content ...