First of all, thanks so much for all of the effort that has gone into this!
One thing I'm not crazy about with the FRESH and JSON Resume formats is the top-level about
or summary
field. It's modeled as a single string with no formatting, but it would be great if some support for formatting were possible.
The buzzword-cloud that's generated from the skills
section is terrific for younger developers without a lot of job history. However, my anecdotal experience is that for older professionals with a career under their belts... you're better off with a summary section that simply lists a few free-form bullet-point highlight sentences.
The skills
model forces you into a "category -> buzzwords" structure, while the summary
model forces you into a "paragraph with no line breaks or formatting" structure. Bummer.
My proposal would simply be to add support for HTML or Markdown formatting within the summary
field (at least newlines and bullet-points, if nothing else). Of course, there would be some challenges here:
- You'd have to parse newlines in the
summary
field (I'm not sure if JSON has any support for multi-line string fields, or if you'd have to just embed \n
characters within a single line).
- More importantly, templates would have to recognize and parse formatting as appropriate for the target format. The HTML template would have to replace
\n
's with <br/>
's, and bullet-points with <ul><li>...</li></ul>
. The MS Word one would have to replace them with the correct Word XML constructs, etc.
If this is too large of a feature request, then my fallback proposal would be to simply add some search-and-replace helper functions for Handlebars in src/eng/generic-helpers.js
. I imagine that only two would be needed:
replaceSubstring : function( txt, target, replacement )
- returns a copy of txt
, with all occurrences of substring target
replaced by substring replacement
. A Handlebars template for generating HTML output could then use {{ replaceSubstring summary '\n' "<br/>" }}
.
enclosePrefixedString : function( txt, prefix, open, close )
- returns a copy of txt
. If txt
is prefixed by prefix
, then that prefix is stripped and the string is instead enclosed by open
and close
. For the more tricky task of recognizing Markdown formatting at the beginning of a string, and replacing it with HTML formatting that must enclose the string. A Handlebars template could then use {{ enclosePrefixedString summary "/^ \* /" "<ul><li>" "</li></ul>" }}
.
This fallback is a bit ugly, but it does take the responsibility for my feature request and push onto template authors who want to deal with it. I'm more than happy to submit a pull request for this myself if there is interest.
However, I am wondering if you don't already have a solution for this in the works now? When I look at the screenshot on the FluentCV website, the text shown in the summary field explicitly mentions support for HTML and Markdown formatting! Assuming that is legit, then will that support include line-breaks and bullet-point lists?