# 跟同學合作網頁架設 本來預計考完APCS跟期末考就能把自己的個人網站收掉,但半路突然殺出一個委託,來自曾經陪我征戰NPSC(雖然我們大燒雞)的好友Potato,請我來協助他個人網站的架設,畢竟他好像不是很會寫前端,所以找我幫忙 ## Git遠端操控 - pull 合作企劃的第一步就是要拿到他的code,所以我就去他的Github把網頁的repo給pull下來 ```git= git remote add origin https://github.com/killin0415/killin0415.github.io.git git pull origin gh-pages ``` 最好笑的是我一開始把origin打成orgin,所以怎麼樣都pull不下來,是後來用git remote -v才發現的,浪費了快一個小時 ## Ruby on rails環境架設 後來pull下來才發現他的打法跟我也有很大的出入,他是用有點像HTML + MarkDown + 一堆其他東西的打法,似乎是一個叫Skinny Bones的模板,所以不能用熟悉的Flask或Live Server執行,要用Ruby on rails,所以我只好轉向研究Ruby... 幸好不算太難,主要就幾個步驟 1. 去Ruby官網下載 2. 打開Command Prompt with Ruby並cd到該專案的資料夾 3. 因為資料夾裡已經有.jekyll-cache了,所以不用mkdir可直接執行 ```ruby= gem install bundler bundle exec jekyll build bundle exec jekyll serve ``` 這樣就能順利打開網頁,好欸 ## 解決Sass問題 Potato他的網站主要問題在側邊navbar,有時候圖片太扁 ![](https://i.imgur.com/gU1WUAM.png) 視窗寬度變小又是另一個方向的扁 ![](https://i.imgur.com/fRntz2R.png) 我就是來幫他解決這個問題的,幸好navbar甚麼的我最熟了(o゜▽゜)o☆ ```css= nav:not(#masthead + nav) { ul { margin: 0; padding: 0; } li { list-style: none; } a { text-decoration: none; } } #masthead + nav ul li { height: clamp(80px, 14vw, 150px); min-height: 80px; padding: 0; margin: 0; img { height: clamp(80px, 14vw, 150px); width: clamp(80px, 14vw, 150px); margin: 0; } .title { margin-left: clamp(90px, 14.5vw, 170px); font-size: clamp(1.5rem, 2.2vw,2rem); } p { margin-left: clamp(90px, 14.5vw, 170px); font-size: clamp(0.8rem, 1.8vw ,1.5rem); } } #masthead + nav ul { padding-inline-start: 0; } ``` 稍微解釋一下上面那坨sass(跟css打法差不多),他模板有個問題,就是有兩個nav,而且class也一樣,所以selector會寫複雜一點,#masthead是header的id,側邊nav剛好是header的最近同輩,所以用 "+" selector,並用:not排除掉nav初始設定,然後側邊nav各元素的大小用clamp控制,使其變得responsive。clamp的語法是clamp(最小值, 變動值, 最大值),當變動值小於最小值,則取最小值,當變動值大於最大值,取最大值,在中間就能隨意跑,也可寫成max(最小值, min(變動值, 最大值)) 最後成果 手機safari上 ![](https://i.imgur.com/Q04U0yz.jpg) 筆電edge上 ![](https://i.imgur.com/cRF7vnN.png) ## Git遠端操控 - push 理論上最後再push上去就好 ```git= git add _sass/_base.scss git commit -m "Responsive navbar update" git push origin gh-pages ``` 然後就出事了 ![](https://i.imgur.com/UhPHj80.jpg) 後來我左試右試,甚至辦SSH key重用,都還是遭拒,結果最後發現403就是potato沒開權限的意思(╯‵□′)╯︵┻━┻ 最後他開了權限,我同時用了新方法(下圖),最後終於push成功,其實有點難分辨最後哪個是成功的關鍵,應該還是collaborator權限 ![](https://i.imgur.com/EBLhXtj.png) ## Conclusion 雖然寫Git的時候一直撞牆,但真的很好玩,而且這樣合作一個repository很有專業工程師的fu,感謝potato找我合作,是很有趣的經驗,下禮拜就寫自己的網站 + 過年吧,也歡迎各位去拜訪[Potato的網站](https://happypotato.ga/)喔~