Skip to content

Latest commit

 

History

History
127 lines (106 loc) · 5.34 KB

README.md

File metadata and controls

127 lines (106 loc) · 5.34 KB

💎Nuxt3-Blog


🚀https://blog.yunyuyuan.net

English Readme | 中文说明

Features

  • 💻 Build in 5 minutes. Completely free, no need to write any code.
  • 🤝 Convenient to use. An all-in-one admin interface where you only need a token to update configurations, add/edit/delete blog content on the web page. no notepad, no git push.
  • 📷 Integrated image hosting service. Integrated with smms image hosting service and tinypng image compression, one-click upload of blog images on the web page.
  • 🌐 Full static. Packaged as a full static website, no backend required.
  • 🔍 SEO-friendly. Each HTML page is pre-rendered and can be indexed by search engines.
  • 🔒 Can be encrypted. Any single article/record/knowledge can be encrypted, and content can be encrypted in block-level. Only by entering the password can it be viewed.
    • 🚪Full encryption:
    • 🚪Block-level encryption:

How to use

Two ways to deploy

The first way: One-click deployment (note:uncheck Create private Git Repository)

Deploy with Vercel

The second way: fork and deploy(recommended if you want to sync my future commits)

  1. fork this project
  2. deploy within vercel(no need to change any build params)

After deploy

Change user

Change githubName in config.ts to your current Github account.

Generate a new token

Goto https://github.com/settings/tokens/new, check repo scopes, then click Generate token.

Addons

Todo

Features

  • 404 page
  • work with npm run dev
  • testing
  • full-static site generate(SSG)
  • plugin system
  • serverless function to upload images
  • mongodb integration(views analyze)
  • algolia searching
  • images migration
  • changing password(only available while using npm run dev)

Appearance

  • dark mode
  • i18n
  • themes(need UI)
  • custom primary color
Low priority features
  • different password for every content
  • custom-syntax highlight for monaco editor
  • pulling update of upsteam github repo
  • IV for AES encryption
  • block level encryption
  • SSR for self-hosting(reference)
  • support cloudflare page,netlify and others

Project Structure

  • /api serverless functions.
  • /assets
    • /image images that imported by vite.
    • /style public style and utils style.
    • /svg all svg files, will used by /components/svg-icon.vue.
  • /components vue components, auto-import by nuxt.
  • /composables vue composables, auto-import by nuxt.
  • /vite-plugins vite plugins.
  • /i18n i18n message files.
  • /layouts nuxt layout files.
  • /pages all views page.
  • /plugins nuxt plugin files.
  • /public
    • /rebuild all blog data.
    • /sticker all stickers for markdown.
  • /scripts scripts for Gulp.
  • /server api server, only works for SSR.
  • /utils
    • /api functions used by /server.
    • /nuxt common codes of nuxt.
    • /common common codes of javascript.
  • /config.ts blog configurations, your must change it.

Node scripts

"scripts": {
  "build": "nuxt build", // Compile for SSR
  "dev": "nuxt dev", // Development
  "generate": "nuxt generate", // Compile to static
  "chpwd": "gulp change-passwd", // Globally change password
  "genimg": "gulp generate-image-map", // Collect site-wide images, output to img.json
  "downimg": "gulp download-image", // Read img.json, download all images to imgs/
  "subimg": "gulp substitute-image", // Read img.json, replace with new images (before running this script, please modify newUrl in img.json to the URL to be replaced)
  "lint": "eslint --fix --ext .ts,vue --ignore-path .gitignore .", // Execute eslint
  "preview": "nuxt preview", // Preview the compiled website
  "prepare": "husky install" // Install Husky
}

Changelog

CHANGELOG.md

Others