Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

ย 

History

252 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Pepe's Portfolio

A personal site with three tabs: Home (about), Socials, and a Library โ€” a personal MCBE pack management system with automatic pack indexing. Projects live on Home as cards, not their own tab.

๐Ÿงญ Site Structure

  • Home โ€” hero, bio, known/learning languages, and cards into Projects and the Library
  • Projects (reached via a card on Home) โ€” every brand, client, and tool in one place
  • Socials โ€” Discord, YouTube, GitHub, PayPal, MCPEDL, CurseForge
  • Library โ€” the pack browser documented below

๐ŸŽจ Design Language

Custom color palette for optimal visual hierarchy:

  • Primary Accent: #489c49 (Green) โ€” highlights, CTAs, active states
  • Light Gray: #424549 โ€” light neutral backgrounds
  • Medium Gray: #36393e โ€” mid-tone neutrals
  • Dark Gray: #282b30 โ€” dark backgrounds
  • Darker Gray: #1e2124 โ€” primary background

Features:

  • Responsive sidebar + main content layout
  • Smooth animations and transitions
  • Dark mode (default) + Light mode
  • Professional pack cards with metadata
  • Smart search and category filtering
  • Category counts and author attribution

๐Ÿ“ Folder Structure

โ”œโ”€โ”€ index.html          # Main page
โ”œโ”€โ”€ styles.css          # Design system
โ”œโ”€โ”€ script.js           # Client-side app logic
โ”œโ”€โ”€ generator.py        # Auto-index generator
โ”œโ”€โ”€ packs.json          # Generated pack index (DO NOT EDIT)
โ”œโ”€โ”€ README.md           # This file
โ””โ”€โ”€ packs/              # Your pack storage
    โ”œโ”€โ”€ packs/
    โ”‚   โ”œโ”€โ”€ my-texture-pack/
    โ”‚   โ”‚   โ””โ”€โ”€ pack.json          # Pack metadata
    โ”‚   โ””โ”€โ”€ another-pack/
    โ”œโ”€โ”€ clients/
    โ”œโ”€โ”€ addons/
    โ”œโ”€โ”€ website/
    โ””โ”€โ”€ other/

๐Ÿš€ Workflow: Adding Packs

Step 1: Create Pack Folder

Create a folder in packs/[category]/:

packs/packs/nyxora-texture-pack/

Step 2: Add pack.json Metadata

Create packs/packs/nyxora-texture-pack/pack.json:

{
  "name": "Nyxora Texture Pack",
  "description": "A vibrant texture pack overhauling terrain, mobs, and UI",
  "author": "Your Name",
  "version": "1.0.0",
  "thumbnail": "๐Ÿ“ฆ",
  "tags": ["texture", "pack", "mcbe"],
  "category": "packs",
  "license": "MIT"
}

Supported Fields:

  • name โ€” Pack display name
  • description โ€” Brief description
  • author โ€” Your name/username
  • version โ€” Version number (e.g., "1.0.0")
  • thumbnail โ€” Emoji or image URL (use emoji for simplicity)
  • tags โ€” Search keywords
  • category โ€” One of: packs, clients, addons, website, other
  • license โ€” License type (optional)

Step 3: Add Pack Files

Put your pack files, configs, etc. inside the pack folder:

packs/packs/nyxora-texture-pack/
โ”œโ”€โ”€ pack.json
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ textures/
โ””โ”€โ”€ license.txt

Step 4: Run Generator

Generate the index:

python generator.py

This scans packs/ and updates packs.json. It also:

  • Calculates pack sizes
  • Counts files
  • Generates sitemap.xml for SEO
  • Updates category counts

Step 5: Deploy

Commit and push to GitHub:

git add -A
git commit -m "Add new design pack: Modern UI Kit"
git push origin main

Your site updates automatically with the new pack!

๐ŸŽจ Banners

