没事多喝水

技术笔记&记录生活点滴

  • 首页
  • 读书
  • 观影
  • 笔记
  • 读书笔记
  • Android学习
  • 生活
  • 吹口琴
  • 爱咖啡
  • IT技术-文档
  • 日常桌面
  • 数据库
  • CI/CD运维
  • Android开发
  • 小程序&微网页
  • Web开发
  • 产品
  • 教学
  • 安卓
  • 关于
  • 标签
  • 搜索

小程序中使用外部icon

发表于 2021-08-07 | 更新于 2022-07-28 | 分类于 技术

iconfonts使用

第一步:下载需要的字体图标

点击下载代码,将得到名为download.zip的压缩包,解压将看到以下内容:

upload successful

第二步:转换ttf文件

进入 https://transfonter.org/ 平台,将解压出来的ttf字体文件转化成base64格式。流程如下:

upload successful

upload successful

点击下载,得到转换后的压缩包,名为transfonter.org-开头。解压可以得到如下图的几个文件:

upload successful

第三步:在微信小程序中使用

新建微信小程序,将默认生成的代码删除。

1–在index.css文件中添加样式内容。打开刚刚我们经过转换的解压出来的文件,找到stylesheet.css,将其中的内容全部复制到index.css文件中。注意是转换过的那个文件。

upload successful

upload successful

打开没有转换过的download.zip解压出来的文件,找到iconfont.css文件,将这个文件中的没有打岔的内容复制到index.css文件中。@font-face这部分不要,只要下边的这部分。

upload successful

fontawesome 5使用

  1. 选择对应的ttf文件,上传https://transfonter.org 生成压缩包下载

  2. 解压后,将stylesheet.css中的font-face复制,并设定基本字体,根据所使用的类型设定对应的引用的font-family

upload successful

假设awesome-light,则新建一个fontawesome-light.wxss内容如上,除了引入font-family,还必须设定基本类型值。上图awesome-light的基本值即为fal

awesome pro 有多个类型,分别为:

brands、duotone、light、regular、solid

各自对应的css基本值

brands=>fab

solid=>fas

regular=>far

light=>fal

duotone=>fad

  1. 引入官方的标准css
1
2
@import "style/fontawesome.wxss";
@import "style/fontawesome-light.wxss";
  1. 直接在https://fontawesome.com/v5.15/icons 搜索相应的文件获取icon对应的css标记名称

  2. 搜索到后将对应的class填写

upload successful

ssh秘钥配置

发表于 2021-07-11 | 分类于 技术

生成秘钥

1
ssh-keygen -t rsa -f ~/.ssh/id_rsa.xxxx -C "xxx@gmail.com"

秘钥远程拷贝

1
ssh-copy-id -i ~/.ssh/id_rsa.xxxx git@x.x.x.x

指定秘钥测试

1
ssh -i ~/.ssh/id_rsa.xxxx git@xxxx

ssh多秘钥配置文件

1
vim ~/.ssh/config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Host *
ServerAliveInterval 60
#github
Host xxxx.com
HostName xxxx.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.xxxx
#gitee
Host 2222.com
HostName 2222.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

#gogs
Host x.x.x.x
HostName x.x.x.x
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.xxxx

gitea-搭建

发表于 2021-07-10 | 分类于 技术

建立docker处理文件,并后台运行

1
docker-compse -f 文件名 up -d

文件内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: "3"

networks:
gitea:
external: false

services:
server:
image: gitea/gitea:1.14.4
container_name: gitea
environment:
- USER_UID=1001
- USER_GID=1001
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=root
- GITEA__database__PASSWD=Ace6d990
restart: always
network_mode: bridge
volumes:
- /data/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3150:3000"
- "3022:22"

swagger-参数-样例

发表于 2021-07-08 | 分类于 技术

接口样例,入参为单一数据,返回json数据格式,对象中含有数组。

