🖼️ An Elegant VuePress Theme, inspired by @vue/theme.

Overview



VT

An Elegant VuePress Theme,
inspired by @vue/theme .

NPM version

📖 Live Documentation
📚 VuePress Docs With This Theme



Features

Motivation

Next Vue's documentation is very cool, which is powered by VitePress and @vue/theme —— A next-generation SSG for Vue ecosystem, but currently VitePress is still in early stage and there is no plugin system.

I made this theme to combine eXperience of @vue/theme and current huge VuePress ecosystem, and introducing some built-in features like full-text search, i18n etc.

Install

npm i vuepress-theme-vt -D

Usage

// .vuepress/config.js
module.exports = {
  theme: "vt",
};

Prior Art

vuepress-theme-vt won't exist without @vue/theme and VuePress ecosystem:

Sponsors

If my code has helped you, please consider sponsoring me. I'd like to thank these awesome companies for sponsoring me:

You can donate through the following channels:

LICENSE

MIT License © ULIVZ

Comments
  • fix(theme): header remove 'position: relative'

    fix(theme): header remove 'position: relative'

    Description of the problem:

    When using position: relative in the header, the link in the previous line is blocked and cannot be clicked.

    Demo

    use position: relative

    <a href="www.baidu.com">baidu</a>
    <h2 className='h2' >header use relative</h2>
    
    .h2 {
        color: #213547;
        box-sizing: border-box;
        position: relative; /* <- this line */
        margin: 3rem 0 1.25rem;
    }
    
    .h2:hover {
      background-color: red;
    }
    
    h2::before {
      display: block;
      content: ' ';
      height: 70px;
      margin-top: -70px;
    }
    

    use

    not use position: relative

    <a href="www.baidu.com">baidu</a>
    <h2 className='h2' >header not use relative</h2>
    
    .h2 {
        color: #213547;
        box-sizing: border-box;
        /* position: relative;   <- this line */
        margin: 3rem 0 1.25rem;
    }
    
    .h2:hover {
      background-color: red;
    }
    
    h2::before {
      display: block;
      content: ' ';
      height: 70px;
      margin-top: -70px;
    }
    

    not

    opened by skychx 2
  • feat(theme): nav links on the left (close: 73)

    feat(theme): nav links on the left (close: 73)

    Snapshot

    Config

    export default {
      theme: "vt",
      themeConfig: {
        nav: [
          { text: "Guide", link: "/guide/" },
          { text: "API", link: "/api/" },
          { text: "Left1", link: "/guide/api-page", position: "left" },
          { text: "Left2", link: "/guide/configuration", position: "left" },
        ],
      },
    };
    

    Desktop

    image

    Mobile

    image
    opened by ulivz 1
  • feature request: nav links on the left

    feature request: nav links on the left

    What problem does this feature solve?

    Position the sidebar links on the left.

    What does the proposed API look like?

    // .vuepress/config.ts
    export default {
        nav: [
          { text: "Left1", link: "/guide/api-page", position: "left" },
          { text: "Left2", link: "/guide/configuration", position: "left" },
        ],
     }
    

    How should this be implemented in your opinion?

    N/A

    Are you willing to work on this yourself?

    Yes

    opened by ulivz 1
  • feat: support custom extracted headers in api page

    feat: support custom extracted headers in api page

    Currently in api page, vt will extract all h2 and h3 headers by default.But sometimes we don't want the h3 header and there is no custom config.The pr is to solve the problem.

    opened by sanyuan0704 1
  • feat(vt): add status for vt

    feat(vt): add status for vt

    feature

    desc

    add status bar component and only exist in home page

    config

    .vuepress/config.ts

    defineConfig((ctx) => {
            themeConfig: {
                statusText: "placeholder"
        }
    })
    

    preview

    normal

    image

    dark mode

    image

    opened by Simplyme0823 1
  • fix(theme): narrow screen layout issue (close: #41)

    fix(theme): narrow screen layout issue (close: #41)

    Before & After

    1792px (Mac 15')

    | # | Snapshot | |---|---| | Before | image | | After |image |

    1548px

    | # | Snapshot | |---|---| | Before | image | | After | image |

    1374px

    | # | Snapshot | |---|---| | Before | image | | After | image |

    1198px

    | # | Snapshot | |---|---| | Before | image | | After | image |

    959px

    | # | Snapshot | |---|---| | Before | image | | After | image|

    opened by ulivz 1
  • docs(vuepress-docs): migrate to `vuepress-theme-vt`

    docs(vuepress-docs): migrate to `vuepress-theme-vt`

    Summary

    To verify the compatibility of this theme, this pull request migrate VuePress's official documentation to VT with minimal cost.

    Preview link: https://vuepress-docs-git-feat-migrate-vuepress-docs-472590061.vercel.app/

    opened by ulivz 1
  • feat(theme): animated transition and height for statusbar

    feat(theme): animated transition and height for statusbar

    Summary

    1. Add gradient and height transition for status bar;
    2. Increase statusbar's height.

    Demo

    https://user-images.githubusercontent.com/23133919/200727603-950834c3-9422-4730-9c4d-9fd76776fd45.mov

    opened by ulivz 0
  • full text search doesn't support partial search

    full text search doesn't support partial search

    Step to reproduce

    1. Write headers:
    ## api.fooBar
    
    1. Restart dev server and search fooBar and you cannot get any search suggestions, but only api.fooBar can give you the result.
    opened by ulivz 0
  • Cannot find module 'inquirer'

    Cannot find module 'inquirer'

    debug Error: Cannot find module 'inquirer'
    Require stack:
    - /.../[email protected]/node_modules/vuepress-theme-vt/plugins/translate/index.js
    - /.../@[email protected]/node_modules/@vuepress/shared-utils/lib/moduleResolver.js
    - /.../@[email protected]/node_modules/@vuepress/shared-utils/lib/index.js
    - /.../@[email protected]/node_modules/@vuepress/markdown/lib/highlight.js
    - /.../@[email protected]/node_modules/@vuepress/markdown/index.js
    - /.../@[email protected]/node_modules/@vuepress/core/lib/node/createMarkdown.js
    - /.../@[email protected]/node_modules/@vuepress/core/lib/node/App.js
    - /.../@[email protected]/node_modules/@vuepress/core/lib/index.js
    - /.../[email protected]/node_modules/vuepress/lib/registerCoreCommands.js
    - /.../[email protected]/node_modules/vuepress/cli.js
    
    
    warning An error was encountered in plugin "/.../[email protected]/node_modules/vuepress-theme-vt/plugins/translate/index.js"
    
    opened by ulivz 0
  • Dark mode toggling switch will not show when 'repo' is not defined in themeConfig

    Dark mode toggling switch will not show when 'repo' is not defined in themeConfig

    When the themeConfig property in config.js is defined as

    module.exports = {
        theme: "vt",
        themeConfig: {
            enableDarkMode: true,
            repo: "https://google.com",
        },
    };
    

    the dark mode toggling switch is shown, even though the repo url is not a real repository. But when it is defined as

    module.exports = {
        theme: "vt",
        themeConfig: {
            enableDarkMode: true,
        },
    };
    

    The dark mode toggling switch will be simply dissappeared.

    Does the repo url definition have anything to do with the dark mode switch? I thought they were two unrelated features...

    opened by Moscovium2000 0
  • hightligh problem when use diff

    hightligh problem when use diff

    ```diff
    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
      <div id="root"></div>
    - <script src="/index-CH27MJVK.js" type="module"></script>
    + <script src="http://www.speedy.dev/index-CH27MJVK.js" type="module"></script>
    </body>
    </html>
    ```
    

    when i use diff it generate the following result image

    but it renders nicely in github | vscode

    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
      <div id="root"></div>
    - <script src="/index-CH27MJVK.js" type="module"></script>
    + <script src="http://www.speedy.dev/index-CH27MJVK.js" type="module"></script>
    </body>
    </html>
    
    opened by hardfist 0
  • Typographic replacements and enabling markdown-it plugins.

    Typographic replacements and enabling markdown-it plugins.

    Question. I'm attempting to follow the docs and I'm a bit lost on typographic replacements. Can you give a little more detail on how to enable typographer? Would enabling this fix the numbered lists so that they are actually numbered. See example here of them not actually being numbered.

    Last question, where do I enable the markdown-it plugins? I thought it would be in the .vuepress/config.ts file, like this:

    import { ThemeConfig } from "vuepress-theme-vt";
    import { defineConfig4CustomTheme } from "vuepress/config";
    
    export = defineConfig4CustomTheme<ThemeConfig>((ctx) => ({
      theme: "vt",
      title: "Title",
      plugins: [
        [
          'HERE?'
        ]
      themeConfig: {
        enableDarkMode: true,
    

    Thanks in advance!

    opened by matthewfurr 1
Releases(v0.7.4)
Vuepress v2+ dynamic-title-plugin: add a dynamic title in your vuepress

vuepress-plugin-dynamic-title-v2 ?? Add a dynamic title in your vuepress! Document: moefy-vuepress Live demo: notev Dependencies vuepress version vuep

tianyake 1 May 6, 2022
Shopify Foundation Theme is modern Shopify theme built with Shopify Theme Lab, Vue and Tailwind CSS.

Modern Shopify theme using Shopify Theme Lab, Liquid, Vue and Tailwind CSS ??

UI Crooks 218 Jan 4, 2023
A custom vuepress theme with mermaid and plantuml, katex and vue components.

Personal Documentation Theme for VuePress Currently, completely refactoring code for vuepress v1, all components should be compatible. This is the Vue

David Li 58 Oct 10, 2022
💥 A simple and beautiful vuepress Blog & Doc theme.

?? A simple and beautiful vuepress Blog & Doc theme.

vuepress-reco 264 Jan 3, 2023
A theme for VuePress 2

vuepress-theme-mix About The Project VuePress Theme Mix is a minimalistic theme that is designed and developed for VuePress 2. It's deeply customized

Gavin 49 Jan 5, 2023
A minimalist vuepress theme, compatible with hexo YAML front matter syntax.

A minimalist vuepress theme, compatible with hexo YAML front matter syntax.

BLANK 19 Dec 14, 2022
Personal Documentation Theme for VuePress

Personal Documentation Theme for VuePress Currently, completely refactoring code for vuepress v1, all components should be compatible. This is the Vue

CH 0 Jul 30, 2019
A blog theme for VuePress by Ktquez 🤘

vuepress-theme-ktquez A blog theme for VuePress by Ktquez ?? ?? Vuepress does not yet have native support for blogs, but this theme has some practices

Alan Ktquez 331 Dec 27, 2022
LightDM theme inspired in Void Linux (without any reason)

LightDM Void Theme I tried Void Linux and got super excited to create a lightdm theme inspired in Void. There's actually no relation with Void Linux,

Jezer Mejía 16 Jan 3, 2023
VitePress theme base on @vue/theme, more practical and comprehensive.

VitePress theme base on @vue/theme, more practical and comprehensive.

alex.wei 4 Sep 1, 2022
Contact Us widget generator. plugin for Vuepress 可以自动生成联系我们按钮的插件

Vuepress Plugin: Contact Us Form This plugin will automatically put a floating button at the left-bottom corner, once it's clicked, a contact us form

Justin Wang 6 Sep 23, 2022
A Slidev Theme for my talks about Vue.js

slidev-theme-vuetiful A Vue-inspired theme for Slidev. Live demo: https://slidev-theme-vuetiful.netlify.app/ Features Pretty Vue Theme Subtle Animatio

Thorsten Lünborg 57 Dec 23, 2022
A Unicorn theme for Slidev slides based on dawntraoz.com design.

slidev-theme-unicorn A Unicorn theme for Slidev. This theme is based on dawntraoz.com website design

Alba Silvente Fuentes 44 Nov 16, 2022
A Penguin 🐧 theme for Slidev

This theme is based on my personal brand, but it can be easily use and customized for your own.

Alvaro Saburido 103 Dec 16, 2022
A front-end multi-theme solution based on sass

A front-end multi-theme solution based on sass

Tom McFly 1 May 13, 2022
✅ vue-bem-cn - Simple BEM class name generator for Vue.JS

vue-bem-cn Simple BEM-style class name generator for Vue.JS 2.* Table of Contents Quick example Installation Usage API Quick example Live demo: codepe

Stanislav 124 Oct 12, 2022
Vue Start - Turn any JSON into Vue 3 tables

Vue Start Turn any JSON into Vue 3 tables! Introduction Create well coded Vue 3 tables with Bootstrap, Tailwind CSS or vanilla CSS. Try it online at v

null 49 Dec 1, 2022
Vue-sx is a simple library that allows you to write clean CSS-in-JS for Vue

Vue-sx is a simple library that allows you to write clean CSS-in-JS for Vue

Alexandru Ghiura 4 Oct 21, 2022
Simple adding class names mods to all components in your vue app

vue-mods-names Simple adding class names mods to all components in your vue app Docs with examples and playgrounds: English Русский Українська françai

RG.RU 22 Nov 18, 2022