从零开始写一个vuepress插件

初始化插件项目

  1. 在任意目录新建一个插件目录,我这里在 /pkg/vuepress-plugin-simple-encrypt

    mkdir /pkg/vuepress-plugin-simple-encrypt
    
    image-20220424215029271
    image-20220424215029271
  2. 进入该目录,初始化项目

    yarn init
    

    输入插件名 vuepress-plugin-simple-encrypt ,入口文件名 index.js ,其他选项对应填写即可。

    image-20220424215319909
    image-20220424215319909

    初始化之后,package.json 的文件内容:

    {
      "name": "vuepress-plugin-simple-encrypt",
      "version": "1.0.0",
      "description": "a simple encrypt and decrypt for vuepress",
      "main": "index.js",
      "scripts": {
        "test": "yarn test"
      },
      "repository": {
        "type": "git",
        "url": "git+https://github.com/terwer/vuepress-plugin-simple-encrypt.git"
      },
      "keywords": [
        "encrypt",
        "decrypt",
        "vuepress"
      ],
      "author": "terwer",
      "license": "MIT",
      "bugs": {
        "url": "https://github.com/terwer/vuepress-plugin-simple-encrypt/issues"
      },
      "homepage": "https://github.com/terwer/vuepress-plugin-simple-encrypt#readme"
    }
    
  3. 编写入口文件 index.js

    module.exports = (options, ctx) => {
        return {
            name: 'vuepress-plugin-simple-encrypt',
            async ready() {
                console.log('Hello World!');
            }
        }
    }
    
  4. 注入插件到 vuepress。在 config.ts 文件的插件节点加上我们的插件,注意使用相对目录目录

    [
      require('../../pkg/vuepress-plugin-simple-encrypt'), // 主要用于文章部分加密
      {
      }
    ]
    
  5. 启动项目 yarn dev ,正常情况可以看到输出 Hello World


Terwer...大约 2 分钟前端开发插件目录初始化从零开始vuepressplugin
Jekyll平台配置指南

安装 Jekyll

gem install jekyll -- --with-cppflags=-I$(brew --prefix openssl)/include

Terwer...小于 1 分钟平台配置sy-post-publisher作品展示安装查看版本站点初始化
dotenv加载变量
// @ts-ignore
import dotenv from 'dotenv'
import path from 'path';

/**
 * 初始化测试环境变量
 */
export const initTestEnv = () => {
    const __dirname = path.dirname(import.meta.url);
    const envPath = path.relative(process.cwd(), path.join(__dirname, '../.env.development.local')).replace("file:\\", "")
    // console.log(envPath)
    dotenv.config({path: envPath});
    // console.log(process.env.VITE_LIANDI_API_URL)
    console.log("env loaded.")
}

Terwer...小于 1 分钟前端开发测试初始化环境变量另外文件envdotenv