Resources have to be in the form of links. Allowed resources can be videos, articles, tutorials, or anything similar. It has to be helpful, whether as a tool to be used or as a source of information.
Here are some rules to follow when adding a resource to make sure it qualifies:
- Make sure the resource is not too specific of a topic. For example, if adding a resource under JavaScript don't add a tutorial on how to check if an element is in viewport. Only add general resources that are related to the topic.
- Based on the point above, single blog posts are not accepted. This is simply because if single blog posts are allowed then this list would be endless. There could be some exceptions, like if the single post is very extensive or includes details that are hard to find elsewhere. If the resource you're adding falls under the exception then please detail that in the PR.
- If you want to add multiple links of the same topic under the same website, just include a general link that might lead to all these links. For example, instead of adding multiple Youtube videos under the same series, add the playlist link.
- Take the time to make sure the resource has not been already added as it saves the maintainers time when reviewing your pull request.
- Make sure the resource is objective and not opinionated. This means no resources that talks about someone's thoughts of a topic, even if you personally find it helpful.
- No links to personal projects that have helped you learn something, unless the link is a tutorial or guide on how you did that project.
- No links to twitter accounts, telegram channels, Youtube channels (Youtube videos and playlists are allowed), and so on.
- No content with licensing issues.
- You are allowed to add your own content as a resource as long as it is helpful and follows the other rules detailed above.
You can contribute to this repository very easily!
-
Get the resource you want to add ready.
-
Go to the README.
-
Click on the edit icon at the top right corner.
- Find the correct category for your resource. For example: If it's a JavaScript tutorial, you need to add it under Javascript. If the category does not exist, you can add it under Content. Resources are added in alphabetical order, except for Other which should stay at last.
To add a new category, add a list item with the name of the category and the URL to it (hash of the slug of the name). For example:
- [New Category](#new-category)
Also, don't forget to add a shortcut to content index above the new category heading you are adding. For example:
---
**[⬆ Back to Index](#content)**
## Android
- Once you find or add the correct category, add the new resource at the end of the list. It should have the title and the link to the resource. For example:
- :file_folder: [How to contribute](https://github.com/shahednasser/awesome-resources/blob/master/CONTRIBUTING.md)
NOTE: Do not include |
as a seperator for link titles since that causes errors in the rendering of the README on the website. Contributors are advised to replace it with some other similar seperator.
You need to add an emoji before the file name that represents what the resource is. Here are the list of emojis we use:
Emoji | Description | Emoji Key |
---|---|---|
📚 | Course, long series or list of tutorials, or books | :books: |
📁 | Documentation | :file_folder: |
🔈 | Podcast | :speaker: |
📗 | Single Tutorial | :green_book: |
🔧 | Tool | :wrench: |
📹 | Video Resource (Youtube, video course, etc...) | :video_camera: |
💡 | Other (Doesn't belong to any previous categories) | :bulb: |
-
Once you're done, scroll to the bottom of the list to commit the change. Make sure the title of the commit is relevant. For example: Added How to Contribute under New Category.
-
After adding the commit title, click on propose changes and follow the steps to create a pull request.
That's it! Congratulations on making your contribution!
To contribute to the website, you need to have Jekyll and its prerequisites installed. If you don't, you can check here.
After cloning the repository, in the folder run the following to install the bundles:
bundle
And then to run the website locally, run the following commands:
bundle exec jekyll serve --livereload
the --livereload
option ensures the website automatically refreshes on changes to the files.
To edit the CSS of the website, you need to make edits in the files in the folder css
. All the files are .sass
files.
All changes to the layout should be done in _layouts
folder.
To make changes to components like header or footer, changes should be made in _includes
folder. You can find the list of components in the repository of the default Jekyll theme Minima