diff --git a/reset-site.sh b/reset-site.sh index 77b508a..d25ff7b 100644 --- a/reset-site.sh +++ b/reset-site.sh @@ -1,288 +1,358 @@ #!/bin/bash -# filepath: /home/bunker-mobile-lab/changemaker.lite.love.island/reset-site.sh -echo "๐Ÿ”„ Resetting Changemaker Lite site to baseline..." +# Reset MkDocs site to baseline while preserving custom code +# Usage: ./reset-site.sh -# Define the mkdocs directory -MKDOCS_DIR="/home/bunker-mobile-lab/changemaker.lite.love.island/mkdocs" +set -e # Exit on error + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +MKDOCS_DIR="$SCRIPT_DIR/mkdocs" DOCS_DIR="$MKDOCS_DIR/docs" +TEMP_DIR="/tmp/mkdocs-reset-$$" -# Check if mkdocs directory exists -if [ ! -d "$MKDOCS_DIR" ]; then - echo "โŒ MkDocs directory not found: $MKDOCS_DIR" - exit 1 -fi +echo "๐Ÿ”„ Resetting MkDocs site to baseline..." -cd "$MKDOCS_DIR" || exit 1 +# Create temp directory for backups +mkdir -p "$TEMP_DIR" -echo "๐Ÿ“‚ Current directory: $(pwd)" - -# Create backup directory with timestamp -BACKUP_DIR="../backup-$(date +%Y%m%d_%H%M%S)" -echo "๐Ÿ’พ Creating backup at: $BACKUP_DIR" -mkdir -p "$BACKUP_DIR" - -# Backup entire docs directory first -cp -r docs "$BACKUP_DIR/" 2>/dev/null || echo "โš ๏ธ Warning: Could not backup docs directory" - -# List of files and directories to preserve -PRESERVE_FILES=( - # Configuration files - "mkdocs.yml" - "docs/index.md" - - # Blog directory and index - "docs/blog" - "docs/blog/index.md" - - # Stylesheets - "docs/stylesheets/extra.css" - - # Template overrides - "docs/overrides/main.html" - - # JavaScript files - "docs/javascripts/gitea-widget.js" - "docs/javascripts/github-widget.js" - "docs/javascripts/home.js" - - # Hooks - "docs/hooks/repo_widget_hook.py" - - # Assets that might exist - "docs/assets" -) - -echo "๐Ÿ”’ Preserving essential files..." - -# Create temporary directory for preserved files -TEMP_PRESERVE_DIR="/tmp/mkdocs-preserve-$$" -mkdir -p "$TEMP_PRESERVE_DIR" - -# Copy preserved files to temp directory -for file in "${PRESERVE_FILES[@]}"; do - if [ -e "$file" ]; then - # Create directory structure in temp - dirname_path=$(dirname "$file") - mkdir -p "$TEMP_PRESERVE_DIR/$dirname_path" - - # Copy file or directory - cp -r "$file" "$TEMP_PRESERVE_DIR/$file" 2>/dev/null - echo "โœ… Preserved: $file" - else - echo "โš ๏ธ Not found (will be created): $file" +# Backup custom directories if they exist +echo "๐Ÿ“ฆ Backing up custom directories..." +for dir in hooks assets javascripts overrides stylesheets blog; do + if [ -d "$DOCS_DIR/$dir" ]; then + echo " - Backing up $dir/" + cp -r "$DOCS_DIR/$dir" "$TEMP_DIR/" fi done -echo "๐Ÿ—‘๏ธ Cleaning docs directory..." +# Backup mkdocs.yml +cp "$MKDOCS_DIR/mkdocs.yml" "$TEMP_DIR/mkdocs.yml.bak" -# Remove everything from docs except .gitkeep if it exists -find docs/ -mindepth 1 -name ".gitkeep" -prune -o -type f -exec rm -f {} \; 2>/dev/null -find docs/ -mindepth 1 -name ".gitkeep" -prune -o -type d -exec rm -rf {} \; 2>/dev/null +# Clear docs directory +echo "๐Ÿงน Clearing docs directory..." +rm -rf "$DOCS_DIR"/* +rm -rf "$DOCS_DIR"/.* 2>/dev/null || true -echo "๐Ÿ“ Recreating directory structure..." +# Create baseline MkDocs Material structure +echo "๐Ÿ“ Creating baseline content structure..." +mkdir -p "$DOCS_DIR" -# Recreate basic directory structure -mkdir -p docs/{stylesheets,javascripts,overrides,hooks,assets,blog/posts} +# Create index.md +cat > "$DOCS_DIR/index.md" << 'EOF' +# Welcome to Your MkDocs Site -echo "โ™ป๏ธ Restoring preserved files..." - -# Restore preserved files -for file in "${PRESERVE_FILES[@]}"; do - if [ -e "$TEMP_PRESERVE_DIR/$file" ]; then - # Create parent directory if needed - dirname_path=$(dirname "$file") - mkdir -p "$dirname_path" - - # Restore file or directory - cp -r "$TEMP_PRESERVE_DIR/$file" "$file" - echo "โœ… Restored: $file" - fi -done - -# Clean up temp directory -rm -rf "$TEMP_PRESERVE_DIR" - -echo "๐Ÿ“ Ensuring required files exist..." - -# Ensure blog index exists -if [ ! -f "docs/blog/index.md" ]; then - echo "Creating docs/blog/index.md..." - cat > docs/blog/index.md << 'EOF' - - -EOF -fi - -# Ensure main index exists with baseline content if missing -if [ ! -f "docs/index.md" ]; then - echo "Creating baseline docs/index.md..." - cat > docs/index.md << 'EOF' ---- -template: home.html -hide: - - navigation - - toc ---- - -# Welcome to Changemaker Lite - -Stop feeding your secrets to corporations. Own your political infrastructure. - -## Quick Start - -Get up and running in minutes: - -```bash -# Clone the repository -git clone https://gitea.bnkops.com/admin/changemaker.lite -cd changemaker.lite - -# Configure environment -./config.sh - -# Start all services -docker compose up -d -``` - -## Services - -Changemaker Lite includes essential services for documentation, development, and automation. +This site has been reset to baseline configuration. ## Getting Started -1. **Setup**: Run `./config.sh` to configure your environment -2. **Launch**: Start services with `docker compose up -d` -3. **Dashboard**: Access the Homepage at [http://localhost:3010](http://localhost:3010) +- Edit `docs/index.md` to change this page +- Add new pages in the `docs/` directory +- Configure navigation in `mkdocs.yml` +- Customize the theme in `docs/overrides/` +## Features Preserved + +Your custom code has been preserved in: + +- `hooks/` - Custom build hooks +- `assets/` - Images and static files +- `javascripts/` - Custom JavaScript +- `overrides/` - Theme overrides +- `stylesheets/` - Custom CSS +- `blog/` - Blog content + +## Next Steps + +1. Start adding your content +2. Configure the navigation +3. Customize the appearance +4. Deploy your site + +--- + +*Built with MkDocs Material* EOF -fi -# Ensure mkdocs.yml has baseline content if missing -if [ ! -f "mkdocs.yml" ]; then - echo "Creating baseline mkdocs.yml..." - cat > mkdocs.yml << 'EOF' -site_name: Changemaker Lite -site_description: Build Power. Not Rent It. Own your digital infrastructure. -site_url: https://cmlite.org -site_author: Bunker Operations -docs_dir: docs -site_dir: site +# Create a simple getting-started.md +cat > "$DOCS_DIR/getting-started.md" << 'EOF' +# Getting Started -# Repository -repo_url: https://gitea.bnkops.com/admin/changemaker.lite -repo_name: changemaker.lite -edit_uri: "" +Welcome to your fresh MkDocs Material site! -# Theme -theme: - name: material - custom_dir: docs/overrides - palette: - - scheme: slate - primary: deep purple - accent: amber - toggle: - icon: material/weather-night - name: Switch to light mode - - scheme: default - primary: deep purple - accent: amber - toggle: - icon: material/weather-sunny - name: Switch to dark mode - font: - text: Inter - code: JetBrains Mono - features: - - navigation.instant - - navigation.tracking - - navigation.tabs - - navigation.sections - - navigation.expand - - navigation.top - - search.highlight - - search.share - - search.suggest - - content.code.copy +## Adding Content -# Plugins -plugins: - - search - - blog: - blog_dir: blog - post_date_format: medium - archive_name: Archive - categories_name: Categories +Create new markdown files in the `docs/` directory: -# Extra CSS and JS -extra_css: - - stylesheets/extra.css +```bash +docs/ +โ”œโ”€โ”€ index.md # Homepage +โ”œโ”€โ”€ getting-started.md # This page +โ”œโ”€โ”€ page1.md # Your content +โ””โ”€โ”€ page2.md # More content +``` -extra_javascript: - - javascripts/home.js - - javascripts/github-widget.js - - javascripts/gitea-widget.js +## Configuring Navigation -hooks: - - docs/hooks/repo_widget_hook.py +Edit `mkdocs.yml` to add navigation: -# Navigation +```yaml nav: - Home: index.md - - Blog: - - blog/index.md + - Getting Started: getting-started.md + - Your Section: + - Page 1: page1.md + - Page 2: page2.md +``` -# Copyright -copyright: > - Copyright © 2024 The Bunker Operations +## Using the Blog + +The blog plugin is already configured. Add posts in `docs/blog/posts/`: + +```markdown +--- +date: 2024-01-01 +categories: + - News +--- + +# Your Blog Post Title + +Post content here... +``` + +## Customization + +- Theme overrides: `docs/overrides/` +- Custom CSS: `docs/stylesheets/` +- Custom JS: `docs/javascripts/` EOF -fi -echo "๐Ÿงน Cleaning up build artifacts..." - -# Remove build directory if it exists -if [ -d "site" ]; then - rm -rf site - echo "โœ… Removed build directory" -fi - -# Remove any cache directories -find . -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null -find . -name "*.pyc" -type f -delete 2>/dev/null - -echo "๐Ÿ” Verifying reset..." - -# Check that essential files exist -essential_check=true -check_files=("docs/index.md" "mkdocs.yml" "docs/blog/index.md" "docs/stylesheets/extra.css") - -for file in "${check_files[@]}"; do - if [ -f "$file" ]; then - echo "โœ… $file exists" +# Restore custom directories +echo "โ™ป๏ธ Restoring custom directories..." +for dir in hooks assets javascripts overrides stylesheets blog; do + if [ -d "$TEMP_DIR/$dir" ]; then + echo " - Restoring $dir/" + cp -r "$TEMP_DIR/$dir" "$DOCS_DIR/" else - echo "โŒ $file missing" - essential_check=false + # Create empty directories if they didn't exist + mkdir -p "$DOCS_DIR/$dir" fi done -if [ "$essential_check" = true ]; then - echo "" - echo "๐ŸŽ‰ Site reset complete!" - echo "๐Ÿ“‹ Summary:" - echo " โ€ข Preserved essential configuration and assets" - echo " โ€ข Maintained blog directory and posts" - echo " โ€ข Kept custom stylesheets and JavaScript" - echo " โ€ข Backup created at: $BACKUP_DIR" - echo "" - echo "๐Ÿš€ Next steps:" - echo " โ€ข Run 'mkdocs serve' to start development server" - echo " โ€ข Run 'mkdocs build' to generate static site" +# Create simplified home.html +echo "๐Ÿ  Creating simplified home template..." +cat > "$DOCS_DIR/overrides/home.html" << 'EOF' +{% extends "main.html" %} + +{% block extrahead %} +{{ super() }} + +{% endblock %} + +{% block content %} +
+
+ {% if config.theme.logo %} + + {% endif %} + +

