- Prologue
- How Github-pages work
- Editing/Adding new links
- Generating HTML lectures from PDF/PPTX files (Using Libre-office)
- Integrating HTML websites into the generated github-page
- Pushing bug fixes changes guide (branch naming, commits and PRs)
- Pushing new features guide (branch naming, commits and PRs)
- Updating your local repository with the remote repository
- Creating issues at this repository
This roadmap is provided by gdsc-sohag under GPLv3 open-source license.
To contribute to this repository (edit/add new links, edit/add/generate new lectures on docs, edit/add custom websites) follow this guide.
- Every repository you create under your account is accompained by a domain that host your github-page when deploying it.
- Github-pages deploys web-pages using Docker on an Ubuntu virtual server, in general you don't need to touch or know any of the linux virtualization processes as it's an automated process.
- To publish a user site, you must create a repository owned by your personal account that's named
<username>.github.io
. - To publish an organization site, you must create a repository owned by an organization that's named
<organization>.github.io
, for examplegoogle-developers-sohag.github.io/Embedded-Systems-Roadmap
. - The source files for a project site are stored in the same repository as their project.
- Steps to reproduce the automated github-page on your own:
- Now you have a working automated deployment to your repo, in this case i am specifying the
./docs
folder as my deployment directory for the site, so docker won't include the rest of the branch in the building process, this saves much time in the deployment process. - Create a configuration yaml file _config.yml in your deployment directory
./docs
, with these basic attributes:
title: Embedded Systems Tutorial by GDSC-Sohag
description: A concise introduction to embedded engineering and C programming langauge
show_downloads: true
theme: jekyll-theme-slate
- For a specific theme, visit Github-pages supported themes, however, you can still write your own theme using pure HTML5/CSS3 with a minimal js code.
- For more (as customizing your site and setting up themes with jekyll), refer to the Github-pages docs.
- Markdown and HTML files inside
./docs
are added to the build and deploy actions performed by github-pages. - Markdown files are rendered into HTML files in this process with the theme specified previously in the
.scss
assets by the theming engine selected previously in your config yaml file. - HTML files are included in the build directly.
- The index.md or
index.html
will be the default homepage for your deployed web-page. - You can write in both markdown or HTML and the github-pages action will deploy them to your github-page.
NB: Libreoffice is preferred.
- Using your powerpoint renderer application:
Menu -> File -> Save-as -> Web-page/HTML -> Save as "index.html"
and select the save directory. - Test your
index.html
and apply your changes to the html code if feasible.
- Fork and Clone your fork locally:
$ cd ./Projects && git clone https://github.com/[your-username]/Embedded-Systems-Roadmap.git
- Create a new feature branch:
$ git checkout master -b feature-a
- Add your generated html directory to the local repo
./docs
deployment folder. - Add, commit and push the changes to the new featured branch.
$ git add ./docs/[feature-a] && git commit -m "docs/feature-a: [details-in-brief]" && git push origin feature-a
- Now, head to your fork and create a pull request with some good checkpointed details about your changes.
A PR's description should be in this form (A tasked PR).
Title:
Feature-added: little description
Description:
## This PR adds/changes/modifies/deletes the following:
- [x] Foo-bar-A.
- [ ] Foo-bar-B.
## This PR targets this issue/feature-request:
- #1242.
- Create a new branch out off the master branch describing the issue in brief.
$ cd ./Projects/Embedded-Systems-Roadmap && git checkout master -b "foobar-fix"
- Do your fix changes.
- Now add, commit and push them.
$ git add ./[directory] && git commit -m "foobar: fixed issue-A" && git push origin foobar-fix
- Now create a PR with this signature.
Title:
Fix: little description
Fix-Description:
## This PR fixes the following:
- [x] Foo-bar-A.
- [ ] Foo-bar-B.
## This PR targets this bug:
- #1342.
- Create a new branch out off the master branch describing the feature in brief.
$ cd ./Projects/Embedded-Systems-Roadmap && git checkout master -b "feature-a"
- Do your fix changes.
- Now add, commit and push them.
$ git add ./[directory] && git commit -m "feature-a: added foobars" && git push origin feature-a
- Now create a PR with this signature.
Title:
Feature-added: little description
Description:
## This PR adds/changes/modifies/deletes the following:
- [x] Foo-bar-A.
- [ ] Foo-bar-B.
## This PR targets this issue/feature-request:
- #1242.
- Pull with the rebase flag will update your current master local branch with the remote one.
$ cd ./Projects/Embedded-Systems-Roadmap && git pull origin master --rebase
Issues should be in this formula
Issue-Title: brief description
Description:
......