#markdown #vite-press #zenn

bin+lib zenn2press

Rust 库,用于将 Zenn 内容转换为 VitePress

1 个不稳定版本

0.1.0 2024 年 8 月 4 日

#1486命令行工具

Download history 77/week @ 2024-07-29 35/week @ 2024-08-05

每月 112 次下载

MIT 许可证

57KB
611

zenn2press

Crates.io Version Test Suite License

zenn2press 是一个 Rust 库,用于将 Zenn 内容转换为 VitePress。

功能

copy_markdown_files()

从源目录复制 Markdown 文件到目标目录,可以选择包含或排除特定文件。

copy_images()

从源目录复制图像文件到目标目录,也可以选择包含或排除特定文件。

安装

将 zenn2press 添加到您的 Cargo.toml

[dependencies]
zenn2press = "0.1.0"

用法

CLI

以下是如何使用 zenn2press 的示例

zenn2press --help

zenn2press \
    -s zenn \
    -c config.json \
    -d press/docs/articles \
    -m press/docs/public/images \
    -i sample-article-1

参数

参数 短选项 长选项 值名称 描述
src_dir -s --src-dir DIR Zenn 内容根目录的路径。
dest_dir -d --dest-dir DIR 您希望放置文章 Markdown 的 VitePress 目录路径(例如 docs/entries)。
dest_images_dir -m --dest-images-dir DIR 放置图像的 VitePress 目录路径(例如 public)。
config_file -c --config-file FILE 配置文件路径。
include -i --include <FILE> 要包含的文件名,用逗号分隔。
exclude -e --exclude <FILE> 要排除的文件名,用逗号分隔。

以下是如何在项目中使用 zenn2press 的示例

use zenn2press::{copy_images, copy_markdown_files};

#[tokio::main]
async fn main() {
    let src_dir = "demo/zenn/articles";
    let dest_dir = "demo/press/docs/articles";
    let config_file = Some("demo/zenn2press-config.json");
    let include = Some(vec!["sample-article-1"]);
    let exclude = None;

    // Copy markdown files from srcDir to destDir using properties
    copy_markdown_files(
        src_dir,
        dest_dir,
        config_file,
        include,
        exclude
    )
    .unwrap_or_else(|e| {
        eprintln!("Error copying markdown files: {}", e);
    });

    // Copy images from srcDir to destDir using properties
    match copy_images(
        "demo/zenn/images",
        "demo/press/docs/public/images",
        include,
        exclude
    )
    .await
    {
        Ok(_) => println!("Images copied successfully."),
        Err(e) => eprintln!("Error copying images: {}", e),
    }
}

配置文件(可选

zenn2press-config.json

{
  "frontmatter": {
    "aside": true,
    "editLink": true,
    "footer": true,
    "lastUpdated": true,
    "layout": "doc",
    "navbar": true,
    "outline": [1, 2, 3],
    "sidebar": true,
    "titleTemplate": ":title - Custom Suffix"
  }
}

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

依赖项

~9–20MB
~284K SLoC