有一个好的编辑器我们可以方便地的开发项目,编写代码,配置和管理我们的项目。所以我们开始编写html代码之前需要搭建开发环境。
基于html项目的开发和代码编写现在网上有很多编辑器,也有免费的,也有收费的编辑器。基于在Windows系统环境下开发和编写html代码最简单的编辑器就是Windows自带的记事本,我们可以使用记事本编辑html代码。
使用记事本编写html的步骤是首先新建一个文本文档,按照html的语法规则编写相关的代码和保存文件,然后把文件的后缀名改为.html,使用电脑上的浏览器打开就可以查看我们代码的运行结果。
虽然记事本也能编写html代码,但是效率不高也不方便,所以我们使用专业的编辑器来开发项目,编写代码和管理项目。
常用html代码编写的免费软件有HBuilderX,vs code,Sublime Text 等等。
HBuilderX官网下载地址:
https://www.dcloud.io/hbuilderx.html
vs code的官网下载地址:
https://code.visualstudio.com/
Sublime Text官网下载地址:
http://www.sublimetext.com/
我们以后的教程都使用HBuilderX,所以下面为了同学们的学习方便,对HBuilderX的下载和安装做详细的教程。
一,下载
首先访问HBuilderX的官网网址:
https://www.dcloud.io/hbuilderx.html
打开上面的HBuilderX下载网址后点击页面上download,在弹出的对话框里选择适合自己电脑的HBuilderX版本下载。
在Windows10环境下下载后的文件是一个压缩的.zip文件。
二,安装
鼠标右击下载下来的压缩文件进行解压。
解压完成后是一个名为HBuilderX的文件夹。
解压完成后鼠标双击HBuilderX文件夹:
双击运行名为HBuilderX.exe的应用程序文件即可启动HBuilderX编辑器:
因为HBuilderX是一个绿色软件所以没有桌面快捷方式和开始菜单快速启动程序,我们可以右击HBuilderX.exe文件创建桌面快捷方式。
小百科:
绿色软件指一类小型软件,多数为免费软件,最大特点是软件无需安装便可使用,可存放于闪存中,移除后也不会将任何记录留在本机计算机上。通俗点讲绿色软件就是指不用安装,下载直接可以使用的软件。绿色软件不会在注册表中留下注册表键值,所以相对一般的软件来说,绿色软件对系统的影响几乎没有,所以是很好的一种软件类型。
三,新建项目
HBuilderX编辑器初次启动时的默认界面是下图所示:
按照下图所示可以创建一个新的名为demo1空白项目:
名为demo1的空白项目创建成功后的界面如下图所示:
接下来在刚我们新建的demo1项目下创建名为helloworld的html文件
鼠标右击创建的demo1项目选择新建在选择.html文件:
在弹出的对话框里填入html文件的名称:
编写一段代码:
运行:
在浏览器上观察效果:
好了,到这里html的开发环境搭建和HBuilderX的安装教程结束了。
下面再给大家教一下怎样修改HBuilderX的主题风格,HBuilderX自身提供了修改软件主题的功能,使用者可以自身需求和喜好修改HBuilderX的风格。在喜欢自己喜欢的环境下做开发也是令人羡慕的一件事。
按照以下步骤可以修改HBuilderX的主题,默认主题是绿柔,我们可以改成雅黑,雅蓝或者自定义主题:
雅黑主题:
雅蓝主题:
好了本节全部内容全部结束了,希望我准备的内容对你有所帮助
你的支持是我的最大动力,若觉得我的教程还可以或对你有帮助为我点赞加关注!谢谢!
《vite+vue3实现网页版编辑器,带高亮以及代码提示(以SQL语言为例)》
### 引言:拥抱现代前端开发工具与框架
随着Web技术的飞速发展,构建高效、功能丰富的网页应用变得越来越便捷。Vite作为一款由尤雨溪亲自操刀的新一代前端构建工具,以其闪电般的启动速度和对Vue3的深度优化赢得了开发者们的青睐。而Vue3作为当下热门的前端框架,其响应式系统、Composition API等特性更是大大提升了开发效率。今天,我们将利用Vite+Vue3这一黄金组合,手把手教你打造一个支持SQL语法高亮显示及智能提示的网页版编辑器。
### 第一部分:搭建项目环境与基础架构
**步骤一:初始化项目**
首先,我们需要通过Vite来创建一个新的Vue3项目:
```bash
npm create vite@latest my-sql-editor --template vue
cd my-sql-editor
npm install
```
**步骤二:引入代码编辑器组件**
为了实现代码编辑功能,我们可以使用如Monaco Editor这样的强大开源组件。在项目中安装它:
```bash
npm install monaco-editor @vitejs/plugin-vue-jsx
```
并在`vite.config.js`中引入相关插件:
```javascript
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
export default defineConfig({
plugins: [vue(), vueJsx()],
optimizeDeps: {
include: ['monaco-editor']
}
});
```
### 第二部分:配置与实现SQL代码编辑器
**步骤三:编写SQL编辑器组件**
在`src/components`目录下新建`SqlEditor.vue`文件,引入并初始化Monaco Editor:
```html
<template>
<div ref="editorContainer" style="width:100%; height:100%"></div>
</template>
<script>
import * as monaco from 'monaco-editor';
export default {
data() {
return {
editor: null,
};
},
mounted() {
this.initEditor();
},
methods: {
initEditor() {
const container = this.$refs.editorContainer;
monaco.editor.create(container, {
value: '',
language: 'sql', // 设置语言为SQL
automaticLayout: true,
}).then((editor) => {
this.editor = editor;
});
},
},
};
</script>
```
### 第三部分:实现SQL代码高亮与提示
**步骤四:加载SQL语言服务**
为了让Monaco Editor支持SQL的语法高亮和代码提示,我们需要引入相应的语言服务。由于Monaco默认并未集成SQL语言服务,可以借助社区提供的解决方案,例如`monaco-sql`:
```bash
npm install monaco-sql
```
然后,在初始化编辑器后加载SQL语言服务:
```javascript
import sqlLanguageService from 'monaco-sql';
// 在initEditor方法中添加以下代码
this.editor.onDidCreateModel((model) => {
monaco.languages.registerCompletionItemProvider('sql', {
provideCompletionItems: () => {
// 提供SQL代码提示逻辑...
},
});
monaco.languages.registerDefinitionProvider('sql', {
provideDefinition: () => {
// 提供SQL代码跳转逻辑...
},
});
monaco.languages.setLanguageConfiguration('sql', sqlLanguageService.configuration);
});
```
### 第四部分:定制SQL代码提示与高亮规则
**步骤五:实现SQL代码提示**
根据`monaco-sql`或其他你选择的语言服务库,实现具体SQL关键字、函数等的自动补全逻辑。这部分通常涉及对SQL语法规则的深入理解,并结合实际需求定制化。
**步骤六:完善SQL语法高亮**
同样地,基于提供的SQL语言服务,进一步调整和完善SQL语法的高亮显示规则,使其更加符合你的需求和审美。
### 结语:持续优化与拓展
至此,我们已经成功利用Vite+Vue3构建了一个初步具备SQL语法高亮与代码提示功能的网页版编辑器。然而,真实的开发过程中,我们还需要不断优化用户体验,比如增加错误提示、美化UI设计、处理SQL查询结果展示等功能。同时,对于其他编程或脚本语言的支持,只需替换对应的语言服务即可轻松实现。
希望这篇教程能帮助你开启Web前端开发的新篇章,更深入地掌握Vite+Vue3的应用实践,并在实战中提升技术水平。期待你在评论区分享你的实现过程和遇到的问题,让我们共同进步!
作工具:FireFox、TextWrangler
制作一个简易的代码编辑器,可以根据HTML代码,CSS代码以及JavaScript代码输出结果
初始画面
随着选取的类别增加所属区域也相应缩小
编辑运行
完整代码
<!doctype html>
<html>
<head>
<title>CodePlayer</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script type="text/javascript" src="jquery.min.js"></script> <!--本地调用jQuery 一般下载下来使用-->
<!--网址调用jQuery
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>-->
<style>
body {
margin:0;
padding:0;
}
#menuBar {
width:100%;
height:40px;
background-color:#EDEDED;
border-bottom:1px solid #BFBFBF;
font-family:"Myriad Set Pro","Helvetica Neue","Helvetica","Arial",sans-serif;
overflow:hidden;
}
#logo {
padding-top:10px;
padding-left:10px;
font-size:1.2em;
font-weight:bold;
}
#buttonDiv {
position:relative;
top:-28px;
right:10px;
float:right;
}
#runButton {
font-size:1.1em;
}
#toggles {
padding:0;
width:296.8px;
height:32px;
margin:auto;
list-style:none; /*去掉无序列表的小圆点*/
border:1px solid #BFBFBF;
border-radius:5px;
position:relative;
top:-31px;
}
#toggles li {
float:left;
padding-top:6px;
border-right:1px solid #BFBFBF;
padding-bottom:6px;
padding-left:12px;
padding-right:12px;
}
#clear {
clear:both;
}
.codeContainer {
position:relative;
float:left;
height:100%;
width:50%;
}
.codeContainer textarea {
width:100%;
height:100%;
border:none;
border-right:1px solid #BFBFBF;
padding-top:23px;
padding-left:5px;
font-size:1.1em;
box-sizing:border-box;
}
.codeLabel {
position:absolute;
right:10px;
top:10px;
color:#2DBFFF;
font-family:font-family:"Myriad Set Pro","Helvetica Neue","Helvetica","Arial",sans-serif;
}
#CSSContainer,#JavaScriptContainer {
display:none;
}
iframe {
height:100%;
width:98%;
position:relative;
left:10px;
border:none;
}
.selected {
background-color:yellow;
}
.first {
border-top-left-radius:5px;
border-bottom-left-radius:5px;
}
.last {
border-top-right-radius:5px;
border-bottom-right-radius:5px;
}
</style>
</head>
<body>
<div id="wrapper">
<div id="menuBar">
<div id="logo">
CodePlayer
</div>
<div id="buttonDiv"> <!--设定Run按钮-->
<button id="runButton">Run</button>
</div>
<ul id="toggles">
<li class="toggle selected first">HTML</li>
<li class="toggle">CSS</li>
<li class="toggle">JavaScript</li>
<li class="toggle selected last">Result</li>
</ul>
</div>
<div class="clear"></div>
<div class="codeContainer" id="HTMLContainer">
<div class="codeLabel">HTML</div>
<textarea id="htmlCode">Example Code</textarea>
</div>
<div class="codeContainer" id="CSSContainer">
<div class="codeLabel">CSS</div>
<textarea id="cssCode">Example Code</textarea>
</div>
<div class="codeContainer" id="JavaScriptContainer">
<div class="codeLabel">JavaScript</div>
<textarea id="jsCode">Example Code</textarea>
</div>
<div class="codeContainer" id="ResultContainer">
<div class="codeLabel">Result</div>
<iframe id="resultFrame"></iframe>
</div>
</div>
<script>
var windowHeight=$(window).height(); /*获取窗口的高度*/
var menuBarHeight=$("#menuBar").height(); /*获取menuBar的高度*/
var codeContainerHeight=windowHeight-menuBarHeight;
$(".codeContainer").height(codeContainerHeight+"px"); /*调整指定元素的高度*/
$(".toggle").click(function(){
$(this).toggleClass("selected"); /*点击当前目标的时候会激活toggleClass方法 运行"selected"*/
var activeDiv=$(this).html();
$("#"+activeDiv+"Container").toggle();
var showingDiv=$(".codeContainer").filter(function(){ /*调用过滤 filter=过滤器*/
return($(this).css("display")!="none"); /*目标的css属性display不等于none就返回,意思就是目标有显示就返回*/
}).length; /*.length返回的个数*/
var width=100/showingDiv;
$(".codeContainer").css("width",width+"%"); /*随着显示目标的增加 各自宽度自动减小*/
});
$("#runButton").click(function(){
$("iframe").contents().find("html").html("<style>"+$("#cssCode").val()+"</style>"+$("#htmlCode").val());
document.getElementById("resultFrame").contentWindow.eval($("#jsCode").val());
});
</script>
</body>
</html>
*请认真填写需求信息,我们会在24小时内与您取得联系。