diff --git a/Gruntfile.js b/Gruntfile.js index ee65f40..45cd6ca 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -50,9 +50,9 @@ module.exports = function (grunt) { grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-clean'); - grunt.registerTask('test', 'Test the FluentCV library.', + grunt.registerTask('test', 'Test the HackMyResume library.', function( config ) { grunt.task.run( ['clean','simplemocha:all'] ); }); - grunt.registerTask('document', 'Generate FluentCV library documentation.', + grunt.registerTask('document', 'Generate HackMyResume library documentation.', function( config ) { grunt.task.run( ['yuidoc'] ); }); grunt.registerTask('default', [ 'jshint', 'test', 'yuidoc' ]); diff --git a/README.md b/README.md index 6d0273d..20c7983 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ -fluentCV -======== +HackMyResume +============ *Create polished résumés and CVs in multiple formats from your command line or shell. Author in clean Markdown and JSON, export to Word, HTML, PDF, LaTeX, plain text, and other arbitrary formats.* ![](assets/resume-bouqet.png) -FluentCV is a dev-friendly, local-only Swiss Army knife for resumes and CVs. Use -it to: +HackMyResume is a dev-friendly, local-only Swiss Army knife for resumes and CVs. +Use it to: 1. **Generate** HTML, Markdown, LaTeX, MS Word, PDF, plain text, JSON, XML, YAML, print, smoke signal, carrier pigeon, and other arbitrary-format resumes @@ -15,10 +15,8 @@ and CVs, from a single source of truth—without violating DRY. 2. **Convert** resumes between [FRESH][fresca] and [JSON Resume][6] formats. 3. **Validate** resumes against either format. -FluentCV is built with Node.js and runs on recent versions of OS X, Linux, or -Windows. - -![](assets/fluentcv_cli_ubuntu.png) +HackMyResume is built with Node.js and runs on recent versions of OS X, Linux, +or Windows. ## Features @@ -35,10 +33,10 @@ Windows. ## Install -Install FluentCV with NPM: +Install HackMyResume with NPM: ```bash -[sudo] npm install fluentcv -g +[sudo] npm install hackmyresume -g ``` Note: for PDF generation you'll need to install a copy of [wkhtmltopdf][3] for @@ -47,49 +45,49 @@ access to `xelatex` and similar. ## Getting Started -To use FluentCV you'll need to create a valid resume in either [FRESH][fresca] -or [JSON Resume][6] format. Then you can start using the command line tool. -There are four basic commands you should be aware of: +To use HackMyResume you'll need to create a valid resume in either +[FRESH][fresca] or [JSON Resume][6] format. Then you can start using the command +line tool. There are four basic commands you should be aware of: - `build` generates resumes in HTML, Word, Markdown, PDF, and other formats. Use it when you need to submit, upload, print, or email resumes in specific formats. ```bash - # fluentcv BUILD TO [-t THEME] - fluentcv BUILD resume.json TO out/resume.all - fluentcv BUILD r1.json r2.json TO out/rez.html out/rez.md foo/rez.all + # hackmyresume BUILD TO [-t THEME] + hackmyresume BUILD resume.json TO out/resume.all + hackmyresume BUILD r1.json r2.json TO out/rez.html out/rez.md foo/rez.all ``` - `new` creates a new resume in FRESH or JSON Resume format. ```bash - # fluentcv NEW [-f ] - fluentcv NEW resume.json - fluentcv NEW resume.json -f fresh - fluentcv NEW r1.json r2.json -f jrs + # hackmyresume NEW [-f ] + hackmyresume NEW resume.json + hackmyresume NEW resume.json -f fresh + hackmyresume NEW r1.json r2.json -f jrs ``` - `convert` converts your source resume between FRESH and JSON Resume formats. Use it to convert between the two formats to take advantage of tools and services. ```bash - # fluentcv CONVERT TO - fluentcv CONVERT resume.json TO resume-jrs.json - fluentcv CONVERT 1.json 2.json 3.json TO out/1.json out/2.json out/3.json + # hackmyresume CONVERT TO + hackmyresume CONVERT resume.json TO resume-jrs.json + hackmyresume CONVERT 1.json 2.json 3.json TO out/1.json out/2.json out/3.json ``` - `validate` validates the specified resume against either the FRESH or JSON Resume schema. Use it to make sure your resume data is sufficient and complete. ```bash - # fluentcv VALIDATE - fluentcv VALIDATE resume.json - fluentcv VALIDATE r1.json r2.json r3.json + # hackmyresume VALIDATE + hackmyresume VALIDATE resume.json + hackmyresume VALIDATE r1.json r2.json r3.json ``` ## Supported Output Formats -FluentCV supports these output formats: +HackMyResume supports these output formats: Output Format | Ext | Notes ------------- | --- | ----- @@ -107,11 +105,11 @@ image | .png, .bmp | Forthcoming. ## Install -FluentCV requires a recent version of [Node.js][4] and [NPM][5]. Then: +HackMyResume requires a recent version of [Node.js][4] and [NPM][5]. Then: 1. Install the latest official [wkhtmltopdf][3] binary for your platform. 2. Optionally install an updated LaTeX environment (LaTeX resumes only). -2. Install **fluentCV** with `[sudo] npm install fluentcv -g`. +2. Install **HackMyResume** with `[sudo] npm install hackmyresume -g`. 3. You're ready to go. ## Use @@ -120,7 +118,7 @@ Assuming you've got a JSON-formatted resume handy, generating resumes in different formats and combinations easy. Just run: ```bash -fluentcv BUILD [-t theme]. +hackmyresume BUILD [-t theme]. ``` Where `` is one or more .json resume files, separated by spaces; @@ -129,25 +127,25 @@ theme (default to Modern). For example: ```bash # Generate all resume formats (HTML, PDF, DOC, TXT, YML, etc.) -fluentcv build resume.json -o out/resume.all -t modern +hackmyresume build resume.json -o out/resume.all -t modern # Generate a specific resume format -fluentcv build resume.json TO out/resume.html -fluentcv build resume.json TO out/resume.pdf -fluentcv build resume.json TO out/resume.md -fluentcv build resume.json TO out/resume.doc -fluentcv build resume.json TO out/resume.json -fluentcv build resume.json TO out/resume.txt -fluentcv build resume.json TO out/resume.yml +hackmyresume build resume.json TO out/resume.html +hackmyresume build resume.json TO out/resume.pdf +hackmyresume build resume.json TO out/resume.md +hackmyresume build resume.json TO out/resume.doc +hackmyresume build resume.json TO out/resume.json +hackmyresume build resume.json TO out/resume.txt +hackmyresume build resume.json TO out/resume.yml # Specify 2 inputs and 3 outputs -fluentcv build in1.json in2.json TO out.html out.doc out.pdf +hackmyresume build in1.json in2.json TO out.html out.doc out.pdf ``` You should see something to the effect of: ``` -*** FluentCV v0.9.0 *** +*** HackMyResume v0.9.0 *** Reading JSON resume: foo/resume.json Applying MODERN Theme (7 formats) Generating HTML resume: out/resume.html @@ -166,8 +164,8 @@ Generating YAML resume: out/resume.yml You can specify a predefined or custom theme via the optional `-t` parameter. For a predefined theme, include the theme name. For a custom theme, include the path to the custom theme's folder. ```bash -fluentcv build resume.json -t modern -fluentcv build resume.json -t ~/foo/bar/my-custom-theme/ +hackmyresume build resume.json -t modern +hackmyresume build resume.json -t ~/foo/bar/my-custom-theme/ ``` As of v0.9.0, available predefined themes are `modern`, `minimist`, and `hello-world`, and `compact`. @@ -178,13 +176,13 @@ You can **merge multiple resumes together** by specifying them in order from mos ```bash # Merge specific.json onto base.json and generate all formats -fluentcv build base.json specific.json -o resume.all +hackmyresume build base.json specific.json -o resume.all ``` This can be useful for overriding a base (generic) resume with information from a specific (targeted) resume. For example, you might override your generic catch-all "software developer" resume with specific details from your targeted "game developer" resume, or combine two partial resumes into a "complete" resume. Merging follows conventional [extend()][9]-style behavior and there's no arbitrary limit to how many resumes you can merge: ```bash -fluentcv build in1.json in2.json in3.json in4.json TO out.html out.doc +hackmyresume build in1.json in2.json in3.json in4.json TO out.html out.doc Reading JSON resume: in1.json Reading JSON resume: in2.json Reading JSON resume: in3.json @@ -196,72 +194,72 @@ Generating WORD resume: out.doc ### Multiple targets -You can specify **multiple output targets** and FluentCV will build them: +You can specify **multiple output targets** and HackMyResume will build them: ```bash # Generate out1.doc, out1.pdf, and foo.txt from me.json. -fluentcv build me.json -o out1.doc -o out1.pdf -o foo.txt +hackmyresume build me.json -o out1.doc -o out1.pdf -o foo.txt ``` You can also omit the output file(s) and/or theme completely: ```bash -# Equivalent to "fluentcv resume.json resume.all -t modern" -fluentcv build resume.json +# Equivalent to "hackmyresume resume.json resume.all -t modern" +hackmyresume build resume.json ``` ### Using .all -The special `.all` extension tells FluentCV to generate all supported output formats for the given resume. For example, this... +The special `.all` extension tells HackMyResume to generate all supported output formats for the given resume. For example, this... ```bash # Generate all resume formats (HTML, PDF, DOC, TXT, etc.) -fluentcv build me.json -o out/resume.all +hackmyresume build me.json -o out/resume.all ``` -..tells FluentCV to read `me.json` and generate `out/resume.md`, `out/resume.doc`, `out/resume.html`, `out/resume.txt`, `out/resume.pdf`, and `out/resume.json`. +..tells HackMyResume to read `me.json` and generate `out/resume.md`, `out/resume.doc`, `out/resume.html`, `out/resume.txt`, `out/resume.pdf`, and `out/resume.json`. ### Validating -FluentCV can also validate your resumes against either the [FRESH / +HackMyResume can also validate your resumes against either the [FRESH / FRESCA][fresca] or [JSON Resume][6] formats. To validate one or more existing resumes, use the `validate` command: ```bash # Validate myresume.json against either the FRESH or JSON Resume schema. -fluentcv validate resumeA.json resumeB.json +hackmyresume validate resumeA.json resumeB.json ``` -FluentCV will validate each specified resume in turn: +HackMyResume will validate each specified resume in turn: ```bash -*** FluentCV v0.9.0 *** +*** HackMyResume v0.9.0 *** Validating JSON resume: resumeA.json (INVALID) Validating JSON resume: resumeB.json (VALID) ``` ### Converting -FluentCV can convert between the [FRESH][fresca] and [JSON Resume][6] formats. +HackMyResume can convert between the [FRESH][fresca] and [JSON Resume][6] formats. Just run: ```bash -fluentcv CONVERT +hackmyresume CONVERT ``` where is one or more resumes in FRESH or JSON Resume format, and - is a corresponding list of output file names. FluentCV will autodetect + is a corresponding list of output file names. HackMyResume will autodetect the format (FRESH or JRS) of each input resume and convert it to the other format (JRS or FRESH). ### Prettifying -FluentCV applies [js-beautify][10]-style HTML prettification by default to +HackMyResume applies [js-beautify][10]-style HTML prettification by default to HTML-formatted resumes. To disable prettification, the `--nopretty` or `-n` flag can be used: ```bash -fluentcv generate resume.json out.all --nopretty +hackmyresume generate resume.json out.all --nopretty ``` ### Silent Mode @@ -269,8 +267,8 @@ fluentcv generate resume.json out.all --nopretty Use `-s` or `--silent` to run in silent mode: ```bash -fluentcv generate resume.json -o someFile.all -s -fluentcv generate resume.json -o someFile.all --silent +hackmyresume generate resume.json -o someFile.all -s +hackmyresume generate resume.json -o someFile.all --silent ``` ## License diff --git a/assets/fluentcv_cli_ubuntu.png b/assets/fluentcv_cli_ubuntu.png deleted file mode 100644 index f4db94c..0000000 Binary files a/assets/fluentcv_cli_ubuntu.png and /dev/null differ diff --git a/assets/hackmyresume_cli.png b/assets/hackmyresume_cli.png new file mode 100644 index 0000000..2110109 Binary files /dev/null and b/assets/hackmyresume_cli.png differ diff --git a/assets/resume-bouqet.png b/assets/resume-bouqet.png index a8acf08..20ae843 100644 Binary files a/assets/resume-bouqet.png and b/assets/resume-bouqet.png differ diff --git a/package.json b/package.json index ffea534..2e1f862 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { - "name": "fluentcv", - "version": "0.11.0", + "name": "hackmyresume", + "version": "1.0.0", "description": "Generate polished résumés and CVs in HTML, Markdown, LaTeX, MS Word, PDF, plain text, JSON, XML, YAML, smoke signal, and carrier pigeon.", "repository": { "type": "git", - "url": "https://github.com/fluentdesk/fluentcv.git" + "url": "https://github.com/hacksalot/HackMyResume.git" }, "keywords": [ "resume", @@ -24,13 +24,13 @@ "license": "MIT", "preferGlobal": "true", "bugs": { - "url": "https://github.com/fluentdesk/fluentcv/issues" + "url": "https://github.com/hacksalot/HackMyResume/issues" }, - "main": "src/fluentcmd.js", + "main": "src/hackmycmd.js", "bin": { - "fluentcv": "src/index.js" + "hackmyresume": "src/index.js" }, - "homepage": "https://github.com/fluentdesk/fluentcv", + "homepage": "https://github.com/hacksalot/HackMyResume", "dependencies": { "colors": "^1.1.2", "fluent-themes": "~0.7.0-beta", diff --git a/src/core/fluent-date.js b/src/core/fluent-date.js index 8689746..7b7c5f6 100644 --- a/src/core/fluent-date.js +++ b/src/core/fluent-date.js @@ -1,5 +1,5 @@ /** -The FluentCV date representation. +The HackMyResume date representation. @license MIT. Copyright (c) 2015 James Devlin / FluentDesk. @module fluent-date.js */ @@ -13,7 +13,7 @@ formats to be aware of here. 2. The default "YYYY-MM-DD" format used in JSON Resume ("2015-02-10") 3. Year-and-month only ("2015-04") 4. Year-only "YYYY" ("2015") -5. The friendly FluentCV "mmm YYYY" format ("Mar 2015" or "Dec 2008") +5. The friendly HackMyResume "mmm YYYY" format ("Mar 2015" or "Dec 2008") 6. Empty dates ("", " ") 7. Any other date format that Moment.js can parse from Note: Moment can transparently parse all or most of these, without requiring us diff --git a/src/core/theme.js b/src/core/theme.js index 2a71a2e..68d8fb8 100644 --- a/src/core/theme.js +++ b/src/core/theme.js @@ -16,7 +16,7 @@ Definition of the Theme class. , RECURSIVE_READ_DIR = require('recursive-readdir-sync'); /** - The Theme class is a representation of a FluentCV theme asset. + The Theme class is a representation of a HackMyResume theme asset. @class Theme */ function Theme() { diff --git a/src/gen/html-pdf-generator.js b/src/gen/html-pdf-generator.js index fa06595..6e32ea5 100644 --- a/src/gen/html-pdf-generator.js +++ b/src/gen/html-pdf-generator.js @@ -11,7 +11,7 @@ Definition of the HtmlPdfGenerator class. , HTML = require( 'html' ); /** - An HTML-based PDF resume generator for FluentCV. + An HTML-based PDF resume generator for HackMyResume. */ var HtmlPdfGenerator = module.exports = TemplateGenerator.extend({ diff --git a/src/fluentlib.js b/src/hackmyapi.js similarity index 92% rename from src/fluentlib.js rename to src/hackmyapi.js index 927216f..6d96368 100644 --- a/src/fluentlib.js +++ b/src/hackmyapi.js @@ -1,7 +1,7 @@ /** -External API surface for FluentCV:CLI. +External API surface for HackMyResume. @license MIT. Copyright (c) 2015 James M. Devlin / FluentDesk. -@module fluentlib.js +@module hackmyapi.js */ module.exports = { diff --git a/src/fluentcmd.js b/src/hackmycmd.js similarity index 97% rename from src/fluentcmd.js rename to src/hackmycmd.js index f2658ab..fe0f229 100644 --- a/src/fluentcmd.js +++ b/src/hackmycmd.js @@ -1,7 +1,7 @@ /** -Internal resume generation logic for FluentCV. +Internal resume generation logic for HackMyResume. @license MIT. Copyright (c) 2015 James M. Devlin / FluentDesk. -@module fluentcmd.js +@module hackmycmd.js */ (function() { @@ -12,7 +12,7 @@ Internal resume generation logic for FluentCV. , unused = require('./utils/string') , FS = require('fs') , _ = require('underscore') - , FLUENT = require('./fluentlib') + , FLUENT = require('./hackmyapi') , PATH = require('path') , MKDIRP = require('mkdirp') //, COLORS = require('colors') @@ -106,7 +106,7 @@ Internal resume generation logic for FluentCV. _log( 'Generating '.useful + targInfo.fmt.outFormat.toUpperCase().useful.bold + - ' resume: '.useful + path.relative(process.cwd(), f ).useful.bold); + ' resume: '.useful + path.relative(process.cwd(), f ).replace(/\\/g,'/').useful.bold); theFormat = _fmts.filter( function(fmt) { return fmt.name === targInfo.fmt.outFormat; })[0]; @@ -133,7 +133,7 @@ Internal resume generation logic for FluentCV. else { _log( 'Generating '.useful + targInfo.fmt.outFormat.toUpperCase().useful.bold + - ' resume: '.useful + path.relative(process.cwd(), f ).useful.bold); + ' resume: '.useful + path.relative(process.cwd(), f ).replace(/\\/g,'/').useful.bold); theFormat = _fmts.filter( function(fmt) { return fmt.name === targInfo.fmt.outFormat; })[0]; @@ -312,7 +312,7 @@ Internal resume generation logic for FluentCV. ]; /** - Default FluentCV options. + Default HackMyResume options. */ var _opts = { theme: 'modern', @@ -335,7 +335,7 @@ Internal resume generation logic for FluentCV. new: create, help: help }, - lib: require('./fluentlib'), + lib: require('./hackmyapi'), options: _opts, formats: _fmts }; diff --git a/src/index.js b/src/index.js index 876dace..233b43c 100644 --- a/src/index.js +++ b/src/index.js @@ -1,19 +1,19 @@ #! /usr/bin/env node /** -Command-line interface (CLI) for FluentCV:CLI. +Command-line interface (CLI) for HackMyResume. @license MIT. Copyright (c) 2015 James M. Devlin / FluentDesk. @module index.js */ var ARGS = require( 'minimist' ) - , FCMD = require( './fluentcmd') + , FCMD = require( './hackmycmd') , PKG = require('../package.json') , COLORS = require('colors') , FS = require('fs') , PATH = require('path') , opts = { } - , title = ('*** FluentCV v' + PKG.version + ' ***').bold.white + , title = ('\n*** HackMyResume v' + PKG.version + ' ***').bold.white , _ = require('underscore'); diff --git a/src/use.txt b/src/use.txt index d943d28..bac8c24 100644 --- a/src/use.txt +++ b/src/use.txt @@ -1,6 +1,6 @@ Usage: - fluentcv [TO ] [-t ] [-f ] + hackmyresume [TO ] [-t ] [-f ] should be BUILD, NEW, CONVERT, VALIDATE, or HELP. should be the path to one or more FRESH or JSON Resume format resumes. @@ -10,16 +10,16 @@ COMPACT, MINIMIST, MODERN, or HELLO-WORLD) or the relative path to a custom theme. should be either FRESH (for a FRESH-format resume) or JRS (for a JSON Resume-format resume). - fluentcv BUILD resume.json TO out/resume.all - fluentcv NEW resume.json - fluentcv CONVERT resume.json TO resume-jrs.json - fluentcv VALIDATE resume.json + hackmyresume BUILD resume.json TO out/resume.all + hackmyresume NEW resume.json + hackmyresume CONVERT resume.json TO resume-jrs.json + hackmyresume VALIDATE resume.json Both SOURCES and TARGETS can accept multiple files: - fluentCV BUILD r1.json r2.json TO out/resume.all out2/resume.html - fluentCV NEW r1.json r2.json r3.json - fluentCV VALIDATE resume.json resume2.json resume3.json + hackmyresume BUILD r1.json r2.json TO out/resume.all out2/resume.html + hackmyresume NEW r1.json r2.json r3.json + hackmyresume VALIDATE resume.json resume2.json resume3.json -See https://github.com/fluentdesk/fluentCV/blob/master/README.md for more +See https://github.com/hacksalot/hackmyresume/blob/master/README.md for more information. diff --git a/tests/test-themes.js b/tests/test-themes.js index 0bb3ffe..a755310 100644 --- a/tests/test-themes.js +++ b/tests/test-themes.js @@ -5,7 +5,7 @@ var chai = require('chai') , path = require('path') , _ = require('underscore') , FRESHResume = require('../src/core/fresh-resume') - , FCMD = require( '../src/fluentcmd') + , FCMD = require( '../src/hackmycmd') , validator = require('is-my-json-valid') , COLORS = require('colors');