>  기사  >  웹 프론트엔드  >  VuePress + Github Pages를 사용하여 블로그를 구축하는 방법을 빠르게 알려주는 기사(실용)

VuePress + Github Pages를 사용하여 블로그를 구축하는 방법을 빠르게 알려주는 기사(실용)

青灯夜游
青灯夜游앞으로
2021-12-20 18:45:403137검색

이 글은 VuePress의 실제 경험을 공유할 것입니다. 이 글을 통해 VuePress + Github 페이지를 사용하여 블로그를 빠르게 구축하는 방법을 알려드리겠습니다.

VuePress + Github Pages를 사용하여 블로그를 구축하는 방법을 빠르게 알려주는 기사(실용)

최근 TypeScript 공식 문서인 Hanbook의 번역을 완료했습니다. 총 14개의 기사가 있으며 이는 중국 최고의 TypeScript4 입문 튜토리얼 중 하나라고 할 수 있습니다. 누구나 쉽게 읽을 수 있도록 VuePress + Github Pages를 사용하여 블로그를 구축했습니다. 블로그 효과는 다음과 같습니다.

0. 간단한 스타일과 구성을 갖춘 Vue 기반의 정적 웹 사이트 생성기 또한 비교적 간단합니다. VitePress

를 사용하지 않는 이유는 기존 테마를 사용하고 싶고 VitePress가 현재 VuePress 생태계와 호환되지 않는다는 점을 고려하여

VuePress@next

를 선택하지 않기 때문입니다. 아직은 베타 단계이므로 안정화된 후 마이그레이션을 시작하겠습니다. [관련 권장사항: "

vue.js Tutorial"]1. 로컬 구성빠른 시작VuePress 공식 웹사이트와 동일

:

1. 원하는 패키지를 만들고 입력하세요. 관리 서버를 초기화합니다

// 文件名自定义
mkdir vuepress-starter && cd vuepress-starter
3. VuePress를 로컬 종속성으로 설치합니다
yarn init # npm init

4. VuePress는 문서를 문서 루트 디렉터리로 사용하므로 이 README.md는 홈페이지

yarn add -D vuepress # npm install -D vuepress

5와 같습니다. . package.json

mkdir docs && echo '# Hello VuePress' > docs/README.md

6에 일부 스크립트를 추가합니다. 로컬에서 서버를 시작합니다

{
  "scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
  }
}

VuePress는

http://localhost:8080

에서 핫 리로드된 개발 서버를 시작합니다(새 창에서 열림).

2. 기본 구성

문서 디렉터리에 모든 VuePress 관련 파일이 위치할 .vuepress 디렉터리를 만듭니다. 이 시점에서 프로젝트 구조는 다음과 같을 수 있습니다.

yarn docs:dev # npm run docs:dev
.vuepress 폴더 아래에 config.js를 추가하여 SEO를 용이하게 하기 위해 웹 사이트의 제목과 설명을 구성합니다. :
.
├─ docs
│  ├─ README.md
│  └─ .vuepress
│     └─ config.js
└─ package.json

현재 인터페이스는 다음과 유사합니다:

3. 탐색 모음 추가.vuepress 目录,所有 VuePress 相关的文件都会被放在这里。此时你的项目结构可能是这样:
module.exports = {
  title: 'TypeScript4 文档',
  description: 'TypeScript4 最新官方文档翻译'
}

.vuepress 文件夹下添加 config.js,配置网站的标题和描述,方便 SEO:

module.exports = {
    title: '...',
    description: '...',
    themeConfig: {
        nav: [
            { text: '首页', link: '/' },
            { 
                text: '冴羽的 JavaScript 博客', 
                items: [
                    { text: 'Github', link: 'https://github.com/mqyqingfeng' },
                    { text: '掘金', link: 'https://juejin.cn/user/712139234359182/posts' }
                ]
            }
        ]
    }
}

此时界面类似于:

3. 添加导航栏

我们现在在页首的右上角添加导航栏,修改 config.js:

.
├─ docs
│  ├─ README.md
│  └─ .vuepress
│     └─ config.js
|  └─ handbook
|  	  └─ ConditionalTypes.md
|	    └─ Generics.md
└─ package.json

效果如下:

更多的配置参考 VuePress 导航栏:

https://vuepress.vuejs.org/zh/theme/default-theme-config.html#%E5%AF%BC%E8%88%AA%E6%A0%8F

4. 添加侧边栏

现在我们添加一些 md 文档,目前文档的目录如下:

