CovComment-简单强大的评论插件

CovComment是一个基于web components技术和leancloud引擎开发的免登录静态博客评论插件,web components赋予插件极其简单的使用体验和集成。可以在任何类型的博客中轻松集成。 仓库地址:https://github.com/YES-Lee/cov-comment 特性 无需登录即可评论 集成简单,可集成任何类型网站 支持markdown 使用gravatar头像 使用 引入插件 下载releases中的cov-comment-{version}.min.js文件 在项目中使用script标签引入,如:<script src="path/to/cov-comment-1.0.0.min.js" 注册 leancloud 进入leancloud,注册账户登录后,创建应用,选择开发版。 创建成功之后进入应用设置面板,找到“应用 keys”,复制里面的appId和appKey。 添加插件代码 在需要放置评论插件的地方,加入如下代码: <cov-comment appid="leancloud的appId" appkey="leancloud的appKey" pageSize="10" placeholder="来两句吧~" ></cov-comment> 插件参数 名称 类型 是否必填 默认值 说明 appid string 是 leancloud 的应用 appId appKey string 是 leancloud 的应用 appKey pageSize number 否 10 每页评论数量 placeholder string 否 评论一下~ 评论框占位符 License The MIT License (MIT) Copyright (c) 2020 Johnson

February 28, 2020 · 1 min · 64 words · Johnson

sequelize-typescript-auto

从mysql数据库自动生成sequelize-typescript风格的models,最初用于nestjs项目,同时也适用与其它使用sequelize-typescript的项目。 项目地址:https://github.com/YES-Lee/sequelize-typescript-auto 使用 // 安装 npm install -g sequelize-typescript-auto // 使用 sequelize-typescript-auto -H localhost -d test -u root -x 123456 -p 3306 -f test_ -o ./_models 选项 使用: sequelize-typescript-auto [选项] 选项: -V, --version 版本 -H, --host <host> 数据库地址 -d, --database <database> 数据库名称 -u, --username <username> 用户名 -x, --password <password> 密码 -p, --port <port> 数据库端口,默认为3306 -o, --output <dir> model输出文件夹 -f, --prefix <prefix> 在文件名和model类名中过滤数据库前缀 -h, --help 显示帮助信息 Features 支持 mysql 命令行使用 编程方式使用 生成外间约束关系 检查文件哈希值 生成计数器 支持 SQL Server 支持 PostgreSQL

February 15, 2020 · 1 min · 78 words · Johnson

nestjs快速开发项目

整合了nestjs项目通用架构、常用功能集成的一个快速开发项目。 项目地址:https://github.com/YES-Lee/nest-seed-proj 集成功能 ORM: sequelize API: restful api, graphql 认证:passport 文档:swagger 安全:helmet 日志:nest-pino 功能不断完善,将来或提供可插拔的开发体验 快速开始 # 拉取代码 git clone https://github.com/YES-Lee/nest-seed-proj.git cd nest-seed-proj yarn install # or npm intall yarn start:dev # or npm run start:dev 项目结构 src ├─ config // 配置模块 ├─ database // 数据库模块 │ └─ models // 存放sequelize/graphql数据库模型 ├─ decorators // 自定义装饰器目录 ├─ dto // restful 接口模型目录 ├─ graphql // graphql 模块 ├─ enums // 枚举目录 ├─ filters // error filters ├─ interceptors // interceptors ├─ pipes // pipes └─ modules // 业务逻辑模块目录,所有业务相关逻辑都放到该目录对应的模块 接口格式 { error_code: number // 错误码,只在异常时返回 error_message: string // 错误信息,只在异常时返回 data: any timestamp: any // 时间戳 path: string // 请求路径 } dtc/support中提供了ApiResponse类,提供了success, error两个静态方法。...

February 15, 2020 · 2 min · 284 words · Johnson

jQuery源码学习-构造函数