1
2
3
4
5
6
7
8
9
10
/**
* @SWG\Tag(
* name="案例",
* description="标签信息",
* @SWG\ExternalDocumentation(
* description="查看更多",
* url=""
* )
* )
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/**
* @SWG\Post(
* path="/portfolio/cate",
* summary="整体接口名称",
* description="接口介绍",
* operationId="PtfloDisplay",
* tags={"案例"},
* consumes={"application/json"},
* produces={"application/json"},
* @SWG\Parameter(
* description="分类ID,输入all显示全部分类,输入分类id,显示是该分类信息",
* in="formData",
* name="ptflo_cid",
* required=true,
* type="string",
* format="string",
* default="all"
* ),
* @SWG\Response(
* response="200",
* description="读取成功",
* @SWG\Schema(
* type="object",
* title="返回分类信息",
* @SWG\Property(
* property="result",
* type="string",
* description="返回状态"
* ),
* @SWG\Property(
* property="message",
* type="string",
* description="返回状态说明"
* ),
* @SWG\Property(
* property="errno",
* type="string",
* description="返回状态符,不同信息返回符号不同"
* ),
* @SWG\Property(
* property="data",
* type="array",
* description="返回状态符,不同信息返回符号不同",
* items={
* "type" : "object",
* "title": "分类信息",
* "properties":{
* "cat_id":@SWG\Property(type="integer",description="分类id",example="1"),
* "unique_id":@SWG\Property(type="string",description="分类唯一标识",example="o1ad-logo"),
* "cat_name":@SWG\Property(type="string",description="分类名称",example="LOGO/VI"),
* "keywords":@SWG\Property(type="string",description="分类名称关键字",example="LOGO/VI"),
* "description":@SWG\Property(type="string",description="分类简介",example="LOGO/VI"),
* "sort":@SWG\Property(type="integer",description="排序",example="10"),
* "ad_img":@SWG\Property(type="string",description="分类图片",example="null"),
* "ptflo":@SWG\Property(
* type="array",
* description="案例内容",
* items={
* "type" : "object",
* "title": "分类中案例列表",
* "properties":{
* "id":@SWG\Property(type="integer",description="案例id",example="1"),
* "portfolio_title":@SWG\Property(type="integer",description="案例标题",example="雪山霞客鸡"),
* "portfolio_intro":@SWG\Property(type="integer",description="简介",example="头戴雪山帽 身披大侠衣"),
* "portfolio_thumb":@SWG\Property(type="integer",description="缩略图",example="http://xxxxx/ddd.jpg"),
* "portfolio_content":@SWG\Property(type="integer",description="案例介绍",example=""),
* "portfolio_img":@SWG\Property(type="integer",description="案例长图",example="http://xxxxx/ddd.jpg"),
* "portfolio_brand":@SWG\Property(type="integer",description="品牌名称",example=""),
* "portfolio_services":@SWG\Property(type="integer",description="服务名称",example=""),
* "portfolio_industry":@SWG\Property(type="integer",description="行业",example=""),
* "add_time":@SWG\Property(type="integer",description="添加时间",example="")
* }
* }
* ),
* }
* }
* ),
*
* )
* ),
* @SWG\Response(
* response=404,
* description="页面报错不存在."
* )
* )
*/

swagger-laravel的使用

发表于 2021-07-06 | 更新于 2021-07-07 | 分类于 技术

laravel先安装

查看文档

https://github.com/DarkaOnLine/L5-Swagger/

用支持laravel 5.3的版本

1
composer require "darkaonline/l5-swagger:4.0.1"

config/app.php,文件的providers部分,增加一段

1
L5Swagger\L5SwaggerServiceProvider::class,

在生成配置文件,和发布swagger所需要的静态资源

1
2
3
4
5
6
php artisan l5-swagger:publish
php artisan l5-swagger:publish-config
php artisan l5-swagger:publish-assets

//低版本增加这一句
php artisan l5-swagger:publish-views

生成api文档

1
php artisan l5-swagger:generate

自动生成

.env文件

1
L5_SWAGGER_GENERATE_ALWAYS=true

一些资料

swagger-php语法
https://blog.csdn.net/weixin_33828101/article/details/88875480

json解析
https://bfanger.nl/swagger-explained/#schemaObject

Drone学习笔记

发表于 2021-07-06 | 分类于 技术

整体框架

upload successful

树莓派-搭建-GOGS+Drone

发表于 2021-07-03 | 更新于 2022-03-12 | 分类于 技术

GOGS安装

建立git用户,默认gogs使用git用户作为默认用户

1
useradd git

去gogs官网下载,并解压和安装

1
2
3
4
cd /home/git
wget https://dl.gogs.io/0.12.3/gogs_0.12.3_linux_armv7.zip
unzip /home/git/gogs_0.12.3_linux_armv7.zip
chown -R git:git gogs/

修改自定义配置

1
vim gogs/custom/conf/app.ini

配置文件详情

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
BRAND_NAME = Gogs
RUN_USER = git
RUN_MODE = prod

