How to theme separately the node content and the comments I have seen here several related questions, none of which clearly provide an answer. I am implementing a theme where I want the node content (with its title, the tabs, etc.) themed completely separately (i.e. in a different div) from the comments. The initial problem is that part of what I consider the node content (the title, the tabs) is rendered in page.tpl.php and part (the node body itself) is rendered in node.tpl.php. The problem is that the comments are an integral part of the variable $content in node.tpl.php.

I found part of the solution:

I found the template comment-wrapper.tpl.php. By reimplementing it in my theme, I can cancel the output of the comments (by blanking out the template).  

Now, I would like to use mytheme_preprocess_page() to pull up the comments into a variable $comments so that I can add the comments where I want in page.tpl.php. 

The remaining problem is how can I get all the variables originally available within comment-wrapper.tpl.php from mytheme_preprocess_page()?  

Or do you know another (better) way to achieve the same thing? 

Another way to answer the question: who calls comment-wrapper.tpl.php ? 

Maybe an answer to that question would help:
$content: reworded about manipulating this variable
A- The node_menu (hook_menu implementation) has node_page_view() as a page callback for a node page.
B- node_page_view() calls node_show() which:
1- is not a themable function.
2- mixes (concatenates) the output of node_view() (the node content itself) and of comment_render().
C- comment_render() calls theme('comment_wrapper', ...)

This is where the serpent bit its tail:
As mentioned in the question, I could reimplement comment-wrapper.tpl.php to nix the output mixed with the node,
but then calling comment_render() separately to get the comments where I want returns nothing for the same reason! 

The conclusion is that the solution cannot be implemented by a theme alone. One would need to implement this in a module and override the node_page_view() callback and re-implement node_show(), taking care of the fact that node_show() is also called when viewing a node revision ('node/$nid/revisions/$vid/view').