The source code for www.osusec.org!
We recently migrated from Wordpress to the static Hugo site you see now; if you see a bug, please let us know in Issues!
Blogposts and any other content to the website is written in Markdown. Here is a Markdown Cheatsheet if you need it!
git clone git@github.com:osusec/osusec.github.io.git
git checkout -b BRANCH_NAME
git push --set-upstream origin BRANCH_NAME
Hugo is available in many package repositories, as a Docker, or as prebuilt binaries. Choose one and open a terminal!
From the project's root directory, run
hugo new content/blog/BLOGPOST_NAME_HERE.md
Hugo will prevent you from creating a blogpost with a title that already exists for a previous blogpost. Make sure that the title you're choosing is descriptive! The title should also be in all lowercase, with spaces replaced with hyphens. See other files in the content/blog/
folder for examples.
This will create the new blogpost file with certain 'default' information already written. To start writing:
author
field.categories
array. This will be array of strings like ['Club News', 'Meeting News']
. See below for a full list of available categories.---
that denotes the file's metadata.draft
field to false
.Once finished with the blogpost, commit it:
git add content/ static/
git commit -m "added blogpost BLOGPOST_NAME"
git push
Navigate to your branch in Github, and create a Pull Request by clicking Contribute
> Open pull request
. Verify that it is merging into base: master
and hit Create pull request.
Finally, let other officers know in Discord that you have an open PR to be reviewed and published.
Category Name | Purpose |
---|---|
Meeting Notes | Summaries of weekly general meetings. Include links to slides and announcements for next week. |
Club News | Announcements of recent accomplishments, summaries of non-meeting activities, or other special events. |
Writeups | Writeups by club members of recent CTF Challenges they completed, explaining how they solved them. |
Uncategorized | Posts that don't fall into any of the other categories, such as a post used as material for a CTF. |
For "featured photos" that show as the title's background of the post itself, the website will look for JPG files that share the same URL as the post itself. For example, for the post /blog/nsa-visit/
, the website will be looking for /blog/nsa-visit.jpg
. The caption for this image will be set in the caption
field in the .md
file's metadata.
For non-featured photos, the URL can be anything you want, as you will specify it yourself in the markdown. For cleanliness, keep the image names as "extensions" of the original blog URL. For example, for /blog/nsa-visit/
, use the URL/name of /blog/nsa-visit-extra-image.png
. Include a caption with the image for accessibility.