npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jsonresume-component

v0.3.1

Published

A web component which presents a JSON Resume documented with microdata

Downloads

57

Readme

jsonresume-component

<json-resume> is a web component (using LitElement) which presents resume content stored in JSON Resume format. The HTML structure uses the components from jsonresume-theme-microdata to generate HTML which includes structured data as microdata in HTML attributes.

<json-resume> extends <json-resume-ui> (included in the NPM release and this repo), which can be used in server-side rendering situations to generate a declarative shadow DOM containing the resume HTML and styles.

Check out the storybook for jsonresume-component to play with both components.

NPM / Node.js usage

Install dependencies

npm i jsonresume-component

Resume from Gist ID

import { JsonResume } from 'jsonresume-component';
<JsonResume gist_id="9e7a7ceb9425336c6aa08d58afb63b8d"></JsonResume>

Declarative Shadow DOM

You can generate the HTML on the server using the <json-resume-ui> component.

import { JsonResumeUI } from 'jsonresume-component/ui';
// your resume data
import resumejson from '../local/path/to/resume.json'
// you can use your own stylesheet instead of the bundled one
import styles from 'jsonresume-component/style.css?inline'
<JsonResumeUI resumejson={resumejson} stylesheet={styles}></JsonResumeUI>

Browser usage

The web component is lightly-bundled in that it puts all non-lit external files in a single .js file, which is located at ./dist/json-resume.js in the NPM package.

include lit dependencies

<json-resume> uses lit and @lit/task which must be imported into your HTML file. You can include dependencies with an importmap like this:

<script type="importmap">
  {
    "imports": {
      "lit": "https://esm.run/lit",
      "@lit/task": "https://esm.run/@lit/task"
    }
  }
</script>

Add jsonresume-component

unpkg points directly to the lightly-bundled web component file, which does not include lit.

<script type="module">
  import 'https://unpkg.com/jsonresume-component'
</script>

Use the web component by giving it your gist ID

<json-resume gist_id="54682f0aa17453d46cdc74bdef3172a3"></json-resume>

The web component accepts a resume.json url

<json-resume json_url="https://gist.githubusercontent.com/scottnath/54682f0aa17453d46cdc74bdef3172a3/raw/resume.json"></json-resume>

Options

A modified JSON Resume schema

The JSON structure follows an extension of the JSON Resume schema with added schema structure for microdata itemtype on some content types, basics.pronouns, and meta.themeOptions which allows changing the content of the resume section titles, colors, and other theme opts. See the jsonresume-theme-microdata README for details on this adjusted structure.

class: JsonResumeUI, json-resume-ui

Fields

| Name | Privacy | Type | Default | Description | Inherited From | | ------------ | ------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------- | -------------- | | label | public | string | | The aria-label for the `div` containing the resume. Defaults to `${basics.name}'s resume` | | | resumejson | public | object | | Property accepts a JSON Resume object | | | stylesheet | public | string | | Accepts a string containing styles **WARNING** Completely deletes and overrides internal component styles | |

CSS Properties

| Name | Default | Description | | -------------------------- | ------- | ------------------------------------------------------- | | --color-background-light | | Background color, light theme | | --color-dimmed-light | | Dimmed background color, light theme | | --color-primary-light | | Primary color, light theme | | --color-secondary-light | | Secondary color, light theme | | --color-link-light | | Link color, light theme | | --color-background-dark | | Background color, dark theme | | --color-dimmed-dark | | Dimmed background color, dark theme | | --color-primary-dark | | Primary color, dark theme | | --color-secondary-dark | | Secondary color, dark theme | | --color-link-dark | | Link color, dark theme | | --font-size | | Component font size, basis for many `em`-based styles | | --font-family | | Component font family |

CSS Parts

| Name | Description | | --------------- | --------------------------------------- | | jsonresume | resume container | | resume | resume main article | | basics | style the `basics` section | | name | person's name, h1 | | label | person's title/label, h2 | | image | person's image | | summary | person's summary | | contact | contacts/locations list within basics | | profiles | profiles list within basics | | section-title | styles the `h3` title of all sections | | work | style the `work` section | | volunteer | style the `volunteer` section | | education | style the `education` section | | awards | style the `awards` section | | certificates | style the `certificates` section | | publications | style the `publications` section | | skills | style the `skills` section | | languages | style the `languages` section | | interests | style the `interests` section | | references | style the `references` section | | projects | style the `projects` section | | meta | style the `meta` section |

