https://github.com/the-programmers-hangout/website
🌳 TPH website
https://github.com/the-programmers-hangout/website
gatsby react typescript
Last synced: about 1 month ago
JSON representation
🌳 TPH website
- Host: GitHub
- URL: https://github.com/the-programmers-hangout/website
- Owner: the-programmers-hangout
- License: mit
- Created: 2019-07-26T03:40:37.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-03-07T21:01:27.000Z (over 1 year ago)
- Last Synced: 2025-04-02T10:08:51.875Z (3 months ago)
- Topics: gatsby, react, typescript
- Language: TypeScript
- Homepage: https://theprogrammershangout.com
- Size: 5.87 MB
- Stars: 105
- Watchers: 7
- Forks: 67
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://discord.gg/programming)
# TPH Website
[](https://discord.gg/programming)The official website for The Programmer's Hangout ([join us!](https://discord.gg/programming)), a programming community on Discord. See the website here: https://theprogrammershangout.com.
## Contributing
The site is built with [Gatsby](https://github.com/gatsbyjs/gatsby) which is used to leverage the power of React while
allowing for static asset generation along with improved SEO.**This site and resources is still a work-in-progress and subject to change**
### Setup
1. Clone the repo
2. `yarn install`
3. `yarn run develop`
4. Navigate to http://localhost:8000
5. :tada:### Resources
If you're not familiar with Gatsby or React, you can still contribute by adding resources for languages you _are_ familiar with.
The list of resources can be found [here](/src/content/resources)
#### Adding a new resource
Gatsby will take care of most of this process by creating a new page and positioning it in the sidebar automatically once you write up a new resource. All you have to do is follow these steps:
1. Create a markdown page in the appropriate location. For example `/src/content/docs/haskell/monads.md`
2. Add the required frontmatter for the post. [More info here](#frontmatter)
3. Write your main content.
4. Add `external_resources` about the subject if possible.
5. Run through the [setup steps](#setup) if possible to make sure your changes look ok.
6. Create a pull request.#### Frontmatter
Frontmatter is the optional metadata attached to every markdown file, like the list of authors or the creation date of the file. It is essentially just yaml syntax inside `---` delimiters within a markdown file. If you're not familiar with yaml you can find some refreshers [here](https://learnxinyminutes.com/docs/yaml/)
An example frontmatter might look like this
```markdown
---
authors:
- "Xetera#0001"
title: "Working with Lists in Elixir"
created_at: 2020/01/30
external_resources:
- text: Elixir docs: List
href: "https://hexdocs.pm/elixir/List.html"
---# Title
some content here
```You can look at other resources like [this one](/src/content/resources/language/javascript/promises/intro.md) for reference when creating your own. We use [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) as the date format to confuse both Americans and Europeans an equal amount.