些在線圖文編輯器不支持直接插入代碼塊,但可以直接粘貼 HTML 格式的高亮代碼塊。
花了一點時間研究了一下各家的編輯器,規(guī)則卻各不相同。有的要求代碼塊被包含于 <code> ... </code> 或者 <pre> <code> ... </code> </pre> , 有些要求 class 屬性里包含 "code" 關(guān)鍵詞,或者要求代碼塊里必須包含至少一個 <br> 。如果不符合這些要求,不是變成普通文本,就是丟失換行縮進,或者丟失顏色樣式。
所以,這就難了。先得找個支持代碼高亮的編輯器,仔細(xì)地選擇并復(fù)制代碼塊,復(fù)制完還得編輯剪貼板里的 HTML 。這就不如干脆寫個轉(zhuǎn)換工具了。
因為瀏覽器操作系統(tǒng)剪貼板可能不太方便,下面用 aardio 寫一個工具軟件。
先看軟件成品演示:
軟件用法:
1、輸入編程語言名稱(支持自動完成)。
2、然后在輸入框中粘貼要轉(zhuǎn)換的編程代碼。
3、點擊「復(fù)制高亮代碼塊」按鈕。
然后我們就可以打開在線圖文編輯器直接粘貼生成的高亮代碼塊了。
下面是這個軟件的 aardio 源代碼:
import win.ui;
/*DSG{{*/
var winform = win.form(text="HTML 代碼塊生成工具 - 本工具使用 aardio 語言編寫";right=1055;bottom=674;bgcolor=16777215)
winform.add(
button={cls="button";text="復(fù)制高亮代碼塊";left=633;top=609;right=1000;bottom=665;bgcolor=16777215;color=14120960;db=1;dr=1;font=LOGFONT(h=-14);note="可在網(wǎng)頁編輯器直接粘貼";z=4};
cmbLangs={cls="combobox";left=262;top=625;right=446;bottom=651;db=1;dl=1;edge=1;items={"javascript"};mode="dropdown";z=2};
editCode={cls="edit";left=1;top=4;right=1052;bottom=599;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=5};
static={cls="static";text="請選擇語言:";left=70;top=629;right=248;bottom=649;align="right";db=1;dl=1;transparent=1;z=3};
webCtrl={cls="custom";text="自定義控件";left=8;top=10;right=1048;bottom=604;db=1;dl=1;dr=1;dt=1;hide=1;z=1}
)
/*}}*/
import web.view;
var wb = web.view(winform.webCtrl);
import win.clip.html;
wb.export({
onHighlight = function(html,background,foreground){
html = `<pre class="code" style="overflow-x:auto;text-align:left;box-shadow: rgba(216, 216, 216, 0.5) 0px 0px 0px 1px inset;padding:10px;border-radius:3px;background-color:`+background+`;color:`+foreground+`;white-space:pre;word-break:break-all;display:block;font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: normal;font-family: "Consolas", Consolas, "Liberation Mono", Menlo, Courier, monospace"><code>`
+ html + `</code></pre>`;
html,count = string.replace(html,'\n',"<br>");
if(!count){
html = string.replace(html,`\</code\>\</pre\>$`,`<br></code></pre>`);
}
var cb = win.clip.html();
cb.write(html);
winform.setTimeout(
function(){
winform.editCode.show(true);
winform.webCtrl.show(false);
winform.text = "HTML 代碼塊生成工具 - 已復(fù)制高亮代碼塊到剪貼板,可在網(wǎng)頁直接粘貼";
},1000);
};
setLanguages = function(langs){
winform.languages = langs;
}
})
winform.cmbLangs.onEditChange = function(){
var text = string.lower(winform.cmbLangs.text);
var items = table.filter( winform.languages : {}, lambda(v) string.startWith(v,text) );
winform.cmbLangs.autoComplete(items);
}
winform.cmbLangs.editBox.disableInputMethod();
import web.prism;
import wsock.tcp.asynHttpServer;
var httpServer = wsock.tcp.asynHttpServer();
httpServer.run(web.prism,{
["/index.html"] = /*****
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link href="prism.css" rel="stylesheet" />
</head>
<body>
<pre id="code-pre"><code id="code" class="lang-javascript"></code></pre>
<script src="prism.js"></script>
<script>
function computedColorStyle(element, options = {}) {
Array.prototype.forEach.call(element.children,child => {
computedColorStyle(child, options);
});
const computedStyle = getComputedStyle(element);
element.style["color"] = computedStyle.getPropertyValue("color");
}
highlight = function(code,language){
var html = Prism.highlight(code, Prism.languages[language], language);
var codeEle = document.getElementById("code");
codeEle.innerHTML = html;
computedColorStyle(codeEle);
const computedStyle = getComputedStyle(codeEle);
onHighlight(codeEle.innerHTML
,getComputedStyle(document.getElementById("code-pre")).getPropertyValue("background-color")
,computedStyle.getPropertyValue("color"));
}
setLanguages( Object.keys(Prism.languages) );
</script>
</body>
</html>
*****/
});
wb.go( httpServer.getUrl("/index.html"));
winform.button.oncommand = function(id,event){
winform.text = "HTML 代碼塊生成工具 - 本工具使用 aardio 語言編寫"
winform.editCode.show(false);
winform.webCtrl.show(true);
wb.xcall("highlight",winform.editCode.text,winform.cmbLangs.text);
}
winform.show();
win.loopMessage();
打開 aardio 創(chuàng)建工程,然后復(fù)制粘貼上面的代碼到 main.aardio 里面就可以直接運行,或生成獨立 EXE 文件:
這個軟件的原理:
1、首先通過 WebView2 調(diào)用 Prism.js 高亮代碼。為了可以內(nèi)存加載 Prism.js ( 支持生成獨立 EXE ),我寫了一個 aardio 擴展庫 web.prism 。關(guān)于 WebView2 請參考:放棄 Electron,擁抱 WebView2!JavaScript 快速開發(fā)獨立 EXE 程序
2、因為 Prism.js 生成的 HTML 代碼塊都是使用 class 屬性指定樣式,所以我們需要調(diào)用 getComputedStyle 獲取最終渲染的字體顏色屬性。
3、最后在 JavaScript 里調(diào)用 aardio 函數(shù)處理生成的 HTML 代碼塊,aardio 的任務(wù)是將 HTML 修改為更合適直接粘貼的格式,并盡可能地處理各圖文編輯器的兼容問題。然后調(diào)用 win.clip.html 將處理好的 HTML 復(fù)制到系統(tǒng)剪貼板:
import win.clip.html;
var cb = win.clip.html();
cb.write(html);
然后只要愉快地粘貼代碼塊就可以。
如果是 aardio 代碼不需要用這個工具,在 aardio 編輯器里右鍵直接點『 復(fù)制全部到 HTML 代碼塊 』就可以了:
TML編輯器是一種用于創(chuàng)建、編輯和預(yù)覽HTML(超文本標(biāo)記語言)代碼的工具或應(yīng)用程序。它提供了一個直觀的界面,使用戶能夠輕松地編寫和設(shè)計網(wǎng)頁內(nèi)容。本文主要介紹HTML 常用編輯器(Visual Studio Code、Sublime Text、Atom、Notepad++和Dreamweaver)。
參考文檔:https://www.cjavapy.com/article/3299/
Visual Studio Code(簡稱VS Code)是一款由微軟開發(fā)的跨平臺源代碼編輯器,支持Windows、macOS和Linux等多種操作系統(tǒng)。它被廣泛用于Web開發(fā),包括編輯HTML、CSS、JavaScript等前端技術(shù)。VS Code是一款輕量級的代碼編輯器,啟動迅速,占用資源少。VS Code提供了豐富的擴展和插件,可以根據(jù)需求安裝插件來增強編輯器功能。
1)安裝和配置
官網(wǎng)地址:Visual Studio Code - Code Editing. Redefined
根據(jù)操作系統(tǒng)下載并安裝相應(yīng)版本的VS Code。打開VS Code后,可以根據(jù)自己的喜好配置編輯器設(shè)置,如主題、字體等。
2)新建HTML文件
在 VS Code 安裝完成后,選擇" 文件(F)->新建文件(N) ",在新建的文件中輸入以下代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>編程之路(cjavapy.com)</title>
</head>
<body>
<h1>我的第一個標(biāo)題</h1>
<p>我的第一個段落。</p>
</body>
</html>
3)編輯HTML文件
在VS Code中,點擊左上角的"文件"菜單,選擇"打開文件",或者使用快捷鍵Ctrl+O(Windows)或Cmd+O(macOS)來打開HTML文件。
在編輯器中可以直接修改HTML文件的內(nèi)容。VS Code會自動識別HTML標(biāo)記,并提供代碼高亮和智能提示功能。編輯完成后,使用快捷鍵Ctrl+S(Windows)或Cmd+S(macOS)來保存HTML文件。
4)插件推薦
HTML CSS Support:提供對HTML和CSS的支持,包括代碼片段、自動補全等功能。
Live Server:啟動一個本地開發(fā)服務(wù)器,實時預(yù)覽HTML頁面的效果。
Prettier:格式化HTML代碼,使代碼結(jié)構(gòu)更整潔。
Auto Close Tag:自動閉合HTML標(biāo)簽,提高編碼效率。
Bracket Pair Colorizer:對成對的括號進行著色,方便識別代碼塊。
Sublime Text是一款流行的跨平臺源代碼編輯器,支持Windows、macOS和Linux等多種操作系統(tǒng)。它被廣泛用于Web開發(fā),包括編輯HTML、CSS、JavaScript等前端技術(shù)。
Sublime Text的界面非常簡潔,沒有多余的菜單和工具欄,更便于專注于代碼編輯。Sublime Text支持多種編程語言,包括HTML、CSS、JavaScript、Python、Java等。Sublime Text擁有強大的插件系統(tǒng),用戶可以根據(jù)需要安裝插件來擴展編輯器功能。用戶可以自定義快捷鍵、主題、顏色方案等,以滿足個性化需求。Sublime Text啟動迅速,響應(yīng)快速,適合于快速編輯代碼。
1)安裝和配置
官網(wǎng)地址:Sublime Text - Text Editing, Done Right
根據(jù)操作系統(tǒng)下載并安裝相應(yīng)版本的Sublime Text。打開Sublime Text后,可以根據(jù)自己的喜好進行編輯器設(shè)置,如字體、主題等。
2)新建HTML文件
在Sublime Text 安裝完成后,選擇" File->New File ",在新建的文件中輸入以下代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>編程之路(cjavapy.com)</title>
</head>
<body>
<h1>我的第一個標(biāo)題</h1>
<p>我的第一個段落。</p>
</body>
</html>
3)編輯HTML文件
在Sublime Text中,點擊左上角的"File"菜單,選擇"Open File",或者使用快捷鍵Ctrl+O(Windows)或Cmd+O(macOS)來打開HTML文件。在編輯器中可以直接修改HTML文件的內(nèi)容。Sublime Text會自動識別HTML標(biāo)記,并提供代碼高亮和智能提示功能。編輯完成后,使用快捷鍵Ctrl+S(Windows)或Cmd+S(macOS)來保存HTML文件。
4)插件推薦
Emmet:提供HTML/CSS快速編寫和自動完成功能,可以大大提高編碼效率。
Sublime Linter:對代碼進行實時語法檢查,幫助發(fā)現(xiàn)潛在的錯誤和警告。
Color Highlighter:對CSS中的顏色進行高亮顯示,方便調(diào)試和修改樣式。
SideBarEnhancements:增強側(cè)邊欄功能,提供更多文件操作選項。
Dreamweaver是由Adobe公司開發(fā)的一款全球知名的網(wǎng)頁設(shè)計和開發(fā)工具。它為開發(fā)人員和設(shè)計師提供了一個可視化的界面,可以直觀地創(chuàng)建和編輯網(wǎng)頁內(nèi)容,同時也支持手動編輯代碼。Dreamweaver提供可視化界面,可以直觀地拖拽和編輯網(wǎng)頁元素,無需手動編寫代碼。除了可視化界面,Dreamweaver也支持手動編輯代碼,適合于開發(fā)人員和設(shè)計師。Dreamweaver可在Windows和macOS等多個平臺上運行。Dreamweaver集成了代碼編輯器、預(yù)覽窗口、文件管理器等功能,提供全面的開發(fā)環(huán)境。
1)安裝和配置
官網(wǎng)地址:Website design software | Adobe Dreamweaver
根據(jù)操作系統(tǒng)下載并安裝相應(yīng)版本的Dreamweaver。打開Dreamweaver后,,根據(jù)需要進行編輯器設(shè)置,如界面語言、字體、代碼顏色等。
2)編輯HTML文件
在Dreamweaver中,點擊左上角的"File"菜單,選擇"New",然后選擇"HTML",即可新建一個空白的HTML文件。內(nèi)容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>編程之路(cjavapy.com)</title>
</head>
<body>
<h1>我的第一個標(biāo)題</h1>
<p>我的第一個段落。</p>
</body>
</html>
使用可視化界面,可以直接拖拽頁面元素、調(diào)整布局、插入圖片等。若需要手動編輯HTML代碼,可以在下方的代碼編輯器中進行修改。Dreamweaver會自動提供代碼補全和語法高亮功能。在Dreamweaver中,可以實時預(yù)覽網(wǎng)頁效果,點擊右上角的"Live View"按鈕即可。
3)CSS和JavaScript支持
Dreamweaver也支持CSS和JavaScript的編輯和預(yù)覽,可以幫助創(chuàng)建更豐富的網(wǎng)頁效果。在編輯器中可以直接編輯CSS樣式和JavaScript代碼,并實時查看效果。
4)網(wǎng)頁上傳和發(fā)布
Dreamweaver集成了FTP功能,可以直接將編輯好的網(wǎng)頁上傳到服務(wù)器。點擊"Site"菜單,選擇"Manage Sites",配置好站點設(shè)置,即可進行上傳和發(fā)布。
5)Dreamweaver模板和庫
Dreamweaver提供模板和庫功能,可以保存和復(fù)用常用的網(wǎng)頁元素和樣式,提高開發(fā)效率。
參考文檔:https://www.cjavapy.com/article/3299/
壓縮包上傳解壓到服務(wù)器根目錄,入口文件是index.html
本網(wǎng)站的HTML模板資源:所見文章圖片即所得,搭建和修改教程請看這篇文章:https://yizhi2024.top/8017.html
一般是在index.htm內(nèi)修改,搜索頁面關(guān)鍵詞來查看代碼所在位置
也可以使用HBuilderX來搜索:把壓縮包解壓,得到文件夾,拖動HBuilderX軟件,執(zhí)行CTRL+F,輸入關(guān)鍵字眼,會自動搜索文件夾內(nèi)的所有內(nèi)容
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。