214 lines
7.5 KiB
Markdown
214 lines
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.
|