Having read your question and the thread you refer to I'd say "go for new page" for the following reason:
- if the user wants to compare couple of products (recipes), they can open those in separate browser windows/tabs and perform the comparison
This would not be possible while using modals since the nature of the modal dialog is to block all underlying UI components.
However, this would be acting as a poor man's comparison feature that actually should be implemented within your page.
I agree with the accepted answer of your reference thread - go with an extendable list, a.k.a. accordion. Or, even better, provide some fixed area where the current recipe is displayed while the user can browse (scroll) through the other recipes. In the fixed area you can provide some links like add to comparison, open in new window and print version, see the mockup below:
download bmml source – Wireframes created with Balsamiq Mockups
EDIT: after the OP has added some more information I can give some more reasoning on the initial question.
- modal window - this is, in my opinion, the worst option, and here's why:
- obscures (blocks) the underlying information
- locks the user within the modal (back/forward functionality of the browser doesn't work as intended)
- prevents items comparison (opening several modals side-by-side)
- new browser window (new tab) - somewhat beter than the modal window, yet not the best solution, in my opinion:
- displays the information
- allows for several items opened side-by-side (quick switch between items or comparison)
- returning from the opened item to the main page depends on the browser, thus not reliable
- can cause a buildup of several browser windows/tabs when items are not closed after viewing
- the solution I proposed (scrollable list with the recipes and fixed area for the selected one):
- displays the information (surprise, surprise)
- keeps the user within one page - ease of navigation
- all content clearly visible
- items comparison not directly possible, unless implemented (development issue)
- requires more display space than the solutions mentioned earlier
I've tried to be as objective as possible when presenting the pros and the cons of the solutions you've asked for and the one proposed by me.