-
10 | {% tagList tags with type="page" limit="20" %}
11 | {% for item in tags %}
12 |
-
13 | 14 | 19 |20 |
21 | {% endfor %}
22 | {% endtagList %}
23 |
├── template ├── .gitignore └── default │ ├── data.db │ ├── errors │ ├── close.html │ ├── 404.html │ └── 500.html │ ├── partial │ ├── breadcrumb.html │ ├── pagination.html │ └── sidebar.html │ ├── config.json │ ├── tag │ ├── index.html │ └── list.html │ ├── page │ ├── detail.html │ ├── about.html │ └── contact.html │ ├── article │ ├── index.html │ ├── list.html │ └── detail.html │ ├── case │ ├── list.html │ ├── index.html │ └── detail.html │ ├── search │ └── index.html │ └── product │ ├── list.html │ ├── index.html │ └── detail.html ├── cache └── .gitignore ├── public ├── static │ ├── .gitignore │ └── default │ │ ├── img │ │ ├── 1.webp │ │ ├── 2.webp │ │ ├── 3.webp │ │ ├── n.webp │ │ ├── p.webp │ │ ├── bg.webp │ │ ├── case.webp │ │ ├── jt.webp │ │ ├── about.webp │ │ ├── banner.webp │ │ ├── about-1.webp │ │ ├── about-2.webp │ │ ├── about-bg.webp │ │ ├── sidebar.webp │ │ └── contact-bg.webp │ │ └── layui │ │ ├── font │ │ ├── iconfont.eot │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ └── iconfont.woff2 │ │ └── css │ │ └── modules │ │ ├── layer │ │ └── default │ │ │ ├── icon.png │ │ │ ├── icon-ext.png │ │ │ ├── loading-0.gif │ │ │ ├── loading-1.gif │ │ │ └── loading-2.gif │ │ └── code.css ├── uploads │ └── .gitignore └── .gitignore ├── app.ico ├── start.bat ├── stop.bat ├── anqicms.syso ├── error.log ├── clientFiles └── train2anqicms.wpm ├── response ├── article.go ├── backup.go ├── webLink.go ├── baidu.go ├── category.go ├── webInfo.go ├── statistic.go ├── design.go └── response.go ├── request ├── weapp.go ├── collector.go ├── transfer.go ├── attachment.go ├── withdraw.go ├── install.go ├── setting.go ├── module.go ├── website.go ├── wechat.go ├── category.go ├── admin.go ├── anqi.go ├── design.go ├── archive.go └── user.go ├── config.sample.json ├── config ├── user.go ├── server.go ├── rewrite.go ├── wechat.go ├── keyword.go ├── anqi.go ├── mysql.go └── pay.go ├── .gitignore ├── model ├── setting.go ├── moduleTable.go ├── redirect.go ├── website.go ├── statistic.go ├── spiderInclude.go ├── base.go ├── guestbook.go ├── withdraw.go ├── finance.go ├── tag.go ├── commission.go ├── keyword.go ├── anchor.go ├── link.go ├── nav.go ├── comment.go ├── material.go └── wechat.go ├── library ├── pinyin_test.go ├── word_test.go ├── logger.go ├── content_test.go ├── charset.go ├── word.go ├── pinyin.go ├── request_test.go ├── file.go ├── image.go ├── webp.go ├── verifyCode.go └── math.go ├── provider ├── design_test.go ├── spiderInclude_test.go ├── plugin_test.go ├── sendmail_test.go ├── uri_test.go ├── backup_test.go ├── attachment_test.go ├── transfer_test.go ├── finance.go ├── common.go ├── commission.go ├── collector_test.go ├── categoryTree.go ├── comment.go ├── weapp.go ├── link.go └── guestbook.go ├── main └── main.go ├── start.sh ├── stop.sh ├── middleware ├── options.go ├── recover.go └── userAuth.go ├── main.manifest ├── controller ├── manageController │ ├── pluginReplace.go │ ├── pluginFinance.go │ ├── pluginCommission.go │ ├── pluginRobots.go │ ├── pluginFulltext.go │ ├── pluginWeapp.go │ ├── pluginRewrite.go │ ├── pluginImportapi.go │ ├── pluginPush.go │ ├── pluginTransfer.go │ ├── sensitiveWords.go │ ├── pluginWithdraw.go │ ├── pluginSendmail.go │ └── pluginTag.go ├── apiWeapp.go ├── attachment.go ├── user.go ├── index.go ├── account.go ├── tag.go └── page.go ├── darwinMake.sh ├── windowsMake.sh ├── Makefile ├── License ├── tags ├── common.go ├── userGroupDetail.go ├── bannerList.go ├── linkList.go ├── guestbook.go ├── tagDetail.go ├── pageList.go ├── userDetail.go ├── nextArchive.go ├── prevArchive.go ├── system.go ├── contact.go └── categoryDetail.go └── view └── fs.go /template/.gitignore: -------------------------------------------------------------------------------- 1 | /anqitpl -------------------------------------------------------------------------------- /cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /public/static/.gitignore: -------------------------------------------------------------------------------- 1 | /anqitpl -------------------------------------------------------------------------------- /public/uploads/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /public/.gitignore: -------------------------------------------------------------------------------- 1 | robots.txt 2 | /*.xml 3 | /*.txt 4 | /system -------------------------------------------------------------------------------- /app.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/app.ico -------------------------------------------------------------------------------- /start.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/start.bat -------------------------------------------------------------------------------- /stop.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/stop.bat -------------------------------------------------------------------------------- /anqicms.syso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/anqicms.syso -------------------------------------------------------------------------------- /error.log: -------------------------------------------------------------------------------- 1 | 2023-03-02 21:20:33 启动服务出错 listen tcp :8001: bind: address already in use 2 | -------------------------------------------------------------------------------- /template/default/data.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/template/default/data.db -------------------------------------------------------------------------------- /clientFiles/train2anqicms.wpm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/clientFiles/train2anqicms.wpm -------------------------------------------------------------------------------- /public/static/default/img/1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/1.webp -------------------------------------------------------------------------------- /public/static/default/img/2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/2.webp -------------------------------------------------------------------------------- /public/static/default/img/3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/3.webp -------------------------------------------------------------------------------- /public/static/default/img/n.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/n.webp -------------------------------------------------------------------------------- /public/static/default/img/p.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/p.webp -------------------------------------------------------------------------------- /public/static/default/img/bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/bg.webp -------------------------------------------------------------------------------- /public/static/default/img/case.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/case.webp -------------------------------------------------------------------------------- /public/static/default/img/jt.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/jt.webp -------------------------------------------------------------------------------- /response/article.go: -------------------------------------------------------------------------------- 1 | package response 2 | 3 | type CacheArticleCount struct { 4 | Day int 5 | Count int64 6 | } 7 | -------------------------------------------------------------------------------- /public/static/default/img/about.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/about.webp -------------------------------------------------------------------------------- /public/static/default/img/banner.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/banner.webp -------------------------------------------------------------------------------- /public/static/default/img/about-1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/about-1.webp -------------------------------------------------------------------------------- /public/static/default/img/about-2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/about-2.webp -------------------------------------------------------------------------------- /public/static/default/img/about-bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/about-bg.webp -------------------------------------------------------------------------------- /public/static/default/img/sidebar.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/sidebar.webp -------------------------------------------------------------------------------- /public/static/default/img/contact-bg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/img/contact-bg.webp -------------------------------------------------------------------------------- /public/static/default/layui/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/layui/font/iconfont.eot -------------------------------------------------------------------------------- /public/static/default/layui/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/layui/font/iconfont.ttf -------------------------------------------------------------------------------- /public/static/default/layui/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/layui/font/iconfont.woff -------------------------------------------------------------------------------- /public/static/default/layui/font/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/layui/font/iconfont.woff2 -------------------------------------------------------------------------------- /request/weapp.go: -------------------------------------------------------------------------------- 1 | package request 2 | 3 | type WeappQrcodeRequest struct { 4 | Path string `json:"path"` 5 | Scene string `json:"scene"` 6 | } 7 | -------------------------------------------------------------------------------- /config.sample.json: -------------------------------------------------------------------------------- 1 | { 2 | "server": { 3 | "site_name": "安企内容管理系统(AnqiCMS)", 4 | "env": "production", 5 | "port": 8001, 6 | "log_level": "release" 7 | } 8 | } -------------------------------------------------------------------------------- /public/static/default/layui/css/modules/layer/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/layui/css/modules/layer/default/icon.png -------------------------------------------------------------------------------- /public/static/default/layui/css/modules/layer/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/layui/css/modules/layer/default/icon-ext.png -------------------------------------------------------------------------------- /public/static/default/layui/css/modules/layer/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/layui/css/modules/layer/default/loading-0.gif -------------------------------------------------------------------------------- /public/static/default/layui/css/modules/layer/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/layui/css/modules/layer/default/loading-1.gif -------------------------------------------------------------------------------- /public/static/default/layui/css/modules/layer/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rockyzsu/goblog/master/public/static/default/layui/css/modules/layer/default/loading-2.gif -------------------------------------------------------------------------------- /response/backup.go: -------------------------------------------------------------------------------- 1 | package response 2 | 3 | type BackupInfo struct { 4 | Name string `json:"name"` 5 | Size int64 `json:"size"` 6 | LastMod int64 `json:"last_mod"` 7 | } 8 | -------------------------------------------------------------------------------- /config/user.go: -------------------------------------------------------------------------------- 1 | package config 2 | 3 | type PluginUserConfig struct { 4 | Fields []*CustomField `json:"fields"` 5 | DefaultGroupId uint `json:"default_group_id"` 6 | } 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .DS_Store 3 | .vscode 4 | vendor 5 | /config.json 6 | goblog 7 | /doc 8 | /docs 9 | /test 10 | /data 11 | /system 12 | /release 13 | collector.json 14 | keyword.json -------------------------------------------------------------------------------- /request/collector.go: -------------------------------------------------------------------------------- 1 | package request 2 | 3 | type KeywordRequest struct { 4 | Id uint `json:"id"` 5 | Title string `json:"title"` 6 | Demand string `json:"demand,omitempty"` // AI 的额外要求 7 | } 8 | -------------------------------------------------------------------------------- /request/transfer.go: -------------------------------------------------------------------------------- 1 | package request 2 | 3 | type TransferWebsite struct { 4 | Name string `json:"name"` 5 | BaseUrl string `json:"base_url"` 6 | Token string `json:"token"` 7 | Provider string `json:"provider"` 8 | } 9 | -------------------------------------------------------------------------------- /model/setting.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | type Setting struct { 4 | Key string `json:"key" gorm:"column:key;type:varchar(190) not null;primaryKey"` 5 | Value string `json:"value" gorm:"column:value;type:longtext default null"` 6 | } 7 | -------------------------------------------------------------------------------- /config/server.go: -------------------------------------------------------------------------------- 1 | package config 2 | 3 | type ServerConfig struct { 4 | Env string `json:"env"` 5 | Port int `json:"port"` 6 | LogLevel string `json:"log_level"` 7 | TokenSecret string `json:"token_secret"` 8 | } 9 | -------------------------------------------------------------------------------- /library/pinyin_test.go: -------------------------------------------------------------------------------- 1 | package library 2 | 3 | import ( 4 | "log" 5 | "testing" 6 | ) 7 | 8 | func TestGetPinyin(t *testing.T) { 9 | result := GetPinyin("Electronic Water Bath", true) 10 | 11 | log.Println(result) 12 | } 13 | -------------------------------------------------------------------------------- /response/webLink.go: -------------------------------------------------------------------------------- 1 | package response 2 | 3 | type WebLink struct { 4 | Name string `json:"name"` 5 | Url string `json:"url"` 6 | OriginUrl string `json:"origin_url"` 7 | Content string `json:"content"` 8 | } 9 | 10 | -------------------------------------------------------------------------------- /provider/design_test.go: -------------------------------------------------------------------------------- 1 | package provider 2 | 3 | import ( 4 | "log" 5 | "testing" 6 | ) 7 | 8 | func (w *Website) TestGetDesignList(t *testing.T) { 9 | designList := w.GetDesignList() 10 | 11 | log.Printf("%#v", designList) 12 | } 13 | -------------------------------------------------------------------------------- /library/word_test.go: -------------------------------------------------------------------------------- 1 | package library 2 | 3 | import ( 4 | "log" 5 | "testing" 6 | ) 7 | 8 | func TestWordSplit(t *testing.T) { 9 | s := "Golang 在线教程" 10 | 11 | result := WordSplit(s, false) 12 | 13 | log.Printf("%#v", result) 14 | } 15 | -------------------------------------------------------------------------------- /provider/spiderInclude_test.go: -------------------------------------------------------------------------------- 1 | package provider 2 | 3 | import "testing" 4 | 5 | func TestQuerySpiderInclude(t *testing.T) { 6 | dbSite, _ := GetDBWebsiteInfo(1) 7 | InitWebsite(dbSite) 8 | w := GetWebsite(1) 9 | w.QuerySpiderInclude() 10 | } 11 | -------------------------------------------------------------------------------- /provider/plugin_test.go: -------------------------------------------------------------------------------- 1 | package provider 2 | 3 | import ( 4 | "log" 5 | "testing" 6 | ) 7 | 8 | func (w *Website) TestPushBing(t *testing.T) { 9 | urls := []string{"https://www.anqicms.com/help-basic/112.html"} 10 | 11 | err := w.PushBing(urls) 12 | log.Println(err) 13 | } 14 | -------------------------------------------------------------------------------- /model/moduleTable.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | type ModuleTable struct { 4 | Id uint `json:"id" gorm:"column:id;type:int(10) unsigned not null AUTO_INCREMENT;primaryKey"` 5 | Table string `json:"table_name" gorm:"-"` 6 | } 7 | 8 | func (m ModuleTable) TableName() string { 9 | return m.Table 10 | } 11 | -------------------------------------------------------------------------------- /provider/sendmail_test.go: -------------------------------------------------------------------------------- 1 | package provider 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func (w *Website) TestSendMail(t *testing.T) { 8 | subject := "测试邮件" 9 | content := "这是一封测试邮件。收到邮件表示配置正常" 10 | 11 | err := w.SendMail(subject, content) 12 | if err != nil { 13 | t.Fatal(err) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /response/baidu.go: -------------------------------------------------------------------------------- 1 | package response 2 | 3 | type BaiduJson struct { 4 | Feed BaiduFeeJson `json:"feed"` 5 | } 6 | 7 | type BaiduFeeJson struct { 8 | Entry []BaiduEntryJson `json:"entry"` 9 | } 10 | 11 | type BaiduEntryJson struct { 12 | Title string `json:"title"` 13 | Url string `json:"url"` 14 | } 15 | -------------------------------------------------------------------------------- /model/redirect.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | type Redirect struct { 4 | Model 5 | FromUrl string `json:"from_url" gorm:"column:from_url;type:varchar(190) not null;default:'';unique"` 6 | ToUrl string `json:"to_url" gorm:"column:to_url;type:varchar(250) not null;default:''"` 7 | SiteId uint `json:"-" gorm:"-"` 8 | } 9 | -------------------------------------------------------------------------------- /provider/uri_test.go: -------------------------------------------------------------------------------- 1 | package provider 2 | 3 | import ( 4 | "log" 5 | "testing" 6 | ) 7 | 8 | func (w *Website) TestGetUrl(t *testing.T) { 9 | archive, err := w.GetArchiveById(12) 10 | if err != nil { 11 | t.Fatal(err) 12 | } 13 | 14 | link := w.GetUrl("archive", archive, 0) 15 | log.Println(link) 16 | } 17 | -------------------------------------------------------------------------------- /template/default/errors/close.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block container %} 4 |
{{closeTips}}
9 |页面似乎丢失了,您可以 返回首页
9 |页面出错了:{{errMessage}},您可以 返回首页
9 |func(){ echo 'aaa';}
{{item.Description}}
24 | 了解详情 25 |{{item.Description}}
30 |
12 | 企业愿景:成为世界一流的科学仪器生产服务商。
16 |企业使命:致力于温湿度,样品前处理的研究与应用,为中国智造提供更精准,安全,可靠的科研设备奋斗终身。
17 |企业价值观:心无旁骛、精益求精、以客户为中心,其他一切水到渠成。
18 |品牌价值观:更安全,更精确,更高效。
19 |锐意进取,通过优质产品及服务提供最佳解决方案。
21 |以人为本,实现用户、企业、员工的价值最优化。
22 |求实上进,不断提高员工专业素质及技术水平。
23 |我们的成功源自于为您不断提供满意的服务和高效生产力。
24 |
36 | {{item.Description}}
24 | 了解详情 25 |{{item.Description}}
24 | 了解详情 25 |{{item.Description}}
24 | 了解详情 25 |
28 | 来张图中吧:
\n总结:
" 43 | 44 | htmlR := strings.NewReader(str) 45 | doc, err := goquery.NewDocumentFromReader(htmlR) 46 | 47 | if err != nil { 48 | t.Fatal(err) 49 | } 50 | 51 | doc.Find("img").Each(func(i int, item *goquery.Selection) { 52 | src, _ := item.Attr("src") 53 | dataSrc, exists2 := item.Attr("data-src") 54 | if exists2 { 55 | src = dataSrc 56 | } 57 | dataSrc, exists2 = item.Attr("data-original") 58 | if exists2 { 59 | src = dataSrc 60 | } 61 | log.Println(src, dataSrc) 62 | log.Println(item.Parent().Html()) 63 | }) 64 | } 65 | -------------------------------------------------------------------------------- /template/default/product/list.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block container %} 4 | {% include "partial/breadcrumb.html" %} 5 |{% categoryDetail with name="Description" %}
28 |
28 | {% archiveDetail with name="Description" %}
20 |{% archiveDetail with name="Description" %}
20 |售价:{% archiveDetail archivePrice with name="Price" %}{{archivePrice/100}}
21 |{% contact with name="UserName" %}
14 |{% contact with name="Cellphone" %}
15 |{% contact with name="Email" %}
16 |{% contact with name="Address" %}
17 |