Contributions

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 :smile:
Expecting cool contributions! Who knows it may be your shot to learn writing and enhance your communication :wink:

Let me know if something is missing or unclear