Every card and detail page shows the pack name as Minecraft-style splash text over a banner image:

  • Drop a pack_banner.png into a pack's folder to use it as that pack's own banner (falls back to bg.png if that's what's there).
  • Otherwise, the sitewide default banner at assets/default-banner.png is used โ€” add that file once and every pack without its own banner picks it up automatically.

The splash text uses "Gyroscope Mojang F" by Vyacheslav Kirnos (CC BY-SA 3.0) โ€” see assets/fonts/license.txt.

๐Ÿ—‚๏ธ Multiple Versions Per Pack

Drop more than one pack file (.mcpack/.mcaddon/.zip/etc) into the same pack folder and the generator lists every one on the detail page, newest first, each with its own size/date/Download button. The version number is read from the filename (My_Pack_V1.6.0.mcpack) or, if there isn't one, from the file's own manifest.json.

๐Ÿ’ฐ Linkvertise

Every Download button (sidebar and each version row) routes through Linkvertise before handing over the real file โ€” same setup as ClientLibrary. Configure it in script.js:

const LINKVERTISE_USER_ID = 499358;
function isMonetizationOn() { return true; }

๐ŸŒ Website Category (Special Behavior)

Packs in the website category skip the detail page entirely โ€” clicking the card opens the site directly (in a new tab, unless "Open Links in New Tab" is off in Settings).

To add one, no pack.json is required. Just create a folder with:

