html
html5编辑器哪个好用?
一、html5编辑器哪个好用?
一、Adobe Edge
目前还处于预览阶段的Adobe Edge是用HTML5、CSS、JavaScript开发动态互动内容的设计工具。内容可以同时兼容移动设备和桌面电脑。Edge的一个重要功能是Web工具包界面,方便确保页面在不同浏览器中的架构一致性,此外Edge还将整合TypeKit这样的字体服务。
动画和图形可以添加到HTML元素中,程序也能通过Edge自身的代码片段库或者JavaScript代码进行扩展。动画可以在独立的时间线上进行嵌套,还能实现互动功能。符合可以服用并通过API和代码片段控制。通过Edge设计的内容可以兼容iOS和Android设备,也可以运行在火狐、Chrome、Safari和IE9等主流浏览器。
二、Adobe Dreamweaver CS6
Adobe Dreamweaver CS6作为一个Web设计软件,提供了对HTML网站和移动程序的可视化编辑界面。其Fluid Grid排版系统整合CSS样式表功能,提供自适应版面的跨平台兼容性。开发者可以完全实现Web设计的可视化操作,无需为代码所困。
用户不但还能在Live View中预览,还提供多屏幕预览功能。开发者可以通过MultiScreen预览面板查看HTML5内容的渲染效果。Live View通过WebKit渲染引擎支持HTML5。
三、Adobe ColdFusion 10
ColdFusion是用来开发企业Web程序的服务器端技术,通过Websockets、互动表单、视频和地理标签等HTML5技术创建富媒体用户体验。
四、Sencha Architect 2
在开发移动和桌面应用的工具中,Sencha的定位是HTML5可视化应用开发。开发团队可以在一个单一集成的环境中完成应用的设计、开发和部署。开发者还可以开发Sencha Touch2和Ext JS4 JavaScript应用,并实时预览。
五、Sencha Touch 2
Sencha Touch2是移动应用框架,也被看作是Sencha的HTML5平台。开发者可以用它开发面向iOS、Android和Blackberry、Kindle Fire等多种平台的移动应用。
六、Dojo Foundation Maqetta
来自于IBM的一个项目,Dojo Foundation Maqetta是为桌面和移动设备开发HTML5应用的开源工具,支持在浏览器中查看HTML5界面。用户体验设计师可以通过拖放组装UI样板
七、微软Visual Studio 2010 ServicePack 1
虽然一开始并不支持HTML5,但微软在2011年三月发布的Visual Studio 2010 SP1中提供了IntelliSense,追加了针对HTML5的一些元素。
八、JetBrains WebStorm 4.0
作为拥有HTML编辑器的JavaScript集成开发环境,WebStorm4.0提供了开发web应用的HTML5样板。开发者可以在创建HTML文档时可获得对HTML5文件的支持。例如砍伐者键入。开发者还可以在chrome浏览器中实时预览HTML文档。
九、Google Web Toolkit
该开发工具用于开发浏览器应用,但库中支持很多HTML5功能。包括对客户端或web存储的支持。其他HTML5功能还包括支持Canvas可视化,以及音频和视频widget。
二、求推荐可视化编辑器?
概要
可视化编辑器已成为前端发展趋势,相关产品层出不穷,但是用户较难根据自身需求去完整实现一个功能较为全面的可视化编辑器,我将采用乐吾乐开源的meta2d.js可视化库来实现一个简单的流程图编辑器,通过这个案例来介绍meta2d的相关功能,并向读者展示如何用meta2d从零出发搭建一个较为完整的项目,让我们在实际项目中来体验meta2d的强大之处吧。
什么是乐吾乐meta2d.js
meta2d是乐吾乐开源的2D图元组成的可视化引擎,集实时数据展示、动态交互、数据管理等一体的全功能2D可视化引擎。能够快速实现数字孪生、大屏可视化、Web组态、SCADA等解决方案。具有实时监控、多样、变化、动态交互、高效、可扩展、支持自动算法、跨平台等特点,最大程度减少研发和运维的成本,并致力于普通业务人员 0 代码开发实现物联网、工业互联网、电力能源、水利工程、智慧农业、智慧医疗、智慧城市等可视化解决方案。
乐吾乐已将其meta2d核心库完全免费开源,本系列教程就是基于meta2d从零实现web端可视化流程图编辑器。
乐吾乐 meta2d开源项目地址:https://github.com/le5le-com/meta2d.js
乐吾乐 meta2d官方文档:https://doc.le5le.com/document/119359590
项目地址
此可视化流程图编辑器项目地址:github.com/Grnetsky/me…
在线体验地址: http://editor.xroot.top/
往期教程
- 基本环境搭建: juejin.cn/spost/72617…
- 主界面布局及其初始化: juejin.cn/post/726219…
- Meta2d核心库图元注册流程及相关概念: juejin.cn/spost/72629…
- 侧边栏功能开发:https://juejin.cn/post/7264414580776403003
- Nav组件功能实现:https://juejin.cn/post/7264951443344916517
- Nav组件扩展-添加工具栏:https://juejin.cn/post/7265692989611147283
- setting组件框架搭建及其Map组件实现:https://juejin.cn/post/7267418197728116748
- 引入自定义图元库详解:https://juejin.cn/post/7267948449966096447
- Global全局配置组件实现:https://juejin.cn/post/7269349453588660260
- 初识PenProps及其Appearance组件实现: https://juejin.cn/post/7270140695477387319
11. meta2d事件消息及Event组件实现
meta2d提供了完整的事件回调机制,我们可以在操作过程中通过监听meta2d的系统事件来做些个性化的操作,其实在之前的代码中,我们也用到了相关内容,比如监听meta2d的scale事件进行画布缩放的数据同步,监听opened事件做文件导入后的预处理等等,这一章我们来聊一聊meta2d的事件消息。
meta2d事件消息
先看看官网是怎么介绍的吧,消息,事件,可见,meta2d提供了两种事件类型,分别为系统级事件和图元级事件,系统级事件通过meta2d的on方法进行监听并注册回调函数,而图元级事件则需要配置在图元的events属性列表里。
meta2d提供的系统级事件如下所示:
event(字符串) | data | 描述 |
---|---|---|
opened | 打开新文件 | |
enter | Pen | 鼠标进入画笔 |
leave | Pen | 鼠标离开画笔 |
active | Pen[] | 选中一个/多个画笔 |
inactive | Pen[] | 取消选中 |
add | Pen[] | 添加一个/多个画笔 |
update | 编辑画笔 | |
delete | Pen[] | 删除画笔 |
scale | number | 缩放画布 |
translate | Object: x, y | 平移画布 |
resizePens | Pen[] | 画笔大小改变 |
rotatePens | Pen[] | 画笔被旋转 |
translatePens | Pen[] | 移动画笔结束 |
translatingPens | Pen[] | 移动画笔中 |
click | Point & Pen | 点击,鼠标左击 up |
mousedown | Point & Pen | 鼠标 down |
dblclick | Point & Pen | 双击 |
animateEnd | 单个画笔动画播放完成 | |
mediaEnd | Pen | 视频/音频(audio/video)播放结束 |
socket | message | 监听网络消息 |
undo | 撤销后 | |
redo | 恢复后 | |
clickInput | 单击输入框 | |
input | pen & text | 输入框键盘输入 |
valueUpdate | pen | 修改属性值 |
contextmenu | e & bounding | 右键上下文菜单 |
connectLine | Object:line, lineAnchor, pen, anchor, | 连线连接到锚点 |
drop | obj / json | 拖动画笔到画布 |
cut | pens | 剪切 |
copy | pens | 复制 |
paste | pens | 粘贴 |
另外还可以通过meta2d.emit方法设置触发自定义事件,系统事件很简单,熟悉前端的读者肯定知道怎么做,这里就不演示了。
meta2d.emit('自定义事件',data)
相比下来,图元事件就稍微复杂,图元事件通过维护图元自身events属性,meta2d在解析图元时会自动遍历其events事件列表并绑定在相关图元上,我们先来看官方的例子:
const pen = {
name: "rectangle",
text: "矩形",
x: 100,
y: 100,
width: 100,
height: 100,
events: [
{
name: "click",
action: EventAction.Link, // 执行动作
where: { type:'comparison', key: "text", comparison: "==", value: "矩形" }, // 触发条件
value: "2d.le5le.com",
},
],
};
events列表中每一项都是绑定的一个事件对象,可知我们的图元支持同时绑定多个事件,我们来看看事件对象的相关属性:
- name:该属性是事件类型,即监听什么事件,具体有哪些事件见官网
- action:事件行为,表示事件发生后执行什么动作,类似回调函数。该值是个枚举值(对象),meta2d内部提供了13种事件行为,见官网
- where:触发条件,即当满足什么条件下发生的相关事件才有效,见官网,非必要
- value:事件附带数据,比如绑定id值,非必要
- params:事件参数,与value类似,非必要
接下来,我们就围绕图元事件编写Event组件。
Event组件实现
作为示范,作者就不设定定义多个事件了,将每个图元设为仅能定义一个事件,先看看最终Event组件的的代码:
<script setup>
import {computed, onMounted, reactive, ref} from "vue";
import {eventType, eventBehavior} from "../../data/defaultsConfig.js";
let activePen = reactive({})
let event = reactive({
name:"",
action:"",
value:""
})
let otherParams = []
let depList = computed(()=>{
let _b = b.find(i=>i.behavior===event.action)
otherParams = _b?.depend.map(i=>i.params) || []
return _b
})
let b = reactive(eventBehavior)
onMounted(()=>{
meta2d.on('active',(pen)=>{
if(pen.length === 1){
activePen = pen[0]
if(!activePen.events){
activePen.events = []
}else {
// 有事件?
const actEvent = activePen.events[0]
if(actEvent){
event.name = actEvent.name
event.action = actEvent.action
otherParams.forEach(i=>event[i]=actEvent[i])
}else {
event.name = ""
event.action = ""
event.value = ""
}
}
}else {
activePen = undefined
}
})
})
function removeEvent() {
activePen.events = []
event.name = ""
event.action = ""
event.value = ""
}
function confirmEvent() {
let otherProps = depList.value.depend?.map(i=>{
let p = {}
p[i.bindProp] = i.bindData
return p
}
) || []
const e = {
name:event.name,
action:event.action,
}
Object.assign(e,...otherProps)
activePen.events = [e]
}
</script>
<template>
<div class="event">
<el-form @submit="(e)=>e.preventDefault()">
<el-form-item label="事件类型" >
<el-select v-model="event.name" placeholder="选择事件类型" >
<el-option
v-for="e in eventType"
:key="e.event"
:label="e.name"
:value="e.event"
>
</el-option>
</el-select>
</el-form-item>
<!-- 行为类型-->
<el-form-item label="行为类型">
<el-select v-model="event.action" placeholder="选择行为类型">
<el-option
v-for="i in eventBehavior"
:key="i.behavior"
:label="i.name"
:value="i.behavior"
>
</el-option>
</el-select>
</el-form-item>
<!-- 事件类型依赖表单-->
<el-form-item :label="dep.name" v-for="dep in depList?.depend">
<el-input v-model="dep.bindData" :placeholder="dep.option?.placeholder || '请输入'" v-if="dep.type==='input'" @[dep.event]="dep.func" :type="dep.option?.type||'text'"/>
<!-- 选择框-->
<el-select v-model="dep.bindData" :placeholder="dep.option.placeholder" v-else-if="dep.type==='select'">
<el-option
v-for="item in dep.option.list"
:key="item.value"
:label="item.name"
:value="item.value"
:disabled="item.disabled"
>
</el-option>
</el-select>
</el-form-item>
<div class="event_button">
<el-button @click="confirmEvent" type="primary" style="width: 100%;margin-right: 14px">确认事件</el-button>
<el-button @click="removeEvent" type="danger" style="width: 100%;margin-right: 14px">清除事件</el-button>
</div>
</el-form>
</div>
</template>
<style scoped>
.event_button{
width: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.event {
margin: 10px;
}
</style>
在前端代码中,我们可以看到行为类型和事件类型为静态,还有个事件类型依赖表单为动态渲染,前面说到,event事件对象需要name、action、value、params、where五个属性,其中name和action属性是必要的,所以我们先将name和action写死,其他表单我们通过选择的事件行为来动态渲染出来。首先我们先定义好事件类型
// defaultsConfig.js
export const eventType = [
{
name: "鼠标移入",
event: "enter"
},
{
name: "鼠标移出",
event: "leave"
},
{
name: "选中",
event: "active"
},
{
name: "取消选中",
event: "inactive"
},
{
name:"单击",
event:"click"
},
{
name:"双击",
event: "dbclick"
}
]
然后定义好事件行为
// defaultsConfig.js
export const eventBehavior = [
{
name: "打开链接",
behavior: EventAction.Link,
depend:[
{
name:"链接地址",
type:"input",
bindProp:"value",
option:{
placeholder:"URL"
},
bindData:""
},
{
name:"打开方式",
type:"select",
bindProp:"params",
option:{
list:[
{
name:"新窗口打开",
value:"_blank"
},{
name:"覆盖当前页面",
value:"self"
}
]
},
bindData:""
}
]
},
{
name:"执行动画",
behavior: EventAction.StartAnimate,
depend:[
{
name:"目标id/tag",
type:"input",
bindProp:"value",
option:{
placeholder:"id/tag"
},
bindData:""
},
]
},
{
name:"暂停动画",
behavior: EventAction.PauseAnimate,
depend:[
{
name:"目标id/tag",
type:"input",
bindProp:"value",
option:{
placeholder:"id/tag"
},
bindData:""
},
]
},
{
name:"停止动画",
behavior: EventAction.StopAnimate,
depend:[
{
name:"目标id/tag",
type:"input",
bindProp:"value",
option:{
placeholder:"id/tag"
},
bindData:""
},
]
},
{
name:"播放视频",
behavior: EventAction.StartVideo,
depend:[
{
name:"目标id/tag",
type:"input",
bindProp:"value",
option:{
placeholder:"id/tag"
},
bindData:""
},
]
},
{
name:"暂停视频",
behavior: EventAction.PauseVideo,
depend:[
{
name:"目标id/tag",
type:"input",
bindProp:"value",
option:{
placeholder:"id/tag"
},
bindData:""
},
]
},
{
name: "停止视频",
behavior: EventAction.StopVideo,
depend:[
{
name:"目标id/tag",
type:"input",
bindProp:"value",
option:{
placeholder:"id/tag"
},
bindData:""
},
]
}
]
其中,EventAction对象是meta2d提供的事件行为枚举对象,depend属性为该事件行为依赖的表单数据,即我们选择事件行为后,就能将对应的行为将依赖表单渲染到界面上,看看depend的内容是不是很熟悉,与我们之前渲染其他表单都一样的原理,这里就不赘述了。
先让我们看看相关效果
可以看到,效果符合预期
接下来我们需要编写函数,将选定事件数据及其参数赋值给图元,这也很简单,只需要直接赋值即可。像下面这样
function confirmEvent() {
let otherProps = depList.value.depend?.map(i=>{
let p = {}
p[i.bindProp] = i.bindData
return p
}
) || [] // 是否有其他附加属性
const e = {
name:event.name,
action:event.action,
}
Object.assign(e,...otherProps) // 注册属性
activePen.events = [e]
}
由于我们的项目比较简单,不涉及复杂的数据交互,所以决定在每个图元中只注册一个事件。然后通过给“确认事件”按钮绑定点击事件,就实现了这个简单的赋值功能,我们来看看,我们赋值后的图元数据长啥样。
成功将数据写入图元的events属性上,来看看具体效果吧。
需要注意的是 需要将图纸锁定才有效,官网已经说明了这点
事件绑定是写好了,没问题,可是事件回显还没实现呢,当我们点击不同图元会在界面上显示不同图元的事件信息,其实实现这个功能也很简单,这里就要依赖meta2d的系统事件了,active事件,该事件返回每次选中图元的信息,我们只需要拿到这些信息后,进行一次赋值就好,像下面这样:
meta2d.on('active',(pen)=>{
if(pen.length === 1){ // 长度唯一 说明选中了一个
activePen = pen[0] // 赋值
if(!activePen.events){
activePen.events = [] // 若没有events属性,则初始化一个
}else { // 若有事件属性则赋值
const actEvent = activePen.events[0] // 只处理第一个事件
if(actEvent){ // 赋值
event.name = actEvent.name
event.action = actEvent.action
otherParams.forEach(i=>event[i]=actEvent[i])
}else { // 否者初始化值
event.name = ""
event.action = ""
event.value = ""
}
}
}else {
activePen = undefined
}
})
来看看效果
总结
本章,我们较为详细的介绍了meta2d事件消息相关内容,并且在此基础上我们为项目实现了简单的事件绑定功能,meta2d支持绑定多个事件,能够应对足够复杂的应用场景,由于面向的读者较广,为了更多人能够理解和接受这部分内容,我的示例较为简单,读者可以尝试去实现更为复杂的场景。下一章,我们进入PenProps的最后一个组件动效(Animate)组件的开发,我们下章再回。
有问题欢迎在评论区反馈,欢迎持续关注。
Meta2d.js 开源地址
给大家推荐一下 Meta2d.js是一个实时数据响应和交互的2d引擎,可用于Web组态,物联网,数字孪生等场景。
Github:github.com/le5le-com/m…
Gitee: gitee.com/le5le/meta2…
如果本篇文章帮助到了你,欢迎为meta2d项目star点星。
三、ozon可视化编辑器怎么使用?
1. 使用ozon可视化编辑器需要一定的学习和使用时间,但是掌握后可以提高工作效率和编辑质量。2. 首先,需要了解ozon可视化编辑器的基本功能和操作方法,可以通过官方文档或者视频教程进行学习。其次,需要根据具体的编辑需求选择合适的工具和插件,例如图形绘制、代码高亮等。最后,需要不断练习和实践,熟练掌握ozon可视化编辑器的使用技巧。3. 在掌握ozon可视化编辑器的基本操作和功能后,可以进一步学习和掌握其高级功能和扩展插件,例如自定义快捷键、代码自动补全等,以提高编辑效率和质量。
四、bootstrap可视化编辑器哪个更好?
Jetstrap是一个基于 Bootstrap 前端框架的可视化设计工具。通过 Jetstrap制作出来的网页 100% 符合 Bootstrap 标准。比如说你只要设计了电脑端的页面,它会自动适配手机端和 Pad 端(响应式设计)。
五、bootstrap可视化编辑器怎么用?
使用bootstrap可视化编辑器需要先访问相关网站或下载相关编辑器软件,然后按照以下步骤操作:1.选择需要编辑的Bootstrap模板或下载自己设计的模板。2.使用拖拽和编辑等方式,对模板的各个组件进行修改和调整。3.通过实时预览功能查看编辑后的效果。4.下载或保存编辑后的模板并应用到自己的网站或项目中。但需要注意的是,这种可视化编辑器虽然简便快捷,但在实际应用中可能会存在兼容性问题,需要在使用过程中进行测试和调整。
六、手机上可以下载html5的编辑器吗?
如果三星手机需要下载安装软件应用,建议尝试:
1.使用手机功能表中自带的浏览器上网,直接搜索需要的软件进行下载安装(下载安卓版本格式为apk)。
2.使用电脑下载APK格式的安装包,连接数据线传输至手机,操作手机在应用程序-我的文件中找到安装包,运行后点击安装按钮。
3.下载完成后点击下载的应用,根据软件手机界面中软件安装提示点击安装即可。注:如安装软件后桌面没有生成快捷图标,手机将软件拖到主屏幕的操作方法:进入应用程序点住需添加到主屏的图标不松手,拖动到主屏幕后松手即可。
七、amz123可视化编辑器怎么用?
加粗 Ctrl + B
斜体 Ctrl + I
引用 Ctrl + Q
插入链接 Ctrl + L
插入代码 Ctrl + K
插入图片 Ctrl + G
提升标题 Ctrl + H
有序列表 Ctrl + O
无序列表 Ctrl + U
横线 Ctrl + R
撤销 Ctrl + Z
重做 Ctrl + Y
八、请问那个可视化HTML编辑器适于EDM邮件推广?
网上就有专业自制作EDM邮件的平台呀,请百度搜索“肯为旎邮件DIY”,所有模板都是自适应的,专业性强,兼容性很强,能自动适应和支持很多设备(平台),比如手机、平板、PC等等。
温馨提示:普通的HTML编辑器是不能制作EDM邮件的,因为其兼容性差,可能在计算机中显示正常,但在手机中就彻底乱套了。也可能在浏览器中正常,但在邮箱中就完全错位了,根本无法观看。
九、如何实现一个前端的可视化编辑器?
概要
可视化编辑器已成为前端发展趋势,相关产品层出不穷,但是用户较难根据自身需求去完整实现一个功能较为全面的可视化编辑器,我将采用乐吾乐开源的meta2d.js可视化库来实现一个简单的流程图编辑器,通过这个案例来介绍meta2d的相关功能,并向读者展示如何用meta2d从零出发搭建一个较为完整的项目,让我们在实际项目中来体验meta2d的强大之处吧。
什么是乐吾乐meta2d.js
meta2d是乐吾乐开源的2D图元组成的可视化引擎,集实时数据展示、动态交互、数据管理等一体的全功能2D可视化引擎。能够快速实现数字孪生、大屏可视化、Web组态、SCADA等解决方案。具有实时监控、多样、变化、动态交互、高效、可扩展、支持自动算法、跨平台等特点,最大程度减少研发和运维的成本,并致力于普通业务人员 0 代码开发实现物联网、工业互联网、电力能源、水利工程、智慧农业、智慧医疗、智慧城市等可视化解决方案。
乐吾乐 meta2d开源项目地址:https://github.com/le5le-com/meta2d.js
乐吾乐 meta2d官方文档:https://doc.le5le.com/document/119359590
项目地址
此可视化流程图编辑器项目地址:https://github.com/Grnetsky/meta2d_vue
在线体验地址: editor.xroot.top/
1. 环境搭建
技术栈
在技术选型中结合个人喜好和项目实际需求,作者选择Vue3+Vite+ElementUIplus技术栈结合meta2d核心库来实现
由于在未来相关库会进行更新迭代,作者无法保证此教程在未来依然有效,为了保证此教程的可用性,建议读者版本与我保持一致,本项目相关依赖库的版本如下所示:
{
"name": "meta2d_vue",
"private": true,
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"postinstall": "node ./src/test.js",
"dependencies": {
"@meta2d/activity-diagram": "^1.0.0",
"@meta2d/chart-diagram": "^1.0.3",
"@meta2d/class-diagram": "^1.0.1",
"@meta2d/core": "^1.0.20",
"@meta2d/flow-diagram": "^1.0.0",
"@meta2d/form-diagram": "^1.0.4",
"@meta2d/sequence-diagram": "^1.0.0",
"@meta2d/svg": "^1.0.2",
"axios": "^1.4.0",
"element-plus": "^2.3.7",
"vue": "^3.3.4"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.2.3",
"vite": "^4.4.0"
}
}
vite创建项目
通过 npm create vite@latest 命令进行项目搭建,选择对应的技术栈
修改index.html相关内容,通过npm run dev 命令 显示默认主页证明安装成功
安装Meta2d核心库
通过下面命令安装最新版核心库(截止作者安装时v1.0.20)
npm install @meta2d/core --save
安装核心库svg解析模块
在很多时候我们的图标都是采用svg格式进行解析渲染的,在此下载乐吾乐提供的@meta2d/svg依赖包。该依赖包提供了一系列的meta2d依赖的svg解析函数,我们可以在项目中导入解析svg图形。
npm install @meta2d/svg --save
安装成功
安装ELement Plus库
在本项目中,我们的UI组件将采用组件化库,根据自己喜好,作者在这里采用Element Plus作为项目的UI库 安装如下:
npm install element-plus --save
安装成功
导入配置:由于本教程更偏向于项目的搭建和核心库的使用,并不关心项目实际大小,为了方便使用,将采用ElementPlus全局导入的形式
将默认模板进行删除整理,在components文件夹中创建Nav.vue、Meta2d.vue、Icons.vue、Setting.vue、Main.vue五个空文件,在App.vue根组件中按照如图进行排列,到此基本开发环境搭建就完成了。
总结
这一章我们完成了基本的环境搭建,作者在技术选型上选择了Vue+Vite+ElemetPlus,同时安装了meta2d核心库和meta2d/svg依赖库,读者需要注意相关库的版本问题,尽量与我保持一致,在下一章我们将从基本的界面布局开始,一点点深入到meta2d之中,下章见。
Meta2d.js 开源地址
给大家推荐一下 Meta2d.js是一个实时数据响应和交互的2d引擎,可用于Web组态,物联网,数字孪生等场景。 Github:https://github.com/le5le-com/meta2d.js
Gitee: https://gitee.com/le5le/meta2d.js
大家一起去为这个国产的开源产品star一下吧,毕竟优秀的国产可视化开源项目不多。
十、哪一款 HTML5 编辑器最值得推荐?为什么?
1. Mercury : HTML5 Powered WYSIWYG Editor
Mercury 是个全功能的编辑器,包含TinyMCE和CKEditor同样的功能,但又有不同的特性。与iFrames有所不同,它使用了HTML5内容可编辑功能等。Mercury 是由CoffeeScript代码编写,其支持所有的主流浏览器。
Website/Downoad
2 Aloha Editor – HTML5 WYSIWYG Editor
Aloha Editor 是个基于浏览器的富文本编辑器框架。不像其他大多数的HTML编辑器,Aloha可以被嵌入到CMS、Blog,及其他标准的web开发框架中。
Website
3. Rendra- Online HTML 5 Editor
Rendra 是个在线HTML5 编辑器,支持用户实时预览,用户可以使用哪个浏览器支持的HTML 5和CSS 3,以及HAML 和SASS。它是由CoffeeScript 和 Sinatra代码编写的。用户可以用Rendra测试JS代码,允许用户利用 jQuery UI,jQuery 工具和插件。
Website
4. BlueGriffon: Next Generation HTML5 WebEditor
BlueGriffon是一个新的WYSIWYG编辑器,跨平台, 支持Windows, Linux and Mac OSX。 该编辑器内置HTML5/CSS3编辑功能,可以轻松地用它来实现传输、文本和边框的阴影、斜体等效果。它使用Google Font Directory 和FontSquirrel addons,可以设置个性化网页字体。
Website
5. Maqetta : Open Source Project & HTML5 Editor
Maqetta,一个创建桌面和移动用户界面的HTML5设计编辑工具,并同时宣布将项目捐助给开源机构Dojo基金会。
Maqetta已经是开源项目,提供WYSIWYG可视化HTML5用户界面设计功能,仅需简单的拖曳操作,支持桌面和移动用户界面。
6. Apatana Studio 3
Aptana Studio 3 是开源web开发工具,它允许开发者测试web应用,支持最新的web开发技术如HTML5, CSS3, JavaScript, Ruby, Rails, PHP 和 Python。Apatanna包含很多的功能,比如GIF integration, HTML,CSS和JavaScript Code assists, integrated debugger, 部署向导,以及IDE定制化。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...