← ePortfolio Prompt Builder

From prompt to published

You have an HTML file. This is everything that comes after: saving it, changing it, checking it, and getting it in front of other people without paying for anything.

01What you should have

One file, and nothing else

Everything below assumes you have already given the prompt to an AI and have its answer. That answer arrives in one of two shapes:

  • A file you downloaded — usually index.html, sometimes a name the AI chose for itself.
  • A block of code you copied out of the chat window.

Either way, the result is a single HTML file, and there is nothing else to it. No pictures, no web fonts, no links out to anywhere. Everything the page needs is inside the one file. That is deliberate: it means you will never have to upload a folder, and you will never discover at the last minute that something went missing.

Keep the prompt as well. Save the prompt you generated as prompt.txt, in the same folder as the page. It is your source. If you later want a different layout, or different wording, you edit the prompt and run it again — you do not retype twenty minutes of writing.

If you do not have the file yet: go back to the builder, fill in the form, copy the prompt, and paste it into whichever AI you use.

02Save it, then open it

Two minutes now saves an hour later

  1. Rename the file index.html. Every service that can put your page online looks for a file with exactly that name as the front page. Renaming it now, while you still remember where it is, removes a confusing step later.
  2. Give it a folder of its own — eporfolio/ will do — and put prompt.txt in there with it.
  3. Open it: double-click. It opens in your browser. It needs no internet connection to work.
  4. Open it on a phone as well. Send it to yourself, or use the phone once the page is online. Most of the people you share this with will read it on a phone, not a laptop.
Never open the file in Word, WordPad or Google Docs. They will rewrite the code and break the layout, often in ways you cannot see until it is published. A plain text editor is the only thing that should ever touch it: VS Code, Notepad++, Sublime Text, or TextEdit on a Mac in plain-text mode.

If the AI gave you code rather than a file: paste it into a plain text editor and save as index.html, with the encoding set to UTF-8. If the editor offers ANSI, Big5 or GB2312 instead, say no — that is how Chinese text turns into garbage.

03Changing it later

Two ways to change it

Rewrite the prompt — for anything structural

Open prompt.txt and edit your own words; they are only text. Run it through the AI again and you get a clean new page with no hand-editing scars. Use this route for adding an experience, changing the design, or changing the language of the page. It is almost always the better route, because the AI rebuilds the layout around your new content instead of you nudging it by hand.

Edit the HTML — for a typo or a wrong date

  1. Open the file in a plain text editor.
  2. Press Ctrl+F (⌘F on a Mac) and search for the sentence you want. It will be sitting between two tags.
  3. Change only what is between > and <. Never touch anything between < and > — that part is instruction, not content.
  4. Save, then reload the page in your browser.
Save a copy before you start. Keep the working version as index-2026-10.html — the date in the name is enough — and edit a copy. If you break something, you have lost nothing, and re-running the prompt is still open to you.
04Before you share it

Read it once more, then check these

  • Read it from beginning to end, out loud if you can. Every sentence with a number or a date in it: is that really yours? AI helpfully rounds things up. A school-level award becomes a national one; three months becomes half a year. Correct it, or delete it.
  • Delete anything you cannot evidence. That is the whole point of the Claim / Proof / Point structure — a claim with nothing behind it is exactly what a reader should not find on the page.
  • Other people. Full names of classmates, a teacher's name, a photograph with faces in it, someone else's work. The page is public, search engines will find it, and deleting it afterwards does not always undo that.
  • Your own details. Student number, phone number, address, personal email. None of these belong on a page anyone can read.
  • Contact. If you left the contact field blank, there is no way for anyone to reach you. If you want to be reachable, use an address you are happy to have in public.
  • Open it on a phone.
05Sending it to one person

You do not need a website for this

Send the file

Email it, or send it through WhatsApp or Telegram — choose Document, not Photo, or it will be compressed into something unusable. AirDrop works. So does your own cloud drive, shared as a file rather than as a link to a preview. Nothing needs to be hosted, and it opens without an internet connection.