module.exports = {
    themeConfig: {
        nav: [...],
        sidebar: [
            {
                title: '欢迎学习',
                path: '/',
                collapsable: false, // 不折叠
                children: [
                    { title: "学前必读", path: "/" }
                ]
            },
            {
              title: "基础学习",
              path: '/handbook/ConditionalTypes',
              collapsable: false, // 不折叠
              children: [
                { title: "条件类型", path: "/handbook/ConditionalTypes" },
                { title: "泛型", path: "/handbook/Generics" }
              ],
            }
          ]
    }
}

我们在 config.js 配置如下:

npm install vuepress-theme-reco --save-dev
# or
yarn add vuepress-theme-reco

对应的效果如下:

5. 更换主题

现在基本的目录和导航功能已经实现,但如果我还想要加载 loading、切换动画、模式切换(暗黑模式)、返回顶部、评论等功能呢,为了简化开发成本,我们可以直接使用主题,这里使用的主题是 vuepress-theme-rec(https://vuepress-theme-reco.recoluan.com/):

现在我们安装 vuepress-theme-reco:

module.exports = {
  // ...
  theme: 'reco'
  // ...
}

然后在 config.js 里引用该主题:

---
title: 条件类型
author: 冴羽
date: '2021-12-12'
---

刷新一下页面,我们会发现一些细节的改变,比如加载时的 loading 动画、以及支持切换暗黑模式:

6. 添加文章信息

但我们也会发现,像条件类型这一篇文章,条件类型(Conditional Types)

이제 상단에 탐색 모음을 추가합니다. 페이지 상단 오른쪽에서 config.js를 수정하세요:

module.exports = {
  // ...
  locales: {
    '/': {
      lang: 'zh-CN'
    }
  },
  // ...
}

효과는 다음과 같습니다:🎜🎜🎜
🎜자세한 구성은 다음을 참조하세요. VuePress 탐색 모음: 🎜🎜https://vuepress.vuejs.org/zh/theme /default-theme-config.html#%E5%AF%BC%E8%88%AA%E6%A0%8F🎜

4. 사이드바 추가 🎜🎜이제 일부 md 문서를 추가합니다. 현재 문서 디렉터리는 다음과 같습니다. 🎜
module.exports = {
  //...
  themeConfig: {
    subSidebar: 'auto'
  }
  //...
}
🎜 config.js에서 구성합니다. 🎜<pre class="brush:js;toolbar:false;">$accentColor = #3178c6</pre>🎜해당 효과는 다음과 같습니다. 🎜🎜<img src="https:%20//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b53be542e6134a0c8637034cf4048618~tplv-k3u1fbpfcp-watermark.%20awebp" alt="" loading="lazy" class="medium-zoom-image">🎜5. 테마를 변경하세요🎜🎜이제 기본 디렉터리 및 탐색 기능이 구현되었지만, 로드, 애니메이션 전환, 모드 전환(다크 모드), 맨 위로 돌아가기, 댓글도 원할 경우에는 개발 비용을 단순화하기 위해 테마를 직접 사용할 수 있습니다. 여기서 사용한 테마는 다음과 같습니다. vuepress-theme-rec (https://vuepress-theme-reco.recoluan.com/): 🎜🎜이제 vuepress-theme -reco를 설치합니다: 🎜<pre class="brush:js;toolbar:false;">// 通过检查,查看元素样式声明 .dark .content__default code { background-color: rgba(58,58,92,0.7); color: #fff; }</pre>🎜그런 다음 <code>config.js에서 테마를 참조합니다. >: 🎜
.page .page-title {
   display: none;
}
🎜페이지를 새로 고치면 로딩 중 로딩 애니메이션, 다크 모드 전환 지원 등 몇 가지 세부적인 변경 사항을 확인할 수 있습니다. :🎜🎜🎜

6. 기사 정보 추가🎜🎜그러나 조건부 유형에 대한 이 기사처럼 Conditional Types )가 두 번 나타나는 것은 이 항목이 자동으로 첫 번째 큰 제목을 제목으로 추출하기 때문입니다. 이 기사에서는 각 기사의 md 파일에 몇 가지 정보 수정 사항을 추가할 수 있습니다. 🎜
module.exports = {
  	// 路径名为 "/<REPO>/"
    base: &#39;/learn-typescript/&#39;,
  	//...
}
🎜이 때 기사의 효과는 다음과 같습니다. 🎜

但如果你不想要标题、作者、时间这些信息呢,我们可以在样式里隐藏,这个稍后会讲到。

7. 设置语言

注意,上图的文章时间,我们写入的格式为 2021-12-12 ,但是显示的是 12/12/2021,这是因为  VuePress 默认的 lang 为 en-US,我们修改一下 config.js:

module.exports = {
  // ...
  locales: {
    &#39;/&#39;: {
      lang: &#39;zh-CN&#39;
    }
  },
  // ...
}

可以发现时间换了一种展示方式:

