Skip to content

Commit 3cbdd78

Browse files
Copilotianlintner
andauthored
[WIP] Publish mkdocs site to GitHub Pages (#18)
* Initial plan * Add GitHub Actions workflow to deploy MkDocs to GitHub Pages Co-authored-by: ianlintner <500914+ianlintner@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: ianlintner <500914+ianlintner@users.noreply.github.com>
1 parent 5d30344 commit 3cbdd78

File tree

3 files changed

+122
-6
lines changed

3 files changed

+122
-6
lines changed

.github/workflows/docs.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Deploy MkDocs to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- 'docs/**'
9+
- 'mkdocs.yml'
10+
- '.github/workflows/docs.yml'
11+
workflow_dispatch:
12+
13+
permissions:
14+
contents: read
15+
pages: write
16+
id-token: write
17+
18+
concurrency:
19+
group: pages
20+
cancel-in-progress: false
21+
22+
jobs:
23+
build:
24+
runs-on: ubuntu-latest
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v4
28+
with:
29+
fetch-depth: 0 # Required for git-revision-date-localized plugin
30+
31+
- name: Setup Python
32+
uses: actions/setup-python@v5
33+
with:
34+
python-version: "3.12"
35+
36+
- name: Install MkDocs and plugins
37+
run: |
38+
python -m pip install --upgrade pip
39+
pip install mkdocs mkdocs-material mkdocs-mermaid2-plugin mkdocs-awesome-pages-plugin mkdocs-git-revision-date-localized-plugin
40+
41+
- name: Build MkDocs site
42+
run: mkdocs build --clean
43+
44+
- name: Upload artifact
45+
uses: actions/upload-pages-artifact@v3
46+
with:
47+
path: site
48+
49+
deploy:
50+
environment:
51+
name: github-pages
52+
url: ${{ steps.deployment.outputs.page_url }}
53+
runs-on: ubuntu-latest
54+
needs: build
55+
steps:
56+
- name: Deploy to GitHub Pages
57+
id: deployment
58+
uses: actions/deploy-pages@v4

docs/index.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Python Interview Algorithms Workbook
2+
3+
[![CI](https://github.com/ianlintner/python_dsa/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/ianlintner/python_dsa/actions/workflows/ci.yml)
4+
5+
Clean, idiomatic Python implementations for senior/staff-level interview prep with complexity notes, pitfalls, demos, and tests.
6+
7+
![Project overview screenshot](assets/visual.png)
8+
9+
## Quick Navigation
10+
11+
- [Engineering Study Plan](ENGINEERING_STUDY_PLAN.md) - Structured study guide from Intern to Principal level
12+
- [Algorithms Portfolio](ALGORITHMS_PORTFOLIO.md) - Complete portfolio of algorithm implementations
13+
- [Learning Path](LEARNING_PATH.md) - 2-3 week structured learning plan with checkpoints
14+
- [Consistency Models](CONSISTENCY_MODELS.md) - Distributed systems consistency patterns
15+
- [System Design Guide](INTERVIEW_SYSTEM_DESIGN.md) - Interview system design preparation
16+
- [NeetCode Top 100](NEETCODE_TOP100.md) - Must-know LeetCode problems
17+
18+
## Modules Overview
19+
20+
- **algorithms/sorting** - Comparison (merge, quick, heap, insertion, selection, bubble) and non-comparison (counting, radix)
21+
- **algorithms/searching** - Binary search family, advanced search, selection algorithms
22+
- **data_structures** - Union-Find (DSU), Trie, LRU/LFU caches, Fenwick tree, Segment tree
23+
- **graphs** - BFS/DFS, Topological sort, Dijkstra, A*, Bellman-Ford, Floyd-Warshall, MST, SCC
24+
- **dp** - Fibonacci, coin change, LIS, knapsack, edit distance, bitmask TSP, LCS
25+
- **strings** - KMP, Rabin-Karp, Z-algorithm, Manacher, suffix array/LCP
26+
- **math_utils** - Sieve, GCD/LCM, modular arithmetic, prefix sums
27+
- **patterns** - Sliding window, monotonic stack/queue, two pointers, backtracking
28+
- **systems/concurrency** - Reservoir sampling, rate limiters, consensus notes
29+
30+
## Getting Started
31+
32+
Install (editable) and run tests:
33+
34+
```bash
35+
python -m pip install -U pip
36+
python -m pip install -e .
37+
pytest -q
38+
```
39+
40+
Run demos:
41+
42+
```bash
43+
python src/main.py --list
44+
python src/main.py --demo sorting.merge_sort
45+
python src/main.py --demo searching.binary_search
46+
python src/main.py --demo dp.lcs
47+
python src/main.py --demo graphs.scc
48+
```
49+
50+
## Repository
51+
52+
For the full source code and contributions, visit the [GitHub repository](https://github.com/ianlintner/python_dsa).

mkdocs.yml

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,15 @@ markdown_extensions:
4343
- pymdownx.tilde
4444
nav:
4545
- Home: index.md
46-
- Engineering Study Plan: docs/ENGINEERING_STUDY_PLAN.md
47-
- Algorithms Portfolio: docs/ALGORITHMS_PORTFOLIO.md
48-
- Learning Path: docs/LEARNING_PATH.md
49-
- Consistency Models: docs/CONSISTENCY_MODELS.md
50-
- System Design Guide: docs/INTERVIEW_SYSTEM_DESIGN.md
51-
- NeetCode Top 100: docs/NEETCODE_TOP100.md
46+
- Engineering Study Plan: ENGINEERING_STUDY_PLAN.md
47+
- Algorithms Portfolio: ALGORITHMS_PORTFOLIO.md
48+
- Learning Path: LEARNING_PATH.md
49+
- Consistency Models: CONSISTENCY_MODELS.md
50+
- System Design Guide: INTERVIEW_SYSTEM_DESIGN.md
51+
- NeetCode Top 100: NEETCODE_TOP100.md
52+
- System Design Interviews:
53+
- AI System Design Glossary: system_design_interviews/ai_system_design_glossary.md
54+
- Bitly Clone: system_design_interviews/bitly_clone.md
55+
- Facebook Clone: system_design_interviews/facebook_clone.md
56+
- Twitter Clone: system_design_interviews/twitter_clone.md
57+
- WhatsApp Clone: system_design_interviews/whatsapp_clone.md

0 commit comments

Comments
 (0)