Skip to content

Commit 7120e19

Browse files
committed
Merge branch 'main' into gh-pages
2 parents e84ab2e + e5c944f commit 7120e19

2 files changed

Lines changed: 71 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## What This Project Is
6+
7+
A static site ([pythonframeworks.com](https://pythonframeworks.com/)) listing popular Python frameworks organized by category. The entire site is a single `index.html` file — there is no backend in production. Bottle.py is used only for local development.
8+
9+
## Running Locally
10+
11+
```bash
12+
python3 frameworks.py
13+
```
14+
15+
Visit `http://localhost:8080/`. Hot reloading is enabled by default (`reloader=True`).
16+
17+
## Architecture
18+
19+
- **`frameworks.py`** — Entire backend (16 lines). Two routes: `/` renders `index.html` as a Bottle template, `/static/<path>` serves static files.
20+
- **`index.html`** — All content lives here (~4,300 lines). Each framework is a Bootstrap card. Categories are `<div class="category" id="CategoryName">` sections containing a Masonry grid of cards.
21+
- **`bottle.py`** — Vendored single-file WSGI micro-framework for local development only. Do not edit.
22+
- **`static/`** — CSS/JS libraries (Bootstrap 5, Masonry, ImagesLoaded) and framework logos under `static/image/logos/`.
23+
24+
## Adding a Framework
25+
26+
Add a Bootstrap card inside the appropriate category's `.row.grids` div in `index.html`:
27+
28+
```html
29+
<div class="col-sm-6 col-lg-3 mb-4">
30+
<div class="card">
31+
<!-- name, link, logo, description -->
32+
</div>
33+
</div>
34+
```
35+
36+
## Adding a Category
37+
38+
```html
39+
<hr class="my-4">
40+
41+
<div class="category" id="CategoryName">
42+
<h3 class="mt-5 display-6">Category Name</h3>
43+
<p>Description of this category</p>
44+
45+
<div class="row grids mt-4" data-masonry='{"percentPosition": true }'>
46+
<!-- cards go here -->
47+
</div>
48+
</div>
49+
```
50+
51+
The navigation tag cloud is dynamically generated from category `id` attributes and card counts — no manual nav updates needed.

index.html

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,26 @@
246246
}
247247
}
248248

249+
@media (max-width: 576px) {
250+
.navbar > .container {
251+
flex-wrap: wrap;
252+
}
253+
.navbar-brand {
254+
width: 100%;
255+
margin-bottom: 0.5rem;
256+
}
257+
#navbarNav {
258+
width: 100%;
259+
margin-bottom: 0.5rem;
260+
}
261+
#navbarNav .navbar-nav {
262+
margin-left: 0 !important;
263+
}
264+
nav.navbar {
265+
margin-bottom: 1rem !important;
266+
}
267+
}
268+
249269
</style>
250270
</head>
251271

0 commit comments

Comments
 (0)