[
  {
    "path": ".browserslistrc",
    "content": "> 1%\nlast 2 versions\n"
  },
  {
    "path": ".editorconfig",
    "content": "[*.{js,jsx,ts,tsx,vue}]\nindent_style = space\nindent_size = 2\nend_of_line = lf\ntrim_trailing_whitespace = true\ninsert_final_newline = true\nmax_line_length = 100\n"
  },
  {
    "path": ".eslintrc.js",
    "content": "module.exports = {\n  root: true,\n  env: {\n    node: true,\n  },\n  extends: ['plugin:vue/essential', '@vue/airbnb', 'prettier', 'plugin:prettier/recommended'],\n  plugins: ['prettier'],\n  rules: {\n    'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',\n    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',\n    'prettier/prettier': [\n      'error',\n      {\n        singleQuote: true,\n        semi: true,\n        trailingComma: 'all',\n        arrowParens: 'always',\n      },\n    ],\n  },\n  parserOptions: {\n    parser: 'babel-eslint',\n  },\n};\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\nnode_modules\n/dist\n\n# local env files\n.env.local\n.env.*.local\n\n# Log files\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# Editor directories and files\n.idea\n.vscode\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 wormwlrm\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# 🎴 곽철용 짤 생성기\n\n![preview](/preview.gif)\n\n*웹사이트에서 간편하게 곽철용 짤을 편집하고, 다운로드하여 친구들에게 전송할 수 있습니다.*\n\n## 어이 젊은 친구, 개발자답게 클론해\n\n```bash\ngit clone https://github.com/wormwlrm/kwakcheolyong.git\ncd kwakcheolyong\nnpm install\nnpm run serve\n```\n\n## 화란아, 나도 블로그가 있다\n\n> [이 곳](https://wormwlrm.github.io/2019/10/13/Kwakcheolyong-Image-Creator-Development-Story.html)에서 만들어진 스토리를 확인하실 수 있습니다.\n\n## 관리자는 무너졌냐, 이 새끼야\n\n- [wormwlrm](https://github.com/wormwlrm)\n\n## 고니야, PR 한 번 찔러봐라\n\n어떤 양식의 풀 리퀘스트도 환영합니다.\n\n## 이 안에 도움을 받은 소스가 있다, 이게 내 결론이다\n\n- [개비스콘 짤 생성기](https://github.com/rajephon/gvsc)\n- [Velog 짤 생성기](https://velog.io/@godori/banner-maker)\n\n## 묻고 MIT 라이센스로 가\n\nMIT License\n"
  },
  {
    "path": "babel.config.js",
    "content": "module.exports = {\n  presets: ['@vue/app'],\n};\n"
  },
  {
    "path": "deploy.bat",
    "content": "REM build\ncall npm run build\n\nREM navigate into the build output directory\ncd dist\n\ngit init\ngit add -A\ngit commit -m 'deploy'\n\ngit push -f https://github.com/wormwlrm/kwakcheolyong.git master:gh-pages\n\ncd ../"
  },
  {
    "path": "deploy.sh",
    "content": "#!/usr/bin/env sh\n\n# abort on errors\nset -e\n\n# build\nnpm run build\n\n# navigate into the build output directory\ncd dist\n\n# if you are deploying to a custom domain\n# echo 'www.example.com' > CNAME\n\ngit init\ngit add -A\ngit commit -m 'deploy'\n\n# if you are deploying to https://<USERNAME>.github.io\n# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master\n\n# if you are deploying to https://<USERNAME>.github.io/<REPO>\ngit push -f git@github.com:wormwlrm/kwakcheolyong.git master:gh-pages\n\ncd -"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"kwakcheolyong\",\n  \"version\": \"0.1.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"serve\": \"vue-cli-service serve\",\n    \"build\": \"vue-cli-service build\",\n    \"lint\": \"vue-cli-service lint\"\n  },\n  \"dependencies\": {\n    \"core-js\": \"^2.6.5\",\n    \"element-theme-dark\": \"^1.0.3\",\n    \"element-ui\": \"^2.12.0\",\n    \"vue\": \"^2.6.10\",\n    \"vue-google-adsense\": \"^1.7.0\",\n    \"vue-script2\": \"^2.1.0\"\n  },\n  \"devDependencies\": {\n    \"@vue/cli-plugin-babel\": \"^3.11.0\",\n    \"@vue/cli-plugin-eslint\": \"^3.11.0\",\n    \"@vue/cli-service\": \"^3.11.0\",\n    \"@vue/eslint-config-airbnb\": \"^4.0.0\",\n    \"babel-eslint\": \"^10.0.1\",\n    \"eslint\": \"^5.16.0\",\n    \"eslint-config-prettier\": \"^6.4.0\",\n    \"eslint-plugin-prettier\": \"^3.1.1\",\n    \"eslint-plugin-vue\": \"^5.2.3\",\n    \"node-sass\": \"^4.9.0\",\n    \"sass-loader\": \"^7.1.0\",\n    \"vue-template-compiler\": \"^2.6.10\"\n  }\n}\n"
  },
  {
    "path": "postcss.config.js",
    "content": "module.exports = {\n  plugins: {\n    autoprefixer: {},\n  },\n};\n"
  },
  {
    "path": "public/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n  <meta charset=\"utf-8\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  <meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">\n  <link rel=\"icon\" href=\"<%= BASE_URL %>favicon.ico\">\n  <title>곽철용 짤 생성기 - 재그지그</title>\n  <meta property=\"og:title\" content=\"곽철용 짤 생성기 - 재그지그\">\n  <meta name=\"description\" content=\"어이, 젊은 친구! 신사답게 행동해.\">\n  <meta property=\"og:description\" content=\"어이, 젊은 친구! 신사답게 행동해.\">\n  <meta property=\"og:image\" content=\"<%= BASE_URL %>og.png\">\n  <meta property=\"og:url\" content=\"https://wormwlrm.github.io/kwakcheolyong\">\n  <meta name=\"theme-color\" content=\"#212529\">\n  <!-- Google Tag Manager -->\n  <script>\n    (function (w, d, s, l, i) {\n      w[l] = w[l] || [];\n      w[l].push({\n        'gtm.start': new Date().getTime(),\n        event: 'gtm.js'\n      });\n      var f = d.getElementsByTagName(s)[0],\n        j = d.createElement(s),\n        dl = l != 'dataLayer' ? '&l=' + l : '';\n      j.async = true;\n      j.src =\n        'https://www.googletagmanager.com/gtm.js?id=' + i + dl;\n      f.parentNode.insertBefore(j, f);\n    })(window, document, 'script', 'dataLayer', 'GTM-TXHVWXL');\n  </script>\n  <!-- End Google Tag Manager -->\n  <!-- Global site tag (gtag.js) - Google Analytics -->\n  <script async src=\"https://www.googletagmanager.com/gtag/js?id=UA-121984235-3\"></script>\n  <script>\n    window.dataLayer = window.dataLayer || [];\n\n    function gtag() {\n      dataLayer.push(arguments);\n    }\n    gtag('js', new Date());\n    gtag('config', 'UA-121984235-3');\n  </script>\n\n</head>\n\n<body>\n  <noscript>\n    <strong>\n      We're sorry but kwakcheolyong doesn't work properly without JavaScript enabled.\n      Please enable it to continue.\n    </strong>\n  </noscript>\n  <div id=\"app\"></div>\n  <!-- built files will be auto injected -->\n</body>\n\n</html>\n"
  },
  {
    "path": "src/App.vue",
    "content": "<template>\n  <div id=\"app\">\n    <el-container>\n      <el-header>\n        <h2 class=\"kwakcheolyong__title\">곽철용 짤 생성기</h2>\n      </el-header>\n      <el-main>\n        <el-form :label-position=\"labelPosition\" label-width=\"120px\">\n          <el-select\n            class=\"kwakcheolyong__image-selector\"\n            :value=\"imageIndex\"\n            @input=\"onImageChanged($event)\"\n          >\n            <el-option v-for=\"img in images\" :value=\"img.id\" :key=\"img.id\" :label=\"img.name\" />\n          </el-select>\n          <el-card shadow=\"none\" class=\"kwakcheolyong__canvas-wrapper\">\n            <canvas id=\"canvas\" ref=\"canvas\" :width=\"1000\" :height=\"427\">\n              이 브라우저는 HTML5의 canvas 요소를 지원하지 않습니다\n            </canvas>\n          </el-card>\n          <el-form-item label=\"원본 대사\">\n            <blockquote v-html=\"images[imageIndex].original\"></blockquote>\n          </el-form-item>\n          <el-form-item label=\"텍스트\">\n            <el-input\n              type=\"textarea\"\n              class=\"kwakcheolyong--full-width\"\n              :value=\"option.text\"\n              @input=\"onValueChanged('text', $event)\"\n            />\n          </el-form-item>\n          <el-row>\n            <el-col :xs=\"24\" :sm=\"12\" :md=\"8\">\n              <el-form-item label=\"폰트 종류\">\n                <el-select\n                  :value=\"option.fontFamily\"\n                  @input=\"onValueChanged('fontFamily', $event)\"\n                  class=\"kwakcheolyong--full-width\"\n                >\n                  <el-option value=\"Nanum Gothic\">Nanum Gothic</el-option>\n                  <el-option value=\"Gulim\">Gulim</el-option>\n                  <el-option value=\"Arial\">Arial</el-option>\n                  <el-option value=\"Helvetica\">Helvetica</el-option>\n                </el-select>\n              </el-form-item>\n            </el-col>\n\n            <el-col :xs=\"24\" :sm=\"12\" :md=\"8\">\n              <el-form-item label=\"폰트 사이즈\">\n                <el-select\n                  :value=\"option.fontSize\"\n                  @input=\"onValueChanged('fontSize', $event)\"\n                  class=\"kwakcheolyong--full-width\"\n                >\n                  <el-option :value=\"15\">15</el-option>\n                  <el-option :value=\"20\">20</el-option>\n                  <el-option :value=\"25\">25</el-option>\n                  <el-option :value=\"30\">30</el-option>\n                  <el-option :value=\"35\">35</el-option>\n                  <el-option :value=\"40\">40</el-option>\n                  <el-option :value=\"45\">45</el-option>\n                </el-select>\n              </el-form-item>\n            </el-col>\n            <el-col :xs=\"24\" :sm=\"12\" :md=\"8\">\n              <el-form-item label=\"폰트 색상\">\n                <el-color-picker\n                  :value=\"option.fontColor\"\n                  @input=\"onValueChanged('fontColor', $event)\"\n                />\n              </el-form-item>\n            </el-col>\n\n            <el-col :xs=\"24\" :sm=\"12\" :md=\"8\">\n              <el-form-item label=\"폰트 두께\">\n                <el-select\n                  :value=\"option.fontWeight\"\n                  @input=\"onValueChanged('fontWeight', $event)\"\n                  class=\"kwakcheolyong--full-width\"\n                >\n                  <el-option value=\"lighter\" label=\"얇게\"></el-option>\n                  <el-option value=\"normal\" label=\"보통\"></el-option>\n                  <el-option value=\"bolder\" label=\"두껍게\"></el-option>\n                </el-select>\n              </el-form-item>\n            </el-col>\n            <el-col :xs=\"24\" :sm=\"12\" :md=\"8\">\n              <el-form-item label=\"폰트 테두리\">\n                <el-select\n                  :value=\"option.textBorder\"\n                  @input=\"onValueChanged('textBorder', $event)\"\n                  class=\"kwakcheolyong--full-width\"\n                >\n                  <el-option value=\"transparent\" label=\"없음\"></el-option>\n                  <el-option value=\"black\" label=\"검정색\"></el-option>\n                  <el-option value=\"white\" label=\"흰색\"></el-option>\n                </el-select>\n              </el-form-item>\n            </el-col>\n          </el-row>\n\n          <el-form-item label>\n            <el-button @click=\"downloadCanvas\" id=\"download\">다운로드</el-button>\n          </el-form-item>\n        </el-form>\n      </el-main>\n      <el-alert\n        :title=\"\n          `\n          웹뷰(페이스북 앱 등)에서는 다운로드 버튼이 작동하지 않습니다.\n          다른 브라우저를 이용하면 정상적으로 이용하실 수 있습니다.\n          `\n        \"\n        type=\"info\"\n        effect=\"dark\"\n      ></el-alert>\n      <br />\n      <Adsense data-ad-client=\"ca-pub-8996192158520412\" data-ad-slot=\"5328204023\"></Adsense>\n      <el-footer>\n        <p>\n          Created by\n          <el-link\n            type=\"primary\"\n            :underline=\"false\"\n            target=\"_blank\"\n            href=\"https://github.com/wormwlrm\"\n          >\n            재그지그\n          </el-link>\n          |\n          <el-link\n            type=\"primary\"\n            :underline=\"false\"\n            target=\"_blank\"\n            href=\"https://github.com/wormwlrm/kwakcheolyong\"\n          >\n            Github\n          </el-link>\n          |\n          <el-link\n            type=\"primary\"\n            :underline=\"false\"\n            target=\"_blank\"\n            href=\"https://wormwlrm.github.io/2019/10/13/Kwakcheolyong-Image-Creator-Development-Story.html\"\n          >\n            제작 과정 보러가기\n          </el-link>\n          |\n          <el-link\n            type=\"primary\"\n            :underline=\"false\"\n            target=\"_blank\"\n            href=\"mailto:wormwlrm@naver.com\"\n          >\n            이슈 / 버그 제보\n          </el-link>\n        </p>\n      </el-footer>\n    </el-container>\n  </div>\n</template>\n\n<script>\nimport images from '@/images';\n\nexport default {\n  name: 'app',\n\n  data() {\n    return {\n      windowWidth: 0,\n      imageIndex: 0,\n      option: {\n        fontFamily: 'Nanum Gothic',\n        fontSize: 30,\n        fontColor: '#FFFFFF',\n        fontWeight: 'normal',\n        text: '',\n        textBorder: 'black',\n      },\n    };\n  },\n\n  computed: {\n    images() {\n      return images;\n    },\n\n    labelPosition() {\n      return this.windowWidth > 768 ? 'right' : 'top';\n    },\n  },\n\n  methods: {\n    onValueChanged(key, value) {\n      this.option[key] = value;\n      this.updateCanvas();\n    },\n\n    onImageChanged(value) {\n      this.imageIndex = value;\n      this.updateCanvas();\n    },\n\n    updateCanvas() {\n      if (!this.$refs.canvas) return;\n      this.updateCanvasImage();\n    },\n\n    updateCanvasImage() {\n      const { canvas } = this.$refs;\n      const ctx = canvas.getContext('2d');\n      const img = new Image();\n      img.src = this.images[this.imageIndex].src;\n      img.onload = () => {\n        ctx.drawImage(img, 0, 0);\n        this.updateCanvasText();\n      };\n    },\n\n    updateCanvasText() {\n      const { canvas } = this.$refs;\n\n      const { text, fontFamily, fontSize, fontColor, fontWeight, textBorder } = this.option;\n\n      const ctx = canvas.getContext('2d');\n\n      ctx.textAlign = 'center'; // 가로 가운데 정렬\n      ctx.textBaseline = 'middle'; // 세로 가운데 정렬\n      ctx.font = `${fontWeight} ${fontSize}px ${fontFamily}`;\n\n      const lines = text.split('\\n');\n\n      lines.forEach((line, index) => {\n        // ctx.shadowColor = 'black';\n        // ctx.shadowBlur = 10;\n        ctx.lineWidth = 5;\n        ctx.strokeStyle = `${textBorder}`;\n        ctx.strokeText(\n          line,\n          canvas.width / 2,\n          canvas.height - fontSize * (lines.length - index) * 1.5,\n        );\n\n        ctx.fillStyle = fontColor;\n        ctx.fillText(\n          line,\n          canvas.width / 2,\n          canvas.height - fontSize * (lines.length - index) * 1.5,\n        );\n      });\n    },\n\n    downloadCanvas() {\n      const url = this.$refs.canvas.toDataURL('image/png');\n      const link = document.createElement('a');\n      link.href = url;\n      link.setAttribute('download', `${this.images[this.imageIndex].name}.png`);\n      document.body.appendChild(link);\n      link.click();\n      document.body.removeChild(link);\n    },\n\n    calculateWindowWidth() {\n      this.windowWidth = window.innerWidth;\n    },\n  },\n\n  mounted() {\n    this.calculateWindowWidth();\n    this.$nextTick(() => {\n      window.addEventListener('resize', this.calculateWindowWidth);\n\n      this.updateCanvas();\n    });\n  },\n};\n</script>\n\n<style lang=\"scss\">\n@import '@/style/variable.scss';\n@import url('https://fonts.googleapis.com/css?family=Nanum+Gothic&display=swap');\n\nhtml,\nbody {\n  margin: 0;\n  padding: 0;\n  background-color: $gray-900;\n}\n\n#app {\n  position: relative;\n  height: 100vh;\n  width: 100vw;\n  padding: 20px;\n  box-sizing: border-box;\n\n  .kwakcheolyong {\n    &__title {\n      text-align: center;\n    }\n\n    &__image-selector {\n      width: 250px;\n      left: 50%;\n      transform: translateX(-50%);\n    }\n\n    &__canvas-wrapper {\n      width: 100%;\n      max-width: 1040px;\n      margin: 20px auto;\n    }\n\n    &--full-width {\n      width: 100%;\n    }\n  }\n\n  #canvas {\n    display: block;\n    width: 100%;\n    max-width: 1000px;\n    border: 1px solid $black;\n  }\n\n  blockquote {\n    border: 1px solid $gray-900;\n    border-radius: 4px;\n    background: $gray-800;\n    border-left: 10px solid $gray-700;\n    margin: 10px 0;\n    padding: 0.5em 10px;\n    color: $gray-200;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/images.js",
    "content": "import 내밑에서일할생각없냐 from '@/assets/내밑에서일할생각없냐.png';\nimport 늑대새끼가어떻게개밑으로들어갑니까 from '@/assets/늑대새끼가어떻게개밑으로들어갑니까.png';\nimport 달건이 from '@/assets/달건이.png';\nimport 담배하나찔러봐라 from '@/assets/담배하나찔러봐라.png';\nimport 또지면넌변사체가된다 from '@/assets/또지면넌변사체가된다.png';\nimport 묻고더블로가 from '@/assets/묻고더블로가.png';\nimport 신사답게행동해 from '@/assets/신사답게행동해.png';\nimport 마그때는깡패가되는거야 from '@/assets/마그때는깡패가되는거야.png';\nimport 어이젊은친구 from '@/assets/어이젊은친구.png';\nimport 마포대교 from '@/assets/마포대교.png';\nimport 이게내결론이다 from '@/assets/이게내결론이다.png';\nimport 이안에배신자가있다 from '@/assets/이안에배신자가있다.png';\nimport 퍽퍽 from '@/assets/퍽퍽.png';\nimport 한끗 from '@/assets/한끗.png';\nimport 한끗인데5억을태워 from '@/assets/한끗인데5억을태워.png';\nimport 화란아나도순정이있다 from '@/assets/화란아나도순정이있다.png';\n\nexport default [\n  {\n    id: 0,\n    src: 어이젊은친구,\n    name: '어이 젊은 친구',\n    original: '어이 젊은 친구, 신사답게 행동해.',\n  },\n  {\n    id: 1,\n    src: 신사답게행동해,\n    name: '신사답게 행동해',\n    original: '어이 젊은 친구, 신사답게 행동해.',\n  },\n  {\n    id: 2,\n    src: 화란아나도순정이있다,\n    name: '화란아, 나도 순정이 있다',\n    original: '화란아, 나도 순정이 있다.',\n  },\n  {\n    id: 3,\n    src: 마그때는깡패가되는거야,\n    name: '마 그때는 깡패가 되는 거야!',\n    original: '니가 이런 식으로 내 순정을 짓밟으면은 마 그때는 깡패가 되는 거야!',\n  },\n  {\n    id: 4,\n    src: 또지면넌변사체가된다,\n    name: '또 지면 넌 변사체가 된다',\n    original: '무석아, 쟤 이길 수 있겠냐?<br>또 지면 넌 변사체가 된다',\n  },\n  {\n    id: 5,\n    src: 묻고더블로가,\n    name: '묻고 더블로 가!',\n    original: '묻고 더블로 가!',\n  },\n  {\n    id: 6,\n    src: 한끗,\n    name: '한 끗?',\n    original: '한 끗? 한 끗인데 5억을 태워?',\n  },\n  {\n    id: 7,\n    src: 한끗인데5억을태워,\n    name: '한 끗인데 5억을 태워?',\n    original: '한 끗? 한 끗인데 5억을 태워?',\n  },\n  {\n    id: 8,\n    src: 내밑에서일할생각없냐,\n    name: '내 밑에서 일 할 생각 없냐?',\n    original: '야! 너, 내 밑에서 일 할 생각 없냐?',\n  },\n  {\n    id: 9,\n    src: 늑대새끼가어떻게개밑으로들어갑니까,\n    name: '늑대새끼가 어떻게 개 밑으로 들어갑니까',\n    original: '아이~ 늑대새끼가 어떻게 개 밑으로 들어갑니까.',\n  },\n  {\n    id: 10,\n    src: 이안에배신자가있다,\n    name: '이 안에 배신자가 있다',\n    original: '카메라도 안 되고.. 약도 안 되고.. 이 안에 배신자가 있다.',\n  },\n  {\n    id: 11,\n    src: 이게내결론이다,\n    name: '이게 내 결론이다',\n    original: '이게 내 결론이다. 내 돈 어딨어? 아~ 잘 모르시지?',\n  },\n  {\n    id: 12,\n    src: 퍽퍽,\n    name: '퍽퍽',\n    original: '(배신한 박무성을 볼링핀으로 때리는 장면)',\n  },\n  {\n    id: 13,\n    src: 달건이,\n    name: '내가 달건이 생활을 열일곱에 시작했다.',\n    original:\n      '내가 달건이 생활을 열일곱에 시작했다. 그 나이 때 달건이 시작한 놈들이 백 명이다 치면은.. 지금 나만큼 사는 놈은 나 혼자 뿐이야.<br>나는 어떻게 여기까지 왔느냐? 잘난 놈 제끼고. 못난 놈 보내고. 안경잽이같이 배신하는 새끼들... 다 죽였다.',\n  },\n  {\n    id: 14,\n    src: 담배하나찔러봐라,\n    name: '고니야, 담배 하나 찔러봐라',\n    original: '고니야, 담배 하나 찔러봐라',\n  },\n  {\n    id: 15,\n    src: 마포대교,\n    name: '마포대교는 무너졌냐, 이 새끼야?',\n    original: `회장님, 올림픽대로가 막힐 것 같습니다.<br>마포대교는 무너졌냐, 이 새끼야?`,\n  },\n];\n"
  },
  {
    "path": "src/main.js",
    "content": "import Vue from 'vue';\nimport ElementUI from 'element-ui';\nimport locale from 'element-ui/lib/locale/lang/ko';\nimport Ads from 'vue-google-adsense';\nimport 'element-ui/lib/theme-chalk/index.css';\n// eslint-disable-next-line\nimport 'element-theme-dark';\n\nimport App from './App.vue';\n\nVue.use(require('vue-script2'));\n\nVue.use(Ads.Adsense);\n\nVue.use(ElementUI, {\n  locale,\n});\n\nVue.config.productionTip = false;\n\nnew Vue({\n  render: (h) => h(App),\n}).$mount('#app');\n"
  },
  {
    "path": "src/style/variable.scss",
    "content": "$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #868e96 !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;"
  },
  {
    "path": "vue.config.js",
    "content": "module.exports = {\n  publicPath: process.env.NODE_ENV === 'production' ? '/kwakcheolyong/' : '/',\n};\n"
  }
]