jQuery 是一个快速、简洁的 JavaScript 框架,是继 Prototype 之后又一个优秀的 JavaScript 代码库(或 JavaScript 框架)。jQuery 设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装 JavaScript 常用的功能代码,提供一种简便的 JavaScript 设计模式,优化 HTML 文档操作、事件处理、动画设计和 Ajax 交互。 如此优秀的一个代码库,即便没有以前流行,也是有很多地方值得学习的。 本文并非讲解jquery源码,而是记录从源码学习到的思想、技术等 构造函数与继承 JavaScript是一门面向对象的编程语言,但是与传统面向对象语言不同的是,JavaScript没有提供class关键字,并且JavaScript的是基于原型继承的面向对象语言。那么,在JavaScript中编写类的过程,必定与传统的面向对象语言有所区别。 传统的类与继承 在ES6之前,都是通过创建构造函数的方式来创建一个类,比如: // Book类的原型 const BookPrototype = { getName() { return this.name }, } // Book类 function Book(name, author, content) { this.name = name this.author = author this.content = content } // Book类继承自 BookPrototype Book.prototype = BookPrototype const book = new Book('金瓶梅', '佚名', '此处省略999999999字') console.log(book.getName()) BookPrototype为Book类的原型(基类),使用new关键字创建的Book实例,都会包含BookPrototype里面的属性和方法。这里刚开始然我有些迷惑,参考经典的面向对象语言,基类应该也是一个类,这里却是一个对象字面量。首先,需要深刻明白一点: JavaScript 中,一切皆是对象。比如一个函数,我们可以给它加上任何的属性...

October 23, 2019 · 2 min · 347 words · Johnson

web-components实践

web-components是一个比较新的开发技术,但组件化思想已经实际应用了很长时间,代表性的组件话框架有vue, react等。web-components可以直接使用原生HTML和Javascript来封装通用的 web 组件,其拥有简单直接、无任何依赖等特点,是 web 前端开发的一个强有力的技术。 文章前半部分讲web-components相关接口,最后有一个进度条组件实例,点击这里可直接跳转。 Web-Components API Web-Components API有三个核心部分,分别是:Custom elements, Shadow DOM, HTML templates。 Custom elements custom elements顾名思义,允许我们自定义通用的 HTML 标签,可以是一个包含特定功能如:日历、时间显示、进度条等。 创建自定义元素 使用自定义元素,必须先使用customElements.define(name, constructor, options)方法注册元素后才能使用,参数分别为元素名称,元素构造函数,选项(可选)。自定义元素名称不能是单个字母。 生命周期 自定义元素生命周期有 4 个回调函数: connectedCallback:当 custom element 首次被插入文档 DOM 时调用。 disconnectedCallback:当 custom element 从文档 DOM 中删除时调用。 adoptedCallback:当 custom element 被移动时调用。 attributeChangedCallback:当 custom element 增加、删除、修改自身属性时调用。 Shadow DOM 通常情况下,我们封装 web 组件的时候,需要将组件内部的样式封装进去,同时也要避免被外部样式干扰。Shadow DOM是隐藏在一个 DOM 节点里面的节点树,主要特点就是于外部 DOM 树隔离,使组件维护成本大大降低。Shadow DOM并不是新鲜玩意儿,而是浏览器内部 API 实现,我们常用的一些标签如带控制按钮的video标签,其内部就是一个Shadow DOM树。 创建 Shadow DOM Shadow DOM有几个核心概念: Shadow host: 一个常规 DOM 节点,Shadow DOM 会被添加到这个节点上。 Shadow tree: Shadow DOM 内部的 DOM 树。 shadow root: Shadow tree的根节点。 Shadow root: Shadow tree 的根节点。 Shadow boundary: Shadow DOM 结束的地方,也是常规 DOM 开始的地方。 创建Shadow DOM需要用到attachShadow({ mode: 'open' })方法,参数中mode的取值有两个:open, closed,用来配置是否可以从外部获取shadow tree。该函数返回一个Shadow Root。...

October 3, 2019 · 2 min · 340 words · Johnson