{"id":15382964,"url":"https://github.com/reggi/deno-resume","last_synced_at":"2025-04-15T19:32:07.631Z","repository":{"id":167388654,"uuid":"642538776","full_name":"reggi/deno-resume","owner":"reggi","description":"🦕📄 A Deno resume website builder using tailwind","archived":false,"fork":false,"pushed_at":"2023-05-22T18:53:40.000Z","size":853,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T00:11:12.932Z","etag":null,"topics":["deno"],"latest_commit_sha":null,"homepage":"https://deno-resume.deno.dev","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reggi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-18T19:54:33.000Z","updated_at":"2024-08-10T13:04:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"724fd02b-d57d-4b28-8414-d6fa4d3db0f2","html_url":"https://github.com/reggi/deno-resume","commit_stats":{"total_commits":24,"total_committers":2,"mean_commits":12.0,"dds":0.04166666666666663,"last_synced_commit":"13fc535cd84ae52b46e940eb354bcc01b0b7dc75"},"previous_names":["reggi/deno-resume"],"tags_count":12,"template":false,"template_full_name":"reggi/anchorarbor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reggi%2Fdeno-resume","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reggi%2Fdeno-resume/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reggi%2Fdeno-resume/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reggi%2Fdeno-resume/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reggi","download_url":"https://codeload.github.com/reggi/deno-resume/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249138534,"owners_count":21218903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deno"],"created_at":"2024-10-01T14:34:50.599Z","updated_at":"2025-04-15T19:32:07.618Z","avatar_url":"https://github.com/reggi.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deno Resume\n\n\u003e 🦕📄 A Deno resume website builder using tailwind\n\n- Module Deno https://deno.land/x/resume\n- Hosted Deno Deploy https://deno-resume.deno.dev/\n- Deno Deploy Playground https://dash.deno.com/playground/deno-resume\n- On Github https://github.com/reggi/deno-resume\n\nI sought out to create a resume website with Deno. My requirements were as\nfollows:\n\n- ✅ To serve a Resume webpage as a route using Deno\n- ✅ To generate a static HTML document with no external CSS OR JS dependencies\n- ✅ To customize `print` css classes for people to easily print the page\n- ✅ To export create a PDF of the site programatically\n\nThis project achieves all of those goals 🎉.\n\n## How it works\n\nThe resume data is a JSON object. Here's the [type definition](./src/types.ts).\nHere's an [example of the data](./example/thomas-anderson.json). This is used as\nthe main props passed into the `Resume` page component.\n\n![screenshot](./example/output/screenshot.png)\n\n- [Example HTML Export](./example/output/index.html)\n- [Example PDF Export](./example/output/resume.pdf)\n\nI've put some detail into the several ways this project can be used and I'll try\nand document some usages here.\n\n## Programmatic Usage\n\nIf you want to run your own resume page, say on Deno Deploy this is a\nsingle-file that would get you started.\n\n```ts\nimport { serve } from \"https://deno.land/std@0.188.0/http/server.ts\"\nimport { router } from \"https://crux.land/router@0.0.12\"\nimport resume from \"https://deno.land/x/resume/mod.ts\"\nimport data from \"https://deno.land/x/resume/example/thomas-anderson.json\" assert {\n  type: \"json\",\n}\nimport theme from \"https://deno.land/x/resume/theme.json\" assert {\n  type: \"json\",\n}\n\nawait serve(router({\n  \"/\": resume({\n    theme,\n    ...data,\n  }),\n}))\n```\n\n## Theming\n\nThe theme is a JSON object where the key is a CSS selector and the value are\ntailwind classes. `twind` does not have support for `print()`, I added the\nability to expand that keyword. Anything within the `print()` parenthesis will\nbe given the `print:` prefix. I also added in feature for setting tag attributes\nusing the syntax `[width=20]` this could be used for setting image sizes and\n`alt` text or really any attribute.\n\n```json\n{\n  \"body\": \"print(text-xs) mx-auto max-w-screen-lg py-10 px-10\",\n  \"a\": \"font-medium text-blue-600 dark:text-blue-500 hover:underline\",\n  \".topSection\": \"mb-3 relative\",\n  \".name\": \"print(text-2xl) text-4xl\",\n  \".downloadLink\": \"print(hidden) absolute pt-5 top-0 right-0\",\n  \".job\": \"flex mb-3\",\n  \".jobImage\": \"flex-none pr-3 pt-1\",\n  \".jobImage img\": \"rounded-full\",\n  \".job h2\": \"print(text-lg) text-xl\",\n  \".job h3\": \"print(text-base) inline mr-3 text-lg\",\n  \".jobSummary\": \"mb-2\",\n  \".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\"\n}\n```\n\n## CLI Usage\n\nThe CLI is broken down into 3 different scripts.\n\n- `./pdf/cmd.ts`\n- `./serve/cmd.ts`\n- `./render/cmd.ts`\n\nThis isolates dependencies for each, meaning if you just wanted to say `render`\nyou don't need to install the `pdf` dependencies (puppeteer). All of these files\nare dynamically imported into the single `./cmd.ts` file which will be used for\nthis documentation, but you could call any of these files directly for\nindividual usage.\n\n### Serve a JSON file\n\n```bash\ndeno run ./cmd.ts --serve --json ./example/thomas-anderson.json\n# or with permissions\ndeno run --allow-read --allow-net ./cmd.ts --serve --json ./example/thomas-anderson.json\n```\n\n### Generate a PDF\n\n```bash\ndeno run ./cmd.ts --pdf ./example/output/resume.pdf --json ./example/thomas-anderson.json\n# or with permissions\ndeno run --allow-read --allow-env --allow-write --allow-run --allow-net ./cmd.ts --pdf ./example/output/resume.pdf --json ./example/thomas-anderson.json\n```\n\n### Generate a static HTML File\n\n```bash\ndeno run ./cmd.ts --html ./example/output/index.html --json ./example/thomas-anderson.json\n# or with permissions\ndeno run --allow-read --allow-write ./cmd.ts --html ./example/output/index.html --json ./example/thomas-anderson.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freggi%2Fdeno-resume","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freggi%2Fdeno-resume","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freggi%2Fdeno-resume/lists"}