{"id":50659285,"url":"https://github.com/landerox/zensical-theme-slate","last_synced_at":"2026-06-08T01:07:59.113Z","repository":{"id":363150860,"uuid":"1262103247","full_name":"landerox/zensical-theme-slate","owner":"landerox","description":"A sleek, developer-focused, and open-source bilingual (EN/ES) personal portfolio and blog template built with Zensical.","archived":false,"fork":false,"pushed_at":"2026-06-07T17:04:30.000Z","size":265,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-07T18:15:35.043Z","etag":null,"topics":["bilingual","developer-portfolio","markdown","slate","static-site-generator","theme","zensical","zensical-theme"],"latest_commit_sha":null,"homepage":"https://landerox.com/zensical-theme-slate","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/landerox.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-07T15:22:01.000Z","updated_at":"2026-06-07T17:04:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/landerox/zensical-theme-slate","commit_stats":null,"previous_names":["landerox/zensical-theme-slate"],"tags_count":1,"template":true,"template_full_name":null,"purl":"pkg:github/landerox/zensical-theme-slate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/landerox%2Fzensical-theme-slate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/landerox%2Fzensical-theme-slate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/landerox%2Fzensical-theme-slate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/landerox%2Fzensical-theme-slate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/landerox","download_url":"https://codeload.github.com/landerox/zensical-theme-slate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/landerox%2Fzensical-theme-slate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34043838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bilingual","developer-portfolio","markdown","slate","static-site-generator","theme","zensical","zensical-theme"],"created_at":"2026-06-08T01:07:59.022Z","updated_at":"2026-06-08T01:07:59.105Z","avatar_url":"https://github.com/landerox.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD041 MD033 MD013 --\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg\n    src=\"https://raw.githubusercontent.com/landerox/zensical-theme-slate/main/zensical_theme_slate/assets/images/banner.svg\"\n    width=\"460\"\n    alt=\"zensical-theme-slate Banner\"\n  /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003c!-- markdownlint-disable MD013 --\u003e\n  \u003ca href=\"https://github.com/landerox/zensical-theme-slate/actions/workflows/deploy.yml\"\u003e\u003cimg src=\"https://github.com/landerox/zensical-theme-slate/actions/workflows/deploy.yml/badge.svg\" alt=\"Deploy\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/landerox/zensical-theme-slate/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/landerox/zensical-theme-slate/actions/workflows/ci.yml/badge.svg\" alt=\"CI\" /\u003e\u003c/a\u003e\n  \u003ca href=\"pyproject.toml\"\u003e\u003cimg src=\"https://img.shields.io/badge/version-0.1.0-blue\" alt=\"Version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"pyproject.toml\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.13%2B-blue?logo=python\u0026logoColor=white\" alt=\"Python\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/astral-sh/uv\"\u003e\u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json\" alt=\"uv\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/zensical/zensical\"\u003e\u003cimg src=\"https://img.shields.io/badge/Zensical-0.0.44-FF9100\" alt=\"Zensical\" /\u003e\u003c/a\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://landerox.github.io/zensical-theme-slate/\"\u003e\u003cimg src=\"https://img.shields.io/badge/demo-live_demo-success?logo=github\u0026logoColor=white\" alt=\"Live Demo\" /\u003e\u003c/a\u003e\n  \u003ca href=\".devcontainer\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=Dev%20Containers\u0026message=Supported\u0026color=blue\u0026logo=visualstudiocode\u0026logoColor=white\" alt=\"Dev Containers\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/pre-commit/pre-commit\"\u003e\u003cimg src=\"https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white\" alt=\"pre-commit\" /\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/code%20license-MIT-green\" alt=\"Code License: MIT\" /\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE-CONTENT\"\u003e\u003cimg src=\"https://img.shields.io/badge/content%20license-CC%20BY%204.0-lightgrey\" alt=\"Content License: CC BY 4.0\" /\u003e\u003c/a\u003e\n  \u003c!-- markdownlint-enable MD013 --\u003e\n\u003c/p\u003e\n\nThis repository is a hybrid **Packaged Theme + Starter Template** built on top of the modern, Rust-powered [Zensical](https://zensical.org) static site generator. It provides a highly interactive developer portfolio theme (`zensical-theme-slate`) and a pre-configured starter layout so you can customize and launch your site in minutes.\n\nDesigned for developers, technical writers, and creators who want a stunning, high-performance bilingual portfolio and blog site with robust, production-grade quality controls and automated CI/CD out of the box.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg\n    src=\"https://raw.githubusercontent.com/landerox/zensical-theme-slate/main/content/en/assets/images/screenshot.png\"\n    width=\"800\"\n    alt=\"zensical-theme-slate Live Preview\"\n  /\u003e\n\u003c/p\u003e\n\n---\n\n## 🌟 Key Features\n\n* **Sleek Slate Aesthetics**: Deep graphite base (`#0b0f19`) and tailored indigo/slate accents for a modern, polished developer aesthetic.\n* **Interactive Neural Background**: Canvas particle system connecting nodes with lines that respond smoothly to mouse movements.\n* **circular Page Ripple**: A gorgeous ripple transition triggered when toggling light/dark modes (fully respects `prefers-reduced-motion`).\n* **3D Glare Tilt Cards**: Project and experience cards that tilt dynamically in response to mouse coordinates with a glassmorphism reflection overlay.\n* **Complete Bilingual Support (EN/ES)**: Built-in layout for English at `/` and Spanish at `/es/` with full relative path and structure symmetry.\n* **Automated CI/CD Workflows**: Hand-crafted GitHub Actions for deploying compiles to GitHub Pages, link validation, and automated dependency upgrades.\n* **Elite Security \u0026 Quality Standards**: Pre-configured pre-commit hooks for markdown lints, spellchecking (`cspell`), secrets detection (`gitleaks`), dependency auditing (`pip-audit`), and GitHub action security (`zizmor`).\n\n---\n\n## 🚀 Quick Start\n\nYou can get your site up and running in minutes using one of the following options:\n\n### Option 1: Dev Container (Recommended)\n\nThis repository includes a fully configured **Dev Container** (VS Code / GitHub Codespaces) with Python 3.13, `uv`, `just`, and all linter binaries pre-installed.\n\n1. Click the green **\"Use this template\"** button to create your clone on GitHub.\n2. Open your new repository in VS Code.\n3. Click the notification **\"Reopen in Container\"** (or press `F1`, type `Dev Containers: Reopen in Container`).\n4. Once loaded, open a terminal inside VS Code and run:\n\n   ```bash\n   just serve\n   ```\n\n5. Open [http://localhost:8000](http://localhost:8000) to see your website!\n\n### Option 2: Local Manual Setup\n\nIf you prefer to install dependencies directly on your host machine:\n\n**Prerequisites:**\n\n* Python 3.13+\n* [`uv`](https://docs.astral.sh/uv/) (Python package manager)\n* [`just`](https://github.com/casey/just) (command runner)\n\n**Setup:**\n\n```bash\n# 1. Install all dependencies and setup the virtual environment\njust sync\n\n# 2. Install pre-commit quality hooks\njust hooks-install\n\n# 3. Start the English development server (port 8000)\njust serve\n\n# 4. Start the Spanish development server (port 8001)\njust serve-es\n```\n\n### Option 3: Use as a Reusable Theme on an Existing Project\n\nIf you already have an existing Zensical site and simply want to apply the **Slate Theme**:\n\n1. **Install the package** from PyPI:\n\n   Using `uv`:\n\n   ```bash\n   uv add zensical-theme-slate\n   ```\n\n   Using `pip`:\n\n   ```bash\n   pip install zensical-theme-slate\n   ```\n\n   *Alternatively, you can install the latest development version directly from GitHub:*\n\n   ```bash\n   pip install git+https://github.com/landerox/zensical-theme-slate.git\n   ```\n\n2. **Configure your site** to load the theme inside your `zensical.toml`:\n\n   ```toml\n   [project.theme]\n   name = \"slate\"\n   ```\n\n   \u003e [!NOTE]\n   \u003e **Zero-Configuration Asset Injection:** You do NOT need to declare `extra_css` or `extra_javascript` in your `zensical.toml` to load the Slate theme's stylesheets and scripts. The theme uses built-in layout inheritance (`main.html`) to inject them automatically.\n\n---\n\n## 📦 Repository Structure\n\nThe project is architected as a hybrid repository to give you the benefits of a packaged, reusable theme alongside a clean, local starter workspace:\n\n* **`zensical_theme_slate/`**: The core, reusable Python theme package containing the slate design assets (`extra.css`, `extra.js`), default graphics (logos, profile, banner, screenshot), layout template overrides (`main.html`), and theme configurations (`mkdocs_theme.yml`).\n* **`content/`**: Your website's content source directory.\n  * `content/en/`: English Markdown pages and blog posts.\n  * `content/en/assets/`: Optional directory where you can place custom overrides (e.g., your own profile picture, logo, or custom stylesheets).\n  * `content/es/`: Spanish Markdown pages and blog posts.\n* **`zensical.toml` / `zensical.es.toml`**: The site settings for English and Spanish builds, both referencing the packaged `\"slate\"` theme.\n* **`Justfile`**: Simple commands to run your dev server, linting suite, and site compilation.\n\n---\n\n## 🛠️ Customization Guide\n\nPersonalizing the site is straightforward:\n\n1. **Global Site Config**: Open `zensical.toml` (English) and `zensical.es.toml` (Spanish) to update the site title, description, social links, and author details.\n2. **Generic Placeholders**: We've pre-loaded home pages (`content/en/index.md` and `content/es/index.md`) with braces-style placeholders like `{Your Name}` or `{Your Specialty}`. Swap these out for your real info.\n   * *Note: Avoid plain square brackets like `[Placeholder]` without a link, as Zensical interprets them as unresolved markdown link references. Use curly braces `{Placeholder}` instead.*\n3. **Bilingual \u0026 Custom Assets (DRY)**: The core theme styles, scripts, and default graphics reside within the packaged theme directory (`zensical_theme_slate/assets/`). If you want to customize your site's graphics, stylesheet tweaks, or scripts:\n   * Place your custom overrides inside `content/en/assets/` (e.g., your own profile picture at `content/en/assets/images/profile.svg` or custom stylesheets). They will automatically take precedence over the packaged theme defaults.\n   * Never edit files in `content/es/assets/` directly! During development or builds, `just sync-assets` automatically synchronizes your English asset overrides to the Spanish assets folder.\n4. **Content Symmetry**: Every page or blog post under `content/en/` must have a relative-path counterpart under `content/es/`. Run the bilinguality validator to verify alignment:\n\n   ```bash\n   python3 scripts/check_i18n.py\n   ```\n\n---\n\n## 🌍 Automated Deployment\n\nWe have included a pre-configured GitHub Actions deployment workflow (`.github/workflows/deploy.yml`) to compile and publish your site automatically.\n\n1. Go to your repository settings on GitHub: **Settings** -\u003e **Pages**.\n2. Under **Build and deployment** -\u003e **Source**, select **GitHub Actions**.\n3. Push your changes to the `main` branch, and the site will build and deploy to GitHub Pages instantly!\n\n---\n\n## 👥 Contributing\n\nWhile this repository serves as a starter template and packaged theme, technical corrections, bug reports, or suggestions are highly appreciated. Please refer to the [Contributing Guidelines](.github/CONTRIBUTING.md) before opening an Issue or submitting a Pull Request.\n\n---\n\n## 📄 License\n\nTo maintain a clear boundary between the open-source engine and the theme's core assets or template content, this repository operates under a dual-license model:\n\n* **Source Code** (`pyproject.toml`, `.github/`, scripts, tooling configurations) is released under the [MIT License](LICENSE).\n* **Starter Template Content** (Markdown files under `content/`, default demo images, and placeholder prose) is released under the [Creative Commons Attribution 4.0 International License (CC-BY-4.0)](LICENSE-CONTENT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanderox%2Fzensical-theme-slate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flanderox%2Fzensical-theme-slate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanderox%2Fzensical-theme-slate/lists"}