up/docs/contributing/index.md
Tolaria 50c5fa340e feat: theme refinements, contributing guide, captcha, new content sections
- Enlarge header logo (3.2rem) and hide site name via extra.css
- Darken link color (#4a8262) and green-to-sage table header gradient
- Add contributing/ section with leaf captcha email reveal
- Move markdown.md to contributing/; theming.md stays root (unpublished)
- Add practices/ and teachings/ content sections
- Update zensical.toml config
2026-06-03 16:19:15 +08:00

214 lines
No EOL
7.5 KiB
Markdown

---
title: Contributing
---
# Contributing to Tree of Ascension Docs
Welcome! This guide will get you from zero to making your first edit — even if you've never used git before.
> **🔒 Registration is currently closed.** New contributor accounts are not available at this moment. If you'd like to get involved, solve the puzzle below to reveal the contact email and request access.
---
## 🔐 Request access
<div class="captcha-game" style="background:linear-gradient(135deg,#f0f7f2,#e5f0e8);border-radius:16px;padding:1.5rem 1.8rem;margin:1.2rem 0 1.8rem;text-align:center;border:1px solid #c8dcd0;">
<p style="margin:0 0 1rem;color:#3d6b52;font-weight:650;font-size:1.05rem;">🌱 Click each leaf in order to reveal the contact email:</p>
<div id="leaf-container" style="display:flex;gap:0.8rem;justify-content:center;align-items:center;flex-wrap:wrap;"></div>
<p id="captcha-hint" style="margin:0.9rem 0 0;font-size:0.85rem;color:#6b8b7a;">Click them from smallest to largest 🌱 → 🌳</p>
<div id="captcha-result" style="display:none;margin-top:1rem;padding:0.8rem 1rem;background:white;border-radius:10px;font-size:1.05rem;border:1px dashed #92ad9e;"></div>
</div>
<script>
(function(){
if(window._leafCaptchaDone)return;window._leafCaptchaDone=true;
var leafTypes=[{e:'🌱'},{e:'🌿'},{e:'🪴'},{e:'🌳'}];
// shuffle
for(var i=leafTypes.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=leafTypes[i];leafTypes[i]=leafTypes[j];leafTypes[j]=t;}
var container=document.getElementById('leaf-container');
var correct=[]; // will hold positions of 🌱,🌿,🪴,🌳 in shuffled visual order
leafTypes.forEach(function(l,pos){
if(l.e==='🌱')correct[0]=pos;
if(l.e==='🌿')correct[1]=pos;
if(l.e==='🪴')correct[2]=pos;
if(l.e==='🌳')correct[3]=pos;
var s=document.createElement('span');
s.textContent=l.e;
s.id='leaf-'+pos;
s.style.cssText='cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#4a8262;color:white;font-size:1.4rem;transition:all 0.3s;user-select:none;';
s.onclick=function(){captchaClick(pos);};
container.appendChild(s);
});
var order=[],step=0;
function resetAll(){
order=[];step=0;
for(var i=0;i<4;i++){var p=document.getElementById('leaf-'+i);if(p)p.style.background='#4a8262';}
}
window.captchaClick=function(i){
if(order.indexOf(i)!==-1)return;
order.push(i);
var p=document.getElementById('leaf-'+i);if(p)p.style.background='#b9a5d7';
if(correct[step]===i){step++;
if(step===4){
var r=document.getElementById('captcha-result');
r.innerHTML='📧 <a href=\"mailto:tree.ad@use.startmail.com\">tree.ad@use.startmail.com</a>';
r.style.display='block';
var h=document.getElementById('captcha-hint');
h.textContent='✨ You found it! Send an email to request access.';
}
}else{
resetAll();
document.getElementById('captcha-hint').textContent='Not quite — try again! Click smallest to largest 🌱 → 🌿 → 🪴 → 🌳';
}
};
})();
</script>
Once you have access, read on below.
---
## 🛠 How it works
| What | Details |
|------|---------|
| **Site host** | [Forgejo](https://forgejo.org) — a friendly, self-hosted git platform |
| **Repo** | [bali.krystl.org/aja/up](https://bali.krystl.org/aja/up) |
| **Built with** | [Zensical](https://zensical.org) — turns Markdown files into a beautiful docs site |
| **Local editor** | [Tolaria](https://tolaria.dev) — a simple desktop app for editing Markdown with git built in |
---
## ✏️ Making your first edit
Follow these steps. If you get stuck, the answer is usually just a few clicks away.
### Step 1 — Open the repo in Forgejo
Go to **[bali.krystl.org/aja/up](https://bali.krystl.org/aja/up)** and sign in with your account.
### Step 2 — Create your branch
Every edit lives on its own branch. This keeps the main site safe while you work.
- Click the **branch dropdown** (near the top of the page, it probably says `main` or `master`)
- Type a short name for your branch — like `add-meditation-guide` or `fix-typo-daily-sadhana`
- Click **"Create branch"**
You're now on your own copy of the site. Any changes you make stay on this branch until you're ready to share them.
### Step 3 — Edit a file
- Browse to the file you want to edit (all content lives in the `docs/` folder)
- Click the **pencil icon** (✏️) in the toolbar above the file
- Make your changes using Markdown (see our [Markdown quick reference](markdown.md))
- Scroll down and write a short commit message — something like `Add breathing exercise section`
- Click **"Commit changes"**
### Step 4 — Open a Pull Request
When your changes are ready:
- Go back to the repo homepage
- You'll see a banner: *"You pushed to your branch — want to open a pull request?"*
- Click **"Compare & pull request"**
- Add a title and a short description of what you changed
- Click **"Create pull request"**
A maintainer will review your changes and merge them into the main site. That's it! 🎉
---
## 💻 Editing locally (optional)
If you prefer to work on your own computer:
### You'll need
- **[git](https://git-scm.com/downloads)** — the version control tool
- **[Tolaria](https://tolaria.dev)** — a friendly Markdown editor with git support
### Steps
```bash
# 1. Clone the repo
git clone https://bali.krystl.org/aja/up.git
cd up
# 2. Create your branch
git checkout -b my-edit
# 3. Open the folder in Tolaria and start editing
# 4. When done, commit and push
git add .
git commit -m "Describe your changes"
git push -u origin my-edit
```
Then follow Step 4 above ("Open a Pull Request") to open your pull request on Forgejo.
---
## 🌱 Plant Your Own
Want to run your own version of this site? You can copy it and publish it under your own domain.
### Copy the repo
**Option A — With git (recommended):**
```bash
git clone https://bali.krystl.org/aja/up.git my-own-site
cd my-own-site
```
**Option B — Download as ZIP:**
1. Go to [bali.krystl.org/aja/up](https://bali.krystl.org/aja/up)
2. Find the **"Download"** or **"⋯"** menu near the top of the file list
3. Choose **"Download ZIP"**
4. Unzip it on your computer
### Set up Zensical
This site uses [Zensical](https://zensical.org) to build from Markdown. Install it and edit the config:
```bash
# Install Zensical (Python 3.12+ required)
pip install zensical
# Or with uv (recommended):
uv add --dev zensical
```
### Make it yours
Open `zensical.toml` and change:
```toml
site_name = "Your Site Name"
site_description = "What your site is about"
site_url = "https://your-domain.com"
site_author = "You"
repo_url = "https://your-forgejo-instance/you/your-repo"
```
Replace `docs/assets/images/tree-ad-logo.svg` with your own logo, then build:
```bash
zensical build --config-file zensical.toml
```
Your site appears in the `site/` folder — upload it to any static host (Netlify, Cloudflare Pages, a VPS, or keep it on Forgejo Pages).
### Use your own domain
1. Build the site and upload the `site/` folder to your hosting provider
2. Point your domain's DNS to your host (your provider will have instructions)
3. Update `site_url` in `zensical.toml` to match
That's it — you now have your own Zensical-powered knowledge garden.
---
Questions? Found a bug? **[Open an issue](https://bali.krystl.org/aja/up/issues)** on the repo.