packs/website/glacier-client/
โ”œโ”€โ”€ glacierclient.xyz     โ† empty file; the filename IS the link
โ”œโ”€โ”€ icon.png               โ† card thumbnail
โ””โ”€โ”€ bg.png                 โ† optional banner (unused since there's no detail page)

The generator treats any file in the folder that isn't pack.json, icon.png, bg.png, or a known doc file (README/LICENSE) as the link file โ€” its filename becomes https://<filename>. Run python generator.py afterward to pick it up. You can still add a pack.json alongside these files for a custom name/description/tags; otherwise the folder name is used.

๐Ÿ” Features

Search

  • Find packs by name, description, or tags
  • Real-time filtering as you type

Categories

  • Filter by: Packs, Clients, Addons, Website, Other
  • Shows pack count per category
  • The "All" view groups results by category with a divider line and label
  • One-click filtering

Sorting

  • Name (A-Z) โ€” alphabetical
  • Recently Added โ€” newest first
  • Most Downloads โ€” most popular

Theme

  • Dark mode (default) for late-night browsing
  • Light mode for daytime
  • Settings panel for preferences

Metadata Display

  • Pack name and description
  • Author attribution
  • Download count
  • Pack size
  • Version number
  • Tags/keywords

๐Ÿ“ Pack Metadata Reference

Thumbnail Options

Use Emoji (Recommended):

"thumbnail": "๐ŸŽจ"

Use Image URL:

"thumbnail": "https://example.com/image.png"

Available Emoji for Common Types:

  • Packs: ๐Ÿ“ฆ ๐ŸŽจ ๐Ÿ–Œ๏ธ
  • Clients: ๐Ÿ›ก๏ธ โš™๏ธ ๐ŸงŠ
  • Addons: โœจ ๐Ÿงฉ ๐Ÿ”ฎ
  • Website: ๐ŸŒ ๐Ÿ’ป ๐Ÿ”—
  • Other: ๐Ÿ“„ ๐ŸŽญ ๐Ÿš€

Category Descriptions

  • packs โ€” Texture/resource packs
  • clients โ€” MCBE client builds and configs
  • addons โ€” Behavior pack addons and mods
  • website โ€” Site source code and web tools
  • other โ€” Everything else (capes, misc tools, resources)

๐Ÿ”„ Generator Script

The generator.py script automates index management:

# Scan and update index
python generator.py

# Check for missing metadata
python generator.py --validate

What it does:

  1. Scans packs/ directory
  2. Reads pack.json from each folder
  3. Calculates directory sizes
  4. Updates packs.json with all metadata
  5. Generates sitemap.xml for search engines
  6. Reports any issues or missing data

Use Cases:

  • After adding new packs
  • Before deploying to production
  • In CI/CD pipeline for automation

๐ŸŽฏ Best Practices

  1. Naming Convention

    • Use kebab-case for folder names: modern-ui-kit โœ… not Modern UI Kit
    • Use meaningful names that describe the pack
  2. Metadata Quality

    • Write clear, concise descriptions (2-3 sentences)
    • Include relevant tags for discoverability
    • Use emoji thumbnails for consistency
  3. Pack Organization

    • Keep related files together in the pack folder
    • Include a README.md with usage instructions
    • Add LICENSE file for legal clarity
  4. Versioning

    • Use semantic versioning: MAJOR.MINOR.PATCH
    • Increment when adding features or fixes
    • Use 1.0.0 for initial release
  5. Downloads Tracking

    • .metadata.json in a pack folder sets the starting count picked up by the generator:

{ "downloads": 150, "last_updated": "2026-08-29" }

 - From there, downloads count up live in the browser โ€” no server or
   Cloudflare Worker needed. Every click on a pack's Download button
   calls a free public counter ([abacus](https://jasoncameron.dev/abacus/)),
   which persists and increments the count globally. The pack detail
   page fetches the current live count on load and falls back to the
   static seed number above until the first real click happens.

## ๐ŸŒ Deployment

### GitHub Pages
1. Push to GitHub repository
2. Enable GitHub Pages in repo settings
3. Site auto-deploys to your domain

### Custom Domain
Add your domain in `CNAME` file (already configured)

### CI/CD
Add to your workflow to auto-generate index:

```yaml
- name: Update Pack Index
run: python generator.py

๐Ÿ“Š Analytics

After deploying, you can track:

  • Total packs available
  • Downloads per pack
  • Popular categories
  • User searches

The generator creates sitemap.xml for search engine indexing.

๐Ÿ› ๏ธ Customization

Change Colors

Edit styles.css CSS variables:

:root {
  --color-accent: #489c49;      /* Your brand color */
  --color-bg-primary: #1e2124;  /* Background */
}

Modify Layout

  • Sidebar width: --sidebar-width: 280px
  • Grid columns: grid-template-columns
  • Spacing: --spacing-* variables

Add Fields

Edit script.js createPackCard() method to display additional metadata.

๐Ÿ“– Example: Full Pack Setup

packs/
โ”œโ”€โ”€ packs/
โ”‚   โ””โ”€โ”€ nyxora-texture-pack/
โ”‚       โ”œโ”€โ”€ pack.json
โ”‚       โ”œโ”€โ”€ README.md
โ”‚       โ”œโ”€โ”€ LICENSE
โ”‚       โ””โ”€โ”€ textures/
โ”‚           โ”œโ”€โ”€ blocks/
โ”‚           โ””โ”€โ”€ ui/

pack.json:

{
  "name": "Nyxora Texture Pack",
  "description": "A vibrant texture pack overhauling terrain, mobs, and UI",
  "author": "Your Name",
  "version": "2.1.0",
  "thumbnail": "๐Ÿ“ฆ",
  "tags": ["texture", "pack", "mcbe"],
  "category": "packs"
}

โ“ FAQ

Q: Can I have nested categories? A: No, but you can use tags for more detailed organization.

Q: How often should I run the generator? A: After adding/removing packs, or set it up in CI/CD to run automatically.

Q: Can I customize the pack card display? A: Yes! Edit the createPackCard() method in script.js.

Q: How do I track pack downloads? A: Add .metadata.json file in each pack folder.

๐Ÿ“ž Support

For issues or questions:

  1. Check the pack.json format matches the template
  2. Ensure generator.py ran successfully
  3. Verify packs.json was updated

๐Ÿ“„ License

Pack Library generator is MIT licensed.
Individual packs have their own licenses (specified in pack.json).


Built with ๐Ÿ’š using a custom design language

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages