STEP GUIDE · Checkpoint 2

這個步驟要做什麼、改哪裡、怎麼看結果

這一步聚焦 TASK-02;下方只比較「Checkpoint 1 → Checkpoint 2」的真實異動。

01

三項 Task 進度

TASK-01已完成

預檢 Production URL 格式

預計修改:script.js

完成後:拒絕 example.com、localhost 與非 HTTPS 網址

TASK-02本步驟處理

預檢 commit、問題描述與手機勾選

預計修改:script.js

完成後:拒絕空白或過短 commit,並列出待修格式

TASK-03稍後處理

安全產生期末展示草稿

預計修改:script.js

完成後:以 textContent 與 createElement 產生草稿,明列仍待人工驗收

02

HTML、CSS、JavaScript 與文件實際異動

展開檔案卡查看必要差異;只有程式碼區可以橫向捲動。

HTML本步驟無異動

檔案:index.html

修改前

前一步與本步驟沒有實質差異。

修改後

本步驟不需修改此語言。
CSS本步驟無異動

檔案:style.css

修改前

前一步與本步驟沒有實質差異。

修改後

本步驟不需修改此語言。
JavaScript本步驟有異動

檔案:script.js

修改前

  return { evidence: null, errors: ["尚未完成其餘欄位預檢"] };
  const urlValue = document.querySelector("#url").value.trim();
  status.textContent = isProductionUrl(urlValue)
    ? "URL 格式預檢通過;仍需人工開啟確認"
    : "請輸入非 example.com、非 localhost 的 HTTPS Production URL";

修改後

const commitPattern = /^[0-9a-f]{7,40}$/i;
  const evidence = {
    url: document.querySelector("#url").value.trim(),
    commit: document.querySelector("#commit").value.trim(),
    problem: document.querySelector("#problem").value.trim(),
    mobile: document.querySelector("#mobile").checked,
  };
  const errors = [];
  if (!isProductionUrl(evidence.url)) errors.push("Production URL 格式不合格");
  if (!commitPattern.test(evidence.commit)) errors.push("commit 必須是 7–40 位十六進位 SHA");
  if (evidence.problem.length < 20) errors.push("問題描述至少 20 個字元");
  if (!evidence.mobile) errors.push("尚未勾選手機操作自我確認");
  return { evidence, errors };
  const { errors } = collectEvidence();
  status.textContent = errors.length
    ? errors.join(";")
    : "格式預檢通過;請交由教師或同儕開啟 URL、比對 commit 並操作手機版";
README/其他文件本練習未使用

檔案:README.md

修改前

本練習沒有這個檔案。

修改後

本步驟不需修改此語言。
03

怎麼看到結果

  1. 準備

    先準備真實 Netlify Production URL、commit 與手機檢查證據;沒有部署證據時只能做格式預檢。

  2. 操作

    填入 commit 與問題描述並切換手機勾選,確認格式不足時列出待修項。

  3. 預期

    拒絕空白或過短 commit,並列出待修格式

Checkpoint 2 TASK-02

預檢 commit、問題描述與手機勾選

完成後可見:拒絕空白或過短 commit,並列出待修格式

只做格式預檢,仍需人工驗收

Production 證據格式預檢

尚未執行格式預檢