/Obsidian-Blogger

Markdown based blazing fast blog creator

Primary LanguageAstro

Obsidian Blogger

Transform your Obsidian notes into a beautiful, modern blog with ease. Built with Astro.js for blazing-fast performance and seamless Markdown support.

Obsidian Blogger

✨ Features

  • πŸš€ Blazing Fast: Built with Astro.js for optimal performance and SEO
  • πŸ“ Markdown Support: Write in pure Markdown, just like in Obsidian
  • 🎨 Beautiful Design: Modern, responsive layout with dark mode support
  • 🏷️ Tag System: Organize posts with tags and browse by categories
  • πŸ“± Mobile-First: Looks great on any device
  • πŸ” SEO Optimized: Built-in SEO with OpenGraph and canonical URLs
  • πŸ“° RSS Feed: Automatic RSS feed generation
  • πŸ—ΊοΈ Sitemap: Automatic sitemap generation
  • πŸ–ΌοΈ Featured Images: Support for post featured images
  • πŸ“… Date-based Sorting: Chronological post organization
  • πŸŒ™ Dark Mode: Built-in dark mode support

πŸš€ Quick Start

  1. Clone the repository:
git clone https://github.com/yourusername/obsidian-blogger.git
cd obsidian-blogger
  1. Install dependencies:
npm install
  1. Configure your site:

    • Copy .env.example to .env
    • Update the environment variables for your deployment
  2. Start the development server:

npm run dev
  1. Visit http://localhost:4321 to see your blog!

πŸ“ Creating Blog Posts

  1. Add your Markdown files to src/content/blog/
  2. Include required frontmatter:
---
title: 'Your Post Title'
description: 'Post description for SEO'
publish: true
created_date: 2024-01-19
slug: custom-url
tags:
  - tag1
  - tag2
---

Supported Frontmatter Fields

Field Required Description
title Yes Post title
description No SEO description
publish Yes Set to true to publish
created_date No Publication date
slug No Custom URL slug
tags No Array of tags
featured_image No Hero image URL
subtitle No Optional subtitle

🎨 Customization

Site Configuration

Update src/consts.ts to modify:

  • Site title
  • Site description
  • Other global constants

Styling

  • Global styles: src/styles/global.css
  • Component styles: Inline in respective .astro files
  • Theme variables: CSS custom properties in global styles

πŸš€ Deployment

See DEPLOYMENT.md for detailed deployment instructions for:

  • GitHub Pages
  • Netlify
  • Vercel
  • Custom domains

πŸ“¦ Project Structure

obsidian-blogger/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/    # Reusable components
β”‚   β”œβ”€β”€ content/       # Blog posts and content
β”‚   β”œβ”€β”€ layouts/       # Page layouts
β”‚   β”œβ”€β”€ pages/         # Route components
β”‚   β”œβ”€β”€ styles/        # Global styles
β”‚   └── utils/         # Utility functions
β”œβ”€β”€ public/           # Static assets
β”œβ”€β”€ astro.config.mjs  # Astro configuration
└── package.json      # Project dependencies

πŸ› οΈ Development Commands

Command Action
npm run dev Start dev server
npm run build Build for production
npm run preview Preview production build

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ’– Support

If you find this project helpful, please consider:

  • Starring the repository
  • Sharing it with others
  • Contributing to its development

πŸ”— Links