Slots

| Name | Description | | -------------- | ------------------------------------------------ | | basics | Replace the entire `basics` HTML section | | work | Replace the entire `work` HTML section | | volunteer | Replace the entire `volunteer` HTML section | | education | Replace the entire `education` HTML section | | awards | Replace the entire `awards` HTML section | | certificates | Replace the entire `certificates` HTML section | | publications | Replace the entire `publications` HTML section | | skills | Replace the entire `skills` HTML section | | languages | Replace the entire `languages` HTML section | | interests | Replace the entire `interests` HTML section | | references | Replace the entire `references` HTML section | | projects | Replace the entire `projects` HTML section | | meta | Replace the entire `meta` HTML section |

Exports

| Kind | Name | Declaration | Module | Package | | --------------------------- | ---------------- | ------------ | --------- | ------- | | js | JsonResumeUI | JsonResumeUI | src/ui.js | | | custom-element-definition | json-resume-ui | JsonResumeUI | src/ui.js | |

class: JsonResume, json-resume

Fields

| Name | Privacy | Type | Default | Description | Inherited From | | ------------ | ------- | --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | | gist_id | public | string | | GitHub gist ID. When present, calls the GitHub rest API to fetch a resume.json gist's content. Checked first, if gist is present and has a resume.json, `json_url` and `local_file` will be ignored. | | | json_url | public | string | | URL to a JSON file. When present, used to fetch a resume.json file from the URL. Checked second or if gist_id does not have a resume.json, `local_file` will be ignored. | | | preordered | public | boolean | | When true, sections of resume (basic, work, etc) will be injected according to their order in resume.json | | | label | public | string | | The aria-label for the `div` containing the resume. Defaults to `${basics.name}'s resume` | JsonResumeUI | | resumejson | public | object | | Property accepts a JSON Resume object | JsonResumeUI | | stylesheet | public | string | | Accepts a string containing styles **WARNING** Completely deletes and overrides internal component styles | JsonResumeUI |

CSS Properties

| Name | Default | Description | | -------------------------- | ------- | ------------------------------------------------------- | | --color-background-light | | Background color, light theme | | --color-dimmed-light | | Dimmed background color, light theme | | --color-primary-light | | Primary color, light theme | | --color-secondary-light | | Secondary color, light theme | | --color-link-light | | Link color, light theme | | --color-background-dark | | Background color, dark theme | | --color-dimmed-dark | | Dimmed background color, dark theme | | --color-primary-dark | | Primary color, dark theme | | --color-secondary-dark | | Secondary color, dark theme | | --color-link-dark | | Link color, dark theme | | --font-size | | Component font size, basis for many `em`-based styles | | --font-family | | Component font family |

CSS Parts

| Name | Description | | --------------- | --------------------------------------- | | jsonresume | resume container | | resume | resume main article | | basics | style the `basics` section | | name | person's name, h1 | | label | person's title/label, h2 | | image | person's image | | summary | person's summary | | contact | contacts/locations list within basics | | profiles | profiles list within basics | | section-title | styles the `h3` title of all sections | | work | style the `work` section | | volunteer | style the `volunteer` section | | education | style the `education` section | | awards | style the `awards` section | | certificates | style the `certificates` section | | publications | style the `publications` section | | skills | style the `skills` section | | languages | style the `languages` section | | interests | style the `interests` section | | references | style the `references` section | | projects | style the `projects` section | | meta | style the `meta` section |

Slots

| Name | Description | | -------------- | ------------------------------------------------ | | basics | Replace the entire `basics` HTML section | | work | Replace the entire `work` HTML section | | volunteer | Replace the entire `volunteer` HTML section | | education | Replace the entire `education` HTML section | | awards | Replace the entire `awards` HTML section | | certificates | Replace the entire `certificates` HTML section | | publications | Replace the entire `publications` HTML section | | skills | Replace the entire `skills` HTML section | | languages | Replace the entire `languages` HTML section | | interests | Replace the entire `interests` HTML section | | references | Replace the entire `references` HTML section | | projects | Replace the entire `projects` HTML section | | meta | Replace the entire `meta` HTML section |

Exports

| Kind | Name | Declaration | Module | Package | | --------------------------- | ------------- | ----------- | ------------ | ------- | | js | JsonResume | JsonResume | src/index.js | | | custom-element-definition | json-resume | JsonResume | src/index.js | |