本發(fā)明涉及微信小程序源代碼自動生成,具體涉及一種基于wxcl的微信小程序源代碼生成方法及存儲介質(zhì)。
背景技術(shù):
1、微信小程序作為一種創(chuàng)新的技術(shù)解決方案,已滲透至眾多行業(yè)領(lǐng)域,展現(xiàn)出其廣泛的應(yīng)用潛力和實(shí)用價值,為用戶提供了便捷的服務(wù)體驗(yàn)。然而,微信小程序的開發(fā)涉及到html、css、javascript等前端技術(shù),以及服務(wù)器端編程技能。除去編程語言能力,微信小程序的開發(fā)往往需要有設(shè)計師對前端進(jìn)行設(shè)計,這項(xiàng)工作的實(shí)現(xiàn)量大枯燥,耗時且成本非常高。這要求開發(fā)者具備跨領(lǐng)域的技術(shù)知識和較高的學(xué)習(xí)門檻,從而確保小程序的穩(wěn)定運(yùn)行和優(yōu)良的用戶體驗(yàn)。
2、以下為現(xiàn)有微信小程序源代碼主要組成部分介紹:
3、項(xiàng)目配置文件(app.json);這是小程序的全局配置文件,它定義了小程序的全局設(shè)置,包括頁面路徑、導(dǎo)航欄樣式、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時時間、底部?tab?等。這個文件是小程序的入口,它告訴小程序框架如何啟動和運(yùn)行。
4、頁面配置文件(xxx.json);每個小程序頁面都可以有一個對應(yīng)的配置文件,這個文件用于設(shè)置單個頁面的窗口表現(xiàn),如導(dǎo)航欄標(biāo)題、導(dǎo)航欄顏色、導(dǎo)航欄按鈕等。這些配置文件允許開發(fā)者為每個頁面定制不同的外觀和行為。
5、wxml(weixin?markup?language);wxml?是微信小程序的超文本標(biāo)記語言,用于定義頁面的結(jié)構(gòu),文件后綴為.wxml。它類似于?html,但專為小程序設(shè)計,包含了一些小程序特有的標(biāo)簽如swiper、icon。wxml?允許開發(fā)者定義頁面的布局和元素,如文本、圖片、列表等。
6、wxss(weixin?style?sheets);wxss?是微信小程序的樣式表語言,類似于?css,用于描述頁面的樣式,文件后綴為.wxss。它允許開發(fā)者設(shè)置元素的顏色、大小、布局等樣式屬性。wxss?還支持一些小程序特有的樣式屬性,以更好地適應(yīng)小程序的布局需求。
7、javascript;javascript是小程序的主要編程語言,用于處理用戶交互、數(shù)據(jù)請求、頁面邏輯等,文件后綴為.js。小程序的javascript?代碼與網(wǎng)頁的?javascript?代碼類似,但有一些小程序特有的?api,如頁面導(dǎo)航、數(shù)據(jù)綁定、網(wǎng)絡(luò)請求等。此外,微信小程序頁面對應(yīng)的本地數(shù)據(jù)存儲在appdata對象中。開發(fā)者可以使用小程序提供的?api?來存儲和讀取本地數(shù)據(jù),這有助于提高小程序的響應(yīng)速度和用戶體驗(yàn)。
8、wxs(weixin?script);wxs?是微信小程序的一套腳本語言,它編寫在.wxml文件中,運(yùn)行在小程序的視圖層,用于處理視圖層的邏輯。wxs?不能直接操作數(shù)據(jù)層,但可以操作視圖層的數(shù)據(jù)。它允許開發(fā)者在不接觸?javascript?的情況下,實(shí)現(xiàn)一些復(fù)雜的視圖操作和數(shù)據(jù)處理。
9、圖片、媒體靜態(tài)文件;小程序中使用的圖片、音頻、視頻等靜態(tài)資源文件,通常放在項(xiàng)目的特定目錄下。這些資源文件用于增強(qiáng)小程序的視覺效果和用戶體驗(yàn)。
10、自定義組件;小程序支持自定義組件,這允許開發(fā)者創(chuàng)建可復(fù)用的代碼模塊。自定義組件可以包含?wxml、wxss、javascript?和?json?配置文件,使得開發(fā)者可以封裝復(fù)雜的界面和邏輯,然后在不同的頁面中重復(fù)使用。
11、云開發(fā);微信小程序提供了云開發(fā)功能,這是一個后端服務(wù)平臺,允許開發(fā)者在微信的云環(huán)境中存儲數(shù)據(jù)、運(yùn)行代碼等。這使得開發(fā)者可以更容易地實(shí)現(xiàn)數(shù)據(jù)存儲、用戶認(rèn)證、服務(wù)器端邏輯等功能。
12、后端服務(wù);盡管微信小程序主要在客戶端運(yùn)行,但很多功能需要后端服務(wù)支持,如數(shù)據(jù)庫操作、用戶認(rèn)證、支付處理等。開發(fā)者可以自己搭建后端服務(wù),或者使用第三方服務(wù)。
13、sitemap.json;這是一個配置文件,用于定義小程序的頁面收錄情況,影響搜索結(jié)果。通過這個文件,開發(fā)者可以控制小程序的頁面是否被搜索引擎收錄,以及如何被收錄。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提出了一種基于簡單的用戶需求的形式化定制而自動生成微信小程序源代碼的高性價比的方法、設(shè)備及存儲介質(zhì),即一種易于學(xué)習(xí)和編寫的基于xml語法的語言(weixin?customization?language,wxcl)定制微信小程序的樣式和功能,并通過本發(fā)明所提出技術(shù)手段翻譯為可部署的微信小程序源代碼的實(shí)現(xiàn)方法。
2、為實(shí)現(xiàn)上述目的,本發(fā)明采用了以下技術(shù)方案:
3、一種基于wxcl的微信小程序源代碼生成方法,基于微信小程序平臺,設(shè)置中間代碼wxcl語言,包括設(shè)置詞法語法定義式、詞法分析器、語法分析器以及wxcl語言到目標(biāo)代碼的翻譯程序,用于最終微信小程序代碼的生成;
4、還包括了后端代碼翻譯系統(tǒng),將wxcl語言的翻譯軟件部署在服務(wù)器后臺實(shí)時將wxcl語言翻譯成微信小程序源碼發(fā)送給用戶。
5、進(jìn)一步地,wxcl語言規(guī)范解釋如下:
6、''中的內(nèi)容為終結(jié)符號,分析器讀取到終結(jié)符號即可進(jìn)行翻譯;
7、=>后的內(nèi)容為gui,gui對應(yīng)wxss樣式表內(nèi)容,該內(nèi)容用“”包含;
8、'|'左右兩側(cè)的符號為并列關(guān)系,可同時出現(xiàn);
9、'xxxxxx'和'string'表示路徑;
10、()*?表示括號里的內(nèi)容出現(xiàn)的次數(shù)大于等于0;
11、()+表示括號里的內(nèi)容出現(xiàn)的次數(shù)大于等于1;
12、()?表示括號里的內(nèi)容出現(xiàn)的次數(shù)為0或1;
13、';'在“”內(nèi)用于分隔樣式style,用于其他地方則是分隔組件。
14、進(jìn)一步地,中間代碼wxcl的關(guān)鍵詞含義如下:
15、project是整個項(xiàng)目的總稱;
16、content用來描述頁面內(nèi)容;
17、pagelist用來定義頁面的序號;
18、describe用于概括頁面內(nèi)容;
19、component包含了微信小程序所需的各個組件;
20、swiper用于存放圖片進(jìn)行輪播;
21、nevigator用于進(jìn)行頁面導(dǎo)航跳轉(zhuǎn);
22、image是圖片組件;
23、list是列表組件;
24、input是輸入框組件;
25、function表示按鈕功能;
26、pagelocation表示頁面路徑。
27、進(jìn)一步地,包括以下步驟,
28、s1、先明確微信小程序最終的樣式、頁面和相應(yīng)功能;
29、s2、修改wxcl語言示例文檔,使得最終wxcl文檔能夠準(zhǔn)確描述最終微信小程序的樣式、頁面和相應(yīng)功能;
30、s3、檢查生成的wxcl代碼的正確性,并提交wxcl代碼給wxcl語言詞法分析器;
31、s4、wxcl語言的詞法分析器檢查輸入的wxcl代碼是否存在詞法錯誤;若存在詞法錯誤,將返回步驟s2,否則將詞法分析后的token流輸入到s5步驟,這里token為wxcl語言代碼中的有意義的單詞單位;
32、s5、wxcl語言的語法分析器對輸入的token流進(jìn)行語法分析檢查;若存在語法錯誤,將返回s2步驟供使用者進(jìn)一步修改,否則將生成wxcl代碼對應(yīng)的語法樹;
33、s6、wxcl語言的遍歷器對wxcl代碼的語法樹進(jìn)行遍歷,并在每個節(jié)點(diǎn)調(diào)用wxcl語言的監(jiān)聽器進(jìn)行翻譯,最終翻譯得到對應(yīng)的微信小程序源代碼。
34、進(jìn)一步地,wxcl語言的語法分析器工作的具體步驟為:首先讀取token流,根據(jù)wxcl語法定義對其中的token符號進(jìn)行自頂向下的語法分析,驗(yàn)證語法正確性的同時構(gòu)建一種叫語法樹的數(shù)據(jù)結(jié)構(gòu),其中的每個子樹的根節(jié)點(diǎn)都使用一個抽象的名字給所包含的元素命名,即子樹的根節(jié)點(diǎn)對應(yīng)了語法規(guī)則的名字,樹的葉子節(jié)點(diǎn)是語句中的符號或者詞法符號。
35、進(jìn)一步地,步驟s6中的遍歷步驟包括,
36、遍歷器對語法樹進(jìn)行先序遍歷,在進(jìn)入和退出每個節(jié)點(diǎn)時分別調(diào)用監(jiān)聽器中對應(yīng)節(jié)點(diǎn)的進(jìn)入回調(diào)函數(shù)和退出回調(diào)函數(shù);每個節(jié)點(diǎn)的進(jìn)入回調(diào)函數(shù)的調(diào)用順序即是先序遍歷,退出回調(diào)函數(shù)即是后序遍歷;
37、監(jiān)聽器具體為回調(diào)函數(shù)的集合,在語法樹遍歷翻譯時被遍歷器所調(diào)用,將wxcl語言和微信小程序源代碼進(jìn)行對應(yīng),運(yùn)用判斷循環(huán)的方式編寫每個節(jié)點(diǎn)的回調(diào)函數(shù),使其可以準(zhǔn)確地從wxcl翻譯到微信小程序源代碼。
38、進(jìn)一步地,步驟s6之后還包括:
39、s7、得到微信小程序的源代碼后可在微信開發(fā)者工具導(dǎo)入得到的項(xiàng)目并實(shí)時預(yù)覽最終效果,可直接修改源代碼,然后將代碼上傳到微信公眾平臺,通過提交備案、備案審核、代碼審核后,在微信公眾平臺上發(fā)布小程序。
40、又一方面,本發(fā)明還公開一種計算機(jī)可讀存儲介質(zhì),存儲有計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時,使得所述處理器執(zhí)行如上述方法的步驟。
41、再一方面,本發(fā)明還公開一種計算機(jī)設(shè)備,包括存儲器和處理器,所述存儲器存儲有計算機(jī)程序,所述計算機(jī)程序被所述處理器執(zhí)行時,使得所述處理器執(zhí)行如上方法的步驟。
42、由上述技術(shù)方案可知,本發(fā)明的一種基于wxcl的微信小程序源代碼生成方法采用可以描述微信小程序結(jié)構(gòu)的中間代碼wxcl,包括了該語言的詞法語法定義式、詞法分析器、語法分析器以及wxcl到目標(biāo)代碼的翻譯程序,可利于最終微信小程序代碼的生成;一套bs系統(tǒng),接入了預(yù)訓(xùn)練的大模型用于生成wxcl代碼,實(shí)現(xiàn)了通過人機(jī)交互得到用戶的理想方案,還包括了后端代碼翻譯系統(tǒng),將wxcl的翻譯軟件部署在服務(wù)器后臺實(shí)時將wxcl翻譯成微信小程序源碼發(fā)送給用戶。其高性價比體現(xiàn)在用戶的學(xué)習(xí)成本極低、時間極短、效果較好,從而解決微信小程序開發(fā)對普通用戶存在的結(jié)構(gòu)復(fù)雜、學(xué)習(xí)門檻高、時間成本高的問題。
43、本發(fā)明的有益效果包括:
44、1、由于wxcl語言的代碼具有對微信小程序代碼的高度概括性,開發(fā)者可以通過學(xué)習(xí)wxcl文檔進(jìn)行更加快速的微信小程序的構(gòu)建和開發(fā),大大降低了編寫小程序的門檻。
45、2、本發(fā)明經(jīng)過了針對性的詞法語法分析器的構(gòu)建和優(yōu)化,更加準(zhǔn)確地進(jìn)行了wxcl語言到微信小程序源代碼的翻譯,相較于直接利用大模型生成一個微信小程序的源碼更不易出錯。
46、3、本發(fā)明利用前端人機(jī)交互功能,進(jìn)行對wxcl語言的針對性訓(xùn)練,可以使大模型更精確獲得用戶需求從而生成理想的代碼,并且可以直接修改wxcl語言去改動最終生成樣式,使開發(fā)過程更為直觀。