Development Tool: Pelican (static site generator written in Python)
Development Environment: Ubuntu 20.04
On a fresh/clean installation of Ubuntu, update system first. Otherwise will get unable to locate package error. See this SO answer.
$ sudo apt-get update
-
$ sudo apt-get install git $ sudo apt-get install python3-pip
From the answer in Ask Ubuntu, we can use python-is-python3 and prevent Python 2 from being installed on Ubuntu 20.04
$ sudo apt-get install python-is-python3 $ sudo apt-mark hold python2 python2-minimal python2.7 python2.7-minimal libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib
Install language packages to add locale (English, Traditional Chinese, and Thai):
$ sudo apt-get install language-pack-en $ sudo apt-get install language-pack-zh-hant $ sudo apt-get install language-pack-th
Or you can install languages in "Settings" -> "Region & Language", which installs more related packages such as fonts for languages.
git clone source code:
$ cd $ mkdir dev $ cd ~/dev/ $ git clone https://github.com/siongui/userpages.git --depth=1 # or clone with full depth $ git clone https://github.com/siongui/userpages.git
Install Python tools:
$ cd ~/dev/userpages/ $ pip3 install -r requirements.txt
Note that in .travis.yml, pip is actually pip3 if bionic and python 3.8 is set in Travis CI config.
Install Pelican i18n_subsites plugin and download normalize.css:
$ cd ~/dev/userpages/ $ make download
Generate CSS file:
$ cd ~/dev/userpages/ $ make scss
# start edit and develope
$ cd ~/dev/userpages/
# re-generate the website and start dev server
$ make
# open your browser and preview the website at http://localhost:8000/
See workflow file
Auto-deploy by Travis CI (Obsoleted)
See GitHub Pages Deployment - Travis CI.
First save your personal access token in repository settings.
For User Pages, the following is sample config:
deploy:
provider: pages
repo: USERNAME/USERNAME.github.io
target_branch: master
skip_cleanup: true
github_token: $GITHUB_TOKEN
local_dir: output
on:
branch: master
For Project Pages, the following is sample config:
deploy:
provider: pages
skip_cleanup: true
github_token: $GITHUB_TOKEN
local_dir: output
on:
branch: master
Deploy to GitLab Pages via GitLab CI/CD
See .gitlab-ci.yml.
- Use Ubuntu image in Docker Hub. The ubuntu:latest tag points to the "latest LTS".
- Need to update Ubuntu first to install Ubuntu packages. See this SO answer.
- Travis CI can deploy to any repository, but need personal access token to do so. GitLab CI/CD can deploy to the repository where CI/CD runs without credentials.
All works, including posts and code, of Siong-Ui Te are released in public domain. Please see UNLICENSE.
[1] | pelican-edit-url inspires the Edit on Github link. |
[2] | JINJA_FILTERS in Settings — Pelican documentation
|
[3] |
[4] |
[5] |