Portfolio Google Sheets deployment
The workbook uses the same A:U publication schema as IMSI Lab. Copy the entire
WEB_Publications!A:U range into this workbook’s WEB_Publications!A:U.
Upload and deploy
- Upload your private
Portfolio_Website_Content_Model.xlsxbackup to Google Drive. Keep the XLSX outside this public repository. - Open it with Google Sheets and confirm that
WEB_Publicationsis populated. - Open Extensions → Apps Script.
- Replace the editor contents with google-sheets-code.gs.
- For the first deployment, select Deploy → New deployment → Web app.
- Use Execute as: Me and Who has access: Anyone.
- After changing
Code.gs, select Deploy → Manage deployments → Edit, choose New version, and deploy it. Saving the editor alone does not update an existing/execdeployment. - Copy the URL ending in
/exec. - Set
portfolio_api_urlin_config.ymlto that URL.
Cell edits are served immediately. A new deployment is only needed when
Code.gs itself changes.
The publication check must report "sheet":"WEB_Publications" and
"ok":true:
.../exec?sheet=07_Publications&lang=all
Browser checks
.../exec?sheet=07_Publications&lang=en
.../exec?sheet=07_Publications&lang=ko
.../exec?sheet=07_Publications&lang=all
.../exec?sheet=08_Projects&lang=en
.../exec?sheet=08_Projects&lang=en&slug=3d-lldm
.../exec?sheet=09_Project_Content&lang=ko&project_id=PROJ_3DLLDM
.../exec?sheet=10_Credentials&lang=all
.../exec?sheet=Site_Config&lang=all
.../exec?sheet=06_CV_Content&lang=all
The API publishes khkim1729@gmail.com from Site_Config and publishes
credential_number/verification_id for the credentials table. Do not add a
phone-number column or any other private contact data to a public sheet.
Editing rules
- Publications: edit
WEB_Publications; keepPub_IDunique. - IMSI backup: paste the IMSI roster’s
WEB_Publications!A:UintoWEB_Publications!A:Uwithout changing the header row. - Personal-only papers: enter the exact token
PERSONALinRemarks. P1 keeps Kyeonghun Kim’s rows; P2 hides rows carrying this token. - Korean text: optional. Empty Korean values fall back to English.
- CV: edit
CV_Content; each row is one CV entry. Use line breaks indescription_en/description_koto create bullet points. The EN/KO switch redraws every CV section from these localized columns. - Projects: use public HTTPS URLs in
cover_image_url. - Project details: add ordered blocks in
Project_Content. - Visibility: set
Is_Visible/is_visibleto false to hide a row.
GitHub Pages also contains assets/data/portfolio-data.json. It is an offline
fallback used when Apps Script is unavailable; regenerate it with:
python3 scripts/build_content_model.py \
--imsi /path/to/latest-imsi-export.xlsx \
--credentials /path/to/KHKIM_Certifications_Licenses.xlsx \
--output ../Portfolio_Website_Content_Model.xlsx \
--json-output assets/data/portfolio-data.json
For the short Korean editing checklist, see
docs/GOOGLE_SHEETS_QUICK_EDIT_KO.txt.