九层之台,起于累土:码良组件开发

数字沐虹人
• 阅读 1266

九层之台,起于累土:码良组件

本文为“码良系统的使用及设计实现”系列文章的第三篇。

我们会提供一些列介绍码良实现的文章

当我们谈论组件时我们在谈论什么

上篇文章给出了大量码良编辑器的使用实例,相信读者对于码良编辑器已经有了直观的认识。

下图是码良编辑器的结构图,

九层之台,起于累土:码良组件开发

可以看到,整个编辑器的核心是组件,其他配置或功能都是服务于组件的。

在码良系统中,组件是构成页面的基础元素,每个组件各自承担着特异的功能,比如图片组件可以呈现一张图片,文本组件可以展示一段文本。一系列组件按照一定的位置和样式排布在页面内,再加以一定的配置,最终就组成了页面。因此,组件的能力决定了码良的能力,组件的丰富程度即代表了码良的强大程度。

官方提供的大部分组件已经在上篇文章中露过脸了(希望智障机器人给你留下了美好印象),比如图片、文本、富文本、轮播等,都是一些功能较为基础的组件。那么,除了官方组件以外,自制组件如何集成到码良中呢,且看下文介绍。

码良组件开发

gods-pen

gods-pen 是基于 nodejs 的命令行工具,提供了覆盖码良组件开发全流程的工具。

npm install gods-pen-cli -g # install gods-pen

查看帮助 gods-pen help,有四个子命令可用

九层之台,起于累土:码良组件开发

创建一个组件

gods-pen create my-component

根据提示输入组件名、描述,选择组件分类

九层之台,起于累土:码良组件开发

项目文件结构如下

九层之台,起于累土:码良组件开发

可以看到,这是一个典型的 vue 工程。没错,码良组件本身与普通 vue 组件无异,只是在普通 vue 组件的基础上,我们添加了一些约定字段,使组件能被码良编辑器识别、配置。

/src/index.vue 即为刚才创建的组件。组件开发的主要工作就是针对这个组件进行功能开发。

/src/example.vue 提供了一些简单的代码示例和说明。

preview/ 目录下的文件是供开发预览使用的,最终发布的时候是不会打包此文件夹文件的,必要时可以按需修改其中的代码,比如测试组件传参(props)。

icon.png 将作为组件图标随组件发布至组件仓库,您应该将此文件替换为自己的组件图标。

