This repository holds the source files for the CMU CSD PhD blog, hosted at https://www.cs.cmu.edu/~csd-phd-blog/
-
Make a GitHub account if you don't already have one (in the rest of the instructions, this will be referred to as
harrybovik
) -
Fork this repository (click the fork button on the GitHub interface) to your user account. This will make
https://github.com/harrybovik/csd-blog
. -
The rest of these instructions assume you are on Linux or MacOS. If you are not on either of these, you can use the Andrew Linux machines, or set up a VM, or adapt the instructions to the OS of your choice. If you have working instructions for a different OS, improvements to these instructions would be appreciated.
-
Clone the repository locally using
git clone https://github.com/harrybovik/csd-blog
. -
Copy the
template.md
file from root of the repository intowebsite/content/YEAR/
whereYEAR
is the current year, and modify it as necessary for your blog. If the folder for the current year does not exist, make a new folder, copying_index.md
from the previous year into the directory first. The name you give to the copiedtemplate.md
should indicate a short name for the blogpost, so for example if the title of your blogpost is "Underwater Basketweaving: A New Approach to Fast Weaving", an ideal filename would beunderwater-basketweaving.md
. This file is written in Markdown, and the template shows common uses for most supported Markdown. Make sure to read all the instructions given in thetemplate.md
file too. If you require images (or other static content) for your blogpost, please make the folderwebsite/static/YEAR/BLOGPOSTNAME
and place the image files in it. This will allow you to introduce images in your Markdown file directly using![alttext for foo](./foo.png)
,![alt text for this image](./asdf.jpg)
, etc. Make sure you are using good alt-text, necessary for accessibility for visually impaired users. If you need help with writing Markdown, please refer to the CommonMark help. If you need to use LaTeX in your blogpost, you can use\\( x^y \\)
for inline LaTeX, and\\[ x^y \\]
or$$ x^y $$
block-style LaTeX. If you want to dive deeper into more advanced stuff you can do, you can look at the documentation for the site generator being used, Zola. -
Run
./local_server.sh
to build the website and view it locally. This will start the local server to serve the website at http://127.0.0.1:1111/ (check output of the command if this doesn't work). Check this URL in your browser to see if it looks ok. Once happy, hit Ctrl-C to stop the local server. -
Run
./local_build.sh
to produce a zip file, and send over the producedgenerated-website.zip
to committee members (along with the.md
file, for committee members who prefer that). -
Wait nervously for reviews, suggestions, comments, criticisms, praise, and (hopefully) acceptance to come in. If not accepted, make changes, and repeat previous steps until accepted by committee.
-
Once accepted, have the committee fill out the blog post approval form, and send the form to the Computer Science Department Doctoral Program Manager. A blank version of this form can be found at the root of the blog repository as
WritingSkillsApprovalForm.pdf
. -
Update the date to match the date of the last approver signature. This is the date that is entered into DSR as the official completion date for the Skill.
-
Commit your changes to your fork of the repository (
git add content/YEAR/BLOGPOSTNAME.md
,git add website/static/YEAR/BLOGPOSTNAME
andgit commit -m 'Blogpost by Harry Bovik'
) and push changes to GitHub (git push
). -
Make a pull request to the official repository by clicking the pull request button, adding all requested information.
-
Wait for the web-admin to confirm that everything is on order and pull your changes into the main repository.
-
Rejoice!
You do not need to run anything in this repository if you don't want to. Instead, you simply receive and look at the email sent by the student.
- Receive email from student with the zipped/compressed
folder. Alternatively, you can read the
.md
file directly from the student if you prefer that. - Unzip it and look at the student's post's HTML file (can be found
inside
public/YEAR/POSTNAME/index.html
). Links (currently) within the post will point to the main website, not to the local copy. This may be fixed in the future if someone has time to update the scripts/instructions. - Provide reviews to students (via email).
- Rinse and repeat, until post is acceptable.
- Fill out blog post approval form. A blank version of this form can
be found at the root of the blog repository as
WritingSkillsApprovalForm.pdf
.
The following steps need to be run (in order) whenever notified by the Computer Science Department Doctoral Program Manager that a blog post has been approved:
- Find the post's corresponding pull request in the repository.
- Run
./admin_server.sh ID
(where ID is the pull-request number on the GitHub interface) to grab a local copy of the student's changes, and generate the website on the local machine. This will start a local server at http://127.0.0.1:1111/ - Confirm that the locally generated website looks good (i.e., the front page is actually showing the student's new post on top, and the link can be clicked on) by visiting the URL with a browser. Once satisfied, hit Ctrl-C in the previously running command to kill the local server.
- Merge the changes made by the student on the GitHub web interface, so that it is now made permanent in the repository.
- Run
./admin_build.sh
to pull the authoritative version of the repository and build the actualgenerated-website.zip
file that can then be moved onto AFS and unzipped into the right location. - Confirm that the changes are now live (again, just check that the new post is visible).
(Relevant if you are planning on updating the core infrastructure around this repository)
- The exact version of the compiled binary is maintained in
./binaries
. If updating to a new version of Zola, the only change needed would be to remove the old version in that directory and replace it with the new.tar.gz
and the scripts should automatically pick it up. - LaTeX rendering performed via KaTeX.
- The website is hosted via an AFS share at the moment, but since this repository works via a site-generator, if the particular web-hosting changes, all that would be necessary to change is where the produced HTML files are dropped into.
- Static site generator and theme setup - Jay Bosamiya (@jaybosamiya)