This is an open-sourced website hosted on github pages!
If you wish to contribute or have a cool idea to share or even a cool challenge which can be put up as an assignment, this is the correct page you are looking at.
Contributing as a collaborator
This repository uses jekyll theme TeXt, check out the documentation for features and syntax.
All the posts are stored in _posts directory, creating a file YYYY-MM-DD-name.md
creates a url /YYYY/MM/DD/name.html
in the github pages.
To create a new post, just create a new file of the specified format.
Not a collaborator?
Create a fork and issue a pull request with the repository. Make sure the branch you are working on is updated with the master branch. If you feel you would be a regular contributor, just feel free to let us know so that we can add you as collaborator!
Not sure if you want to publish directly?
Create the same file with specified format in _drafts (create if directory not available)
Showcase your work
You can showcase your work by having an author badge at the bottom which can be configured to display your profile (name, bio, github, twitter, linkedin etc). Just navigate to _data/authors.yml and append your details (take hints from pre existing author details).
Note: Undesired files (not to be shown on the website) or paths should be added in the
exclude
variable in _config.yml
Front-matter
Each post page has a beginning element called frontmatter which is enclosed in ---
This yaml is configuration of the current page.
Example
---
tags: introduction assignment
aside:
toc: true
sidebar:
nav: layouts
excerpt_separator: <!--more-->
author: deuterium
key: assignment000001
---
Some of the tags have been explained below,
Tag | Description |
---|---|
author | The name of the article author as defined in _data/authors.yml |
tags | Space separated list of tags to categorize the page |
aside | For providing table of contents on right side of screen, autogenerated from page contents |
sidebar | For providing sidebar navigation to across articles, can be defined in _data/navigation.yml (needs to be defined beforehand) |
key | A unique key to the page (required for loading comments) |
excerpt_separator | An html tag <!--more--> to specify till where the text of artcle needs to be taken as the excerpt of the article |
sha256hash | To be used in assignment tasks. Just specify the sha256 of the flag. |
mathjax |
true enables mathjax syntax |
mathjax_autoNumber | Autonumbers the equations |
mermaid |
true enables mermaid js (very handy for quick diagrams) |
chart |
true enables char.js on the page |
Check out other features in documentation
Creating an assignment
Assignment will be just another article page, with tasks in it.
The files required for the task need to be put into assignments directory in a directory which is name of the article.
For each task, calculate the sha256 of the flag and put it in the sha256hash
array in frontmatter.
Put the tags
{% assign index = 0 %}
{% include checkflag.html %}
To specify index of the task and include a flag input box!
Check out what are assignments.md for an example.
Well thats all it takes to contribute and publish your article
Expecting cool contributions! Who knows it may be your shot to learn writing and enhance your communication
Let me know if something is missing or unclear