[README.md](http://readme.md) 是组件的详细使用说明,支持 markdown,也会随组件发布上传至组件仓库,在码良编辑器中可以查看组件说明。

不知道你有没有注意到创建组件时,最后一步是选择“是否创建属性配置组件“,所谓属性配置组件就是可以在编辑器中使用此自定义组件来对组件的属性进行配置,而不是使用编辑器默认提供的。editor/ 文件夹下就是属性配置组件,事实上,无论你选择创建此组件与否,这个文件夹都存在,区别仅在于,选择“是“的时候,webpack entry 配置会包含editor/index.vue 文件,反之不包含,因此,当你发现自己需要一个自定义属性配置组件而此前未选择“是”的时候,在 webpack.config.jsentry 字段下添加 editor: './editor/index.vue' 即可。

组件开发

码良组件基于 vue ,在对vue 框架有一定了解后就可以轻松开发码良组件了。

九层之台,起于累土:码良组件开发

上图中,安装了依赖并启动了项目,简单修改组件展示了“hello world”

下图中我们来开发一个简单的卡片组件,包含一张图片,一行文字,图片和文字可配置

九层之台,起于累土:码良组件开发

截止目前仍然还是一个普通vue组件的样子,接受两个参数 imgline,如何让编辑器能识别它所需参数并提供合理的输入控件呢,接着看对它的改造

九层之台,起于累土:码良组件开发

可以看到,我们为img 参数和 line 参数都添加了一个 editor 字段,并指定了 editor.typeeditor.labeltype为 “image” 代表了编辑器应该为该参数提供一个图片选择器,label 为“图片”表示在编辑器中应将该参数显示为“图片”,更多的 type 输入类型请参考文档

组件构建和发布

组件开发完成,准备一张美美的图片替换 icon.png 作为组件图标,写好组件 readme,确认一下 package.json 组件版本号(version 字段)是否最新、组件中文名(label 字段)是否已配置,准备停当就可以发布了。

如果此前没有设置过组件仓库,请先执行设置命令

# 设置为官方组件仓库 godspen.ymm56.com
gods-pen config registry https://godspen.ymm56.com

执行发布(含自动构建)

gods-pen publish -t [access-token]

其中 access-token 请在码良管理后台——用户设置获取。

九层之台,起于累土:码良组件开发

这就发布成功了,使用一下吧

九层之台,起于累土:码良组件开发

闲话

例行求体验,例行求 star

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Easter79 Easter79
4年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Wesley13 Wesley13
4年前
UIWebView长按保存图片和识别图片二维码的实现方案(使用缓存)
0x00需求:长按识别UIWebView中的二维码,如下图长按识别二维码0x01方案1:给UIWebView增加一个长按手势,激活长按手势时获取当前UIWebView的截图,分析是否包含二维码。核心代码:略优点:流程简单,可以快速实现。不足:无法实现保存UIWebView中图片,如果当前We
浅谈字节码增强技术系列2-Asm与Cglib
日常工作中经常使用aop做一些业务功能的开发,但是如果让我解释"面向切面"这四个字的意思,我还是会"十脸懵逼",哈哈。那么今天的文章,作为字节码增强技术系列承上启下的第二篇,就让我们以aop为马,去追逐字节码的星光。
Stella981 Stella981
4年前
Python Challenge Level 18
初学Python,挑战一下流行的PythonChallenge,很不幸,卡在了18关~~被字符字节码之间的转换搞得焦头烂额,不过终于搞定了还是很happy的~~~主要的问题就是16进制形式的字符如何转成字节码(注意:不是encoding)如:\'89','50','4e','47','0d','0a','1a','0a','00
Stella981 Stella981
4年前
Github标星5300+,专门为程序员开发文档开源管理系统,我粉了
!(https://oscimg.oschina.net/oscnet/a11909a041dac65b1a36b2ae8b9bcc5c432.jpg)码农那点事儿关注我们,一起学习进步!(https://oscimg.oschina.net/oscnet/f4cce1b7389cb00baaab228e455da78d0
Wesley13 Wesley13
4年前
B站,首战告捷!
B站,首战告捷!良许良许Linux!B站,首战告捷!(https://s4.51cto.com/images/blog/202012/19/69bf288d1f15efc1ecfcf36d836ab590.png?xossprocessimage/watermark,size_16,text_QDUxQ1RP5Y2a5
崇恩圣帝 崇恩圣帝
1年前
使用Python识别英文数字验证码的实用指南
在网络应用中,英文数字验证码通常用于验证用户身份或防止机器人恶意行为。本文将介绍如何使用Python和一些常用的库来识别这类验证码,让你轻松应对验证码识别问题。1.下载验证码图片首先,我们需要从网络上下载验证码图片。假设验证码图片的URL为http://e
dkll dkll
4个月前
动态发布+知识付费:圈子源码小程序,电商论坛如何重构私域流量运营模式
一、动态发布:激活私域流量的社交基因1.多形态内容生态构建陆良电商论坛基于圈子源码小程序,支持用户发布图文、短视频、直播预告等动态内容,并通过LBS定位功能将内容自动归类至“陆良本地”“行业动态”等板块。例如,本地果农可发布果园采摘短视频,附带小程序商城链
数字沐虹人
数字沐虹人
Lv1
他乡共酌金花酒,万里同悲鸿雁天
文章
2
粉丝
0
获赞
0