打造一款 刷Java 知識的小程序(二)


 

 

學習Java的神器已上線,面向廣大Java愛好者!

之前寫的一篇:打造一款 刷Java 知識的小程序(一)

一、第二版做了什么?

  • 第一版小程序只具有初級展示功能,知識點都是hardcode在代碼里面的。
  • 這一次進行了大升級,知識點從后端(小程序雲開發)獲取
  • 知識點都是用Markdown語言寫的,支持將Markdown內容無縫轉換成小程序頁面。

二、C端與后端的交互邏輯

mark

2.1、功能跳轉

  • 首頁點擊Java基礎圖標進入到Java基礎知識列表頁面
  • 列表頁點擊“查看”按鈕進入詳情頁面

2.2、准備工作

1.雲開發存儲上傳一個markdown文件

2.雲開發數據庫插入兩條記錄

2.2、代碼實現

  1. 調用 自己編寫的雲函數 getJavaQuestionList 獲取列表;
  2. 調用 自己編寫的雲函數 getJavaQuestionDetail 獲取詳情的 Markdown文件路徑;
  3. 調用 系統自帶的雲函數 downloadFile 下載 Markdown文件保存為臨時文件;
  4. 調用 小程序自帶的 saveFileSync 將臨時文件保存到本地;
  5. 調用 小程序自帶的 readFileSync 將本地文件讀入緩存(注意:開發者工具上不需要保存到本地也可以正常讀取);
  6. 使用 towxml 開源組件將緩存中markdown內容轉成小程序可以識別的元素
  7. 給 圖片元素添加預覽事件

三、我與Markdown大戰一天一晚

痛點:Markdown轉小程序頁面很難受,小程序頁面並不能識別Markdown標記。

方案一、用Typora工具將 Markdown文件復制為html內容直接粘貼到表字段里面

mark

遇到的問題,發現復制的HTML代碼都不包含樣式,而用小程序富文本組件后,在WXSS文件定義樣式對富文本里面的標簽元素是不生效的。於是只能自己加樣式,那就用正則匹配標簽來加style吧。寫着寫着發現好多style要加。比如h1,h2,image。最坑的是Markdown轉為html是code標簽,小程序不識別code標簽,所以將code標簽轉為div標簽,然后還得處理換行,而且針對代碼需要有不同的高亮顯示,這太麻煩了。但基本上已經不影響閱讀了。

mark

方案二、將Markdown文件復制為markdown格式內容直接粘貼到表字段里面

找到一個開源組件可以將markdown 標記轉為小程序元素,叫做wemark。

於是就把markdown 內容復制到數據庫中,但發現存到數據庫的是沒有換行的,所以讀取之后需要做換行處理,這里就又用到正則表達式了。處理完了也能正常顯示了,但圖片不能放大看,這個就比較難受了。

方案三、將Markdown文件存到某個地方,比如COS,阿里雲,七牛雲,自己搭建的服務器

這里是將文件上傳到小程序雲開發的存儲里面,而且小程序提供了對應的下載雲存儲文件的SDK,非常方便。

然后使用towxml開源組件將markdown轉為小程序元素,和wemark相比優勢如下:

1.支持自定義towxml組件哪些功能開放,比如轉換markdown的圖表、數學公式等

2.支持自定義towxml 支持哪些code格式高亮

3.支持綁定小程序元素事件(這個功能太棒了)

大戰一天一晚完美解決Markdown轉小程序的問題

4. 后續計划

貌似直接用小程序雲開發就夠用了,但雲開發的訪問次數,存儲空間有限制。另外直接操作雲開發控制台不方便,做個后台操作起來更方便、更安全。之前搭建的一個服務器因到期被回收了,又得重新搭一套了。另外會先在本地把后端服務和Portal先跑起來。

 

掃描二維碼關注

領取架構師資料

 

更多內容

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM