Welcome to Notebook, an open-source project designed with beginners in mind! Notebook is all about creating a friendly and supportive environment for developers of all levels. Whether you're just starting your coding journey or you're an experienced pro, there's a place for you here.
With Notebook, you can easily contribute to technical content and gain valuable experience in the world of open source. Our blog-like platform, built on GitHub's Jekyll framework and adorned with the user-friendly Chirpytheme, makes it a breeze to share your knowledge and learn from others. It's a win-win situation: beginners learn from the insightful posts by contributors, while contributors get the satisfaction of helping others on their coding journey. Join us at Notebook and let's learn and grow together!
Hey there, fellow developer !!!... I'm happy to see you intrested in contributing to this open source project. Since, this project is an open notebook for everyone, you're always welcome to make your techinal writing contribution by writing you own blog, tip & trick, documentation and much more. All you have to do is write down your content in markdown
(just like how wrote this README.md file) and place those file within _posts
directory.
First time ???... Then I highly recommend you to check out CONTRIBUTING.md.
-
Step 1: Make sure you install the required dependencies like
Ruby
,bundler
andJekyll
framework. Installation varies from platform to platform, so make sure to check out the CONTRIBUTING.md. -
Step 2: After installing the required dependencies, fork this repository and clone it in your local system, using the following command:
git clone https://github.com/<your-github-profile>/Notebook.git
- Step 3: Build and run the project within your local machine.
# installing required dependencies for the project to run
bundle
# host the build within your local machine
bundler exec jekyll s
Note
If project build is successful, then you can view the project build that is hosted through your localhost:4000/Notebook. Well done, you have successfully setted up the project within your local system.
- Step 4: After you have setted up the project and done analyzing it, Create a new branch to work on. Make sure your branch name is small and simple.
# create and checkout to your new branch
git checkout -b <your-post-name>
# checking which branch you currently in
git branch
- Step 5: Now, go ahead and enter your author details within the
authors.yml
even before you started working on your technical writing. Just make sure you're entering the details in the following format:
# Make sure the key value does not match other authors
unique_key_value:
name: <author_name>
twitter: <twitter_id>
url: <personal (or) contact url>
Looking for an example ?
shamith_watchdogs:
name: Shamith Nakka
twitter: Shamith29188225
url: https://github.com/iamwatchdogs/
-
Step 6: Now to the actual task, Create a new markdown file with
YYYY-MM_DD-your-post-name.md
(make sure your post name is in small letters and separated by single dash) within the_post
directory. -
Step 7: Each and every markdown file that you have created for content writing should contain the following meta data (or) config:
---
title: <title>
date: YYYY-MM-DD HH:MM:SS +/-TTTT
categories: [<main_categories>, <sub_categories_1>, ..., <sub_categories_n>]
tags: [<tag_1>, ..., <tag_n>]
author: <respective_author_key_value>
img_path: "/assets/img/<your_img_directory_name>/"
image:
path: <name_of_the_img_for_page_cover>
alt: <alternative_text>
---
# Your content writing begins here
Looking for an example ?
---
title: Welcome to the Notebook
date: 2023-09-21 20:34:00 +0530
categories: [Welcome, Guide]
tags: [introduction]
author: shamith_watchdogs
img_path: "/assets/img/welcome-page/"
image:
path: "welcome-img.jpg"
alt: "Welcome Page"
---
# remaining content down below
Note
- Note that the
+/-TTTT
in thedate
section refers the UTC offset. You can find your UTC offset value by searching for your country in the list of UTC. And if you're from India, you can use the above UTC offset from the example. - Also not that
img_path
andimage
(including its sub attributes) are optional and only need when you're going to add images to your post. - If there are more than one person working on a single post use
authors
attribute instead ofauthor
. And the input for theauthors
attribute will be a list of key of authors specified within theauthors.yml
file.
- Step 8: Now, you can proceed to write your technical content. And if you have any images that are part of your technical writing, then create a new directory using your post's name within
assets/img
directory asassets/img/<your-post-name>
. Now add your images to your folder. After adding images to your folder, don't forget to add location toimg_path
attribute asimg_path: ../../assets/img/<your-post-name>
. Now, you can directly access your images with specifying full relative path.
Note
It's highly suggested to use CDN links for images. But if you could not for any reason, then you can proceed with above process.
- Step 9: After you done with your changes, commit them and push them back to your forked repo.
# tracing new files and stagging new changes
git add .
# commiting your changes
git commit -m "Added <your-post-name>"
# check your branch name
git branch
# push your commits to your origin repo
git push origin <your-branch-name>
- Step 10: Now, create a pull request to the original repo. Learn about Pull requests
And that it, you have done it !!!... Now, it's time for the maintainer to review you work and merge you pull request. If there's any issue with your pull request, then the maintainer will contact you and asks for a few changes. And he merges your Pull request, you have successfully did your first open source contribution that actual help others.
Everybody can see you work and make use of it. Good job, mate !!...
Thank you for your valuable contribution to this repo. You work will not be forgotten..