hacksalot / HackMyResume

Generate polished résumés and CVs in HTML, Markdown, LaTeX, MS Word, PDF, plain text, JSON, XML, YAML, smoke signal, and carrier pigeon.
https://fluentdesk.com/hackmyresume
MIT License
9.28k stars 526 forks source link

Picture URL is wrapped by `a` element on html output #161

Open DrummerHead opened 8 years ago

DrummerHead commented 8 years ago

When building an HTML output, the basics.picutre attribute is used as src for the user picture, but it is also being wrapped by an a element as if it was a link.

Tested with jsonresume-theme-elegant and jsonresume-theme-slick

To recreate the error:

You will notice that the src attribute for the image is broken, an example:

<div class="card profile-card"><span class="profile-pic-container"><div class="profile-pic"><img data-src="holder.js/100x100" alt="John Doe" src="<a href="http://mcdlr.com/i/firefox.gif">http://mcdlr.com/i/firefox.gif</a>" itemprop="image" class="media-object img-circle center-block"/></div><div class="name-and-profession text-center"><h3 itemprop="name"><b>John Doe</b></h3><h5 itemprop="jobTitle" class="text-muted"></h5></div></span>

The same error appears using other themes, example error for jsonresume-theme-slick

                <div class="col-xs-3 col-sm-4">
                    <img class="avatar" src="<a href=" http://mcdlr.com/i/firefox.gif
                    ">http://mcdlr.com/i/firefox.gif</a>"/>
                </div>

Details by using debug flag:

  Platform:              darwin
  Node.js:               v5.5.0
  HackMyResume:          v1.8.0
  FRESCA:                ~0.6.0

Cheers!

DrummerHead commented 8 years ago

I confirm that using the dev version (installed via npm install hacksalot/hackmyresume#dev -g) also shows this issue

Using resume-cli does not show this issue

paskal commented 7 years ago

Same there, I've reported it as mudassir0909/jsonresume-theme-elegant#85. Here are two files, generated by hackmyresume and resume-cli:

[root@umonkey cv]# egrep 'src.+gravatar.+center-block"/>' elegant-* -o
elegant-hackmyresume.html:src="holder.js/100x100" alt="Dmitry Verhoturov" src="<a href="https://www.gravatar.com/avatar/8b2d47d99e6af64b89e6a0721e3485eb?s=200">https://www.gravatar.com/avatar/8b2d47d99e6af64b89e6a0721e3485eb?s=200</a>" itemprop="image" class="media-object img-circle center-block"/>
elegant-resume-cli.html:src="holder.js/100x100" alt="Dmitry Verhoturov" src="https://www.gravatar.com/avatar/8b2d47d99e6af64b89e6a0721e3485eb?s=200" itemprop="image" class="media-object img-circle center-block"/>
vrajeshkanna commented 7 years ago

I had to workaround by hardcoding my gravatar image URL in the theme source(resume-header.hbs) itself. <img src="https://en.

guix77 commented 6 years ago

It's because of the Markdown conversion from plain text links to links: https://github.com/hacksalot/HackMyResume/blob/ab6e7ee1a0f55608b531f4e644c298426291bb17/src/renderers/jrs-generator.js#L38

Workaround: suppose you have ./resume.json and ./picture.jpg in the root folder. In resume.json use this, so the built resume in ./out/ will have the proper path to the picture:

"picture": "../picture.jpg",

The automatic conversion from plain text links to links causes other issues, for instance if the theme expects an URL in plain text and generates a link, then the link will de doubled with the MD auto conversion.

In the long term I guess that an option to disable automatic "MD" links conversion might be the best move.

karlitos commented 5 years ago

I can confirm the workaround proposed by @guix77. The Markdown conversion causes lot of issues actually. I have a helper in my template converting local or remote images to Base64, but it fails when the url, after the processing by HackMyResume looks like @@@@~https://my-remote-image.jpg~@@@@

By now, I have to disable the image processing by default and control the template behaviour with environment variables