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 [email protected]: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:
- Hugo will intuit your title from the URL you provide it. Edit this if need be to fix capitalization and include special characters.
- Add your name to the
author
field. - Add a category (or more!) to the
categories
array. This will be array of strings like['Club News', 'Meeting News']
. See below for a full list of available categories. - Add tags if appropriate (many other posts on the same topic, etc). Feel free to be creative.
- If including a picture, provide a caption for the picture.
- Write all content below the final
---
that denotes the file's metadata. - When ready, set the
draft
field tofalse
.
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.