有一個好的編輯器我們可以方便地的開發項目,編寫代碼,配置和管理我們的項目。所以我們開始編寫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小時內與您取得聯系。