iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
Modern Web

Ben 的學習網系列 第 6

第06天 - 科目與分類

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230920/20162141v44Xrrzlwe.jpg

系統功能

所有課程都使用讀取 file 的做法來設計。接下來的2章,將說明如何透過 file 的方法創造動態的課程,首先回顧 Ben 的學習網架構,
	(1) 側邊欄為科目,包含中文,英語,日語,韓語,英日韓,其他。
	(2) 科目包含課程分類,課程名稱,課程章節
以上可以看到動態的課程包含了 (1) 科目 (2) 分類 (3)課程 (4) 章節
其中第1項放在 index.html, 第2項放在 js/topic_lang.js
第3-4項都放在外部的階層及檔案,
本章要介紹的是第1-2項,下一章介紹第3-4項

第1項,你會看到如下,每一個科目都是以下的 Pattern
           <li class="side-nav__item">
              <a href="#" class="side-nav__link" id="chinese">
                中文
              </a>
            </li>

第2項則是要維護 js/topic_lang.hs,
	第1部份,是初始值設定
		let curWeb = "learn";
		let defaultCourse = "korean";
	第2部份,是各科目所包含的分類
let courseSubjList = [
    { course: "chinese", subj: "word,idiom,video,match" },
    {
        course: "english",
        subj: "speak,conversation,word,spell,listen,video,business,amusement,match",
    },
    { course: "japan", subj: "word,spell,video,amusement" },
    {
        course: "korean",
        subj: "word,spell,listen,writing,grammer,video,amusement",
    },
    { course: "cejk", subj: "combo,song" },
    { course: "computer", subj: "os,db,programming,data,devops,web" },
    { course: "learn", subj: "graph,calc,game,video,person,learn" },
];
	第3部份,是各科目的預設分類選項
	let defaultCourseSubjMap = new Map([
	    ["chinese", "word"],
	    ["english", "word"],
	    ["japan", "word"],
	    ["korean", "word"],
	    ["cejk", "combo"],
	    ["learn", "graph"],
	]);
	第4部份,是英文分類對應的中文
	let subjMap = new Map([
	    ["speak", "發音"],
	    ["conversation", "會話"],
	    ["combo", "綜合"],
		後略
	]);

技術手法

此處直接把不太會更動的大主題,放到了 javascript,不需要再讀檔,獲取較高的效能

語文學習06-超市與購物

1. 這香蕉怎麼賣?一串60元
2. 現在有什麼東西特價?衛生紙有特價
3. 垃圾袋在哪裡?在前面第三排右手邊
4. 〖單字〗蔬果
5. 〖單字〗生鮮食物
6. 〖單字〗生活用品
7. 〖單字〗量詞
8. 〖單字〗價錢

上一篇
第05天 - 特殊效果 CSS
下一篇
第07天 - 課程與章節
系列文
Ben 的學習網30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言