[database]
TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gogs
USER = xxx
PASSWORD = xxxxx
SSL_MODE = disable
PATH = /home/git/gogs/data/gogs.db

[repository]
ROOT = /home/git/gogs-repositories #仓库存放目录
# 全局默认的每个用户可创建创建仓库上限,-1 表示无限制
MAX_CREATION_LIMIT = -1
ENABLE_LOCAL_PATH_MIGRATION = true
# 强制所有仓库私有
FORCE_PRIVATE = false


[server]
DOMAIN = x.x.x.x #主机地址,可以是域名
HTTP_PORT = 3000
EXTERNAL_URL = http://x.x.x.x:3000/
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false
ENABLE_GZIP = true

[admin]
# 禁用普通用户创建组织
DISABLE_REGULAR_ORG_CREATION = false

[mailer]
ENABLED = false

[service]
# 注册必须邮箱验证
REGISTER_EMAIL_CONFIRM = false
# 发送邮件通知
ENABLE_NOTIFY_MAIL = false
# 禁止用户注册,只能管理员创建
DISABLE_REGISTRATION = false
# 注册时输入验证码
ENABLE_CAPTCHA = true
# 必须登录才能浏览
REQUIRE_SIGNIN_VIEW = false

[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = false

[session]
PROVIDER = file

[log]
MODE = file
LEVEL = Info
ROOT_PATH = /mnt/disk2/gogs/gogs-log #日志目录

[security]
INSTALL_LOCK = true
SECRET_KEY = LlJwlLRpBEqUvJu # 秘钥可以自己随机生成
# 记录登录天数
LOGIN_REMEMBER_DAYS = true
COOKIE_USERNAME = true
COOKIE_REMEMBER_NAME = true
REVERSE_PROXY_AUTHENTICATION_USER = true

[webhook]
TYPES = gogs
DELIVER_TIMEOUT = 300
SKIP_TLS_VERIFY = true
PAGING_NUM = true

[cron]
ENABLED = true

启动服务

1
2
3
sudo systemctl enable /home/git/gogs/scripts/systemd/gogs.service
sudo systemctl start gogs.service
sudo systemctl status gogs.service

drone安装

drone 分2个端,server和runner。每个client都装runner,不同服务安装不同的runner。比如:exec,要装drone-exec。docker安装docker-runner

安装server端

这里采用docker的方式,数据库还是用mysql

秘钥生成

1
LC_ALL=C </dev/urandom tr -dc A-Za-z0-9 | head -c 65 && echo

drone docker生成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
docker run \
--volume=/mnt/disk2/drone/data:/data \
--env=DRONE_GIT_ALWAYS_AUTH=true \
--env=DRONE_GIT_USERNAME=git \
--env=DRONE_GIT_PASSWORD=git \
--env=DRONE_GOGS=true \
--env=DRONE_GOGS_SKIP_VERIFY=false \
--env=DRONE_GOGS_SERVER=http://172.17.0.1:3000 \
--env=DRONE_PROVIDER=gogs \
--env=DRONE_RPC_SECRET=kywiXg4MtP9qKiKzGpldQ0ivb96m768z5uMqYbCGbexsRhIpm5tPIagQEbiE9D8pb \
--env=DRONE_LOGS_COLOR=true \
--env=DRONE_LOGS_DEBUG=true \
--env=DRONE_WEBHOOK_SKIP_VERIFY=false \
--env=DRONE_USER_CREATE=username:space,admin:true \
--env=DRONE_DATABASE_DRIVER=mysql \
--env=DRONE_DATABASE_DATASOURCE=root:密码@tcp\(172.17.0.1:3306\)/drone?parseTime=true \
--env=DRONE_OPEN=true \
--env=DRONE_SERVER_PROTO=http \
--publish=9090:80 \
--publish=9443:443 \
--restart=always \
--detach=true \
--name=drone \
--env=TZ=PRC \
-h drone \
drone/drone:2

DRONE_GOGS_SERVER #链接gogs服务
DRONE_RPC_SECRET 远程链接秘钥,通过秘钥gogs驱动各个部分。
DRONE_SERVER_PROTO 链接协议可以用https
安装后访问9090端口,登陆密码为gogs中账户的密码。

安装docker-runner端

秘钥需要与server相同

1
2
3
4
5
6
7
8
9
10
11
12
docker run -d \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DRONE_RPC_PROTO=http \
-e DRONE_RPC_HOST={server端ip或域名}:80 \
-e DRONE_RPC_SECRET=kywiXg4MtP9qKiKzGpldQ0ivb96m768z5uMqYbCGbexsRhIpm5tPIagQEbiE9D8pb \
-e DRONE_RUNNER_CAPACITY=2 \
-e DRONE_RUNNER_NAME=drone-runner \
-p 4000:3000 \
--restart always \
--name drone-runner \
--link=drone:drone \
drone/drone-runner-docker:latest

runner的公共配置

DRONE_RPC_PROTO http协议,可以不需要加密
DRONE_RUNNER_CAPACITY 一次运行多个

安装exec-runer

下载安装

1
2
$ curl -L https://github.com/drone-runners/drone-runner-exec/releases/latest/download/drone_runner_exec_linux_arm.tar.gz | tar zx
$ sudo install -t /usr/local/bin drone-runner-exec

配置

1
vim /etc/drone-runner-exec/config
1
2
3
4
5
6
7
8
9
DRONE_RPC_PROTO=http
DRONE_DEBUG=true
DRONE_RPC_HOST={服务端网址或者IP}:9090
DRONE_RPC_SECRET=kywiXg4MtP9qKiKzGpldQ0ivb96m768z5uMqYbCGbexsRhIpm5tPIagQEbiE9D8pb
DRONE_LOG_FILE=/var/log/drone-runner-exec/log.txt
DRONE_RUNNER_CAPACITY=2
DRONE_PLATFORM_VARIANT=v7
DRONE_PLATFORM_ARCH=arm
DRONE_SECRET_PLUGIN_SKIP_VERIFY=false

启动&关闭

1
2
drone-runner-exec service stop
drone-runner-exec service start

安装ssh-runner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#下载镜像
docker pull drone/drone-runner-ssh:latest

#安装
docker run -d \
-e DRONE_RPC_PROTO=http \
-e DRONE_RPC_HOST={服务端网址或者IP}:9090 \
-e DRONE_RPC_SECRET=kywiXg4MtP9qKiKzGpldQ0ivb96m768z5uMqYbCGbexsRhIpm5tPIagQEbiE9D8pb \
-e DRONE_TLS_AUTOCERT=false \
-e DRONE_RUNNER_CAPACITY=10 \
-e DRONE_SECRET_PLUGIN_SKIP_VERIFY=false \
-e DRONE_PLATFORM_ARCH=arm \
-e DRONE_PLATFORM_VARIANT=v7 \
-p 4040:3000 \
--restart always \
--name drone-ssh \
drone/drone-runner-ssh

安装docker-runner

1
2
3
4
5
6
7
8
9
10
11
12
docker run --detach \
--volume=/var/run/docker.sock:/var/run/docker.sock \
--env=DRONE_RPC_PROTO=http \
--env=DRONE_RPC_HOST={服务端网址或者IP}:9090 \
--env=DRONE_RPC_SECRET=kywiXg4MtP9qKiKzGpldQ0ivb96m768z5uMqYbCGbexsRhIpm5tPIagQEbiE9D8pb \
--env=DRONE_RUNNER_CAPACITY=10 \
--env=DRONE_RUNNER_NAME=6-docker-runner \
--env=DRONE_RUNNER_LABELS=nodeDev:runnerDev \
--publish=3000:3000 \
--restart=always \
--name=drone-docker-runner \
drone/drone-runner-docker:1.8-linux-arm

启动顺序

  1. gogs
  2. drone
  3. drone-exec

总要注意

gogs的webhook,只适用于http提交方式。所以ssh的提交是无法触发的

产品经理工具箱

发表于 2021-06-15 | 分类于 学习笔记

upload successful

抖音复盘

发表于 2021-06-10

外部的复盘脑图

俞军产品方法论

发表于 2021-06-08 | 分类于 读书笔记

思维导图

引入一张别人的画的思维导图,一般喜欢根据别人的思维导图+图书的目录游览整个图书。容易提高效率,节省时间。

upload successful

<i class="fa fa-angle-left" aria-label="上一页"></i>1…456…13<i class="fa fa-angle-right" aria-label="下一页"></i>
Space Yuan

Space Yuan

126 日志
26 分类
72 标签
RSS
<i class="fa fa-fw fa-github"></i>GitHub <i class="fa fa-fw fa-envelope"></i>E-Mail
© 2018 – 2022 Space Yuan