-
Notifications
You must be signed in to change notification settings - Fork 19
Developer's Guide
This page details information necessary to build, modify, and redeploy the website.
- The
stack
build tool for Haskell -
bibtex2html
package make
Because the site is deployed as static files, building is a 2-step process. First we build the executable (simply called site
) and then we run site
to build the website from the source files.
The compiler should be able to build with just
stack build
This will install all necessary Haskell libraries typically compiling them from scratch. It will also install a GHC binary. This process should only need to happen once. Be prepared to wait.
When the site is built we can run
stack exec site -- build
to build the site, which outputs the static html in _site/. With
stack exec site -- watch
we can launch a live preview server at http://localhost:8000. The preview server will watch the source files and recompile on-the-fly.
Sometimes it is necessary to recompile everything from scratch. In this case run
stack exec site -- rebuild
After building the site per the instructions above, you can deploy the site with
stack exec site deploy
This presumes that you have access to the plclub account on Eniac (i.e., ssh plclub@eniac
should work). This process will
1) Backup the existing website as `html-YYYY-MM-DD.tar`
2) Synchronize your local folder `_site/` with the appropriate remote directory
It is conceivable that the remote file permissions can become incorrect when deploying. In this case, you will need to run the two commands
find ~/html -type f -exec chmod a+r {} +
find ~/html -type d -exec chmod a+rx {} +
on the remote machine (such as by saving them as "fix.sh" and running ssh plclub@eniac ./fix.sh
)
Look under meetings
Look under people. Active members should have their name, website if applicable (include full link with URL scheme), tags (e.g. student, postdoc, faculty), email, and a headshot filename. The headshot itself should go in img/people.
Alumni should have their name, degree they received here, year of graduation, where they are now, website if applicable, and the alum tag. Their email and headshot fields should be removed, and their headshot itself should be removed from img/people. If an alumni website is listed, it should ideally be a non-institutional one to avoid broken links.
The recent publications is built by running a Makefile in a temporary directory and then parsing the results with Pandoc. This is hacky but works surprisingly well.
At least once a year, the following should be checked and updated if necessary:
- list of current members and their information
- newly graduated alumni and their relevant information.
- remove any dead links in the alumni section
- remove any dead links or defunct references under "Keep in Touch" and "Related Groups at Penn"
- the names of current maintainers in the README and in this wiki
- the names of PLClub organizers in the PLClub tab
The following should be updated as applicable:
- Publications
- Blog
- PLClub time and location under "PLClub Discussion Group"
- course numbers and links under "Courses"