vuePress博客搭建指南

vuePress博客搭建指南

须要node环境和npm支css

vuePress概述

Vue 驱动的静态网站生成器
基于markdown语法生成网页
可自定义和扩展样式
能够发布至githubhtml

安装初始化

  • 全局安装

更改npm默认下载路径 为taobao源

npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global

确认成功

npm config get registryvue

$ npm install -g vuepress
  • 建立个文件夹做为目录
$ mkdir vuepress-blog
该目录做为整本书的项目目录
  • 项目初始化
$ cd vuepress-blog
$ npm init -y

初始化后会生成一个package.json文件node

  • 在当前目录中建立一个docs目录
$ mkdir docs
# 主要存放博客书籍内容

首页内容书写(默认主题提供)webpack

---
home: true
heroImage: /logo.jpg
actionText: 快速上手 →
actionLink: /zh/guide/
features:
- title: 简洁至上
  details: 以 Markdown 为中心的项目结构,以最少的配置帮助你专一于写做。
- title: Vue驱动
  details: 享受 Vue + webpack 的开发体验,在 Markdown 中使用 Vue 组件,同时可使用 Vue 来开发自定义主题。
- title: 高性能
  details: VuePress 为每一个页面预渲染生成静态的 HTML,同时在页面被加载的时候,将做为 SPA 运行。
footer: MIT Licensed | Copyright © 2018-present Evan You
---

核心配置

  • docs目录下建立.vuepress目录
$ cd docs
$ mkdir .vuepress
# 主要存放配置
  • 新建总配置文件config.js
$ cd .vuepress
$ touch config.js
# config是整个项目的核心配置文件,全部菜单、栏目相关的配置均配置在该模块中
  • config.js中加入内容
module.exports = {
    title: '知码学院',
    description: '君哥带你上王者',
    dest: './dist',
    port: '7777',
    head: [
        ['link', {rel: 'icon', href: '/logo.jpg'}]
    ],
    markdown: {
        lineNumbers: true
    },
    themeConfig: {
        nav: [{
            text: '懵逼指南', link: '/guide/'
        }],
        sidebar: {'/guide/':[
            {
                  title:'新手指南',
                  collapsable: true,
                  children:[
                    '/guide/notes/one',
                  ]
                },
                {
                  title:'知码学院',
                  collapsable: true,
                  children:[
                    '/guide/notes/two',
                  ]
                }
            ]
        },
        sidebarDepth: 2,
        lastUpdated: 'Last Updated',
        searchMaxSuggestoins: 10,
        serviceWorker: {
            updatePopup: {
                message: "有新的内容.",
                buttonText: '更新'
            }
        },
        editLinks: true,
        editLinkText: '在 GitHub 上编辑此页 !'
    }
}

上述配置中themeConfig处有2个关键配置,navsidebar,咱们后续单独讲解git

  • 运行
vuepress dev docs

导航栏配置

  • nav配置github

    nav是顶部栏目导航web

在这里插入图片描述
接下来咱们在当前目录建立一个nav.js面试

$ touch nav.js
# 由于config.js中引入了nav,因此咱们要提供一个来存放栏目

编辑nav.jsnpm

加入以下内容

