Compare commits

...
25 Commits
Author SHA1 Message Date
inherentlee 56963da02c small style tweaks and copyright
continuous-integration/drone/push Build is passing
2026-08-05 11:01:36 -07:00
inherentlee bbc88efe34 note about checking for changes
continuous-integration/drone/push Build is passing
2026-08-05 10:56:52 -07:00
inherentlee a8719799f9 Merge remote-tracking branch 'refs/remotes/origin/main' 2026-08-05 10:54:58 -07:00
inherentlee a77cabf9f1 Update content through Mattrbld
continuous-integration/drone/push Build is passing
2026-08-05 10:54:28 -07:00
inherentlee d706703dd1 contact info 2026-08-05 10:53:49 -07:00
inherentlee d6d52e8bef update attribution docs
continuous-integration/drone/push Build is passing
2026-08-05 10:52:35 -07:00
inherentlee 67908bcd0a attrbituion update and notes
continuous-integration/drone/push Build is passing
2026-08-05 10:50:28 -07:00
inherentlee 1b41d37b26 Merge remote-tracking branch 'refs/remotes/origin/main' 2026-08-05 10:44:40 -07:00
inherentlee b0d68de18f help text 2026-08-05 10:44:22 -07:00
inherentlee a913d145b1 Update content through Mattrbld
continuous-integration/drone/push Build is passing
2026-08-05 10:17:35 -07:00
inherentlee 85788ca8e9 remove image stuff
continuous-integration/drone/push Build is passing
2026-08-05 10:14:45 -07:00
inherentlee 0a517c7fc6 remove image stuff
continuous-integration/drone/push Build is passing
2026-08-05 10:13:39 -07:00
inherentlee 850ef1c270 dronefile
continuous-integration/drone/push Build is passing
2026-07-20 16:27:23 -07:00
inherentlee eba8241ed7 sobmodules 2026-07-20 16:27:04 -07:00
inherentlee 8bcea43bbf tweaks 2026-06-22 10:38:32 -07:00
inherentlee 6cd8a7c884 focus rings for header and footer 2026-06-22 10:36:27 -07:00
inherentlee b2bba0a459 Merge remote-tracking branch 'origin' 2026-06-22 09:56:09 -07:00
inherentlee 0e1ca62428 inset image css 2026-06-22 09:55:47 -07:00
inherentlee 24a3125b6b update readme for project 2026-06-22 09:55:25 -07:00
inherentlee 827e94efd1 error message tweaks 2026-06-22 09:53:52 -07:00
inherentlee e247babe70 Update content through Mattrbld 2026-06-22 09:53:08 -07:00
inherentlee c9709de658 Update content through Mattrbld 2026-06-19 18:01:40 -07:00
inherentlee fc4160c507 hover state for button 2026-06-19 17:50:56 -07:00
inherentlee b6f4979a59 hover thickness 2026-06-17 12:51:03 -07:00
inherentlee 0e5a04be82 Update content through Mattrbld 2026-06-17 09:59:50 -07:00
15 changed files with 129 additions and 135 deletions
+25
View File
@@ -0,0 +1,25 @@
kind: pipeline
type: docker
name: default
steps:
- name: build
image: node:current
environment:
REPOSITORY: district-dharma-site
GIT_USER: inherentlee
GIT_TOKEN:
from_secret: GIT_TOKEN
commands:
- git config credential.helper '!f() { echo username=$GIT_USER; echo "password=$GIT_TOKEN"; };f'
- git submodule update --remote --init --merge
- npm install
- npm run build
- apt-get update && apt-get install -y rsync
- rsync -uavh _site/ $REPOSITORY --delete --exclude .git
- cd $REPOSITORY
- git checkout main
- git config --global --add safe.directory /drone/src/$REPOSITORY
- git add -A
- git commit -m "drone build $(TZ=':America/Los_Angeles' date)"
- git push
+3
View File
@@ -0,0 +1,3 @@
[submodule "district-dharma-site"]
path = district-dharma-site
url = https://heckin.technology/inherentlee/district-dharma-site.git
+10
View File
@@ -12,6 +12,16 @@
}, },
"protected": true "protected": true
}, },
{
"icon": "error",
"label": "Help",
"target": {
"name": "Project.Documentation",
"params": {
"path": "/README.md"
}
}
},
{ {
"icon": "document-stack", "icon": "document-stack",
"label": "Pages", "label": "Pages",
-4
View File
@@ -1,4 +0,0 @@
{
"alt": "A chickadee on a fence post.",
"title": null
}
-26
View File
@@ -30,32 +30,6 @@
} }
} }
}, },
{
"type": "image",
"default": null,
"icon": "image",
"key": "hero",
"label": "Hero image",
"options": {
"resolutionHint": "1800",
"removable": true,
"simple": false
},
"tab": "Page data",
"validation": {
"max": null,
"required": false,
"unit": "filesize (MB)"
},
"value": null,
"version": 1,
"visibility": {
"hidden": false,
"showByValue": {
"field": null
}
}
},
{ {
"type": "rich text", "type": "rich text",
"default": null, "default": null,
+25 -81
View File
@@ -1,96 +1,40 @@
# 11ty Template # District Dharma
Template repository for my 11ty projects. Home page for District Dharma based out of DC.
## full drone/submodule setup from scratch ## Prerequisites
### 1. create repo 1. **Heckin' Tech Gitea Personal Access Token (PAT)**
1. Click on your user in the upper right and choose "Settings" from the dropdown
1. Go to "Applications" in the left-hand settings menu
1. Choose "Generate new token"
- Token name is up to you
- Token access should be public only
- Token permissions should be read & write on repositories
1. **Save your token somewhere secure. If lost, you must generate a new token**
1. **Repository access:** Lee will grant contributor permissions. Repository URL is [heckin.technology/inherentlee/district-dharma](https://heckin.technology/inherentlee/district-dharma)
in heckin gitea, create destination repo. ## Managing content
### 2. add dronefile to source repo ### Content management system
Filename: `.drone.yml`, in root of repo. Note the `<vars>` to replace. Your content management system is Mattrbld. Mattrbld can be found at [mattrbld.com](mattrbld.com). The first time you access it (or access in a new browser, on a new machine, or with cookies wiped), you will need to give it the repository URL above and set up a user name. Feel free to just set your full name (spaces are ok). This will label your "commits" (changes) to the repository as you.
```yaml ### Checking for changes
kind: pipeline
type: docker
name: default
steps: It's unlikely there will be conflicts between changes I make and changes you would like to make. However, it's never a bad idea to go to the "Dashboard" tab and choose to check for updates.
- name: build
image: node:current
environment:
REPOSITORY: <dest-repo>
GIT_USER: <username>
GIT_TOKEN:
from_secret: GIT_TOKEN
commands:
- git config credential.helper '!f() { echo username=$GIT_USER; echo "password=$GIT_TOKEN"; };f'
- git submodule update --remote --init --merge
- npm install
- npm run build
- apt-get update && apt-get install -y rsync
- rsync -uavh _site/ $REPOSITORY --delete --exclude .git
- cd $REPOSITORY
- git checkout main
- git config --global --add safe.directory /drone/src/$REPOSITORY
- git add -A
- git commit -m "drone build $(TZ=':America/Los_Angeles' date)"
- git push
```
### 3. create PAT ### Making changes
in heckin, go to settings > applications, and create a PAT with read & write permissions to repositories. All changes will be in the "Pages" tab. There are two pages:
### 4. activate project in drone and add PAT - **attribution:** This page has a brief site creator attribution, mentions the site generator, credits the fonts used, and reports that no generative AI was used in creating the site. It is unlikely you will need to edit this page.
- **index:** This page includes the body content for the home page of District Dharma. Note that it does *not* include the contact form at the bottom, which cannot be created via Mattrbld and is done on the backend. For form changes, contact me.
in drone, find your project and activate it. ### Saving changes
in the settings, I chose to disable pull requests and forks. I set my runner timeout to 15m. To save your changes and see them reflected in the live site, you will navigate to the "Dashboard" tab and sync your changes. Here you will need to enter the email you use for the Heckin' Tech Gitea as well as the generated PAT. If you receive any non-transient errors, feel free to reach out to me.
you can set your PAT either as a project secret or an organization secret. In either case call it `GIT_TOKEN`. ## Contact
### 5. first commit to submodule If for any reason you are having trouble finding me, all my contact information can be found at [leecat.art/contact](https://leecat.art/contact).
assuming we are committing the _site folder...
```sh
cp -r _site ../temp
cd ../temp
git init
git add -A
git commit -m "first"
git remote add origin <remote-url>
git push -u origin main
```
### 6. add submodule to local repo
in root dir of local repo, add the submodule.
```sh
git submodule add <remote-url>
```
if you used the SSH url, set it to the HTTPS url.
```sh
git submodule set-url <dest-repo> <remote-url-https>
git add .gitmodules # the changes from submodule add are auto-staged, this config change isn't
```
commit your changes and push.
```sh
git commit -m "add submodule"
```
(commit your dronefile changes too.)
### 7. profit
if it doesn't work, cry
+1
View File
@@ -1,3 +1,4 @@
<footer> <footer>
<p>© 2026</p>
<p><a href="/attribution/">site attribution</a></p> <p><a href="/attribution/">site attribution</a></p>
</footer> </footer>
+4 -4
View File
@@ -6,7 +6,7 @@ layout: page.njk
{{ content | safe }} {{ content | safe }}
<form action="https://formgrid.dev/api/f/842wiwnz" method="POST" class="contact-form"> <form action="https://formgrid.dev/api/f/842wiwnz" method="POST" class="contact-form">
<h2 class="center">Contact Us</h2> <h2 class="center">Get in touch</h2>
<p class="center">All fields <p class="center">All fields
<span aria-hidden="true">marked with an asterisk (<span class="red">*</span>)</span> <span aria-hidden="true">marked with an asterisk (<span class="red">*</span>)</span>
are required.</p> are required.</p>
@@ -16,14 +16,14 @@ layout: page.njk
<label for="name">Name <span class="red" aria-hidden="true">*</span></label> <label for="name">Name <span class="red" aria-hidden="true">*</span></label>
<input id="name" type="text" name="name" placeholder="Your Name" <input id="name" type="text" name="name" placeholder="Your Name"
required aria-required="true" aria-describedby="name-error"> required aria-required="true" aria-describedby="name-error">
<p id="name-error" class="error">Name cannot be empty</p> <p id="name-error" class="error">Name cannot be empty.</p>
</div> </div>
<div class="form-field"> <div class="form-field">
<label for="email">Email <span class="red" aria-hidden="true">*</span></label> <label for="email">Email <span class="red" aria-hidden="true">*</span></label>
<input id="email" type="email" name="email" placeholder="you@example.com" <input id="email" type="email" name="email" placeholder="you@example.com"
required aria-required="true" aria-describedby="email-error"> required aria-required="true" aria-describedby="email-error">
<p id="email-error" class="error">Email cannot be empty</p> <p id="email-error" class="error">Email cannot be empty and must be a valid email.</p>
</div> </div>
</div> </div>
@@ -31,7 +31,7 @@ layout: page.njk
<label for="message">Message <span class="red" aria-hidden="true">*</span></label> <label for="message">Message <span class="red" aria-hidden="true">*</span></label>
<textarea id="message" name="message" rows="4" placeholder="What's your message?" <textarea id="message" name="message" rows="4" placeholder="What's your message?"
required aria-required="true" aria-describedby="message-error"></textarea> required aria-required="true" aria-describedby="message-error"></textarea>
<p id="message-error" class="error">Message cannot be empty</p> <p id="message-error" class="error">Message cannot be empty.</p>
</div> </div>
<button type="submit" class="form-button">Send message</button> <button type="submit" class="form-button">Send message</button>
-5
View File
@@ -1,11 +1,6 @@
--- ---
layout: base.njk layout: base.njk
--- ---
{% if hero %}
<img id="hero" src="{{ hero.src }}" alt="{{ hero.alt }}">
{% endif %}
<div id="content"> <div id="content">
<h1>{{ title }}</h1> <h1>{{ title }}</h1>
+7
View File
@@ -46,6 +46,13 @@ form button {
margin: 1rem auto; margin: 1rem auto;
} }
@media (any-hover: hover) {
form button:hover {
background-color: var(--color-accent);
color: var(--color-bg);
}
}
.name-email { .name-email {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
+30 -8
View File
@@ -11,6 +11,7 @@
--color-text: light-dark(var(--color-dark), var(--color-light)); --color-text: light-dark(var(--color-dark), var(--color-light));
--color-bg: light-dark(var(--color-light), var(--color-dark)); --color-bg: light-dark(var(--color-light), var(--color-dark));
--color-accent: light-dark(var(--color-blue-dark), var(--color-blue-light)); --color-accent: light-dark(var(--color-blue-dark), var(--color-blue-light));
--color-accent-flipped: light-dark(var(--color-blue-light), var(--color-blue-dark));
--color-red: light-dark(var(--color-red-dark), var(--color-red-light)); --color-red: light-dark(var(--color-red-dark), var(--color-red-light));
} }
@@ -27,6 +28,12 @@
margin: 0; /* 2. Remove default margins */ margin: 0; /* 2. Remove default margins */
} }
*:focus-visible {
outline-offset: .12rem;
outline: .12rem solid var(--color-accent);
border-radius: .25rem;
}
html { html {
height: 100%; height: 100%;
} }
@@ -92,6 +99,7 @@ h1, h2, h3, h4, h5, h6 {
font-variant: small-caps; font-variant: small-caps;
font-family: Montserrat; font-family: Montserrat;
font-weight: 400; font-weight: 400;
letter-spacing: 5%;
} }
h1 { h1 {
@@ -111,6 +119,7 @@ p {
a { a {
color: var(--color-accent); color: var(--color-accent);
text-decoration-thickness: .15rem; text-decoration-thickness: .15rem;
transition: text-decoration-thickness .5s;
} }
a:visited { a:visited {
@@ -118,21 +127,34 @@ a:visited {
text-decoration-color: var(--color-accent); text-decoration-color: var(--color-accent);
} }
*:focus-visible { @media (any-hover: hover) {
outline-offset: .1rem; a:hover {
outline: .1rem solid var(--color-accent); text-decoration-thickness: .25rem;
}
} }
/* Header/nav/footer */ /* Header/nav/footer */
header { header {
height: 20vh; height: 20vh;
padding: 1rem; padding: calc(20vh / 8);
background-color: var(--color-accent); background-color: var(--color-accent);
} }
.logo { .logo {
height: 100%; height: 100%;
width: auto; width: auto;
padding: calc(20vh / 30);
border: calc(20vh / 50) solid var(--color-accent);
border-radius: calc(20vh / 3);
}
header a:focus-visible {
outline: none; /* covered by logo rule below */
}
header a:focus-visible .logo {
border-color: var(--color-text);
outline: calc(20vh / 30) solid var(--color-accent-flipped);
} }
@media (prefers-color-scheme: light) { @media (prefers-color-scheme: light) {
@@ -150,10 +172,12 @@ header {
footer { footer {
background-color: var(--color-accent); background-color: var(--color-accent);
color: var(--color-bg); color: var(--color-bg);
padding: 1rem;
} }
footer p { footer p {
text-align: center; text-align: center;
margin: 0;
} }
footer a, footer a,
@@ -162,8 +186,6 @@ footer a:visited {
text-decoration-color: var(--color-bg); text-decoration-color: var(--color-bg);
} }
/* Misc */ footer a:focus-visible {
#hero { outline: .15rem solid var(--color-accent-flipped);
aspect-ratio: 40 / 9;
object-fit: cover;
} }
+2 -2
View File
@@ -1,8 +1,8 @@
--- ---
title: Attribution title: Attribution
___mb_schema: /.mattrbld/schemas/page.json
--- ---
This site is built using [{{ eleventy.generator }}](https://www.11ty.dev/){target="_blank"} by [Lee Cattarin](https://leecat.art){target="_blank"}. It is hosted by [heckin' technology](https://heckin.technology/){target="_blank"}.
This site is built using [{{ eleventy.generator }}](https://www.11ty.dev/){target="_blank"} by [Lee Cattarin](https://leecat.art){target="_blank"}.
The header font is [Monserrat](https://fonts.google.com/specimen/Montserrat){target="_blank"}. The body font is [Atkinson Hyperlegible Next](https://www.brailleinstitute.org/freefont/){target="_blank"}, developed by the Braille Institute. The header font is [Monserrat](https://fonts.google.com/specimen/Montserrat){target="_blank"}. The body font is [Atkinson Hyperlegible Next](https://www.brailleinstitute.org/freefont/){target="_blank"}, developed by the Braille Institute.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

+21 -5
View File
@@ -1,13 +1,29 @@
--- ---
title: Welcome title: Welcome to District Dharma
hero: null hero: null
layout: index.njk layout: index.njk
___mb_schema: /.mattrbld/schemas/page.json ___mb_schema: /.mattrbld/schemas/page.json
--- ---
## About ## Who we are
The chickadees are a group of North American birds in the family Paridae included in the genus Poecile. Species found in North America are referred to as chickadees; species found elsewhere in the world are called tits. They are small-sized birds overall, usually having the crown of the head and throat patch distinctly darker than the body. They are at least 6 to 14 centimeters (2.4 to 5.5 inches) in size. District Dharma Collective is a community of practitioners rooted in Washington, DC — a city that sits at the center of so much that is uncertain, contested, and in flux. We currently gather in the Dupont Circle neighborhood, and our doors are open to anyone who finds their way to us.
## Schedule We come from different Buddhist traditions and paths, but we gather around a shared conviction: that the dharma has something vital to say to us in these times of upheaval and unrest. We sit together, study the teachings, and ask hard questions about how ancient wisdom meets this present moment — personally, collectively, and in the world around us.
Their name reputedly comes from the fact that their calls make a distinctive "chick-a-dee-dee-dee", though their normal call is "fee-bee", and the "chick-a-dee-dee-dee" call is an alarm call. The number of "dees" depends on the predator. In our study, we are intentional about whose voices we center. Alongside traditional texts, we lift up the teachings of BIPOC and Queer dharma teachers, honoring the full breadth of wisdom that is alive in contemporary Buddhist communities.
We believe that practice and community are inseparable. Whether you are new to meditation, returning after years away, or a long-committed practitioner seeking a spiritual home, you are welcome here. We hold no single tradition and no single teacher — only a shared willingness to show up: on the cushion, in study, and for one another.
## What we do
We gather in a space that spends its weekdays as a psychotherapy office — and there's something intentional about that. Each time we meet, we transform it together, arranging cushions and chairs before settling into thirty minutes of sitting meditation. Newcomers are always welcome to ask for guidance; no experience is assumed.
After a short break, we move into a dharma talk and discussion rooted in whatever text we're exploring as a group. We tend toward contemporary teachers whose voices are too rarely centered — writers like Lama Rod Owens and Kaira Jewel Lingo — alongside more traditional teachings. The conversation that follows is as much a part of the practice as the sitting.
## When we meet
We gather on the first and third Sunday of each month, from 10:30 am to noon, at 1633 Q Street NW, Washington, DC — in the heart of Dupont Circle.
## Come sit with us
Our space is intimate, and we set it up ourselves before each gathering — so it helps us to know you're coming. If you'd like to join us, reach out using the form below and we'll be in touch with everything you need to know!