typst.ts:在JavaScript世界中运行Typst

typst.ts:在JavaScript世界中运行Typst

typst.ts Run Typst in JavaScriptWorld. typst.ts 项目地址: https://gitcode.com/gh_mirrors/ty/typst.ts


项目介绍

typst.ts 是一个致力于将Typst的强大功能带入JavaScript环境的项目。简而言之,它提供了typst::World的实现和多个导出器,旨在帮助你在浏览器环境中编译和渲染Typst文档。该库支持三种主要的呈现形式:直接将文档渲染为高质量的SVG图像(形式一),预处理到矢量格式的艺术品(形式二),以及直接操作HTML中的canvas元素(形式三)。形式二专为Typst文档设计,提供多种高级特性,适应不同场景的渲染需求。

项目快速启动

要快速启动使用typst.ts,首先确保你的开发环境已经安装了Node.js和Yarn或NPM。以下是安装和使用的基本步骤:

CLI安装(可选)

如果你偏好命令行方式:

cargo install --locked --git https://github.com/Myriad-Dreamin/typst.ts typst-ts-cli

或者从GitHub Releases下载最新版本的CLI。

包安装(推荐)

通过npm获取核心库和其他绑定库:

npm install @myriaddreamin/typst-ts
# 或者,如果你是React项目
npm install @myriaddreamin/typst-react
# 对于Angular项目
npm install @myriaddreamin/typst-angular

示例代码快速运行

创建一个简单的HTML文件来展示如何使用typst.ts进行文档渲染:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Typst文档渲染示例</title>
<script type="module" src="https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts/dist/esm/contrib/all-in-one-lite.bundle.js" id="typst"></script>
</head>
<body>
<textarea id="input" style="width: 100%;"></textarea>
<div id="content"></div>

<script type="module">
    import * as $typst from '@myriaddreamin/typst-ts';

    const input = document.getElementById('input');
    input.value = '你好,Typst的世界!';

    $typst.setCompilerInitOptions({
        getModule: () => 'https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts-web-compiler/pkg/typst_ts_web_compiler_bg.wasm'
    });
    $typst.setRendererInitOptions({
        getModule: () => 'https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts-renderer/pkg/typst_ts_renderer_bg.wasm'
    });

    const compile = (mainContent) => {
        $typst.svg([mainContent]).then(svg => {
            console.log(`已渲染SVG元素,长度:${svg.length}`);
            document.getElementById('content').innerHTML = svg;
        });
    };

    input.oninput = () => compile(input.value);
    compile(input.value);
</script>
</body>
</html>

将以上代码保存为index.html并用本地服务器运行,即可体验Typst文档的实时渲染。

应用案例和最佳实践

  • 单文件应用:适用于快速创建静态文档,如在线简历或技术文档。
  • Hexo插件:结合Hexo,可以将Typst作为博客的渲染引擎,创建美观且内容丰富的博客文章。
  • Web App:在客户端或服务端渲染Typst文档,为Web应用程序提供动态内容生成能力,例如知识库或教程页面。

典型生态项目

  • typst-preview: 一个演示项目,展示了如何搭建一个服务来增量地渲染Typst文档,非常适合文档编辑器的实时预览。
  • typst-book: 简化版的在线书籍制作工具,允许纯Typst语法编写现代电子书,支持响应式设计。
  • VSCode插件: 提供即时预览,增强Typst文档的开发体验,开发者可以在编写时看到实时的排版效果。

通过这些生态项目,typst.ts不仅简化了Typst文档在Web上的应用,还提升了文档创作的效率和质量,使得高质量的内容生产变得更加便捷。

typst.ts Run Typst in JavaScriptWorld. typst.ts 项目地址: https://gitcode.com/gh_mirrors/ty/typst.ts

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

范靓好Udolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值