module.exports = [
    {
        text: '懵逼指南', link: '/guide/'
    },
    {
        text: '面试宝典', link: '/baodian/',
		items: [
            {text: '初级开发篇', link: '/baodian/zero/'},
            {text: '中高进阶篇', link: '/baodian/high/'},
        ]
    },
    {
        text: '工具箱',
        items: [
			{
                text: '在线编辑',
				items: [
					{text: '图片压缩', link: 'https://tinypng.com/'}
				]
            },
			{
                text: '在线服务',
				items: [
					{text: '阿里云', link: 'https://www.aliyun.com/'},
					{text: '腾讯云', link: 'https://cloud.tencent.com/'}
				]
            },
			{
                text: '博客指南',
				items: [
					{text: '掘金', link: 'https://juejin.im/'},
					{text: 'CSDN', link: 'https://blog.csdn.net/'}
				]
            }
        ]
    }
]
  • nav配置注意点
    • nav能够支持本地目录和连接
    • navtextlinkitems组成
      • text:栏目名(项名)
      • link:连接,能够指向本地目录和http地址
      • items:能够包含多个textlink,能够继续反复套用组成复杂的菜单
  • nav配置时须要与本地的目录对应
    • 如上述我配置了懵逼指南和面试宝典栏目
    • 懵逼指南:对应的事/guide/,则我须要再docs目录下建立一个guid目录
    • 面试宝典:对应的是/baodian/,则我须要在docs目录下建立一个```baodian``````目录
    • baodian子目录:上述配置中baodian下有2个子目录,则我须要在下面新建2个子目录与之对应
  • 对应目录截图

在这里插入图片描述

侧边栏配置

  • sidebar

sidebar是左侧标题导航,能够指定配置也能够设置为auto

sidebar: 'auto'

sidebar配置语法

module.exports = {
	'/guide/': require('../guide/sidebar'),

	'/baodian/zero': require('../baodian/zero/sidebar'),
	'/baodian/high': require('../baodian/high/sidebar'),
}

/guide/:该key是与上述的 nav中link对应,在请求 nav时会自动切换当前的侧边目录,因此须要该配置
/baodian/zero同理
后续的require表示引入一个指定目录的sidebar.js文件,其自己能够直接写在这里,但为了方便维护咱们须要将每一个模块的侧边栏js抽取出来,单独存放在内容模块的目录下

  • sidebar.js

这里我贴出目录:/docs/guide/sidebar.js文件内容

module.exports = [
		{
		  title:'新手指南',
		  collapsable: true,
		  children:[
			'/guide/notes/one',
		  ]
		},
		{
		  title:'知码学院',
		  collapsable: true,
		  children:[
			'/guide/notes/two',
		  ]
		}
	]

参数解析

  • title:表示侧边栏大标题

  • collapsable:是否可收缩

  • children:具体的.md文件,这里无需指定后缀
    在这里插入图片描述

静态资源配置

静态资源是最重要的一部分,好比图片,好比js,好比css

vuepress程序默认的图片目录是/docs/.vuepress/public

$ cd .vuepress
$ mkdir public
  • 图片

好比咱们要指定首页显示图片,那么须要将首页内容中的图片路径更改为以下

# /docs/.vuepress/public目录下有一张 logo.jpg的图片
heroImage: /logo.jpg

/logo.jpg就是指/docs/.vuepress/public/logo.jpg

  • css

css与图片路径同样,好比js中要加载咱们指定的css文件,那么能够像以下这样

  • 在public目录下新建一个css目录
$ cd public
$ mkdir css
$ touch style.css

编辑css内容,加入以下css作测试(你也能够自定义其余内容)

a{color:#333;text-decoration:none; }

修改.vuepress下的config.js

# 修改head属性以下
head: [
        ['link', {rel: 'icon', href: '/logo.jpg'}],
        ["link", { rel: "stylesheet", href: "/css/style.css" }]
    ],
  • 重启预览效果

  • js

若是咱们要自定义一些js动态效果,咱们能够也能够像css操做那样

在public目录下新建一个js目录

$ cd public
$ mkdir js
$ touch main.js

在js中加入一些测试内容

function init(){
    console.log("终于能够随心所欲了");
}
//由于界面加载缘由,咱们延迟500ms再调用init
setTimeout("init()",500)

修改.vuepress下的config.js

# 修改head属性以下
head: [
        ['link', {rel: 'icon', href: '/logo.jpg'}],
        ["link", { rel: "stylesheet", href: "/css/style.css" }],
        ["script", { charset: "utf-8", src: "/js/main.js" }],//新加入
    ],
项目 方法
M2RI1 k83Ej3016
QV1Ng 2005/04/16 19:06:39
6i8pd
cUUyB 2005-12-01 10:03:50
Ihk5Y 613QV4688
相关文章
相关标签/搜索