Let's get started!

+ +

+ Your MkDocs Material site is ready for customization. +

+ + +
+ +
+
+
๐Ÿ“
+

Write Content

+

Create pages with Markdown

+
+ +
+
๐ŸŽจ
+

Customize Theme

+

Make it your own

+
+ +
+
๐Ÿš€
+

Deploy

+

Share with the world

+
+
+
+{% endblock %} +EOF + +# Create simplified home.css +echo "๐ŸŽจ Creating simplified home styles..." +cat > "$DOCS_DIR/stylesheets/home.css" << 'EOF' +/* Simple home page styles */ + +.home-container { + max-width: 1200px; + margin: 0 auto; + padding: 2rem; +} + +.home-hero { + text-align: center; + padding: 4rem 0; +} + +.home-logo { + width: 120px; + height: 120px; + margin-bottom: 2rem; +} + +.home-title { + font-size: 3rem; + font-weight: 700; + margin: 0 0 1rem 0; + color: var(--md-primary-fg-color); +} + +.home-subtitle { + font-size: 1.25rem; + color: var(--md-default-fg-color--light); + margin: 0 0 2rem 0; +} + +.home-actions { + display: flex; + gap: 1rem; + justify-content: center; + flex-wrap: wrap; +} + +.home-button { + display: inline-block; + padding: 0.75rem 2rem; + border-radius: 0.25rem; + text-decoration: none; + font-weight: 500; + transition: all 0.2s; +} + +.home-button-primary { + background: var(--md-primary-fg-color); + color: var(--md-primary-bg-color); +} + +.home-button-primary:hover { + background: var(--md-primary-fg-color--dark); + transform: translateY(-2px); +} + +.home-button-secondary { + border: 2px solid var(--md-primary-fg-color); + color: var(--md-primary-fg-color); +} + +.home-button-secondary:hover { + background: var(--md-primary-fg-color); + color: var(--md-primary-bg-color); +} + +.home-features { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + margin-top: 4rem; +} + +.feature-card { + text-align: center; + padding: 2rem; + border-radius: 0.5rem; + background: var(--md-code-bg-color); +} + +.feature-icon { + font-size: 3rem; + margin-bottom: 1rem; +} + +.feature-card h3 { + margin: 0 0 0.5rem 0; + color: var(--md-default-fg-color); +} + +.feature-card p { + margin: 0; + color: var(--md-default-fg-color--light); +} + +/* Dark mode support */ +[data-md-color-scheme="slate"] .home-logo { + filter: brightness(0.9); +} + +[data-md-color-scheme="slate"] .feature-card { + background: var(--md-default-fg-color--lightest); +} + +/* Mobile responsive */ +@media (max-width: 768px) { + .home-title { + font-size: 2rem; + } + + .home-subtitle { + font-size: 1rem; + } + + .home-actions { + flex-direction: column; + align-items: center; + } + + .home-button { + width: 100%; + max-width: 300px; + text-align: center; + } +} +EOF + +# Update mkdocs.yml - remove nav section +echo "๐Ÿ“‹ Updating mkdocs.yml (removing nav)..." +# Use sed to remove nav section (everything from "nav:" to the next top-level key) +sed -i '/^nav:/,/^[a-zA-Z]/{ /^nav:/d; /^[a-zA-Z]/!d; }' "$MKDOCS_DIR/mkdocs.yml" + +# Also ensure the logo path is correct +if [ -f "$DOCS_DIR/assets/logo.png" ]; then + echo "โœ… Logo found at assets/logo.png" else - echo "" - echo "โš ๏ธ Reset completed with warnings - some essential files are missing" - echo "๐Ÿ’พ Backup available at: $BACKUP_DIR" + echo "โš ๏ธ No logo found at assets/logo.png - you may want to add one" fi +# Clean up temp directory +rm -rf "$TEMP_DIR" + +echo "โœ… Reset complete!" echo "" -echo "โœจ Reset complete!" \ No newline at end of file +echo "Next steps:" +echo "1. Add your content to $DOCS_DIR" +echo "2. Configure navigation in mkdocs.yml" +echo "3. Customize the home page in overrides/home.html" +echo "4. Run 'mkdocs serve' to preview" +echo "" +echo "Your custom code has been preserved in:" +echo " - hooks/" +echo " - assets/" +echo " - javascripts/" +echo " - overrides/" +echo " - stylesheets/" +echo " - blog/"