8. 开启目录结构

在原本的主题里,我们发现每篇文章的目录结构出现在左侧:

而 vuepress-theme-reco 将原有的侧边栏的中的多级标题移出,生成子侧边栏,放在了页面的右侧,如果你要全局开启,可在页面 config.js 里设置开启:

module.exports = {
  //...
  themeConfig: {
    subSidebar: &#39;auto&#39;
  }
  //...
}

此时效果如下:

9. 修改主题颜色

VuePress 基于 Vue,所以主题色用的是 Vue 的绿色,然而 TypeScript 的官方色则是蓝色,那如何修改 VuePress 的主题色呢?

你可以创建一个 .vuepress/styles/palette.styl 文件,文件代码如下:

$accentColor = #3178c6

此时可以发现主题颜色变了:

更多的颜色修改参考 VuePress 的 palette.styl

10. 自定义修改样式

如果你想自定义修改一些 DOM 元素的样式呢?就比如在暗黑模式下:

我们发现用作强调的文字颜色比较暗淡,在暗黑模式下看不清楚,我想改下这个文字的颜色和背景色呢?

而 VuePress 提供了一种添加额外样式的简便方法。你可以创建一个 .vuepress/styles/index.styl 文件。这是一个 Stylus 文件,但你也可以使用正常的 CSS 语法。

我们在 .vupress 文件夹下创建这个目录,然后创建 index.styl 文件,代码如下:

// 通过检查,查看元素样式声明
.dark .content__default code {
    background-color: rgba(58,58,92,0.7);
    color: #fff;
}

此时文字就清晰了很多:

那之前我们提到的隐藏每篇文章的标题、作者、时间呢,其实也是类似的方式:

.page .page-title {
   display: none;
}

最后的效果如下:

11. 部署

我们的博客就算是正式的做好了,接下来我们部署到免费的 Github Pages 上。我们在 Github 上新建一个仓库,这里我取得仓库名为:learn-typescript

对应,我们需要在 config.js 添加一个 base 路径配置:

module.exports = {
  	// 路径名为 "/<REPO>/"
    base: &#39;/learn-typescript/&#39;,
  	//...
}

最终的 config.js 文件内容为:

module.exports = {
    title: &#39;TypeScript4 文档&#39;,
    description: &#39;TypeScript4 最新官方文档翻译&#39;,
    base: &#39;/learn-typescript/&#39;,
    theme: &#39;reco&#39;,
    locales: {
        &#39;/&#39;: {
          lang: &#39;zh-CN&#39;
        }
    },
    themeConfig: {
        // lastUpdated: &#39;上次更新&#39;,
        subSidebar: &#39;auto&#39;,
        nav: [
            { text: &#39;首页&#39;, link: &#39;/&#39; },
            { 
                text: &#39;冴羽的 JavaScript 博客&#39;, 
                items: [
                    { text: &#39;Github&#39;, link: &#39;https://github.com/mqyqingfeng&#39; },
                    { text: &#39;掘金&#39;, link: &#39;https://juejin.cn/user/712139234359182/posts&#39; }
                ]
            }
        ],
        sidebar: [
            {
                title: &#39;欢迎学习&#39;,
                path: &#39;/&#39;,
                collapsable: false,
                children: [
                    { title: "学前必读", path: "/" }
                ]
            },
            {
              title: "基础学习",
              path: &#39;/handbook/ConditionalTypes&#39;,
              collapsable: false,
              children: [
                { title: "条件类型", path: "/handbook/ConditionalTypes" },
                { title: "泛型", path: "/handbook/Generics" }
              ],
            }
          ]
    }
}

然后我们在项目 vuepress-starter 目录下建立一个脚本文件:deploy.sh,注意修改一下对应的用户名和仓库名:

#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e

# 生成静态文件
npm run docs:build

# 进入生成的文件夹
cd docs/.vuepress/dist

git init
git add -A
git commit -m &#39;deploy&#39;

# 如果发布到 https://<USERNAME>.github.io/<REPO>
git push -f git@github.com:mqyqingfeng/learn-typescript.git master:gh-pages

cd -

然后命令行切换到 vuepress-starter 目录下,执行  sh deploy.sh,就会开始构建,然后提交到远程仓库,注意这里提交到了 gh-pages 分支,我们查看下对应仓库分支的代码:

我们可以在仓库的 Settings -> Pages 中看到最后的地址:

마지막으로 생성한 주소는 https://mqyqingfeng.github.io/learn-typescript/

이제 VuePress 및 Github 페이지 배포가 완료되었습니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 소개를 방문하세요! !

위 내용은 VuePress + Github Pages를 사용하여 블로그를 구축하는 방법을 빠르게 알려주는 기사(실용)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제