Render node content in page.html.twig level or blocks at node.html.twig level In a Drupal 8 site design there is expected a view block and a static block in the middle of node content.

I've been trying to figure out how to render node content around the block region (in page.html.twig level), render the block region in the middle of the node content (in node.html.twig level) or any other work around, for ages.

I imagine one way would be to render part of the node content in a view block with contextual filter and other node content fields in the node.html.twig, but I don't know how resource heavy would it be for the system?

If there are any suggestions/solutions anyone here could think of for solving this as efficiently as possible, I'd be very happy to hear about them.

Best,

Alari
So one thing is directly accessing the node object that you have available. E.g. {{ node.some_field.value }} (which prints the raw value of e.g. a text field, not what you want in most cases) or {{ node.some_field.view() }} (which views it using the default formatter configuration, you can also provide a view mode or formatter configuration to it).

See also the two related questions that I already added as a comment:  Render a node field inside page.html.twig AND Render image field from node in page.html.twig.

As you found out yourself, you can also use blocks for this. However, using views for that is a bit backwards. Views executes a query. So what it does is get the node from the already loaded ID, then does a query to get the node ID and then gets the node again for that Node ID ;)

As an alternative, blocks in D8 support context. So they can get things from the site injected and use it directly. See https://drupal.stackexchange.com/a/188629/31 for some explanation on this. You can implement a custom block yourself and print out what you want, or you can use the block that ctools provides that allows you to view a node with a specific view mode.