Or send a PDF, which is usually better

  1. Open the page in your browser.
  2. Press Ctrl+P (⌘P), and set the destination to Save as PDF.
  3. Open More settings and tick Background graphics. Without it, every colour on your page disappears and you are left with a plain text document.
  4. Save it, then open the PDF once and look at where the page breaks fall. A heading stranded alone at the bottom of a page is easy to fix and embarrassing to leave in.
Why a PDF wins for applications Almost every application form accepts a PDF and nothing else. A PDF also looks identical on a phone and on a computer, which is more than can be said for an HTML file — on a phone, an .html attachment is awkward to open. iPhone needs you to save it to Files first; Android may need a file manager. Nobody has ever had trouble opening a PDF.
06Putting it online

Three routes to a link

A link is what makes the page useful to more than one person. You do not need a server, a domain name, or any money — you need a free account and about ten minutes. All three routes below want the same thing: a folder containing a file named exactly index.html.

Route A — Netlify Drop: the fastest

  1. Make a folder with your index.html inside it.
  2. Sign in, or sign up, at app.netlify.com. It is free and asks for no card. You can drop a folder without an account, but the site stays password-protected until you claim it — so if you intend to share the link, sign in first.
  3. Go to app.netlify.com/drop and drag the whole folder onto the page.
  4. You get a link ending in netlify.app. Open it and check that it works.
  5. If you want a nicer address, rename the site in its settings — yourname-eporfolio.netlify.app is usually available.
  6. To update: drag the new version onto the same project. The link never changes.

Route B — GitHub Pages: the best link, and the longest-lasting

  1. Create a free GitHub account.
  2. New repository. Name it eporfolio — or, for the shortest possible address, name it yourusername.github.io. Set it to Public. Create.
  3. Add file → Upload files. Drag in index.html. Commit changes.
  4. Settings → Pages. Under Source, choose Deploy from a branch, branch main, folder / (root). Save.
  5. Wait a minute or two. Your link is https://yourusername.github.io/eporfolio/.
  6. To update: upload the new file over the old one. The address stays the same.
Why this one is worth the extra five minutes The address has your name in it, it will still work in three years, and a github.io link on a CV attracts no comment at all — which is the highest compliment an address can be paid. It is also the route where the file is unmistakably yours and stays yours.

Route C — Cloudflare Pages: the alternative to A

Workers & Pages → Create → Pages → Upload assets. Name the project, drag in the folder or a ZIP of it, and deploy. Your link ends in pages.dev. Vercel works the same way at vercel.com/drop. Use one of these if Netlify is slow, blocked where you are, or if you simply prefer the look of the address. The free tiers of all of them allow far more traffic than one page will ever see.

ServiceFree accountLink looks likeUpdatingBest for
Netlify DropYesname.netlify.appdrag againa link in the next ten minutes
GitHub PagesYesusername.github.io/nameupload againa CV, a permanent address
Cloudflare PagesYesname.pages.devdrag againwhen Netlify is not available
Google SitesYes (Google)sites.google.com/…edit inside Google Sitesa front page that gathers things
07Google Sites

What it can do, and what it cannot

Google Sites is a page builder, not a place to keep files. It will not accept your HTML file. That is the first thing to understand, because the other reading of it costs an hour.

What almost everyone tries first

Insert → Embed → Embed code, and paste the whole HTML in. It half-works, and half-working is worse than not working:

  • Your page is placed inside a frame on a Google-owned domain. It is not published as itself.
  • Google silently removes tags it does not care for.
  • Every link inside your page opens in a new tab, and you cannot change that.
  • The frame's height is set by hand, in pixels. Too small and your page is cut off; too large and there is a band of empty space beneath it.
  • The result reads as a picture of my work inside a Google page, not as a website.

What actually works

  1. Publish the file using one of the three routes above. You now have a URL.
  2. In Google Sites: Insert → Embed → By URL, and paste that URL. Or simpler still, add a button that says View my ePortfolio and link it. A button never breaks.
  3. Use Google Sites for what it is good at: a front page that gathers your ePortfolio page, your CV, a contact form and a few photographs in one place.
School Google accounts If you are signed in with a school account, check the sharing settings before you publish — some institutions restrict publishing outside the school domain, and you will not find that out until someone tells you the link does not open.
08After it is live

Keeping it alive

Keep one folder that is the truth. eporfolio/index.html, prompt.txt, and any notes you made. Back it up — your own cloud drive, or email it to yourself. The whole folder is a few hundred kilobytes.

Updating. Upload the new version and the link stays the same. If you still see the old page, your browser is showing you a cached copy: hard-refresh with Ctrl+Shift+R (⌘⇧R on a Mac). On GitHub Pages, allow a minute or two before you conclude anything is wrong.

More than one page. You can publish several pages from the same folder: index.html as a front page, then one file per experience, such as exchange.html and internship.html. Link between them with the file name alone — href="exchange.html" — and keep the capital letters identical, because these servers treat Exchange.html and exchange.html as two different files. A mismatched capital letter is the most common reason a link returns a 404.

Your own domain — optional, and not now. You can buy a domain for roughly HK$100 a year and point it at any of these hosts. Nothing above requires it, and a github.io or netlify.app address is completely normal on an application. Do this later, or never.

Taking it down. All three services let you delete the site. If you later decide the page should not be public, delete it — do not simply stop looking at it.

09Problems, and things not to do

When something goes wrong

Chinese text has turned into garbage.
The file was saved in the wrong encoding. Open it in a plain text editor, choose Save As, and set the encoding to UTF-8. Check as well that <meta charset="utf-8"> is the first line inside <head>. This nearly always happens after the file has passed through Word, an old copy of Notepad, or a plain-text field on a phone.
The link gives a 404.
The file is not named exactly index.html — on GitHub, Index.html is not the same thing — or it is sitting inside a subfolder. If you uploaded a folder called eporfolio into a project called site, the address is site.netlify.app/eporfolio/.
GitHub Pages shows a README instead of my page.
Settings → Pages: check the branch and the folder. The file must be in the folder you selected, normally / (root).
I changed it, but the browser still shows the old version.
Cache. Hard-refresh: Ctrl+Shift+R, or ⌘⇧R on a Mac. On GitHub Pages, wait two minutes first.
The layout fell apart after I edited it.
You opened it in Word or Google Docs, which rewrote the file. Go back to your saved copy and edit in a plain text editor.
An image will not load.
There should be no images at all. The prompt forbids them and the page is designed to work offline. The AI added something it was told not to, so regenerate the page rather than trying to repair it.
The page contains numbers or awards I never wrote.
The AI invented them. Delete them, or re-run the prompt. A page with your name on it should never carry a claim you cannot evidence.
The AI's answer stopped halfway.
It hit its length limit. Reply “continue from the last heading”, or ask for the page in two parts.

Things not to do

  • Do not put the file in Google Drive and share the link as though it were a web page. Drive will not display it — your reader gets a page telling them there is no preview, and a download button they will not press.
  • Do not open the .html file in Word, WordPad or Google Docs. Ever.
  • Do not paste the whole HTML into a chat message. It will be truncated and reformatted into nonsense. Send the file, or send the link.
  • Do not paste the whole HTML into Google Sites' “Embed code” box and consider it published.
  • Do not publish anything containing another person's name, face or personal details without their agreement.
  • Do not publish a page you have not read from beginning to end yourself.

由 prompt 到分享

你手上已經有一個 HTML 檔案。這頁講的是之後的所有事:存檔、修改、檢查,以及怎樣不花一蚊,把頁面交到別人手上。

01你手上應該有甚麼

只有一個檔案

以下所有步驟,都假設你已經把那段 prompt 交給 AI,並且拿到它的回覆。回覆通常是兩種樣子之一:

  • 一個下載回來的檔案——多數叫 index.html,有時是 AI 自己改的名字。
  • 一段你從對話框複製下來的程式碼。

無論是哪一種,結果都是一個單一的 HTML 檔案,而且真的只有這一個。裏面沒有相片、沒有網路字體、沒有連去其他地方。頁面需要的一切都在這個檔案之內。這是刻意的設計:你永遠不必上載一整個資料夾,也不會在最後關頭才發現漏了一個檔案。

那段 prompt 也留着。 把生成的 prompt 存成 prompt.txt,放在與網頁同一個資料夾。它是你的來源檔——日後想換版面、換說法,你改 prompt 再跑一次就好,不必把二十分鐘寫過的東西重新打一次。

如果還未有檔案:回到 builder,填好表格,複製那段 prompt,貼進你慣用的 AI。

02存檔與開啟

現在花兩分鐘,之後省一個鐘

  1. 把檔名改成 index.html。所有能幫你把網頁放上網的服務,都會把這個檔名當作首頁。趁你還記得檔案在哪裏的時候先改好,之後就少一個令人困惑的步驟。
  2. 給它一個自己的資料夾——叫 eporfolio/ 就好——把 prompt.txt 也放進去。
  3. 開啟:點兩下。它會在瀏覽器打開,而且不需要網路。
  4. 用手機也開一次。把檔案傳給自己,或者放上網之後用手機開那條連結。收到你這個頁面的人,大部分都是用手機看,不是用電腦。
千萬不要用 Word、WordPad 或 Google Docs 開這個檔案。 它們會改寫程式碼,把版面弄壞——而且通常是發布之後你才看得出問題。只有純文字編輯器可以碰它:VS Code、Notepad++、Sublime Text,Mac 上用 TextEdit 並選「純文字」模式。

如果 AI 給你的是程式碼而不是檔案:貼進純文字編輯器,另存為 index.html,編碼選 UTF-8。如果編輯器問你要不要用 ANSI、Big5 或 GB2312,一律不要——中文就是這樣變成亂碼的。

03日後修改

想改的時候,有兩條路

一、重新生成——適合改結構

打開 prompt.txt,改裏面的文字,那些本來就是你寫的字。再交給 AI 跑一次,你會拿到一個乾淨的新頁面,沒有手改的痕跡。要加一段經歷、要換設計、要換頁面語言,都走這條路。它幾乎永遠是較好的一條,因為是 AI 重新按你的新內容編排版面,而不是你逐處用手去推。

二、直接改 HTML——適合改一個錯字、一個日期

  1. 用純文字編輯器開檔案。
  2. 按 Ctrl+F(Mac:⌘F),搜尋你要改的那句話。它會夾在兩個標籤之間。
  3. 只改 > 與 < 之間的文字。< 與 > 之間的東西,一個字都不要碰——那部分是指令,不是內容。
  4. 儲存,回到瀏覽器重新載入。
改之前先複製一份。 把現行的版本另存為 index-2026-10.html——檔名帶上日期就夠了——然後改副本。改壞了不會失去任何東西,而重新生成這條後路也一直在。
04分享之前的檢查

再讀一次,然後逐項核對

  • 由頭到尾讀一次,可以的話讀出聲。每一句有數字或日期的句子,都問一次:那真的是我的嗎?AI 很樂意替你「升級」——校內獎項變成全國獎項,三個月變成半年。改掉,或者刪掉。
  • 不能拿出證據的,刪。Claim/Proof/Point 這個結構的意義正在這裏——一句沒有東西支撐的宣稱,正是讀者最不應該在頁面上看到的。
  • 其他人。同學的全名、老師的名字、有樣貌的相片、別人的作品。這個頁面是公開的,搜尋引擎會找到它,而日後刪掉也未必真的可以當作沒發生過。
  • 你自己的資料。學號、電話、地址、私人電郵。這些都不應該出現在任何人都看得到的頁面上。
  • 聯絡方式。如果你在表格裏留空了,頁面就沒有任何方法讓人聯絡你。想讓人找到你,就放一個你不介意公開的電郵地址。
  • 用手機開一次。
05分享給一個人

這件事不需要一個網站

直接把檔案傳出去

用電郵附件,或者用 WhatsApp、Telegram 傳——記得選「文件」,選了「相片」會被壓縮到不能用。AirDrop 可以,用你自己的雲端空間以檔案方式分享也可以。這樣完全不必託管,對方沒有網路也開得到。

或者出 PDF,通常這樣更好

  1. 在瀏覽器打開頁面。
  2. 按 Ctrl+P(Mac:⌘P),目的地選 另存為 PDF。
  3. 打開 更多設定,勾選 背景圖形。不勾的話,頁面上所有顏色都會消失,出來只剩一份純文字文件。
  4. 存好之後自己開一次 PDF,看看分頁位置。標題孤零零留在頁底,很容易改,但留下來就很難看。
為甚麼交申請要用 PDF 幾乎所有申請表只收 PDF,這是第一個原因。第二個原因是 PDF 在手機和電腦上看起來一模一樣,而 HTML 做不到——手機開 .html 附件是有點麻煩的:iPhone 要先「儲存到檔案」,Android 可能要先用檔案管理員。而沒有人開 PDF 會遇到問題。
06放上網

拿到一條連結的三條路

有了連結,這個頁面才可以給多過一個人看。這件事不需要伺服器、不需要網域、不需要付錢——只需要一個免費帳戶和十分鐘。以下三條路都要求同一件事:一個資料夾,裏面有一個檔名準確是 index.html 的檔案。

路線 A——Netlify Drop:最快

  1. 開一個資料夾,把 index.html 放進去。
  2. 在 app.netlify.com 登入或註冊。免費,不需要信用卡。不登入也可以拖放,但網站會先鎖上密碼,要認領之後才可以公開——所以想分享連結的話,先登入。
  3. 去 app.netlify.com/drop,把整個資料夾拖到頁面上。
  4. 你會拿到一條以 netlify.app 結尾的網址。開來檢查一下。
  5. 想網址好看一點,可以在網站設定裏改 site name,通常 yourname-eporfolio.netlify.app 都仍然可用。
  6. 要更新:把新版本再拖到同一個項目上。網址永遠不變。

路線 B——GitHub Pages:網址最好,也最長久

  1. 開一個免費 GitHub 帳戶。
  2. New repository。名稱用 eporfolio;想網址最短,就叫 yourusername.github.io。設為 Public,然後 Create。
  3. Add file → Upload files,把 index.html 拖進去,Commit changes。
  4. Settings → Pages。Source 選 Deploy from a branch,branch 選 main,資料夾選 / (root),然後 Save。
  5. 等一兩分鐘。你的網址是 https://yourusername.github.io/eporfolio/。
  6. 要更新:把新檔案上載覆蓋舊的。網址一樣。
為甚麼值得多花那五分鐘 網址裏有你的名字,三年後還在,而且 github.io 的連結放在 CV 上,不會有人多看一眼——這對一個網址來說是最高評價。這也是唯一一條路,檔案明顯屬於你,而且一直屬於你。

路線 C——Cloudflare Pages:A 的替代方案

Workers & Pages → Create → Pages → Upload assets。改個項目名稱,把資料夾或它的 ZIP 拖進去,Deploy。網址以 pages.dev 結尾。Vercel 的做法一樣,在 vercel.com/drop。如果 Netlify 慢、在你所在的地方被擋,或者你純粹喜歡另一個網址的樣子,就換這個。三者的免費額度都遠遠超過一個頁面會用到的流量。

服務免費帳戶網址的樣子更新方法最適合
Netlify Drop要name.netlify.app再拖一次十分鐘內要拿到一條連結
GitHub Pages要username.github.io/name再上載一次放 CV、要長期使用
Cloudflare Pages要name.pages.dev再拖一次Netlify 用不到的時候
Google Sites要(Google)sites.google.com/…在 Google Sites 內改做一個門面把東西集合起來
07Google Sites

它做得到甚麼,做不到甚麼

Google Sites 是一個網頁編輯器,不是存放檔案的地方。它不會接受你的 HTML 檔案——這是最先要弄清楚的一點,因為另一種理解會花掉你一個鐘。

最多人第一步會做的事

「插入」→「嵌入」→「嵌入程式碼」,把整份 HTML 貼進去。這樣做有一半行得通,而「一半行得通」比完全不行更麻煩:

  • 你的頁面會被放進一個屬於 Google 網域的框裏,不是以它自己的身分發布。
  • Google 會靜靜地移除它不喜歡的標籤。
  • 頁面內所有連結一律另開新視窗,你改不了。
  • 那個框的高度要你手動用像素設定。設得太矮,頁面被切斷;設得太高,下面留一大片空白。
  • 結果看起來像我的作品的一張截圖放在 Google 頁面裏,而不是一個網站。

