Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## Summary

-

## Checklist

- [ ] The tutorial builds a concrete project in C or is clearly useful to C project work.
- [ ] The entry is in the most specific category and follows the local table format.
- [ ] The link works, or a working Internet Archive snapshot is used.
- [ ] Tags are included and match the tag legend in `README.md`.
- [ ] Multi-part series link directly to a table of contents or list all parts.
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
37 changes: 37 additions & 0 deletions .github/workflows/links.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Links

on:
pull_request:
push:
branches:
- main
schedule:
- cron: "17 9 * * 1"
workflow_dispatch:

permissions:
contents: read

jobs:
link-check:
name: Check Markdown links
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v5

- name: Check links
uses: lycheeverse/lychee-action@v2
with:
args: >-
--root-dir "${{ github.workspace }}"
--verbose
--no-progress
--max-retries 2
--retry-wait-time 2
--timeout 20
--user-agent Mozilla/5.0
'./**/*.md'
fail: true
jobSummary: true
7 changes: 7 additions & 0 deletions .lycheeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Browser-facing profiles and tutorial hosts that block automated link checkers.
^https://github\.com/7etsuo/project-based-tutorials-in-c/actions/workflows/links\.yml/badge\.svg$
^https://x\.com/tetsuoai$
^https://medium\.com/from-the-scratch/http-server-what-do-you-need-to-know-to-build-a-simple-http-server-from-scratch-d1ef8945e4fa$
^https://www\.toptal\.com/game/video-game-physics-part-i-an-introduction-to-rigid-body-dynamics$
^https://www\.toptal\.com/game/video-game-physics-part-ii-collision-detection-for-solid-objects$
^https://www\.toptal\.com/game/video-game-physics-part-iii-constrained-rigid-body-simulation$
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
* The use of other programming languages are okay as long as the focus is on C
* Tutorials should be placed under the correct category (i.e. a game tutorial would go under the Game Development category) and in alphabetical order
* Links should point to the original tutorial when it works. If the original link is broken or unusable, use a working Internet Archive snapshot.
* Use tags from the README tag legend where possible, and add focused domain tags for the project area.
* If submitting a multi-part series that doesn't include a Table of Contents, submit as follows:
```
Title:
Expand All @@ -15,3 +16,4 @@
* If submitting a video series link directly to playlist when possible (i.e. [Learn Video Game Programming in C](https://www.youtube.com/playlist?list=PLT6WFYYZE6uLMcPGS3qfpYm7T_gViYMMt))
* Mark tutorial(s) with appropriate tags: `book`, `course`, `video`, `in-progress`. (i.e. Handmade Hero `video` `in-progress`)
* Mark abandoned tutorials with `abandoned` tag (i.e. Handmade Quake `video` `abandoned`)
* Expect pull requests to run automated link checks. If a live browser link is blocked by automated checkers but still useful, call that out in the PR.
Loading
Loading