├── .gitattributes
├── resource
├── static
│ └── cactus
│ │ ├── images
│ │ └── logo.png
│ │ ├── lib
│ │ ├── vazir-font
│ │ │ ├── Vazir.eot
│ │ │ ├── Vazir.ttf
│ │ │ ├── Vazir.woff
│ │ │ ├── Vazir.woff2
│ │ │ ├── Vazir-Black.eot
│ │ │ ├── Vazir-Black.ttf
│ │ │ ├── Vazir-Bold.eot
│ │ │ ├── Vazir-Bold.ttf
│ │ │ ├── Vazir-Bold.woff
│ │ │ ├── Vazir-Light.eot
│ │ │ ├── Vazir-Light.ttf
│ │ │ ├── Vazir-Thin.eot
│ │ │ ├── Vazir-Thin.ttf
│ │ │ ├── Vazir-Thin.woff
│ │ │ ├── Vazir-Black.woff
│ │ │ ├── Vazir-Black.woff2
│ │ │ ├── Vazir-Bold.woff2
│ │ │ ├── Vazir-Light.woff
│ │ │ ├── Vazir-Light.woff2
│ │ │ ├── Vazir-Medium.eot
│ │ │ ├── Vazir-Medium.ttf
│ │ │ ├── Vazir-Medium.woff
│ │ │ ├── Vazir-Medium.woff2
│ │ │ ├── Vazir-Thin.woff2
│ │ │ └── font-face.css
│ │ ├── meslo-LG
│ │ │ ├── MesloLGL-Bold.ttf
│ │ │ ├── MesloLGM-Bold.ttf
│ │ │ ├── MesloLGS-Bold.ttf
│ │ │ ├── MesloLGL-Italic.ttf
│ │ │ ├── MesloLGL-Regular.ttf
│ │ │ ├── MesloLGM-Italic.ttf
│ │ │ ├── MesloLGM-Regular.ttf
│ │ │ ├── MesloLGS-Italic.ttf
│ │ │ ├── MesloLGS-Regular.ttf
│ │ │ ├── MesloLGL-BoldItalic.ttf
│ │ │ ├── MesloLGM-BoldItalic.ttf
│ │ │ └── MesloLGS-BoldItalic.ttf
│ │ └── font-awesome
│ │ │ └── webfonts
│ │ │ ├── fa-brands-400.eot
│ │ │ ├── fa-brands-400.ttf
│ │ │ ├── fa-solid-900.eot
│ │ │ ├── fa-solid-900.ttf
│ │ │ ├── fa-solid-900.woff
│ │ │ ├── fa-brands-400.woff
│ │ │ ├── fa-brands-400.woff2
│ │ │ ├── fa-regular-400.eot
│ │ │ ├── fa-regular-400.ttf
│ │ │ ├── fa-regular-400.woff
│ │ │ ├── fa-solid-900.woff2
│ │ │ └── fa-regular-400.woff2
│ │ ├── css
│ │ ├── rtl.css
│ │ └── main.css
│ │ └── js
│ │ └── main.js
├── theme
│ ├── default
│ │ ├── error.html
│ │ ├── tags.html
│ │ ├── article_chapters.html
│ │ ├── article_title_item.html
│ │ ├── page.html
│ │ ├── search_form.html
│ │ ├── menu.html
│ │ ├── search.html
│ │ ├── comments_entry.html
│ │ ├── index.html
│ │ ├── header.html
│ │ ├── archive.html
│ │ ├── article_list_entry.html
│ │ ├── footer.html
│ │ └── article.html
│ └── admin
│ │ ├── js.html
│ │ ├── footer.html
│ │ ├── css.html
│ │ ├── login.html
│ │ ├── tags.html
│ │ ├── media.html
│ │ ├── articles.html
│ │ ├── header.html
│ │ ├── comments.html
│ │ ├── index.html
│ │ └── publish.html
└── translation
│ ├── zh
│ ├── user.json
│ └── admin.json
│ └── en
│ ├── user.json
│ └── admin.json
├── internal
└── model
│ ├── user.go
│ ├── article_history.go
│ ├── comment.go
│ ├── article_test.go
│ ├── config.go
│ └── article.go
├── .gitignore
├── cmd
└── web
│ └── main.go
├── pkg
├── soliwriter
│ └── writer.go
├── notify
│ ├── telegram.go
│ └── email.go
├── pagination
│ └── pagination.go
├── translator
│ └── translator.go
└── blevejieba
│ └── blevejieba.go
├── .air.toml
├── Dockerfile
├── .github
└── workflows
│ └── docker.yml
├── LICENSE
├── Taskfile.yml
├── router
├── manage_tags.go
├── search.go
├── media.go
├── user.go
├── manage_comment.go
├── comment.go
├── settings.go
├── manage_article.go
├── manager.go
├── article.go
├── archive.go
└── router.go
├── data
└── conf.yml.example
├── const.go
├── README.md
├── solitudes.go
└── go.mod
/.gitattributes:
--------------------------------------------------------------------------------
1 | resource/** linguist-vendored
--------------------------------------------------------------------------------
/resource/static/cactus/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/images/logo.png
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir.eot
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir.woff
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir.woff2
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGL-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGL-Bold.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGM-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGM-Bold.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGS-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGS-Bold.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Black.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Black.eot
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Black.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Bold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Bold.eot
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Bold.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Bold.woff
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Light.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Light.eot
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Light.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Thin.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Thin.eot
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Thin.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Thin.woff
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGL-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGL-Italic.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGL-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGL-Regular.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGM-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGM-Italic.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGM-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGM-Regular.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGS-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGS-Italic.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGS-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGS-Regular.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Black.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Black.woff
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Black.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Black.woff2
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Bold.woff2
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Light.woff
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Light.woff2
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Medium.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Medium.eot
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Medium.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Medium.woff
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Medium.woff2
--------------------------------------------------------------------------------
/resource/static/cactus/lib/vazir-font/Vazir-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/vazir-font/Vazir-Thin.woff2
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGL-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGL-BoldItalic.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGM-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGM-BoldItalic.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/meslo-LG/MesloLGS-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/meslo-LG/MesloLGS-BoldItalic.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-brands-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-brands-400.eot
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-brands-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-brands-400.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-solid-900.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-solid-900.eot
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-solid-900.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-solid-900.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-solid-900.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-solid-900.woff
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-brands-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-brands-400.woff
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-brands-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-brands-400.woff2
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-regular-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-regular-400.eot
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-regular-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-regular-400.ttf
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-regular-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-regular-400.woff
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-solid-900.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-solid-900.woff2
--------------------------------------------------------------------------------
/resource/static/cactus/lib/font-awesome/webfonts/fa-regular-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/naiba/solitudes/HEAD/resource/static/cactus/lib/font-awesome/webfonts/fa-regular-400.woff2
--------------------------------------------------------------------------------
/resource/theme/default/error.html:
--------------------------------------------------------------------------------
1 | {{define "default/error"}}
2 | {{template "default/header" .}}
3 | {{template "default/menu" .}}
4 |
5 | {{.Data.title}}
6 | {{.Data.msg}}
7 |
8 | {{template "default/search_form" .}}
9 | {{template "default/footer" .}}
10 | {{end}}
--------------------------------------------------------------------------------
/internal/model/user.go:
--------------------------------------------------------------------------------
1 | package model
2 |
3 | // User 用户表
4 | type User struct {
5 | Email string
6 | Nickname string
7 | /*
8 | Password 用户密码
9 | * default password: 123456
10 | * gen password: https://bcrypt-generator.com/
11 | */
12 | Password string
13 | Token string
14 | TokenExpires int64
15 | }
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Binaries for programs and plugins
2 | *.exe
3 | *.exe~
4 | *.dll
5 | *.so
6 | *.dylib
7 | .DS_Store
8 | /data/*
9 | !/data/conf.yml.example
10 | /main
11 |
12 | # Test binary, build with `go test -c`
13 | *.test
14 |
15 | # Output of the go coverage tool, specifically when used with LiteIDE
16 | *.out
17 | solitudes
18 |
--------------------------------------------------------------------------------
/resource/theme/admin/js.html:
--------------------------------------------------------------------------------
1 | {{define "admin/js"}}
2 |
3 |
4 |
5 | {{end}}
--------------------------------------------------------------------------------
/cmd/web/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "os"
5 |
6 | "github.com/naiba/solitudes/router"
7 | )
8 |
9 | func main() {
10 | if _, err := os.Stat("data/upload"); os.IsNotExist(err) {
11 | err = os.Mkdir("data/upload", os.ModeDir|os.ModePerm)
12 | if err != nil {
13 | panic(err)
14 | }
15 | }
16 | router.Serve()
17 | }
18 |
--------------------------------------------------------------------------------
/resource/theme/default/tags.html:
--------------------------------------------------------------------------------
1 | {{define "default/tags"}}
2 | {{template "default/header" .}}
3 | {{template "default/menu" .}}
4 |
11 | {{template "default/footer" .}}
12 | {{end}}
--------------------------------------------------------------------------------
/resource/theme/admin/footer.html:
--------------------------------------------------------------------------------
1 | {{define "admin/footer"}}
2 |
10 |
11 |
12 | {{template "admin/js"}}
13 |