Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsonresume/theme-utils
Utility methods for theme developers
https://github.com/jsonresume/theme-utils
Last synced: 3 months ago
JSON representation
Utility methods for theme developers
- Host: GitHub
- URL: https://github.com/jsonresume/theme-utils
- Owner: jsonresume
- Created: 2015-01-05T15:23:37.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2017-10-26T09:04:12.000Z (about 7 years ago)
- Last Synced: 2024-07-09T03:18:38.144Z (4 months ago)
- Language: JavaScript
- Size: 14.6 KB
- Stars: 20
- Watchers: 14
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
jsonresume-themeutils
=====================[![Dependency Status](https://david-dm.org/jsonresume/theme-utils.svg)](https://david-dm.org/jsonresume/theme-utils)
Helpful set of utility methods for jsonresume theme developers
# Getting Started
```
npm install jsonresume-themeutils
```# Usage
```javascript
var utils = require('jsonresume-themeutils'),
resume = { // Generally this is available by default as argument, including here for the sake of clarity
"basics": {
"name": "John Doe",
"label": "Programmer",
"picture": "",
"email": "[email protected]",
"phone": "(912) 555-4321",
"website": "http://johndoe.com",
"summary": "A summary of John Doe...",
"location": {
"address": "2712 Broadway St",
"postalCode": "CA 94115",
"city": "San Francisco",
"countryCode": "US",
"region": "California"
},
"profiles": [{
"network": "Twitter",
"username": "john",
"url": "http://twitter.com/john"
}]
},
"work": [{
"company": "Company",
"position": "President",
"website": "http://company.com",
"startDate": "2013-01-01",
"endDate": "2014-01-01",
"summary": "Description...",
"highlights": [
"Started the company"
]
}],
"volunteer": [{
"organization": "Organization",
"position": "Volunteer",
"website": "http://organization.com/",
"startDate": "2012-01-01",
"endDate": "2013-01-01",
"summary": "Description...",
"highlights": [
"Awarded 'Volunteer of the Month'"
]
}],
"education": [{
"institution": "University",
"area": "Software Development",
"studyType": "Bachelor",
"startDate": "2011-01-01",
"endDate": "2013-01-01",
"gpa": "4.0",
"courses": [
"DB1101 - Basic SQL"
]
}],
"awards": [{
"title": "Award",
"date": "2014-11-01",
"awarder": "Company",
"summary": "There is no spoon."
}],
"publications": [{
"name": "Publication",
"publisher": "Company",
"releaseDate": "2014-10-01",
"website": "http://publication.com",
"summary": "Description..."
}],
"skills": [{
"name": "Web Development",
"level": "Master",
"keywords": [
"HTML",
"CSS",
"Javascript"
]
}],
"languages": [{
"language": "English",
"fluency": "Native speaker"
}],
"interests": [{
"name": "Wildlife",
"keywords": [
"Ferrets",
"Unicorns"
]
}],
"references": [{
"name": "Jane Doe",
"reference": "Reference..."
}]
};
```### config
The default config```javascript
{
date_format: 'MMM DD, YYYY',
gravatar: {
s: '100',
r: 'pg',
d: 'mm'
}
};
```### setConfig(opts)
Override the default config using this method```javascript
utils.setConfig({ date_format: 'MM-DD-YYYY' });
```### getUrlForPicture(resume)
Returns the profile picture url from the `resume.basics.picture` attribute, if it is not present then it returns the gravatar url from the email address.```javascript
utils.getUrlForPicture(resume)
// => 'http://www.gravatar.com/avatar/1f9d9a9efc2f523b2f09629444632b5c?s=100&r=pg&d=mm'
```### getProfile(resume, network)
Returns the profile information for a given network```javascript
utils.getProfile(resume, 'twitter');
//=> { network: 'Twitter', username: 'john', url: 'http://twitter.com/john' }
```### getUrlForProfile(resume, 'twitter')
Returns the url for a user's network from the `url` attribute. If it is not specified then it constructs the url based on the specified `username````javascript
utils.getUrlForProfile(resume, 'twitter')
//=> 'http://twitter.com/john'
```### getFormattedDate(date, date_format)
Returns a formatted date as per specified date format. If the date format is not specified then the format specified in `config` is used```javascript
utils.getFormattedDate('02-02-2012')
//=> 'Feb 02, 2012'
utils.getFormattedDate('02-02-2012', 'MMM, YYYY')
//=> 'Feb, 2012'
```### getDuration(start_date, end_date, humanize)
Returns an object with duration information when `humanize` is `false`. Returns a human readable duration string for a given `start_date` & `end_date` when `humanize` is `true````javascript
utils.getDuration('02-02-2012', '04-02-2014')
//=> { _milliseconds: 68256000000, _days: 0, _months: 0, _data: { milliseconds: 0, seconds: 0, minutes: 0, hours: 0, days: 0, months: 2, years: 2 }, ... }
utils.getDuration('02-02-2012', '04-02-2014', true)
//=> '2 years 2 months'
```### getNativeLanguage(resume)
Returns the native language object```javascript
utils.getNativeLanguage(resume)
//=> { language: 'English', fluency: 'Native speaker' }
```