Update README.md with enhanced features section, installation instructions, and favicon details; add favicon links in layout.tsx

This commit is contained in:
rattatwinko
2025-06-16 19:46:53 +02:00
parent b82f48ef4f
commit 500695d471
9 changed files with 79 additions and 50 deletions

120
README.md
View File

@@ -1,48 +1,60 @@
# Markdown Blog # Markdown Blog
A modern blog system built with Next.js, Markdown, and Electron for cross-platform support. [![Next.js](https://img.shields.io/badge/Next.js-14-black?style=flat-square&logo=next.js&logoColor=white)](https://nextjs.org/)
[![Tailwind CSS](https://img.shields.io/badge/TailwindCSS-3.4-blue?style=flat-square&logo=tailwind-css&logoColor=white)](https://tailwindcss.com/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5-blue?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![Electron](https://img.shields.io/badge/Electron-28-47848F?style=flat-square&logo=electron&logoColor=white)](https://www.electronjs.org/)
[![MIT License](https://img.shields.io/badge/License-MIT-green?style=flat-square)](LICENSE)
## Features A modern, cross-platform blog system built with **Next.js**, **Markdown**, and **Electron**. Write posts in Markdown, manage content visually, and deploy to web or desktop.
- Write blog posts in Markdown ---
- Responsive web design
- Desktop application support via Electron
- Mobile-friendly interface
- Tag-based organization
- Clean and modern UI
## Getting Started ## ✨ Features
- ✍️ **Markdown-based posts** — Write and organize content in Markdown files
-**Hot reloading** — See changes instantly as you edit posts
- 🗂️ **Folder & tag organization** — Structure your content with folders and tags
- 🖥️ **Electron desktop app** — Run your blog as a native desktop app
- 📱 **Responsive UI** — Mobile-friendly and clean design
- 🛠️ **Admin dashboard** — Manage posts and folders visually
---
## 🚀 Getting Started
### Prerequisites ### Prerequisites
- Node.js 18+ and npm - [Node.js 18+](https://nodejs.org/)
- [npm](https://www.npmjs.com/)
### Installation ### Installation
1. Clone the repository:
```bash ```bash
git clone <repository-url> git clone
cd markdownblog cd markdownblog
```
2. Install dependencies:
```bash
npm install npm install
``` ```
3. Start the development server: ### Development
```bash
npm run dev
```
4. For desktop development: - **Web:**
```bash `npm run dev`
npm run electron-dev - **Desktop (Electron):**
``` `npm run electron-dev`
### Writing Posts ### Production
Create new blog posts by adding Markdown files to the `posts/` directory. Each post should include frontmatter with the following fields: - **Web build:**
`npm run build`
- **Desktop build:**
`npm run electron-build`
---
## 📝 Writing Posts
Add Markdown files to the `posts/` directory. Each post should have frontmatter:
```markdown ```markdown
--- ---
@@ -55,39 +67,47 @@ summary: "A brief summary of your post"
Your post content here... Your post content here...
``` ```
### Building for Production ---
1. Build the web version: ## 🗂️ Project Structure
```bash
npm run build
```
2. Build the desktop version:
```bash
npm run electron-build
```
## Project Structure
``` ```
markdownblog/ markdownblog/
├── posts/ # Markdown blog posts ├── posts/ # Markdown blog posts
├── src/ ├── src/
│ ├── app/ # Next.js app directory │ ├── app/ # Next.js app directory
│ └── lib/ # Utility functions │ └── lib/ # Utility functions
├── electron/ # Desktop app code ├── electron/ # Desktop app code
── public/ # Static assets ── public/ # Static assets (favicons, etc.)
└── ...
``` ```
## Technologies Used ---
- Next.js 14 ## 🌐 Favicon
- TypeScript
- Tailwind CSS
- Electron
- Markdown (remark)
- date-fns
## License Place your favicon files (e.g., `favicon.ico`, `favicon-32x32.png`, `favicon-16x16.png`) in the `public` directory at the project root.
Next.js will automatically serve these at the root URL (e.g., `/favicon.ico`).
---
## 🛠️ Technologies Used
- [Next.js 14](https://nextjs.org/)
- [TypeScript](https://www.typescriptlang.org/)
- [Tailwind CSS](https://tailwindcss.com/)
- [Electron](https://www.electronjs.org/)
- [Remark](https://remark.js.org/) (Markdown)
- [date-fns](https://date-fns.org/)
---
## 🐳 Docker
A sample `Dockerfile` and `manage_container.sh` are included for containerized deployment.
---
## 📄 License
MIT MIT

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

BIN
public/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
public/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B

BIN
public/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

1
public/site.webmanifest Normal file
View File

@@ -0,0 +1 @@
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}

View File

@@ -2,6 +2,7 @@ import type { Metadata } from 'next';
import { Inter } from 'next/font/google'; import { Inter } from 'next/font/google';
import './globals.css'; import './globals.css';
import Link from 'next/link'; import Link from 'next/link';
import Head from 'next/head';
const inter = Inter({ subsets: ['latin'] }); const inter = Inter({ subsets: ['latin'] });
@@ -17,6 +18,13 @@ export default function RootLayout({
}) { }) {
return ( return (
<html lang="de"> <html lang="de">
<Head>
<link rel="icon" href="/favicon.ico" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
</Head>
<body className={inter.className}> <body className={inter.className}>
<header className="bg-gray-100 p-4"> <header className="bg-gray-100 p-4">
<div className="container mx-auto flex justify-between items-center"> <div className="container mx-auto flex justify-between items-center">