Source code of http://physino.xyz that can be converted to static web pages using Jekyll.
The website can be served locally through Docker:
git clone [email protected]:jintonic/jintonic.github.io.git physino.xyz
cd physino.xyz
# run docker desktop before running the following commands
docker compose up
Now one can open http://localhost:4000 in a browser and see the locally generated website.
- https://dev.to/michael/compile-a-jekyll-project-without-installing-jekyll-or-ruby-by-using-docker-4184
- https://hub.docker.com/r/jekyll/jekyll
- https://docs.docker.com/compose/
The Docker image used to serve the website locally is generated using the following commands:
git clone [email protected]:jintonic/jintonic.github.io.git physino.xyz
cd physino.xyz
# run docker desktop before running the following commands
# build image based on ./Dockerfile
docker-compose build
# push container to hub.docker.com
docker-compose push
The Dockerfile contains only two lines:
from jekyll/minimal:pages
run gem cleanup && gem install webrick
The official jekyll/minimal:pages image doesn't include the webrick gem, which provides an http server. Without it, I can run jekyll build
, but not jekyll serve
. I can install it using bundler for a specific ruby application or using gem install webrick
for the whole Docker image. As this Docker image is created for the sole purpose of serving this website locally, there is no need to use bundler anymore. Besides, bundle install webrick
not only installs webrick, but also install a bunch of other gems in different versions from the ones installed by gem
. Jekyll gets confused by those different versions of gems. The difference between bundle install
and gem install
is mentioned in the following posts:
The image generated is named physino/jekyll:pages
in docker-compose.yml and shared on https://hub.docker.com/r/physino/jekyll.
Posts are categorized to sub directories
Banners for the categories are defined globally in _includes/banner.html.
jekyll build
htmlproofer ./_site --only-4xx --check-html
https://creativecommons.org/publicdomain/zero/1.0/ Ref.: https://choosealicense.com/
- update blog with research activities
- publications, grant applications, LEGEND, COHERENT, PIRE activities
- youtube, bilibili updates
- new software updates, toward, gears, etc.
- add updated date
- remove category from url to make the url stable (I may rename category later)
- use collections to organize TEDTalks, books, grants, students, postdocs, talks, etc.
- use tags in collections as well
- user cases instead of manual
- tags, collections, categories for organization
- jekyll-pagination only works in the
index.html
file, not index.md. jekyll-pagination-v2 does support pagination in any file, but does not work for GitHub pages. Currently, the pagination code is in blog/index.html. It does not work.