├── .github └── workflows │ ├── deploy.yml │ └── update-agenda.yml ├── .gitignore ├── README.md ├── components.d.ts ├── dist_netlify └── _redirects ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── .nojekyll ├── 404.html ├── imgs │ ├── 25-things-must-do │ │ ├── cat.svg │ │ └── done.svg │ ├── 404.svg │ ├── arrow.svg │ ├── avatar.png │ ├── banner.png │ ├── banner_twitter.png │ ├── cat-in-a-maze.svg │ ├── cats │ │ ├── cat-head-black.svg │ │ ├── cat-left.svg │ │ ├── cat-right-angle.svg │ │ ├── cat-right.svg │ │ ├── cat2.svg │ │ ├── cat2_1.svg │ │ ├── wool-green.svg │ │ ├── wool-orange-flip.svg │ │ └── wool-orange.svg │ ├── cfp │ │ ├── CFP_desktop_mainPage.jpg │ │ ├── CFP_favicon.ico │ │ ├── CFP_favicon.png │ │ ├── CFP_favicon.svg │ │ ├── CFP_mobile_mainpage.jpg │ │ ├── back-hover.svg │ │ ├── back.svg │ │ ├── call-for-paper.svg │ │ ├── cat.png │ │ ├── cfp-og.png │ │ ├── cfp_maze_pattern.png │ │ ├── cfp_maze_pattern.svg │ │ ├── close.svg │ │ ├── corner.svg │ │ ├── mouse-pointer.svg │ │ ├── prev-sessions │ │ │ ├── 0YMG2n_wwXU.jpg │ │ │ ├── 1gFBx16AlMc.jpg │ │ │ ├── 5YjbEE-E2HA.jpg │ │ │ ├── 85bW97XI4i0.jpg │ │ │ ├── 8xrYLc4num8.jpg │ │ │ ├── BTjVqA-CadM.jpg │ │ │ ├── CEPVFcZMeQg.jpg │ │ │ ├── GFfaD-kVe_A.jpg │ │ │ ├── H5o5Oa_nbqs.jpg │ │ │ ├── I07gX4YlYrE.jpg │ │ │ ├── MfiKAOBrPpk.jpg │ │ │ ├── NGqXSCFvZ3M.jpg │ │ │ ├── SkUuK731XGY.jpg │ │ │ ├── Y_d6ZPQR9ag.jpg │ │ │ ├── _lNPRlt6c2E.jpg │ │ │ ├── aomXTCTlIW4.jpg │ │ │ ├── iZz5au-vVHk.jpg │ │ │ ├── kD-jGfDZGGo.jpg │ │ │ ├── msrsjX8mddE.jpg │ │ │ ├── paJ0AlW6h-I.jpg │ │ │ ├── qYxdomoMEf8.jpg │ │ │ ├── ryLLzSwQ54w.jpg │ │ │ └── y3EM5GHigTY.jpg │ │ └── prev-sites │ │ │ ├── 2018.png │ │ │ ├── 2019.png │ │ │ ├── 2020.png │ │ │ └── 2021.png │ ├── deafult_avatar.jpg │ ├── dialog_close.svg │ ├── favicon.ico │ ├── icon.png │ ├── icon.svg │ ├── logo.png │ ├── og.jpg │ ├── opass-icon │ │ ├── how_to_vote_FILL1_wght400_GRAD0.png │ │ └── lightning-talk.png │ ├── pancake.png │ ├── sessions │ │ └── .gitkeep │ ├── sitcon-stone.png │ ├── social-media │ │ ├── facebook.svg │ │ ├── flickr.svg │ │ ├── instagram.svg │ │ ├── medium.svg │ │ ├── odysee.svg │ │ ├── plurk.svg │ │ ├── telegram.svg │ │ ├── twitter.svg │ │ └── youtube.svg │ ├── speakers │ │ ├── 032f79.jpg │ │ ├── 033303.jpg │ │ ├── 065a37.jpeg │ │ ├── 0e0bf7.jpg │ │ ├── 136465.jpg │ │ ├── 14e6dc.jpg │ │ ├── 1b98de.png │ │ ├── 1qaz2w.jpg │ │ ├── 43a3ee.jpg │ │ ├── 467c97.jpg │ │ ├── 47f49d.jpg │ │ ├── 4aa55b.jpg │ │ ├── 5313aa.jpg │ │ ├── 695628.jpg │ │ ├── 6adb3c.jpg │ │ ├── 722e55.jpg │ │ ├── 729d99.jpg │ │ ├── 748fa4.jpg │ │ ├── 7611f5.jpg │ │ ├── 7990e7.jpg │ │ ├── 7aaf0e.jpg │ │ ├── 7ab950.jpg │ │ ├── 91bb5f.jpg │ │ ├── 96a854.jpg │ │ ├── 9c048a.jpg │ │ ├── a03834.jpg │ │ ├── a25034.jpg │ │ ├── a8bfc2.jpg │ │ ├── a8e2ef.jpg │ │ ├── b2b15c.jpg │ │ ├── b335b7.jpg │ │ ├── b7e31f.png │ │ ├── c261f3.jpg │ │ ├── cc64a8.jpg │ │ ├── ce9eb5.jpg │ │ ├── d04d8c.png │ │ ├── d12669.jpg │ │ ├── d8d2df.jpg │ │ ├── ddf507.jpg │ │ ├── e4cc52.png │ │ ├── e8eecf.jpg │ │ ├── edc60e.jpg │ │ ├── edde60.jpg │ │ ├── f358a1.jpeg │ │ ├── f436b7.jpg │ │ └── fdb4b2.png │ ├── sponsors │ │ ├── 104.png │ │ ├── akatsuki.png │ │ ├── alpha-link-limited.png │ │ ├── amd.png │ │ ├── archilife.png │ │ ├── aws.png │ │ ├── codezero.png │ │ ├── coscup.png │ │ ├── cycraft.png │ │ ├── dcard.png │ │ ├── dog-com.png │ │ ├── glsoft.png │ │ ├── hackmd.png │ │ ├── hit.png │ │ ├── ichef.png │ │ ├── iis.png │ │ ├── init-engineer.png │ │ ├── its.png │ │ ├── itsa.png │ │ ├── june1.png │ │ ├── kkcompany.png │ │ ├── klickklack.png │ │ ├── linzin.png │ │ ├── mcfallout.png │ │ ├── nic.png │ │ ├── ntust-ct.png │ │ ├── ocf.png │ │ ├── sudo-research-labs.png │ │ ├── t5.png │ │ ├── titansoft.png │ │ ├── trendmicro.png │ │ ├── tsmc.png │ │ ├── twnic.png │ │ ├── untyped.png │ │ ├── zuso.png │ │ └── zyxel.png │ ├── stats-block │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ └── 4.jpg │ ├── traffic │ │ ├── traffic-flow-mobile.svg │ │ └── traffic-flow.svg │ ├── venue │ │ ├── 3f.svg │ │ └── 4f.svg │ └── x-cat-in-a-maze.svg └── json │ └── .gitkeep ├── src ├── App.vue ├── assets │ ├── jsonld.js │ ├── sass │ │ └── main.sass │ ├── sponsors.json │ └── teams.json ├── components │ ├── Agenda │ │ └── Table.vue │ ├── ArrowBox.vue │ ├── ArrowDialog.vue │ ├── BlockTitle.vue │ ├── Btn.vue │ ├── ConfettiExplosion.vue │ ├── FooterItem.vue │ ├── GeneralHead.vue │ ├── LocationMap.vue │ ├── Markdown.vue │ ├── MintBox.vue │ ├── NavBar.vue │ ├── SignUpDialog.vue │ ├── StatsBlock.vue │ ├── ThingsMustDoDialog.vue │ ├── cat │ │ ├── Corner.vue │ │ ├── Cover.vue │ │ ├── FlatLeft.vue │ │ ├── FlatVertical.vue │ │ ├── HeadBlack.vue │ │ └── Konami.vue │ ├── cfp │ │ ├── AgendaCard.vue │ │ ├── AgendaType.vue │ │ ├── BackBtn.vue │ │ ├── BlockTitle.vue │ │ ├── Card.vue │ │ ├── Cards.vue │ │ ├── DateLinks.vue │ │ ├── Divider.vue │ │ ├── Footer.vue │ │ ├── GlassBox.vue │ │ ├── PrevSite.vue │ │ ├── QuestionAnswer.vue │ │ ├── QuestionBox.vue │ │ ├── RadBtn.vue │ │ ├── RoundBtn.vue │ │ ├── RoundedGlassBox.vue │ │ ├── Schedule.vue │ │ ├── SessionTypeCard.vue │ │ ├── SubmissionBtn.vue │ │ ├── SubmissionNotice.vue │ │ ├── SubmissionPersonalInfo.vue │ │ ├── Timer.vue │ │ ├── coc.vue │ │ └── logo │ │ │ ├── CatInAMaze.vue │ │ │ └── Sitcon.vue │ ├── modal.vue │ └── svg │ │ ├── Arrow.vue │ │ ├── X.vue │ │ ├── XCatInAMaze.vue │ │ └── sitcon.vue ├── layout │ ├── cfp.vue │ ├── default.vue │ └── not-found.vue ├── main.js ├── pages │ ├── activity.vue │ ├── agenda.vue │ ├── cfp │ │ ├── index.vue │ │ ├── standard.vue │ │ └── undefined.vue │ ├── index.vue │ ├── sponsor.vue │ ├── staff.vue │ ├── traffic.vue │ └── venue.vue └── store │ └── dialog.js ├── utils ├── hackmd_sponsor_generator │ ├── index.js │ ├── package-lock.json │ └── package.json ├── mail │ ├── SITCON-2022-speaker.heml │ ├── SITCON-2022.heml │ ├── assets │ │ ├── facebook.png │ │ ├── flickr.png │ │ ├── footer.png │ │ ├── header-speaker.png │ │ ├── header.png │ │ ├── instagram.png │ │ ├── telegram.png │ │ ├── twitter.png │ │ └── youtube.png │ ├── package-lock.json │ └── package.json ├── preview_generator │ ├── index.js │ ├── package-lock.json │ ├── package.json │ └── src │ │ ├── cat.svg │ │ ├── empty.png │ │ ├── fonts │ │ ├── NotoSansTC-Bold.otf │ │ └── NotoSansTC-Medium.otf │ │ ├── index.html │ │ └── textFit.js └── teams_parser │ ├── package-lock.json │ ├── package.json │ └── teams_parser.js └── vite.config.js /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy to GitHub Pages 2 | 3 | on: 4 | push: 5 | branches: main 6 | workflow_dispatch: 7 | 8 | jobs: 9 | deploy: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v3 13 | - name: Set timezone to Asia/Taipei 14 | uses: szenius/set-timezone@v1.0 15 | with: 16 | timezoneLinux: "Asia/Taipei" 17 | timezoneMacos: "Asia/Taipei" 18 | - name: Generate Schedule Json 19 | uses: CCIP-App/schedule-json-generator-action@v1 20 | id: generate 21 | with: 22 | gcp-api-key: ${{ secrets.GCP_API_KEY }} 23 | spreadsheet-key: "198dUX5oH72Q7gaGt_SEPrON-QYNRdAu3f-F2Pg4uFoM" 24 | default-avatar: "https://sitcon.org/2022/imgs/deafult_avatar.jpg" 25 | avatar-base-url: "https://sitcon.org/2022/imgs/speakers/" 26 | # Use the output from the `generate` step 27 | - name: Save session.json 28 | run: echo '${{ steps.generate.outputs.output-json }}' > ./src/assets/session.json 29 | - name: Copy session.json to public/json 30 | run: cp ./src/assets/session.json ./public/json/session.json 31 | - uses: actions/setup-node@v3 32 | with: 33 | node-version: 16 34 | cache: 'npm' 35 | - name: Install npm packages 36 | run: npm ci 37 | - name: Generate Session Preview Images 38 | run: | 39 | cd ./utils/preview_generator 40 | npm ci 41 | node index.js 42 | cd ../../ 43 | - name: Generate Pages 44 | run: npm run build 45 | - name: Fixed index.html 46 | run: | 47 | cp ./dist/index.html ./dist/200.html 48 | - name: Generate mail 49 | run: | 50 | cd ./utils/mail 51 | npm i 52 | npm run build 53 | mkdir -p ../../dist/mail 54 | cp ./SITCON-2022.html ../../dist/mail/SITCON-2022.html 55 | cp ./SITCON-2022-speaker.html ../../dist/mail/speaker.html 56 | cp -R ./assets ../../dist/mail/assets 57 | cd ../../ 58 | - name: Deploy to GitHub Pages 59 | uses: peaceiris/actions-gh-pages@v3 60 | with: 61 | github_token: ${{ secrets.GITHUB_TOKEN }} 62 | publish_dir: dist 63 | force_orphan: true 64 | -------------------------------------------------------------------------------- /.github/workflows/update-agenda.yml: -------------------------------------------------------------------------------- 1 | name: Update agenda 2 | 3 | on: 4 | push: 5 | branches: dev 6 | 7 | jobs: 8 | update-agenda: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v3 12 | with: 13 | ref: dev 14 | - name: Generate Schedule Json 15 | uses: CCIP-App/schedule-json-generator-action@v1 16 | id: generate 17 | with: 18 | gcp-api-key: ${{ secrets.GCP_API_KEY }} 19 | spreadsheet-key: "198dUX5oH72Q7gaGt_SEPrON-QYNRdAu3f-F2Pg4uFoM" 20 | default-avatar: "https://sitcon.org/2022/imgs/deafult_avatar.jpg" 21 | avatar-base-url: "https://sitcon.org/2022/imgs/speakers/" 22 | # Use the output from the `generate` step 23 | - name: Save session.json 24 | run: echo '${{ steps.generate.outputs.output-json }}' > ./src/assets/session.json 25 | - name: Copy session.json to public/json 26 | run: cp ./src/assets/session.json ./public/json/session.json 27 | - name: Remove ./public/json/session.json ./src/assets/session.json from .gitignore 28 | run: sed -i '/session.json/d' .gitignore 29 | - name: Sync to dev-netlify branch 30 | uses: peaceiris/actions-gh-pages@v3 31 | with: 32 | github_token: ${{ secrets.GITHUB_TOKEN }} 33 | publish_dir: . 34 | publish_branch: dev-netlify 35 | force_orphan: true 36 | user_name: GitHub Actions 37 | user_email: actions@github.com 38 | commit_message: ${{ github.event.head_commit.message }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | *.suo 25 | *.ntvs* 26 | *.njsproj 27 | *.sln 28 | *.sw? 29 | .vite-ssg-temp 30 | 31 | utils/SITCON 2022 工作人員通訊錄 - 工作表1.csv 32 | utils/teams.json 33 | utils/SITCON 2022 工作人員登錄狀況 - 工人名單(已刪除移除工人).csv 34 | public/json/session.json 35 | src/assets/session.json 36 | dist_netlify/2022/* 37 | utils/teams_parser/SITCON 2022 工作人員登錄狀況 - 工人名單(已刪除移除工人).csv 38 | utils/preview_generator/result/*.png 39 | utils/preview_generator/result/*.jpg 40 | utils/preview_generator/src/prepros.config 41 | public/imgs/sessions/*.png 42 | public/imgs/sessions/*.jpg 43 | utils/mail/SITCON-2022.html 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sitcon-2022 2 | 3 | This template should help get you started developing with Vue 3 in Vite. 4 | 5 | ## Recommended IDE Setup 6 | 7 | [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.vscode-typescript-vue-plugin). 8 | 9 | ## Customize configuration 10 | 11 | See [Vite Configuration Reference](https://vitejs.dev/config/). 12 | 13 | ## Project Setup 14 | 15 | ```sh 16 | npm install 17 | ``` 18 | 19 | ### Put "session.json" to assets directory 20 | 21 | ```sh 22 | wget https://sitcon.org/2022/json/session.json -O src/assets/session.json 23 | ``` 24 | 25 | ### Compile and Hot-Reload for Development 26 | 27 | ```sh 28 | npm run dev 29 | ``` 30 | 31 | ### Compile and Minify for Production 32 | 33 | ```sh 34 | npm run build 35 | ``` 36 | -------------------------------------------------------------------------------- /components.d.ts: -------------------------------------------------------------------------------- 1 | // generated by unplugin-vue-components 2 | // We suggest you to commit this file into source control 3 | // Read more: https://github.com/vuejs/vue-next/pull/3399 4 | import '@vue/runtime-core' 5 | 6 | declare module '@vue/runtime-core' { 7 | export interface GlobalComponents { 8 | AgendaTable: typeof import('./src/components/Agenda/Table.vue')['default'] 9 | ArrowBox: typeof import('./src/components/ArrowBox.vue')['default'] 10 | ArrowDialog: typeof import('./src/components/ArrowDialog.vue')['default'] 11 | BlockTitle: typeof import('./src/components/BlockTitle.vue')['default'] 12 | Btn: typeof import('./src/components/Btn.vue')['default'] 13 | CatCorner: typeof import('./src/components/cat/Corner.vue')['default'] 14 | CatCover: typeof import('./src/components/cat/Cover.vue')['default'] 15 | CatFlatLeft: typeof import('./src/components/cat/FlatLeft.vue')['default'] 16 | CatFlatVertical: typeof import('./src/components/cat/FlatVertical.vue')['default'] 17 | CatHeadBlack: typeof import('./src/components/cat/HeadBlack.vue')['default'] 18 | CatKonami: typeof import('./src/components/cat/Konami.vue')['default'] 19 | CfpAgendaCard: typeof import('./src/components/cfp/AgendaCard.vue')['default'] 20 | CfpAgendaType: typeof import('./src/components/cfp/AgendaType.vue')['default'] 21 | CfpBackBtn: typeof import('./src/components/cfp/BackBtn.vue')['default'] 22 | CfpBlockTitle: typeof import('./src/components/cfp/BlockTitle.vue')['default'] 23 | CfpCard: typeof import('./src/components/cfp/Card.vue')['default'] 24 | CfpCards: typeof import('./src/components/cfp/Cards.vue')['default'] 25 | CfpCoc: typeof import('./src/components/cfp/coc.vue')['default'] 26 | CfpDateLinks: typeof import('./src/components/cfp/DateLinks.vue')['default'] 27 | CfpDivider: typeof import('./src/components/cfp/Divider.vue')['default'] 28 | CfpFooter: typeof import('./src/components/cfp/Footer.vue')['default'] 29 | CfpGlassBox: typeof import('./src/components/cfp/GlassBox.vue')['default'] 30 | CfpLogoCatInAMaze: typeof import('./src/components/cfp/logo/CatInAMaze.vue')['default'] 31 | CfpLogoSitcon: typeof import('./src/components/cfp/logo/Sitcon.vue')['default'] 32 | CfpPrevSite: typeof import('./src/components/cfp/PrevSite.vue')['default'] 33 | CfpQuestionAnswer: typeof import('./src/components/cfp/QuestionAnswer.vue')['default'] 34 | CfpQuestionBox: typeof import('./src/components/cfp/QuestionBox.vue')['default'] 35 | CfpRadBtn: typeof import('./src/components/cfp/RadBtn.vue')['default'] 36 | CfpRoundBtn: typeof import('./src/components/cfp/RoundBtn.vue')['default'] 37 | CfpRoundedGlassBox: typeof import('./src/components/cfp/RoundedGlassBox.vue')['default'] 38 | CfpSchedule: typeof import('./src/components/cfp/Schedule.vue')['default'] 39 | CfpSessionTypeCard: typeof import('./src/components/cfp/SessionTypeCard.vue')['default'] 40 | CfpSubmissionBtn: typeof import('./src/components/cfp/SubmissionBtn.vue')['default'] 41 | CfpSubmissionNotice: typeof import('./src/components/cfp/SubmissionNotice.vue')['default'] 42 | CfpSubmissionPersonalInfo: typeof import('./src/components/cfp/SubmissionPersonalInfo.vue')['default'] 43 | CfpTimer: typeof import('./src/components/cfp/Timer.vue')['default'] 44 | ConfettiExplosion: typeof import('./src/components/ConfettiExplosion.vue')['default'] 45 | FooterItem: typeof import('./src/components/FooterItem.vue')['default'] 46 | GeneralHead: typeof import('./src/components/GeneralHead.vue')['default'] 47 | LocationMap: typeof import('./src/components/LocationMap.vue')['default'] 48 | Markdown: typeof import('./src/components/Markdown.vue')['default'] 49 | MintBox: typeof import('./src/components/MintBox.vue')['default'] 50 | Modal: typeof import('./src/components/modal.vue')['default'] 51 | NavBar: typeof import('./src/components/NavBar.vue')['default'] 52 | RouterLink: typeof import('vue-router')['RouterLink'] 53 | RouterView: typeof import('vue-router')['RouterView'] 54 | SignUpDialog: typeof import('./src/components/SignUpDialog.vue')['default'] 55 | StatsBlock: typeof import('./src/components/StatsBlock.vue')['default'] 56 | SvgArrow: typeof import('./src/components/svg/Arrow.vue')['default'] 57 | SvgSitcon: typeof import('./src/components/svg/sitcon.vue')['default'] 58 | SvgX: typeof import('./src/components/svg/X.vue')['default'] 59 | SvgXCatInAMaze: typeof import('./src/components/svg/XCatInAMaze.vue')['default'] 60 | ThingsMustDoDialog: typeof import('./src/components/ThingsMustDoDialog.vue')['default'] 61 | } 62 | } 63 | 64 | export {} 65 | -------------------------------------------------------------------------------- /dist_netlify/_redirects: -------------------------------------------------------------------------------- 1 | /2022/* /2022/404.html 200 2 | /* /2022/ 3 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 35 | 36 | 47 | SITCON X 48 | 49 | 50 | 51 |
52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sitcon-2022", 3 | "version": "0.0.0", 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "vite-ssg build", 7 | "build:netlify": "vite-ssg build && mv dist dist_netlify/2022", 8 | "preview": "vite preview --port 5050" 9 | }, 10 | "dependencies": { 11 | "@ccip-app/session-table": "^1.1.0", 12 | "@vueuse/head": "^0.7.6", 13 | "d3": "^7.4.4", 14 | "konami-code-js": "^0.8.1", 15 | "pinia": "^2.0.14", 16 | "sass": "^1.52.1", 17 | "showdown": "^2.1.0", 18 | "vue": "^3.2.33", 19 | "vue-router": "^4.0.14", 20 | "vue3-openlayers": "^0.1.68" 21 | }, 22 | "browserslist": [ 23 | "defaults" 24 | ], 25 | "devDependencies": { 26 | "@vitejs/plugin-vue": "^2.3.1", 27 | "autoprefixer": "^10.4.7", 28 | "postcss": "^8.4.14", 29 | "unplugin-vue-components": "^0.19.5", 30 | "vite": "^2.9.5", 31 | "vite-ssg": "^0.20.0" 32 | } 33 | } -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } -------------------------------------------------------------------------------- /public/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/.nojekyll -------------------------------------------------------------------------------- /public/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public/imgs/25-things-must-do/cat.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 21 | 22 | 23 | 25 | 26 | 27 | 29 | 30 | 31 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /public/imgs/404.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/imgs/arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /public/imgs/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/avatar.png -------------------------------------------------------------------------------- /public/imgs/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/banner.png -------------------------------------------------------------------------------- /public/imgs/banner_twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/banner_twitter.png -------------------------------------------------------------------------------- /public/imgs/cat-in-a-maze.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/imgs/cats/cat-head-black.svg: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /public/imgs/cats/cat-right-angle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /public/imgs/cats/cat2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/imgs/cats/wool-green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/imgs/cats/wool-orange-flip.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/imgs/cats/wool-orange.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public/imgs/cfp/CFP_desktop_mainPage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/CFP_desktop_mainPage.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/CFP_favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/CFP_favicon.ico -------------------------------------------------------------------------------- /public/imgs/cfp/CFP_favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/CFP_favicon.png -------------------------------------------------------------------------------- /public/imgs/cfp/CFP_favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /public/imgs/cfp/CFP_mobile_mainpage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/CFP_mobile_mainpage.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/back.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/imgs/cfp/cat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/cat.png -------------------------------------------------------------------------------- /public/imgs/cfp/cfp-og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/cfp-og.png -------------------------------------------------------------------------------- /public/imgs/cfp/cfp_maze_pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/cfp_maze_pattern.png -------------------------------------------------------------------------------- /public/imgs/cfp/cfp_maze_pattern.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/imgs/cfp/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/imgs/cfp/corner.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/imgs/cfp/mouse-pointer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/0YMG2n_wwXU.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/0YMG2n_wwXU.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/1gFBx16AlMc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/1gFBx16AlMc.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/5YjbEE-E2HA.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/5YjbEE-E2HA.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/85bW97XI4i0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/85bW97XI4i0.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/8xrYLc4num8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/8xrYLc4num8.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/BTjVqA-CadM.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/BTjVqA-CadM.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/CEPVFcZMeQg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/CEPVFcZMeQg.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/GFfaD-kVe_A.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/GFfaD-kVe_A.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/H5o5Oa_nbqs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/H5o5Oa_nbqs.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/I07gX4YlYrE.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/I07gX4YlYrE.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/MfiKAOBrPpk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/MfiKAOBrPpk.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/NGqXSCFvZ3M.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/NGqXSCFvZ3M.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/SkUuK731XGY.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/SkUuK731XGY.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/Y_d6ZPQR9ag.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/Y_d6ZPQR9ag.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/_lNPRlt6c2E.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/_lNPRlt6c2E.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/aomXTCTlIW4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/aomXTCTlIW4.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/iZz5au-vVHk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/iZz5au-vVHk.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/kD-jGfDZGGo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/kD-jGfDZGGo.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/msrsjX8mddE.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/msrsjX8mddE.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/paJ0AlW6h-I.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/paJ0AlW6h-I.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/qYxdomoMEf8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/qYxdomoMEf8.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/ryLLzSwQ54w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/ryLLzSwQ54w.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sessions/y3EM5GHigTY.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sessions/y3EM5GHigTY.jpg -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sites/2018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sites/2018.png -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sites/2019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sites/2019.png -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sites/2020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sites/2020.png -------------------------------------------------------------------------------- /public/imgs/cfp/prev-sites/2021.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/cfp/prev-sites/2021.png -------------------------------------------------------------------------------- /public/imgs/deafult_avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/deafult_avatar.jpg -------------------------------------------------------------------------------- /public/imgs/dialog_close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/imgs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/favicon.ico -------------------------------------------------------------------------------- /public/imgs/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/icon.png -------------------------------------------------------------------------------- /public/imgs/icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /public/imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/logo.png -------------------------------------------------------------------------------- /public/imgs/og.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/og.jpg -------------------------------------------------------------------------------- /public/imgs/opass-icon/how_to_vote_FILL1_wght400_GRAD0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/opass-icon/how_to_vote_FILL1_wght400_GRAD0.png -------------------------------------------------------------------------------- /public/imgs/opass-icon/lightning-talk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/opass-icon/lightning-talk.png -------------------------------------------------------------------------------- /public/imgs/pancake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/pancake.png -------------------------------------------------------------------------------- /public/imgs/sessions/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sessions/.gitkeep -------------------------------------------------------------------------------- /public/imgs/sitcon-stone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sitcon-stone.png -------------------------------------------------------------------------------- /public/imgs/social-media/facebook.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/imgs/social-media/flickr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/imgs/social-media/instagram.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/imgs/social-media/medium.svg: -------------------------------------------------------------------------------- 1 | Medium icon -------------------------------------------------------------------------------- /public/imgs/social-media/plurk.svg: -------------------------------------------------------------------------------- 1 | Plurk icon -------------------------------------------------------------------------------- /public/imgs/social-media/telegram.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/imgs/social-media/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/imgs/social-media/youtube.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public/imgs/speakers/032f79.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/032f79.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/033303.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/033303.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/065a37.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/065a37.jpeg -------------------------------------------------------------------------------- /public/imgs/speakers/0e0bf7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/0e0bf7.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/136465.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/136465.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/14e6dc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/14e6dc.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/1b98de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/1b98de.png -------------------------------------------------------------------------------- /public/imgs/speakers/1qaz2w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/1qaz2w.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/43a3ee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/43a3ee.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/467c97.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/467c97.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/47f49d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/47f49d.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/4aa55b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/4aa55b.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/5313aa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/5313aa.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/695628.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/695628.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/6adb3c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/6adb3c.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/722e55.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/722e55.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/729d99.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/729d99.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/748fa4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/748fa4.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/7611f5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/7611f5.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/7990e7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/7990e7.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/7aaf0e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/7aaf0e.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/7ab950.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/7ab950.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/91bb5f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/91bb5f.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/96a854.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/96a854.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/9c048a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/9c048a.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/a03834.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/a03834.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/a25034.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/a25034.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/a8bfc2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/a8bfc2.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/a8e2ef.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/a8e2ef.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/b2b15c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/b2b15c.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/b335b7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/b335b7.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/b7e31f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/b7e31f.png -------------------------------------------------------------------------------- /public/imgs/speakers/c261f3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/c261f3.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/cc64a8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/cc64a8.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/ce9eb5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/ce9eb5.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/d04d8c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/d04d8c.png -------------------------------------------------------------------------------- /public/imgs/speakers/d12669.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/d12669.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/d8d2df.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/d8d2df.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/ddf507.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/ddf507.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/e4cc52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/e4cc52.png -------------------------------------------------------------------------------- /public/imgs/speakers/e8eecf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/e8eecf.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/edc60e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/edc60e.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/edde60.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/edde60.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/f358a1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/f358a1.jpeg -------------------------------------------------------------------------------- /public/imgs/speakers/f436b7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/f436b7.jpg -------------------------------------------------------------------------------- /public/imgs/speakers/fdb4b2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/speakers/fdb4b2.png -------------------------------------------------------------------------------- /public/imgs/sponsors/104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/104.png -------------------------------------------------------------------------------- /public/imgs/sponsors/akatsuki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/akatsuki.png -------------------------------------------------------------------------------- /public/imgs/sponsors/alpha-link-limited.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/alpha-link-limited.png -------------------------------------------------------------------------------- /public/imgs/sponsors/amd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/amd.png -------------------------------------------------------------------------------- /public/imgs/sponsors/archilife.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/archilife.png -------------------------------------------------------------------------------- /public/imgs/sponsors/aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/aws.png -------------------------------------------------------------------------------- /public/imgs/sponsors/codezero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/codezero.png -------------------------------------------------------------------------------- /public/imgs/sponsors/coscup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/coscup.png -------------------------------------------------------------------------------- /public/imgs/sponsors/cycraft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/cycraft.png -------------------------------------------------------------------------------- /public/imgs/sponsors/dcard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/dcard.png -------------------------------------------------------------------------------- /public/imgs/sponsors/dog-com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/dog-com.png -------------------------------------------------------------------------------- /public/imgs/sponsors/glsoft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/glsoft.png -------------------------------------------------------------------------------- /public/imgs/sponsors/hackmd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/hackmd.png -------------------------------------------------------------------------------- /public/imgs/sponsors/hit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/hit.png -------------------------------------------------------------------------------- /public/imgs/sponsors/ichef.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/ichef.png -------------------------------------------------------------------------------- /public/imgs/sponsors/iis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/iis.png -------------------------------------------------------------------------------- /public/imgs/sponsors/init-engineer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/init-engineer.png -------------------------------------------------------------------------------- /public/imgs/sponsors/its.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/its.png -------------------------------------------------------------------------------- /public/imgs/sponsors/itsa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/itsa.png -------------------------------------------------------------------------------- /public/imgs/sponsors/june1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/june1.png -------------------------------------------------------------------------------- /public/imgs/sponsors/kkcompany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/kkcompany.png -------------------------------------------------------------------------------- /public/imgs/sponsors/klickklack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/klickklack.png -------------------------------------------------------------------------------- /public/imgs/sponsors/linzin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/linzin.png -------------------------------------------------------------------------------- /public/imgs/sponsors/mcfallout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/mcfallout.png -------------------------------------------------------------------------------- /public/imgs/sponsors/nic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/nic.png -------------------------------------------------------------------------------- /public/imgs/sponsors/ntust-ct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/ntust-ct.png -------------------------------------------------------------------------------- /public/imgs/sponsors/ocf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/ocf.png -------------------------------------------------------------------------------- /public/imgs/sponsors/sudo-research-labs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/sudo-research-labs.png -------------------------------------------------------------------------------- /public/imgs/sponsors/t5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/t5.png -------------------------------------------------------------------------------- /public/imgs/sponsors/titansoft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/titansoft.png -------------------------------------------------------------------------------- /public/imgs/sponsors/trendmicro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/trendmicro.png -------------------------------------------------------------------------------- /public/imgs/sponsors/tsmc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/tsmc.png -------------------------------------------------------------------------------- /public/imgs/sponsors/twnic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/twnic.png -------------------------------------------------------------------------------- /public/imgs/sponsors/untyped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/untyped.png -------------------------------------------------------------------------------- /public/imgs/sponsors/zuso.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/zuso.png -------------------------------------------------------------------------------- /public/imgs/sponsors/zyxel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/sponsors/zyxel.png -------------------------------------------------------------------------------- /public/imgs/stats-block/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/stats-block/1.jpg -------------------------------------------------------------------------------- /public/imgs/stats-block/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/stats-block/2.jpg -------------------------------------------------------------------------------- /public/imgs/stats-block/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/stats-block/3.jpg -------------------------------------------------------------------------------- /public/imgs/stats-block/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/imgs/stats-block/4.jpg -------------------------------------------------------------------------------- /public/imgs/x-cat-in-a-maze.svg: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /public/json/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/public/json/.gitkeep -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 2 | 16 | 25 | 28 | -------------------------------------------------------------------------------- /src/assets/sass/main.sass: -------------------------------------------------------------------------------- 1 | :root 2 | --background-color: #fff 3 | --text-color: #373737 4 | @media screen and (prefers-color-scheme: dark) 5 | :root 6 | --background-color: #373737 7 | --text-color: #fff 8 | body.not-found 9 | --background-color: #373737 10 | body,html 11 | font-family: 'Roboto Condensed','Noto Sans TC', sans-serif 12 | background-color: var(--background-color) 13 | color: var(--text-color) 14 | line-height: 2 15 | font-size: 16px 16 | scroll-behavior: smooth 17 | width: 100vw 18 | min-height: 100vh 19 | overflow-x: hidden 20 | scroll-margin-top: 160px 21 | @media screen and (max-width: 768px) 22 | font-size: 14px 23 | .container 24 | width: min(1280px,95vw) 25 | margin: 0 auto 26 | .cfp-container 27 | width: calc(100% - 64px) 28 | max-width: 1152px 29 | margin: 0 auto 30 | @media screen and (max-width: 1151px) 31 | padding: 40px 64px 32 | @media screen and (max-width: 1024px) 33 | padding: 40px 20px 34 | width: calc(100% - 40px) 35 | margin: 18px auto 36 | 37 | .cfp-page 38 | --text-color: #fff 39 | color: var(--text-color) 40 | ul 41 | list-style: none 42 | padding: 0 43 | margin: 0 44 | li 45 | margin-bottom: 10px 46 | position: relative 47 | padding-left: 15px 48 | &::before 49 | content: "" 50 | position: absolute 51 | top: 0.5em 52 | left: 0 53 | width: 5px 54 | height: 1em 55 | background-color: #fff 56 | a 57 | color: #fff 58 | 59 | * 60 | box-sizing: border-box 61 | -webkit-tap-highlight-color: transparent 62 | h1, h2, h3, h4, h5, h6 63 | font-weight: 900 64 | margin: .25em 0 65 | margin-top: .5em 66 | h1 67 | font-size: 48px 68 | @media screen and (max-width: 1280px) 69 | font-size: 36px 70 | @media screen and (max-width: 768px) 71 | font-size: 30px 72 | h2 73 | font-size: 36px 74 | @media screen and (max-width: 1280px) 75 | font-size: 32px 76 | @media screen and (max-width: 768px) 77 | font-size: 24px 78 | h3 79 | font-size: 30px 80 | @media screen and (max-width: 1280px) 81 | font-size: 24px 82 | @media screen and (max-width: 768px) 83 | font-size: 20px 84 | ul 85 | list-style: none 86 | padding: 0 87 | margin: 0 88 | li 89 | margin-bottom: 10px 90 | position: relative 91 | padding-left: 15px 92 | &::before 93 | content: "" 94 | position: absolute 95 | top: 0.5em 96 | left: 0 97 | width: 5px 98 | height: 1em 99 | background-color: #82D357 100 | strong 101 | font-weight: 900 102 | .text-center 103 | text-align: center 104 | a 105 | color: #82D357 106 | text-decoration: underline 107 | cursor: pointer 108 | img, svg 109 | max-width: 100% 110 | 111 | .maze-background 112 | overflow-x: hidden // prevent ConfettiExplosion in cfp page causing horizontal overflow 113 | background-color: #333333 114 | background-image: url(/imgs/cfp/cfp_maze_pattern.png) 115 | background-size: 120vw auto 116 | background-position: top 117 | background-repeat: repeat 118 | .clickable 119 | cursor: pointer 120 | 121 | // animation 122 | // fade-out 123 | .fade-out-leave-to 124 | opacity: 0 125 | .fade-out-leave-active 126 | transition: opacity 0.5s ease 127 | // fade 128 | .fade-enter-active, 129 | .fade-leave-active 130 | transition: opacity 0.25s ease 131 | 132 | .fade-enter-from, 133 | .fade-leave-to 134 | opacity: 0 135 | -------------------------------------------------------------------------------- /src/components/ArrowBox.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/components/ArrowDialog.vue: -------------------------------------------------------------------------------- 1 | 20 | 48 | 138 | -------------------------------------------------------------------------------- /src/components/BlockTitle.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/components/Btn.vue: -------------------------------------------------------------------------------- 1 | 9 | 29 | 52 | -------------------------------------------------------------------------------- /src/components/GeneralHead.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 37 | -------------------------------------------------------------------------------- /src/components/LocationMap.vue: -------------------------------------------------------------------------------- 1 | 35 | 43 | -------------------------------------------------------------------------------- /src/components/Markdown.vue: -------------------------------------------------------------------------------- 1 | 4 | 35 | -------------------------------------------------------------------------------- /src/components/MintBox.vue: -------------------------------------------------------------------------------- 1 | 9 | 25 | -------------------------------------------------------------------------------- /src/components/SignUpDialog.vue: -------------------------------------------------------------------------------- 1 | 28 | 37 | 76 | -------------------------------------------------------------------------------- /src/components/cat/HeadBlack.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 38 | -------------------------------------------------------------------------------- /src/components/cat/Konami.vue: -------------------------------------------------------------------------------- 1 | 13 | 67 | 89 | -------------------------------------------------------------------------------- /src/components/cfp/AgendaCard.vue: -------------------------------------------------------------------------------- 1 | 11 | 17 | -------------------------------------------------------------------------------- /src/components/cfp/AgendaType.vue: -------------------------------------------------------------------------------- 1 | 29 | -------------------------------------------------------------------------------- /src/components/cfp/BackBtn.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/components/cfp/BlockTitle.vue: -------------------------------------------------------------------------------- 1 | 6 | 28 | -------------------------------------------------------------------------------- /src/components/cfp/Card.vue: -------------------------------------------------------------------------------- 1 | 9 | 23 | -------------------------------------------------------------------------------- /src/components/cfp/Cards.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/components/cfp/DateLinks.vue: -------------------------------------------------------------------------------- 1 | 18 | 20 | 42 | -------------------------------------------------------------------------------- /src/components/cfp/Divider.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /src/components/cfp/Footer.vue: -------------------------------------------------------------------------------- 1 | 39 | -------------------------------------------------------------------------------- /src/components/cfp/GlassBox.vue: -------------------------------------------------------------------------------- 1 | 8 | 22 | 64 | -------------------------------------------------------------------------------- /src/components/cfp/PrevSite.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | -------------------------------------------------------------------------------- /src/components/cfp/QuestionAnswer.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /src/components/cfp/QuestionBox.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | 19 | -------------------------------------------------------------------------------- /src/components/cfp/RadBtn.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 31 | -------------------------------------------------------------------------------- /src/components/cfp/RoundBtn.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 43 | -------------------------------------------------------------------------------- /src/components/cfp/RoundedGlassBox.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /src/components/cfp/Schedule.vue: -------------------------------------------------------------------------------- 1 | 89 | -------------------------------------------------------------------------------- /src/components/cfp/SessionTypeCard.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 56 | -------------------------------------------------------------------------------- /src/components/cfp/SubmissionBtn.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 33 | 51 | -------------------------------------------------------------------------------- /src/components/cfp/SubmissionNotice.vue: -------------------------------------------------------------------------------- 1 | 55 | -------------------------------------------------------------------------------- /src/components/cfp/SubmissionPersonalInfo.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /src/components/cfp/Timer.vue: -------------------------------------------------------------------------------- 1 | 25 | 69 | -------------------------------------------------------------------------------- /src/components/cfp/coc.vue: -------------------------------------------------------------------------------- 1 | 10 | 14 | -------------------------------------------------------------------------------- /src/components/cfp/logo/CatInAMaze.vue: -------------------------------------------------------------------------------- 1 | 32 | 41 | -------------------------------------------------------------------------------- /src/components/cfp/logo/Sitcon.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /src/components/modal.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 27 | 28 | -------------------------------------------------------------------------------- /src/components/svg/Arrow.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 18 | -------------------------------------------------------------------------------- /src/components/svg/X.vue: -------------------------------------------------------------------------------- 1 | 6 | 10 | -------------------------------------------------------------------------------- /src/components/svg/XCatInAMaze.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 27 | -------------------------------------------------------------------------------- /src/components/svg/sitcon.vue: -------------------------------------------------------------------------------- 1 | 11 | 15 | -------------------------------------------------------------------------------- /src/layout/cfp.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /src/layout/default.vue: -------------------------------------------------------------------------------- 1 | 15 | 48 | 80 | -------------------------------------------------------------------------------- /src/layout/not-found.vue: -------------------------------------------------------------------------------- 1 | 28 | 38 | 107 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import { ViteSSG } from 'vite-ssg' 2 | import { createPinia } from 'pinia' 3 | import { useDialogStore } from './store/dialog' 4 | 5 | import App from './App.vue' 6 | import defaultLayout from '@/layout/default.vue' 7 | import cfpLayout from '@/layout/cfp.vue' 8 | import notFoundLayout from '@/layout/not-found.vue' 9 | import sessionData from '@/assets/session.json'; 10 | import 'vue3-openlayers/dist/vue3-openlayers.css' 11 | export const createApp = ViteSSG( 12 | App, 13 | { 14 | base: '/2022/', 15 | routes: [ 16 | { 17 | path: '/cfp', 18 | component: cfpLayout, 19 | children: [...Object.entries(import.meta.glob('./pages/cfp/*.vue')).map( 20 | ([p, component]) => { 21 | const PAGE_DIR = '../pages' 22 | const PAGE_EXT = '.vue' 23 | const PAGE_INDEX = 'index' 24 | 25 | let path = p.substring(PAGE_DIR.length, p.length - PAGE_EXT.length) 26 | if (path.endsWith(PAGE_INDEX)) { 27 | path = path.substring(0, path.length - PAGE_INDEX.length - 1) 28 | } 29 | if (!path) { 30 | path = '/' 31 | } 32 | if (!path.startsWith('/')) { 33 | path = '/' + path 34 | } 35 | return { 36 | path, 37 | component, 38 | } 39 | }, 40 | )] 41 | }, 42 | { 43 | path: '/notfound', 44 | name: '404', 45 | component: notFoundLayout, 46 | }, 47 | { 48 | path: '/', 49 | component: defaultLayout, 50 | children: [ 51 | ...Object.entries(import.meta.glob('./pages/*.vue')).map( 52 | ([p, component]) => { 53 | const PAGE_DIR = '../pages' 54 | const PAGE_EXT = '.vue' 55 | const PAGE_INDEX = 'index' 56 | 57 | let path = p.substring(PAGE_DIR.length, p.length - PAGE_EXT.length) 58 | if (path.endsWith(PAGE_INDEX)) { 59 | path = path.substring(0, path.length - PAGE_INDEX.length - 1) 60 | } 61 | if (!path) { 62 | path = '/' 63 | } 64 | if (!path.startsWith('/')) { 65 | path = '/' + path 66 | } 67 | return { 68 | path, 69 | component, 70 | } 71 | }, 72 | ), 73 | ...sessionData.sessions 74 | .map(x => x.id) 75 | .map(x => ({ 76 | path: `/agenda/${x}`, 77 | component: () => import(`./pages/agenda.vue`), 78 | meta: { 79 | id: x, 80 | } 81 | })), 82 | { 83 | path: '/:pathMatch(.*)', 84 | redirect: '/notfound' 85 | } 86 | ] 87 | }, 88 | // 89 | ], 90 | scrollBehavior(to, from, savedPosition) { 91 | if (to.hash) { 92 | return { 93 | el: to.hash, 94 | behavior: 'smooth', 95 | } 96 | } 97 | if (savedPosition) { 98 | return savedPosition 99 | } 100 | if (to.path.startsWith('/agenda/')) { 101 | return 102 | } 103 | return { top: 0 } 104 | } 105 | }, 106 | async ({ app, router, routes, isClient, initialState }) => { 107 | const pinia = createPinia() 108 | app.use(pinia) 109 | if (import.meta.env.SSR) 110 | initialState.pinia = pinia.state.value 111 | else 112 | pinia.state.value = initialState.pinia || {} 113 | router.beforeEach((to, from, next) => { 114 | const store = useDialogStore(pinia) 115 | // if (!store.ready) 116 | // // perform the (user-implemented) store action to fill the store's state 117 | // store.initialize() 118 | next() 119 | }) 120 | if (isClient) { 121 | app.use(await import('vue3-openlayers')) 122 | // app.use(await import('vue3-markdown-it')) 123 | } 124 | }, 125 | ) 126 | -------------------------------------------------------------------------------- /src/pages/activity.vue: -------------------------------------------------------------------------------- 1 | 85 | 86 | 88 | 98 | -------------------------------------------------------------------------------- /src/pages/agenda.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/pages/cfp/undefined.vue: -------------------------------------------------------------------------------- 1 | 72 | -------------------------------------------------------------------------------- /src/pages/sponsor.vue: -------------------------------------------------------------------------------- 1 | 68 | 69 | 79 | 126 | -------------------------------------------------------------------------------- /src/pages/traffic.vue: -------------------------------------------------------------------------------- 1 | 26 | 67 | -------------------------------------------------------------------------------- /src/pages/venue.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | -------------------------------------------------------------------------------- /src/store/dialog.js: -------------------------------------------------------------------------------- 1 | import { defineStore } from 'pinia' 2 | export const useDialogStore = defineStore('dialog', { 3 | state: () => ({ 4 | signUpDialogOpened: false, 5 | thingsDialogOpened: false, 6 | }), 7 | }) -------------------------------------------------------------------------------- /utils/hackmd_sponsor_generator/index.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | ; (async function () { 3 | 4 | })() -------------------------------------------------------------------------------- /utils/hackmd_sponsor_generator/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hackmd_sponsor_generator", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "axios": "^0.27.2" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /utils/mail/assets/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/mail/assets/facebook.png -------------------------------------------------------------------------------- /utils/mail/assets/flickr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/mail/assets/flickr.png -------------------------------------------------------------------------------- /utils/mail/assets/footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/mail/assets/footer.png -------------------------------------------------------------------------------- /utils/mail/assets/header-speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/mail/assets/header-speaker.png -------------------------------------------------------------------------------- /utils/mail/assets/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/mail/assets/header.png -------------------------------------------------------------------------------- /utils/mail/assets/instagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/mail/assets/instagram.png -------------------------------------------------------------------------------- /utils/mail/assets/telegram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/mail/assets/telegram.png -------------------------------------------------------------------------------- /utils/mail/assets/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/mail/assets/twitter.png -------------------------------------------------------------------------------- /utils/mail/assets/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/mail/assets/youtube.png -------------------------------------------------------------------------------- /utils/mail/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sitcon-2022-mail", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "dev": "heml develop SITCON-2022.heml", 8 | "build": "heml build SITCON-2022.heml; heml build SITCON-2022-speaker.heml" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "heml": "^1.1.3" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /utils/preview_generator/index.js: -------------------------------------------------------------------------------- 1 | // Server 2 | let time = new Date(); 3 | const serve = require('koa-static') 4 | const Koa = require('koa'); 5 | const app = new Koa(); 6 | 7 | app.use(serve('./src')); 8 | app.use(serve('../../public')); 9 | app.listen(2929); 10 | 11 | console.log('Server on http://localhost:2929'); 12 | // Chrome 13 | const sessions = require('../../src/assets/session.json'); 14 | const { remote } = require('webdriverio'); 15 | ; (async () => { 16 | const browser = await remote({ 17 | capabilities: { 18 | browserName: 'chrome', 19 | 'goog:chromeOptions': { 20 | args: ['--headless', '--disable-gpu', '--disable-dev-shm-usage'], 21 | }, 22 | }, 23 | logLevel: 'warn', 24 | }) 25 | // download latset version of sessions.json 26 | // await browser.url('https://sitcon.org/2022/json/session.json') 27 | // let sessions = await browser.$('pre').getText() 28 | // sessions = JSON.parse(sessions) 29 | 30 | browser.setWindowSize(1600, 800) 31 | 32 | await browser.url(`http://localhost:2929/index.html`) 33 | for (let item of sessions.sessions) { 34 | if (item.zh.description == "") continue 35 | let data = { 36 | title: item.zh.title, 37 | speakers: item.speakers.map(x => sessions.speakers.find(y => y.id === x)), 38 | type: sessions.session_types.find(x => x.id === item.type).zh.name, 39 | } 40 | await browser.execute((data) => { 41 | document.querySelector('.title').innerHTML = data.title 42 | document.querySelector('.type').innerHTML = data.type 43 | document.querySelector('.speakers').innerHTML = data.speakers.map(speaker => { 44 | speaker.avatar = speaker.avatar.replace('https://sitcon.org/2022/', 'http://localhost:2929/') 45 | return `
${speaker.zh.name}
` 46 | }).join('') 47 | textFit(document.querySelector('.title'), { multiLine: true, maxFontSize: 300 }) 48 | setTimeout(() => { 49 | updateCatPosition() 50 | }, 0) 51 | }, data) 52 | // wait until the page is loaded 53 | await browser.execute(() => { 54 | return new Promise(resolve => { 55 | // imgs are loaded asyncronously 56 | let imgs = document.querySelectorAll('.img') 57 | let count = imgs.length 58 | imgs.forEach(img => { 59 | img.addEventListener('load', () => { 60 | count-- 61 | if (count === 0) resolve() 62 | }) 63 | if (img.complete) { 64 | count-- 65 | if (count === 0) resolve() 66 | } 67 | }) 68 | setTimeout(() => { 69 | resolve() 70 | }, 1000 * 10) 71 | }) 72 | }) 73 | await browser.saveScreenshot(`../../public/imgs/sessions/${item.id}.png`) 74 | 75 | console.log(`genetated: ${item.id} ${data.title}`) 76 | } 77 | await browser.deleteSession() 78 | console.log(`🐈 time: ${new Date() - time}ms`) 79 | // stop koa 80 | process.exit() 81 | })() -------------------------------------------------------------------------------- /utils/preview_generator/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "preview_generator", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "wdio": "wdio run wdio.conf.js" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "@wdio/cli": "^7.20.5", 14 | "@wdio/local-runner": "^7.20.5", 15 | "@wdio/mocha-framework": "^7.20.3", 16 | "@wdio/spec-reporter": "^7.20.3", 17 | "chromedriver": "^103.0.0" 18 | }, 19 | "dependencies": { 20 | "koa": "^2.13.4", 21 | "koa-static": "^5.0.0" 22 | } 23 | } -------------------------------------------------------------------------------- /utils/preview_generator/src/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/preview_generator/src/empty.png -------------------------------------------------------------------------------- /utils/preview_generator/src/fonts/NotoSansTC-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/preview_generator/src/fonts/NotoSansTC-Bold.otf -------------------------------------------------------------------------------- /utils/preview_generator/src/fonts/NotoSansTC-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sitcon-tw/2022/0f00fdae5905afa275d519e8849b642a8ce68db5/utils/preview_generator/src/fonts/NotoSansTC-Medium.otf -------------------------------------------------------------------------------- /utils/preview_generator/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 12 | 13 | 14 | 17 | Document 18 | 115 | 116 | 117 | 118 |
119 |
120 | PANCAKE / PANCAKE 鬆餅 PANCAKE / PANCAKE 鬆餅 PANCAKE 鬆餅 / 121 |
122 | 123 |
鬆餅
124 |
125 |
126 | 127 |
鬆餅
128 |
129 |
130 | 131 |
鬆餅
132 |
133 |
134 | 135 |
鬆餅
136 |
137 |
138 |
139 | ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 140 |
141 |
142 | 143 | 153 | 154 | 155 | -------------------------------------------------------------------------------- /utils/teams_parser/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sitcon_2022_utils", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "sitcon_2022_utils", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "md5": "^2.3.0" 13 | } 14 | }, 15 | "node_modules/charenc": { 16 | "version": "0.0.2", 17 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", 18 | "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", 19 | "engines": { 20 | "node": "*" 21 | } 22 | }, 23 | "node_modules/crypt": { 24 | "version": "0.0.2", 25 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", 26 | "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", 27 | "engines": { 28 | "node": "*" 29 | } 30 | }, 31 | "node_modules/is-buffer": { 32 | "version": "1.1.6", 33 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 34 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 35 | }, 36 | "node_modules/md5": { 37 | "version": "2.3.0", 38 | "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", 39 | "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", 40 | "dependencies": { 41 | "charenc": "0.0.2", 42 | "crypt": "0.0.2", 43 | "is-buffer": "~1.1.6" 44 | } 45 | } 46 | }, 47 | "dependencies": { 48 | "charenc": { 49 | "version": "0.0.2", 50 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", 51 | "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==" 52 | }, 53 | "crypt": { 54 | "version": "0.0.2", 55 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", 56 | "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" 57 | }, 58 | "is-buffer": { 59 | "version": "1.1.6", 60 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 61 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 62 | }, 63 | "md5": { 64 | "version": "2.3.0", 65 | "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", 66 | "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", 67 | "requires": { 68 | "charenc": "0.0.2", 69 | "crypt": "0.0.2", 70 | "is-buffer": "~1.1.6" 71 | } 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /utils/teams_parser/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sitcon_2022_utils", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "teams_parser.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "md5": "^2.3.0" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /utils/teams_parser/teams_parser.js: -------------------------------------------------------------------------------- 1 | // 將人事表轉換為網站的 json 格式 2 | // 1. 下載 csv 3 | // https://docs.google.com/spreadsheets/d/1P6OJzxRu3pSbTCltH-huaGrQka2NMKSbEWgEB6H-STA/edit#gid=1610495860 4 | // 2. 放在相同資料夾下 5 | // 3. 執行 node teams_parser.js 6 | const fs = require('fs'); 7 | const md5 = require('md5'); 8 | const results = {}; 9 | const file = 'SITCON 2022 工作人員登錄狀況 - 工人名單(已刪除移除工人).csv'; 10 | const data = fs.readFileSync(file, 'utf8'); 11 | const lines = data.split('\n'); 12 | const intros = { 13 | "總召組": "掌握協調年會籌備進度,主持核心討論及決策。", 14 | "行政組": "負責維持年會常務行政事務;工作分為人事、票務,負責工作人員登記、與會人員與報名事宜。", 15 | "議程組": "議程組負責一切與議程相關的事情,舉凡投稿與審稿、講者聯繫、Keynote 與論壇的安排,都是議程組的工作範圍,此外,議程組也負責一部分的大會活動。", 16 | "行銷組": "行銷組是銜接 SITCON 與社會的橋樑,負責探詢潛在的合作單位,連結更多支持 SITCON 理念的創作者、媒體與贊助商,適合善於溝通協調、勇於嘗試的你!", 17 | "場務組": "SITCON 場務組主要負責年會的機動人力、動線、餐飲、報到、物流和防疫的規劃,是人數最多的一組,適合最有熱情、最有活力的朋友們!", 18 | "設計組": "負責年會主視覺設計、網站設計、相關紀念品發想挖坑等事宜,開場動畫與許多會場內的印刷品也都是由設計組設計。", 19 | "財務組": "負責年會與金錢相關的業務。", 20 | "紀錄組": "協助年會與相關活動之影像紀錄,及提供各組所需之影像素材。", 21 | "開發組": "SITCON 開發組主要負責年會的官網與通關 App 開發,適合對網頁開發有興趣、想法,有新鮮肝可以炸的朋友們!\n\n", 22 | "編輯組": "SITCON 編輯組負責年會的社群媒體經營與互動,包含 Facebook、Instagram、Plurk、Twitter、Telegram Channel,以及開源相關活動推廣與其他組別公告事項、大會公告等文案撰寫需求。適合對社群媒體經營有興趣,有新鮮腦汁可以榨的朋友們!", 23 | "製播組": "協助年會當天各會議廳之錄影及直播,並處理議程演講的剪接後製。", 24 | } 25 | // drop first 3 line 26 | lines.shift(); 27 | lines.shift(); 28 | lines.shift(); 29 | lines.shift(); 30 | let teamName = '' 31 | lines.forEach(line => { 32 | const cells = line.replace(/\r/g, '').split(','); 33 | if (cells[0] !== '') { 34 | teamName = cells[0] 35 | } 36 | if (!results[teamName]) { 37 | results[teamName] = { 38 | name: teamName, 39 | intro: intros[teamName], 40 | members: [] 41 | } 42 | } 43 | let [_, name, type, email] = cells; 44 | if (name === '勝勝') { 45 | name = '可愛勝勝寶寶' 46 | } 47 | results[teamName].members.push({ 48 | name, 49 | type, 50 | emailHash: md5(email.trim().toLowerCase()), 51 | }) 52 | }) 53 | fs.writeFileSync('../../src/assets/teams.json', JSON.stringify(results, null, 2)); 54 | console.log('done'); 55 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'url' 2 | import { defineConfig } from 'vite' 3 | import vue from '@vitejs/plugin-vue' 4 | import Components from 'unplugin-vue-components/vite' 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | base: '/2022/', 8 | plugins: [ 9 | vue(), 10 | Components({ 11 | extensions: ['vue'], 12 | directoryAsNamespace: true, 13 | include: [/\.vue$/, /\.vue\?vue/], 14 | dts: true, 15 | }) 16 | ], 17 | resolve: { 18 | alias: { 19 | '@': fileURLToPath(new URL('./src', import.meta.url)) 20 | } 21 | }, 22 | ssgOptions: { 23 | dirStyle: 'nested', 24 | formatting: "minify" 25 | }, 26 | }) 27 | --------------------------------------------------------------------------------