Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/StardustDL/acblog
An open source extensible static & dynamic blog system. (an alternative tool with same features at StardustDL/paperead)
https://github.com/StardustDL/acblog
acblog backend blazor blog-engine cms content-management-system csharp docker dotnet dotnet-core frontend github-pages spa static-site-generator wasm wasm-ghpages
Last synced: 4 months ago
JSON representation
An open source extensible static & dynamic blog system. (an alternative tool with same features at StardustDL/paperead)
- Host: GitHub
- URL: https://github.com/StardustDL/acblog
- Owner: StardustDL
- License: other
- Created: 2020-04-28T06:20:38.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-12T15:04:54.000Z (almost 2 years ago)
- Last Synced: 2024-05-15T20:12:17.733Z (9 months ago)
- Topics: acblog, backend, blazor, blog-engine, cms, content-management-system, csharp, docker, dotnet, dotnet-core, frontend, github-pages, spa, static-site-generator, wasm, wasm-ghpages
- Language: C#
- Homepage: https://acblog.github.io
- Size: 1.08 MB
- Stars: 66
- Watchers: 3
- Forks: 17
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# AcBlog
 
[](https://github.com/acblog/acblog.github.io)  
[](https://www.nuget.org/packages/AcBlog.Tools.SDK/)An open source extensible static & dynamic blog system.

The [homepage](https://acblog.github.io) is powered by AcBlog hosted on GitHub Pages.
- A mirror homepage on [Gitee](https://acblog.gitee.io).
## Screenshots



## Features
- Based on WebAssembly & SignalR
- Single Page APP
- Installable
- Offline
- Frontend
- WebAssembly: full static files
- SPA by WebAssembly with server prerender
- SPA without WebAssembly by communicating with server
- Backend
- Static-file backend with generator
- Dynamic server backend
- Post
- Category & Keywords
- Markdown rendering
- LaTeX math rendering
- Diagram rendering
- Media links
- Password protection
- Table of contents
- Slides
- Preview & Full page
- Note
- Custom pages
- Custom layout
- Full HTML
- Visitor statistic
- Comments
- Archives with timeline
- Sitemap
- Feeds (Atom & RSS)
- Search (Open Search supported)
- Docker deployment
- [](https://hub.docker.com/r/acblog/wasm) Client.WebAssembly
- [](https://hub.docker.com/r/acblog/wasm-host) Client.WebAssembly.Host
- [](https://hub.docker.com/r/acblog/client) Client.Server
- [](https://hub.docker.com/r/acblog/api) Server.API## Guide
### Full Static Hosting
GitHub Pages hosting, based on [wasm-ghpages-generate-action](https://github.com/acblog/wasm-ghpages-generate-action) and [static-backend-generate-action](https://github.com/acblog/static-backend-generate-action).
- [Demo Project](https://github.com/acblog/acblog.github.io)
- [中文说明](https://stardustdl.gitee.io/posts/Development%2FAcBlog-staticgen)### Frontend
Use AcBlog's WebAssembly client docker image:
```sh
docker pull acblog/wasm:latest
docker run -d -p 8000:80 acblog/wasm:latest
```You can use volumn to apply settings:
```sh
docker run -d \
-v $PWD/appsettings.json:/app/appsettings.json \
-v $PWD/manifest.json:/app/manifest.json \
-p 8000:80 acblog/wasm:latest
```For GitHub Pages hosting, you can use [wasm-ghpages-generate-action](https://github.com/acblog/wasm-ghpages-generate-action).
---
Use AcBlog's WebAssembly hosted client docker image:
```sh
docker pull acblog/wasm-host:latest
docker run -d -p 8000:80 acblog/wasm-host:latest
```You can use volumn to apply settings:
```sh
docker run -d \
-v $PWD/appsettings.json:/app/appsettings.json \
-v $PWD/manifest.json:/app/wwwroot/manifest.json \
-p 8000:80 acblog/wasm-host:latest
```---
Use AcBlog's server client docker image (no WebAssembly):
```sh
docker pull acblog/client:latest
docker run -d -p 8000:80 acblog/client:latest
```You can use volumn to apply settings:
```sh
docker run -d \
-v $PWD/appsettings.json:/app/appsettings.json \
-p 8000:80 acblog/client:latest
```### Backend
#### Static
Use AcBlog's SDK:
```sh
dotnet tool install -g AcBlog.Tools.Sdk \
--add-source https://sparkshine.pkgs.visualstudio.com/StardustDL/_packaging/feed/nuget/v3/index.jsonacblog init
acblog remote add origin "./dist"
acblog push
```For GitHub Pages hosting, you can use [static-backend-generate-action](https://github.com/acblog/static-backend-generate-action).
#### Dynamic
Use AcBlog's API server docker image:
```sh
docker pull acblog/api:latest
docker run -d -p 8000:80 acblog/api:latest
```### Compose
Use docker-compose to deploy WebAssembly hosted client and Api server:
```sh
cd docker/deploy
docker-compose up
```Maybe you need to restart api container after database initializing.
### SDK
Use AcBlog's command-line Sdk tool to communicate with AcBlog server.
```sh
dotnet tool install -g AcBlog.Tools.Sdk \
--add-source https://sparkshine.pkgs.visualstudio.com/StardustDL/_packaging/feed/nuget/v3/index.jsonacblog --help
```## Build
1. Install .NET SDK 5.0, NodeJS 12.x and npm.
2. Install Gulp & Libman
3. Install psake```ps1
npm install -g gulp
dotnet tool install --global Microsoft.Web.LibraryManager.Cli
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted; Install-Module -Name psake
```4. Restore dependencies
Add NuGet source: [StardustDL's NUGET feeds](https://sparkshine.pkgs.visualstudio.com/StardustDL/_packaging/feed/nuget/v3/index.json).
```ps1
Invoke-psake Restore
```1. Build project
```ps1
Invoke-psake Build
```## Test & Benchmark
```sh
Invoke-psake CI
```## Dependencies
- [.NET](https://github.com/dotnet/runtime) & [ASP.NET](https://github.com/dotnet/aspnetcore) For basic framework.
- [Entity Framework](https://github.com/dotnet/efcore) For database access.
- [ant-design-blazor](https://github.com/ant-design-blazor/ant-design-blazor) For UI designs.
- [scriban](https://github.com/lunet-io/scriban) For layouts.
- [RazorComponents.Markdown](https://github.com/StardustDL/RazorComponents.Markdown) For Markdown rendering.
- [loment](https://github.com/StardustDL/loment) For comment service.
- [listat](https://github.com/StardustDL/listat) For statistic service.## Status
