DuWebkit is a minimized subset of Ruofei Du's Python toolkits of personal website. It compiles minimized HTML, JS, and CSS by parsing data from a Google Sheet database.
The motivation is: given a set of papers with different authors, I have to manually generate BibTeX items, links to individual's website, and write template for each paper. It's tedious to maintain all links up-to-update so I need a structured way to do so. What if we can maintain all the data in two or more Google Sheet?
SQL? PHPMYADMIN is insecure to play with while adding new rows
require significant amount of efforts to log-in, ensure data integrity, and
JSON? In 2018, I made VarshneyWebsite, which uses JSON for storing
students and papers. However, JSON file is hard to search and find, and column
names are repetative.
gSheets is a better choice for personal website? In 2019, I started to
build a new toolchain to leverage Google Sheets for updating such small-scale
relational database. It offers me a convenient interface to have a quick
overview of all of my previous submissions and coauthors.
You may need a developer account and access this sample Google sheet for a template Google sheet to compile a website from this set of Python scripts. This is the opensourced version of my private repository and may not reflected what I am showing on http://duruofei.com. Please feel free to pull request or ask me for anything.
Use pip3 install -r requirements.txt, or:
pip3 install --upgrade pip pip3 install configparser pip3 install --upgrade httplib2 oauth2client pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib pip3 install --upgrade markdown htmlmin pip3 install --upgrade selenium pip3 install --upgrade beautifulsoup4 pip3 install --upgrade csscompressor pip3 install --upgrade jsmin
The results will be written into
builds/ folder by default.
I am not checking in my photos, but the images should be located in the
scripts/utils/regex.py for the complete grammar and feel free to extend
<!-- include: header.html -->
<!-- css: main.css -->
- Multiple language support.
- Better CSS for the demo project.
- The sample HTML has typos and unmatched tags. I suggested you write your own :)
The above license is only granted to entities that act in concordance with local labor laws. In addition, the following requirements must be observed:
- The licensee must not, explicitly or implicitly, request or schedule their employees to work more than 45 hours in any single week.
- The licensee must not, explicitly or implicitly, request or schedule their employees to be at work consecutively for 10 hours.
Please refer to individual GLSL files (.glsl) for License of Third-Party Shaders.