gridsome(四)——搭建简易博客/获取markdown文件内容

准备工作

  • 创建项目:gridsome create +项目名

  • 进入项目:cd +项目名

  • 运行:gridsome develop
    之后在浏览器中访问:localhost:8080即可看见以下界面:

    在这里插入图片描述

安装插件

我们的目标是搭建一个简单的博客,而博客的内容是Markdown文档,所以需要使用gridsome插件将文件转换为可以使用GraphQL在组件中获取的内容。以下2个插件具体介绍参考gridsome(三)

  • 将文件转换为可以在组件中使用GraphQL 获取的内容:cnpm install @gridsome/source-filesystem -S
  • 转换器:cnpm install @gridsome/transformer-remark -S

配置插件

gridsome.config.js中配置插件信息:

module.exports = {
  siteName: 'Learn Gridsome',
  siteDescription: '',
  plugins: [{
      use: "@gridsome/source-filesystem",
      options: {
        path: "src/blog/*.md",
        typeName: "myPage"    //此处是GraphQL 类型和模板名称,必须与src/templates 中的 .vue 文件匹配才能应用其模板。
      }
    }
  ]
}

创建markdown文件模板

templates文件夹下新建 myPage.vue文件,该文件即 markdown文件的模版页面,所有的 markdown文件会根据此文件的布局渲染出页面。

<template>
  <Layout>
    <div v-html="$page.myPage.content"/>
  </Layout>
</template>

<page-query>
query ($id: ID!) {
  myPage(id: $id) {
    title
    content
  }
}
</page-query>

<script>
export default {
  metaInfo() {
    return {
      title: this.$page.myPage.title
    }
  }
};
</script>

创建博客内容

按照在gridsome.config.js文件中安装的@gridsome/source-filesystem配置的 path,新建 blog文件夹,与 src 同级,该目录下新建 test.md文件。

  • 文件目录如下所示:

  • 文件内容

    ---
    title: Blog
    ---
    
    # 标题一
    
    ## 标题二
    
    ### 标题三
    
    这是 **markdown** 文件的内容区!
    
    
  • 浏览器访问:http://localhost:8080/src/blog/test即可看见以下页面:

    在这里插入图片描述
    搭建超级简单的博客就完成啦😄😄😄

结合样式搭建简易博客

其他内容不变,修改test.mdmyPage.vue文件内容即可:

  • test.md文件

    ---
    title: Bolg
    description: Markdown is intended to be as easy-to-read and easy-to-write as is feasible.Readability, however, is emphasized above all else. A Markdown-formatted document should be publishable as-is, as plain text, without looking like it's been marked up with tags or formatting instructions.
    author: Author:Anna
    date: 2020/2/5
    ---
    
    # Gridsome Blog Starter
    
    A simple, hackable & minimalistic starter for Gridsome </br>that uses Markdown for content.
    
  • myPage.vue文件

    <template>
      <Layout>
        <div class="bogBox">
          <g-image src="../assets/Img/1.jpeg" class="img"></g-image>
          <div v-html="$page.myPage.content" class="content" />
        </div>
        <div class="description">
          <div v-html="$page.myPage.description"></div>
          <div v-html="$page.myPage.author" class="author"></div>
          <div v-html="$page.myPage.date" class="date"></div>
        </div>
      </Layout>
    </template>
    
    <page-query>
    query ($id: ID!) {
      myPage(id: $id) {
        title
        content
        description
        author
        date
      }
    }
    </page-query>
    
    <script>
    export default {
      metaInfo() {
        return {
          title: this.$page.myPage.title
        };
      }
    };
    </script>
    

    样式省略。。。。。。

  • 效果图

    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值