真正可行的做法

  1. 先用上面三條路的其中一條,把檔案放上網。你手上就有一條網址。
  2. 在 Google Sites 選「插入」→「嵌入」→ 「根據網址」,貼上那條網址。或者更簡單——加一個寫着 View my ePortfolio 的按鈕連過去。按鈕永遠不會壞。
  3. Google Sites 用來做它擅長的事:一個門面頁,把你的 ePortfolio、CV、聯絡表格、幾張相片集合在同一個地方。
學校的 Google 帳戶 如果你用的是學校帳戶,發布之前先看看共享設定——有些院校會限制對外發布,而這件事你不會知道,直到有人告訴你那條連結開不到。
08上線之後

讓它一直活着

保留一個「真身」資料夾。eporfolio/index.html、prompt.txt,加上你寫過的筆記。備份一份——放進你自己的雲端,或者寄給自己。整個資料夾只有幾百 KB。

更新。上載新版本,連結不變。如果仍然看到舊版本,是瀏覽器的快取:按 Ctrl+Shift+R(Mac:⌘⇧R)強制重新載入。GitHub Pages 的話,先等一兩分鐘再判斷有沒有出錯。

多過一頁。同一個資料夾可以發布幾頁:index.html 做首頁,然後每段經歷一個檔案,例如 exchange.html、internship.html。互相連結時只寫檔名——href="exchange.html"——而且要大小寫完全一致,因為這些伺服器會把 Exchange.html 與 exchange.html 當成兩個不同的檔案。一條連結 404,最常見的原因就是大小寫不同。

自己的網域——可選,而且現在不必想。你可以用大約每年 HK$100 買一個網域,指向上面任何一個服務。上面所有做法都不需要它,而 github.io 或 netlify.app 的網址放在申請表上,完全正常。這件事留到日後,或者永遠不做。

想收回。三個服務都可以刪除網站。日後如果你覺得這一頁不應該公開,就刪掉它——不要只是不再看它。

09出問題、不要做的事

出問題的時候

中文變成亂碼。
檔案的編碼不對。用純文字編輯器開,另存新檔時編碼選 UTF-8。同時檢查 <meta charset="utf-8"> 是不是 <head> 裏的第一行。這種情況幾乎都是在檔案經過 Word、舊版記事本,或者手機上的純文字欄位之後出現的。
連結 404。
檔名不是準確的 index.html——在 GitHub 上,Index.html 並不等於 index.html——或者檔案藏在子資料夾裏。如果你為一個叫 site 的項目上載了一個叫 eporfolio 的資料夾,網址就是 site.netlify.app/eporfolio/。
GitHub Pages 顯示 README,不是我的頁面。
去 Settings → Pages 檢查 branch 和資料夾。檔案必須在你選的那個資料夾裏,通常是 / (root)。
我改了,但瀏覽器仍然顯示舊版本。
快取。強制重新載入:Ctrl+Shift+R,Mac 是 ⌘⇧R。GitHub Pages 要先等兩分鐘。
我改完之後,版面散了。
你用 Word 或 Google Docs 開過它,它們把整個檔案重寫了。用回你儲存的那一份副本,改用純文字編輯器。
有一張圖片顯示不到。
本來就不應該有任何圖片。prompt 明文禁止,而且整個頁面設計成離線可用。是 AI 加了不該加的東西——重新生成,不要嘗試修補。
頁面出現了不是我寫的數字或獎項。
那是 AI 編出來的。刪掉,或者重新生成。掛着你名字的頁面,不應該留下任何你證明不了的宣稱。
AI 寫到一半就停了。
它撞到長度上限。回它一句「由上一個標題繼續」,或者叫它分兩部分輸出。

不要做的事

  • 不要把檔案放進 Google Drive,然後把那條連結當成網頁分享。Drive 不會顯示它——對方只會看到「無法預覽」,加一個他不會按的下載按鈕。
  • 任何時候都不要用 Word、WordPad 或 Google Docs 開 .html 檔案。
  • 不要把整份 HTML 貼進聊天訊息。它會被截斷、被重新排版,變成一堆沒有用的東西。傳檔案,或者傳連結。
  • 不要把整份 HTML 貼進 Google Sites 的「嵌入程式碼」,然後當作已經發布。
  • 未經同意,不要發布任何含有別人姓名、樣貌或個人資料的內容。
  • 不要發布一個你自己沒有由頭到尾讀過的頁面。