Update README.md with enhanced features section, installation instructions, and favicon details; add favicon links in layout.tsx
This commit is contained in:
120
README.md
120
README.md
@@ -1,48 +1,60 @@
|
|||||||
# Markdown Blog
|
# Markdown Blog
|
||||||
|
|
||||||
A modern blog system built with Next.js, Markdown, and Electron for cross-platform support.
|
[](https://nextjs.org/)
|
||||||
|
[](https://tailwindcss.com/)
|
||||||
|
[](https://www.typescriptlang.org/)
|
||||||
|
[](https://www.electronjs.org/)
|
||||||
|
[](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
|
||||||
BIN
public/android-chrome-192x192.png
Normal file
BIN
public/android-chrome-192x192.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
BIN
public/android-chrome-512x512.png
Normal file
BIN
public/android-chrome-512x512.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 159 KiB |
BIN
public/apple-touch-icon.png
Normal file
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
BIN
public/favicon-16x16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 768 B |
BIN
public/favicon-32x32.png
Normal file
BIN
public/favicon-32x32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
BIN
public/favicon.ico
Normal file
BIN
public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
1
public/site.webmanifest
Normal file
1
public/site.webmanifest
Normal 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"}
|
||||||
@@ -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">
|
||||||
|
|||||||
Reference in New Issue
Block a user