如何为 Vuepress 的特定页面使用自定义布局?

Posted

技术标签:

【中文标题】如何为 Vuepress 的特定页面使用自定义布局?【英文标题】:How can I use Custom Layout for Specific Pages of the Vuepress? 【发布时间】:2020-05-26 10:31:43 【问题描述】:

我正在尝试使用我自己的 vuepress 自定义布局,步骤如下:

    从 VuePress 文档中的 Homepage style 开始,效果很好。

    T4V4Home.vue制作成从Home.vue弹出的主题/组件文件夹中对应的特殊布局,并在这些<template>中添加<h1> This is T4V4Home !</h1>,表示如下.
<template>
  <main
    class="home"
    aria-labelledby="main-title"
  >

    <h1> This is T4V4Home !</h1>

    <header class="hero">
    layout: T4V4Home按照VuePress Document,Readme.md中Custom Layout for Specific Pages的步骤,但&lt;h1&gt; This is T4V4Home !&lt;/h1&gt;没有出现,似乎旧的“Home.vue”仍在使用
---
layout: T4V4Home
home: true
#heroImage: /ueda4googleplaystore.png
heroText: Hero Title
tagline: Hero subtitle
actionText: Get Started →
actionLink: /guide/
features:

    所以,删除 home: true 如下,但标准 Page 布局意外使用如下。
---
layout: T4V4Home
#home: true
#heroImage: /ueda4googleplaystore.png
heroText: Hero Title
tagline: Hero subtitle
actionText: Get Started →
actionLink: /guide/
features:

如何激活和使用我的自定义布局T4V4Home?感谢您的建议!

【问题讨论】:

【参考方案1】:

您将自定义布局组件放在哪里?

使用 VuePress 1.3.0,自定义布局对我来说效果很好。

    .vuepress/components/SpecialLayout.vue 创建一个SpecialLayout.vue 文件,并将Home.vue 中的所有内容复制到其中。然后在其中添加一行&lt;h1&gt;This is a test&lt;/h1&gt;

    相应地更改 README.md 中的 Frontmatter。

---
layout: SpecialLayout
heroImage: https://vuepress.vuejs.org/hero.png
heroText: test
tagline: 
actionText: Quick Start →
actionLink: /guide/
features:
- title: Feature 1 Title
  details: Feature 1 Description
- title: Feature 2 Title
  details: Feature 2 Description
- title: Feature 3 Title
  details: Feature 3 Description
footer: Made by  with ❤️
---

而且我成功拿到了新的主页

但是,我不确定这是否正是您要查找的内容,因为正如您在上面的屏幕截图中看到的那样,由于自定义布局,您将丢失页面顶部的 NavBar

如果你想保留NavBar,我建议你试试Theme Inheritance。

    将您的自定义主页组件放在.vuepress/theme/components/Home.vue。是的,它需要命名为Home.vue 来替换默认主题中的那个。

    .vuepress/theme/index.js 创建一个index.js 文件,其中包含内容

module.exports = 
  extend: '@vuepress/theme-default'


别忘了将README.md 改回正常状态。

【讨论】:

谢谢你,孙!我已经放入 .vuepress/theme/components。一定是根本原因^^;根据您的建议,我已将其移至 .vuepress/components 并且我已成功展示它。非常感谢您的帮助!

以上是关于如何为 Vuepress 的特定页面使用自定义布局?的主要内容,如果未能解决你的问题,请参考以下文章

如何为特定视图的导航栏设置自定义背景图像

如何为应用程序在后台显示的通知设置自定义布局?

如何为具有与内置单元格相同的布局指标的“UITableView”提供自定义“UITableCell”?

如何为特定来电提供自定义振动

如何为客户特定数据使用通用变量

android如何为自定义的类传递参数?