Commit aac6824c by yuga

修改注释成 ***

parent d154a905
...@@ -6,17 +6,17 @@ ...@@ -6,17 +6,17 @@
用于搜集文件夹下所有文件头部的指定信息并生成 markdown 文档。、 用于搜集文件夹下所有文件头部的指定信息并生成 markdown 文档。、
#### 文档规范 #### 文档规范
在文件头部注释使用```/********** *****/``` 包裹头部文档, 识别规则外使用相关代码的多行注释包裹。 在文件头部注释使用```/*** ***/``` 包裹头部文档, 识别规则外使用相关代码的多行注释包裹。
例如: 例如:
``` ```
:<<! :<<!
/********** /***
#### 说明文档 #### 说明文档
测试 测试
#### 软件架构1 #### 软件架构1
*****/ ***/
! !
``` ```
......
package base package base
import ( import (
"flag"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"log" "log"
...@@ -76,7 +75,7 @@ func (ctx *Base)CreateFile(path string) bool { ...@@ -76,7 +75,7 @@ func (ctx *Base)CreateFile(path string) bool {
} }
/** /**
* 读取文件内容 * 读取文件所有内容
*/ */
func (ctx *Base)ReadFile(path string) string { func (ctx *Base)ReadFile(path string) string {
file, err := os.Open(path) file, err := os.Open(path)
...@@ -172,7 +171,7 @@ func (ctx *Base)DelDir(path string) bool { ...@@ -172,7 +171,7 @@ func (ctx *Base)DelDir(path string) bool {
* 追加内容到文件中 * 追加内容到文件中
*/ */
func (ctx *Base)AppendToFile(path string, content string) { func (ctx *Base)AppendToFile(path string, content string) {
f, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) f, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0666)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
} }
...@@ -183,21 +182,6 @@ func (ctx *Base)AppendToFile(path string, content string) { ...@@ -183,21 +182,6 @@ func (ctx *Base)AppendToFile(path string, content string) {
} }
/** /**
* 获取参数
*/
func (ctx *Base)Args() [2]string {
// 定义几个变量,用于接收命令行的参数值
var read string
var path string
// &user 就是接收命令行中输入 -u 后面的参数值,其他同理
flag.StringVar(&read, "r", "./", "[-r ./files ] readme create path default './'")
flag.StringVar(&path, "p", "./README.md", "[-p ./README.md ] file path default './README.md'")
// 解析命令行参数写入注册的flag里
flag.Parse()
return [2]string{read + "/", path}
}
/**
* 获取目录所有文件 * 获取目录所有文件
*/ */
func GetTreeDir(fpath string) { func GetTreeDir(fpath string) {
......
:<<! :<<!
/********** /**********
# SmartHomeNodeGO
#### 介绍 # ReadHeadGO
用go编写的可用于智能路由器Web端管理系统。
集成了 HTTP服务 和 TCP 连接服务。
可给智能家居设备提供服务。
可理解为边缘计算。
#### 特点
1. 无需安装,直接运行,所有服务会自动关联。
2. 包含了前端,后端,连接端,定时任务,文件存储。
3. 使用拓展硬盘或U盘,告别容量拮据且读写缓慢的的flash。
4. 尽量少的使用第三方包,确保能运行在大多数MIPS架构CPU的路由器上。
#### 软件架构
1. 后端使用GO开发,前端使用VueJs开发。
2. 后端框架使用gin,前端框架使用 vue-admin + element-ui。
3. 没有使用数据库,以json文件存储设备数据,简单使用了go-cache缓存。
#### 安装教程
* 如要修改本代码,请安装 GoLang 1.14+ 环境。 #### 介绍
* 项目使用 go mod 管理包,使用以下命令:
``` bash 用于搜集文件夹下所有文件头部的指定信息并生成 markdown 文档。、
# 初始化 go mod 文件
go mod init smartHomeNode/v1
# 安装依赖
go mod tidy
# 基础运行(默认端口 8080 ): #### 文档规范
go run main.go 在文件头部注释使用```/********** *****/``` 包裹头部文档, 识别规则外使用相关代码的多行注释包裹。
# 指定端口: 例如:
go run main.go -p 8081
# 系统初始化:
go run main.go -c cc
``` ```
:<<!
/**********
#### 说明文档
#### 交叉编译 测试
``` bash
# 路由器 cpu RT-5350:
GOOS=linux GOARCH=mipsle GOMIPS=softfloat CGO_ENABLED=0 go build main.go
# 树莓派 B+:
GOOS=linux GOARCH=arm GOARM=6 CGO_ENABLED=0 go build main.go
# 树莓派 3B:
GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=0 go build main.go
# Linux 64位:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build main.go
*说明: #### 软件架构1
GOOS:目标平台的操作系统(darwin、freebsd、linux、windows) *****/
GOARCH:目标平台的体系架构(386、amd64、arm、mipsle) !
交叉编译不支持 CGO 所以要禁用它(CGO_ENABLED=0)
``` ```
#### 使用教程 #### 使用教程
* 直接运行即可,或者放入 opt 中并使用 ln -sf 映射到 xxx/bin 目录下。
``` bash * 使用绝对路径
1. 基础运行(默认端口 8080 ): ```
# 普通使用
./main ./main
2. 指定端口: # 指定读取文件夹
./main -p 8081 ./main -r /files
3. 初始化运行: # 指定生成文件位置
./main -c cc ./main -p /files/README.md
# 指定读取文件夹并在指定位置生成文件
* 可能需要添加权限,linux 系统下请使用: ./main -r /files -p /files/README.md
chmod +x main
``` ```
#### 使用说明
1. 请确保路由本机时间准确。
2. 确保防火墙允许连接服务开启的端口。
3. Web服务默认 8080 端口,TCP 连接使用 50001 端口。
4. 如需使用 80端口 请确保路由器原本后台服务已经改到别的端口。
5. *ESP8266 MINI D1 控制代码在项目 arduino/ESP8266-MINI-D1.ino
#### 项目地址
SERVER: \
github: https://github.com/crazyjy/SmartHomeNodeGO \
gitee: https://gitee.com/yjygit/SmartHomeNodeGO
H5: \
github: https://github.com/crazyjy/SmartHomeNodeH5 \
gitee: https://gitee.com/yjygit/SmartHomeNodeH5
#### 参与贡献
1. 【飞鱼智能】- 淘宝店,欢迎选购。\
https://shop223999585.taobao.com/?spm=2013.1.1000126.d21.25751acaxy0uZy
*****/ *****/
! !
......
---
#### 3
测试
#### 软件架构
---
#### 2
测试222
#### 软件功能
---
:<<! :<<!
/********** /***
#### 3 #### 3
测试 测试
#### 软件架构 #### 软件架构
*****/ ***/
! !
:<<!
/***
#### 2
测试222
#### 软件功能
***/
!
package main package main
import ( import (
"flag"
"fmt" "fmt"
"readHead/v1/base" "readHead/v1/base"
"regexp" "regexp"
...@@ -9,10 +10,25 @@ import ( ...@@ -9,10 +10,25 @@ import (
var b base.Base var b base.Base
/**
* 获取参数
*/
func Args() [2]string {
// 定义几个变量,用于接收命令行的参数值
var read string
var path string
// &user 就是接收命令行中输入 -u 后面的参数值,其他同理
flag.StringVar(&read, "r", "./", "[-r ./files ] readme create path default './'")
flag.StringVar(&path, "p", "./README.md", "[-p ./README.md ] file path default './README.md'")
// 解析命令行参数写入注册的flag里
flag.Parse()
return [2]string{read + "/", path}
}
func main() { func main() {
args := b.Args() args := Args()
b.WriteFile(args[1], "---") b.WriteFile(args[1], "---")
reg := regexp.MustCompile(`\/\*\*\*\*\*\*\*\*\*\*[\s\S]*\*\*\*\*\*/`) reg := regexp.MustCompile(`\/\*\*\*[\s\S]*\*\*\*/`)
if reg == nil { if reg == nil {
fmt.Println("regexp err") fmt.Println("regexp err")
return return
...@@ -26,9 +42,9 @@ func main() { ...@@ -26,9 +42,9 @@ func main() {
result := reg.FindAllStringSubmatch(fileInfo, -1) result := reg.FindAllStringSubmatch(fileInfo, -1)
if len(result) == 1 { if len(result) == 1 {
resultInfo := fmt.Sprintf("%v", result[0]) resultInfo := fmt.Sprintf("%v", result[0])
infoList := strings.Split(resultInfo, "/**********") infoList := strings.Split(resultInfo, "/***")
resInfo := fmt.Sprintf("%v", infoList[1]) resInfo := fmt.Sprintf("%v", infoList[1])
resInfo = strings.Replace(resInfo, "*****/]", "---", -1) resInfo = strings.Replace(resInfo, "***/]", "---", -1)
b.AppendToFile(args[1], resInfo) b.AppendToFile(args[1], resInfo)
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment