- Module Deno https://deno.land/x/resume
- 托管Deno DeNo部署https://deno-resume.deno.dev/
- DENO部署游乐场https://dash.deno.com/playground/deno-resume
- 在github https://github.com/reggi/deno-resume上
我试图与Deno创建简历网站。我的要求如下:
- 使用deno 将简历网页作为路线提供
- 生成没有外部CSS或JS依赖项的静态HTML文档
- 自定义
print
css类,以便人们轻松打印页面 - 导出在编程上创建网站的PDF
这个项目实现了所有这些目标ð。
怎么运行的
简历数据是JSON对象。这是type definition。这是一个example of the data。这用作主要道具传递到Resume
页组件中。
我已经在可以使用该项目的几种方式中提供了一些细节,我将尝试在此处记录一些用法。
程序用法
如果您想运行自己的简历页面,请在DeNo部署上说这是一个可以让您开始的单文件。
import { serve } from "https://deno.land/std@0.188.0/http/server.ts"
import { router } from "https://crux.land/router@0.0.12"
import resume from "https://deno.land/x/resume/mod.ts"
import data from "https://deno.land/x/resume/example/thomas-anderson.json" assert { type: "json" }
import theme from "https://deno.land/x/resume/theme.json" assert { type: "json" }
await serve(router({
"/": resume({
theme,
...data,
}),
}))
主题
主题是一个JSON对象,其中键是CSS选择器,值是尾风类。 twind
不支持print()
,我添加了扩展该关键字的功能。 print()
括号内的任何内容都将得到print:
前缀。我还在功能中添加了用于使用语法[width=20]
设置标签属性的功能。
{
"body": "print(text-xs) mx-auto max-w-screen-lg py-10 px-10",
"a": "font-medium text-blue-600 dark:text-blue-500 hover:underline",
".topSection": "mb-3 relative",
".name": "print(text-2xl) text-4xl",
".downloadLink": "print(hidden) absolute pt-5 top-0 right-0",
".job": "flex mb-3",
".jobImage": "flex-none pr-3 pt-1",
".jobImage img": "rounded-full",
".job h2": "print(text-lg) text-xl",
".job h3": "print(text-base) inline mr-3 text-lg",
".jobSummary": "mb-2",
".label": "print(font-normal) text-xs font-semibold inline-block px-1 lowercase rounded text-sky-600 bg-sky-200 last:mr-0 mr-1"
}
CLI用法
CLI分解为3个不同的脚本。
./pdf/cmd.ts
./serve/cmd.ts
./render/cmd.ts
这种隔离的依赖关系,这意味着如果您只想说render
,则不需要安装pdf
依赖项(Puppeteer)。所有这些文件都动态导入到单个./cmd.ts
文件中,该文件将用于本文档,但是您可以直接调用这些文件中的任何一个用于单个用法。
提供JSON文件
deno run ./cmd.ts --serve --json ./example/thomas-anderson.json
# or with permissions
deno run --allow-read --allow-net ./cmd.ts --serve --json ./example/thomas-anderson.json
生成PDF
deno run ./cmd.ts --pdf ./example/output/resume.pdf --json ./example/thomas-anderson.json
# or with permissions
deno run --allow-read --allow-env --allow-write --allow-run --allow-net ./cmd.ts --pdf ./example/output/resume.pdf --json ./example/thomas-anderson.json
生成静态HTML文件
deno run ./cmd.ts --html ./example/output/index.html --json ./example/thomas-anderson.json
# or with permissions
deno run --allow-read --allow-write ./cmd.ts --html ./example/output/index.html --json ./example/thomas-anderson.json