How to insert fields into a link field in twig?
I don't see anything for the insert tag in Twig or Drupal, but you can preprocess the url variable in mytheme.theme and pass it to the template, giving you what you want:

&lt;a href="{{ url }}" &gt;
  &lt;div&gt;{{ content.body }}&lt;/div&gt;
  &lt;div&gt;{{ content.field_subtitle }}&lt;/div&gt;
  &lt;div&gt;{{ content.field_category }}&lt;/div&gt;
&lt;/a&gt;


The url variable would be created in the preprocess function.

If its a standard link field, you could try:

$link = $node-&gt;get('field_link')-&gt;getValue();

if (!$external) {
  $variables['url'] = Url::fromUri($link['uri'])-&gt;toString();
}
else {
  $variables['url'] = $link['uri'];
}


Edit: totally forgot the line that checks if it is external.