Home Blog Page 64

Caramel Apple Rice Pudding

0
Flat-lay image of apples filled with caramel baked rice pudding on a weathered table. Caramel Apple Rice Pudding Recipe

Is there a fire in the fireplace? Did someone offer a tiny nightcap of brandy? Did the chef of the house mention dessert? If the answer to at least two of these questions is yes, consider this delicious hybrid of baked apple, caramel, and rice pudding. Perfect for fall, the hour-long simmering of the rice pudding pays off big time in this mouthwatering finale to a grand autumn meal.

Tips for Making Rice Pudding  

Making your pudding is all about timing and proportion. You don’t want to get thick, soupy pudding, so make sure you’re rinsing the rice under cold water until the water runs clear. This removes excess starch and prevents the pudding from becoming too gummy. And don’t overcook, stop cooking when the rice is tender but still slightly firm, as it will continue to thicken as it cools.

Recipes and Styling by Anna Franklin
Photography by Dave Bryce
With Support from Buy Fresh Buy Local Western PA

Subscribe to TABLE Magazine’s print edition.

Chicken and Dumplings with Squash

0
Flat-lay image of chicken and dumplings in small bowls on a weathered table.

The stick-to-your-ribs appeal of chicken and dumplings deepens as the evenings cool down. This version adds the vegetal sweetness of acorn and butternut squash, coaxed into full flavor with farm-sourced carrots, celery, thyme, garlic, and onion.

What is the Difference Between Acorn Squash and Butternut Squash?

Acorn and butternut squash, while both popular winter squashes, are actually pretty different in their appearance and flavor profile. Acorn squash, just like you would imagine, is shaped like an acorn with a round body and dark green color which often features a bit of orange. Its flavor is mild and nutty with a subtle sweetness, but the flesh tends to be more fibrous and watery than some squash varieties…more like pumpkin than Butternut squash.

Butternut squash has a somewhat pear-like shape and comes with a tan skin. Its flesh is sweeter and richer than most squashes. It’s often buttery and nutty, and possesses a creamy, less fibrous texture. We use both of these types in our Chicken and Dumplings with Squash to add a variety of flavors and textures that compliment the hearty broth.

Recipes and Styling by Anna Franklin
Photography by Dave Bryce 

Subscribe to TABLE Magazine’s print edition.

Sweet Potato Rosettes

0
Flat-lay image of a muffin tin filled with sweet potato rosettes on a weathered table.

Because we eat with our eyes and noses before our tongues, sometimes taking a bit of extra care to make something beautiful improves everything on the table. Slicing sweet potatoes and arranging them in a muffin tin is easy enough. Whipping up a quick sauce of cream, cheeses, nutmeg, and herbs is, too. The rich smell of baking begins to taunt the senses into hunger… and once these beauties appear, all the senses come alive. The rosettes are terrific as a starter served with a glass of dry, mineral-inflected rosé.

What If I Don’t Have a Muffin Tray to Make the Sweet Potato Rosettes?

While we think rosette form is the most gorgeous way to serve this recipe, don’t panic if you can’t find your muffin tray. Instead of making individual sweet potato rosettes, try making a this recipe in a small pie or cake pan. You’ll still layer the slices of potatoes in your pan but instead of creating a rose shape, you can arrange as you please. Then, you’ll pour your cheese sauce over top of the potatoes and bake as directed. It may take a little longer for your cake or pie pan of potatoes to bake since it is a larger serving. Just simply keep an eye on the pan in the oven, checking regularly for a golden brown color and throughly cooked texture.

Recipes and Styling by Anna Franklin
Photography by Dave Bryce
With Support from Buy Fresh Buy Local Western PA

Subscribe to TABLE Magazine’s print edition.

A September Song: Persimmon French 75

0
Two Persimmon French 75 Cocktails orange in color sit in fluted glasses.

What do we do when the nights get a bit longer? We devise special moments to savor the beauty of fall. Publisher Justin Matase’s recipe for a Persimmon French 75 fits that bill: prepare yourself two flutes of perfectly tinted beauty. Share it with someone you care about. Make plans for a beautiful winter vacation.

How to Use Persimmons in a Cocktail

Persimmons are a versatile fruit (technically a berry) that have a huge variety within them. We recommend Fuyu and Hachiya persimmons for cocktails. They are both beautiful to look at and delicious to eat. The Fuyu persimmons have a candy-like flavor that make it perfect to balance out the liquors in the Persimmon French 75. 

Recipe by Justin Matase
Styling by Anna Franklin
Photography by Dave Bryce

Subscribe to TABLE Magazine’s print edition.

French Café and Crêperie, Mille, Will Have You Asking for More

0
Mille Santa Fe cake on a white plate next to a glass with a brown beverage

A Thousand Ways to Say “Oui”

Marcel, who hails from Corsica, and is the owner of relatively new — and now must-go — French café and crêperie, Mille, in Santa Fe, was originally a scientist. He made his way to New Mexico to work at Los Alamos National Labs but found himself often yearning to return to his family roots of baking and cooking. His grandparents owned and ran the original Mille in the small Mediterranean village he grew up in. So when the opportunity presented itself to open a café — first in Los Alamos and then in Santa Fe — he jumped at the chance. And he has achieved what he set out to do: create a simple and accessible French food experience with a diversity of offerings for all to enjoy.

After indulging in a savory crêpe or a salad niçoise, you might be too full for dessert. But don’t let that stop you from taking a slice of this amazing almond and pear cake (Tarte Bourdaloue) with you home for later. There had been high demand for a gluten-free dessert at Mille, but this sumptuous treat won’t disappoint the most gluten-ravenous among us. Marcel brings his scientific mind to bear on this task and uses only a handful of ingredients in the perfect balance and exact baking conditions to create something classic.

Our friends over at Tonic recommended pairing this with some sherry. And they were not wrong. The soft, round nutty and fruity flavors from the sherry further enhance those same flavors in the cake. This is a perfect way to end a New Mexican autumnal day in French style.

Story by Alex Hanna / Photography by Tira Howard

A footer photo with a black background and subscribe info and button

Subscribe to TABLE Magazine’s print edition.

Spiral Ratatouille

0
Colorful spiral ratatouille sits proudly in a bowl

Annette Atwood’s Italian heritage gifted her with a balanced sense of what’s traditional and correct. Her innate good taste leads her to what’s new and worth trying. When she happened upon a camera-ready Spiral Ratatouille recipe, she tried it, tweaked it, and delivered it to our studio for a photo finish. It was not only ready for its close-up, but it was downright booming with bright flavors and inviting textures.

How did Ratatouille Get Its Name?

Yes, Ratatouille is also the name of the classic and heartwarming film about a rat that wants to be a chef and gets into various hijinks to achieve his culinary dreams. But, thankfully for your health, there are no rats in an actual spiral ratatouille dish. The name “ratatouille” comes from the French word “ratatouiller,” which means “to stir up.” This reflects the usual method of preparation. Traditionally, ratatouille is a Provençal vegetable stew made with ingredients like tomatoes, zucchini, eggplant, bell peppers, and herbs, making it a rare meal that is healthy, upscale, and delicious. In this version, evenly sliced veggies are arranged over a layer of flavorful tomato sauce, making the dish into something that provokes visual delight for the eyes as well as culinary delight for the tastebuds.

Print

clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

Colorful spiral ratatouille sits proudly in a bowl

Spiral Ratatouille


5 Stars 4 Stars 3 Stars 2 Stars 1 Star


  • Author:
    Annette Atwood

Description

Both gorgeous and delicious, this dish checks two boxes essential to hosting a great dinner party.


Ingredients


Scale

  • 2 eggplants, long and narrow
  • 6 plum tomatoes
  • 2 yellow squashes, long and narrow
  • 2 zucchinis, long and narrow
  • 3 tbsp olive oil
  • 1 medium yellow onion, diced
  • 4 cloves garlic, minced
  • 2 red bell pepper, diced
  • 1 Cubanelle pepper, ribs and seeds removed, diced
  • 28 oz can San Marzano crushed tomatoes
  • 10 fresh basil leaves, chopped
  • Salt and pepper to taste
  • 10 fresh basil leaves, chopped
  • 1 tsp garlic, minced
  • 2 tbsp chopped fresh parsley
  • 2 tsp fresh thyme
  • Salt and pepper to taste
  • 4 tbsp olive oil
  • ¼ tsp red pepper flakes


Instructions

  1. Preheat the oven to 350 degrees. With a sharp knife or a mandolin, slice the eggplant, tomatoes, squash, and zucchini into 1/8-inch discs.
  2. In a cast-iron skillet, heat the oil. Add onion, garlic, and peppers. Cook until tender. Add the crushed tomatoes, basil, salt, and pepper. Stir for a minute or two until bubbling. Decant sauce into a large round braising pan with lid.
  3. Starting at the outer edge of the braising pan, place vegetable slices in a spiral, in a regular, repetitive sequence: eggplant, tomato, squash, zucchini.
  4. Once the surface is covered with the vegetable spiral: in a small bowl, stir together basil, garlic, parsley, thyme, salt, pepper, olive oil, and red pepper flakes. Brush over the vegetable slices.
  5. Place lid on the braising pan and place in oven for 50 minutes. Uncover and let roast for another 15 minutes, or until vegetables are tender but not overdone. Then you have your spiral ratatouille!

window.trCommon={“minRating”:6,”ajaxurl”:”https://www.tablemagazine.com/wp-admin/admin-ajax.php”,”ratingNonce”:”88012c2521″,”postId”:1421};
window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}

if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}

const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}

e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};

document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);

(function(){

var bothEquals = function( d1, d2, D ) {
var ret = 0;
if (d1<=D) {
ret++;
}
if (d2<=D) {
ret++;
}
return ret === 2;
};

var frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1)while(bothEquals(d1,d2,D)){var m=(n1+n2)/(d1+d2);if(x===m){if(d1+d2d2)d2=D+1;else d1=D+1;break}else if(xD){d1=d2;n1=n2}if(!mixed)return[0,n1,d1];var q=Math.floor(n1/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-AD){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed)return[0,sgn*P,Q];var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]};

window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(“%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D”));

window.tastyRecipesFormatAmount = function(amount, el) {
if ( parseFloat( amount ) === parseInt( amount ) ) {
return amount;
}
var roundType = ‘frac’;
if (typeof el.dataset.amountShouldRound !== ‘undefined’) {
if (‘false’ !== el.dataset.amountShouldRound) {
if ( ‘number’ === el.dataset.amountShouldRound ) {
roundType = ‘number’;
} else if (‘frac’ === el.dataset.amountShouldRound) {
roundType = ‘frac’;
} else if (‘vulgar’ === el.dataset.amountShouldRound) {
roundType = ‘vulgar’;
} else {
roundType = ‘integer’;
}
}
}
if (‘number’ === roundType) {
amount = Number.parseFloat(amount).toPrecision(2);
} else if (‘integer’ === roundType) {
amount = Math.round(amount);
} else if (‘frac’ === roundType || ‘vulgar’ === roundType) {
var denom = 8;
if (typeof el.dataset.unit !== ‘undefined’) {
var unit = el.dataset.unit;
if ([‘cups’,’cup’,’c’].includes(unit)) {
denom = 4;
if (0.125 === amount) {
denom = 8;
}
if (“0.1667″ === Number.parseFloat( amount ).toPrecision(4)) {
denom = 6;
}
}
if ([‘tablespoons’,’tablespoon’,’tbsp’].includes(unit)) {
denom = 2;
}
if ([‘teaspoons’,’teaspoon’,’tsp’].includes(unit)) {
denom = 8;
}
}
var amountArray = frac.cont( amount, denom, true );
var newAmount = ”;
if ( amountArray[1] !== 0 ) {
newAmount = amountArray[1] + ‘/’ + amountArray[2];
if (‘vulgar’ === roundType) {
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {
newAmount = vulgar;
}
});
}
}
if ( newAmount ) {
newAmount = ‘ ‘ + newAmount;
}
if ( amountArray[0] ) {
newAmount = amountArray[0] + newAmount;
}
amount = newAmount;
}
return amount;
};

window.tastyRecipesUpdatePrintLink = () => {

const printButton = document.querySelector( ‘.tasty-recipes-print-button’ );

if ( ! printButton ) {
return;
}

const printURL = new URL( printButton.href );
const searchParams = new URLSearchParams( printURL.search );

const unitButton = document.querySelector( ‘.tasty-recipes-convert-button-active’ );
const scaleButton = document.querySelector( ‘.tasty-recipes-scale-button-active’ );

let unit = ”;
let scale = ”;

if ( unitButton ) {
unit = unitButton.dataset.unitType;
searchParams.delete(‘unit’);
searchParams.set( ‘unit’, unit );
}

if ( scaleButton ) {
scale = scaleButton.dataset.amount;
searchParams.set( ‘scale’, scale );
}

const paramString = searchParams.toString();
const newURL = ” === paramString ? printURL.href : printURL.origin + printURL.pathname + ‘?’ + paramString;
const printLinks = document.querySelectorAll( ‘.tasty-recipes-print-link’ );

printLinks.forEach( ( el ) => {
el.href = newURL;
});

const printButtons = document.querySelectorAll( ‘.tasty-recipes-print-button’ );
printButtons.forEach( ( el ) => {
el.href = newURL;
});
};

document.addEventListener( ‘DOMContentLoaded’, () => {

if ( ! window.location.href.includes( ‘/print/’ ) ) {
return;
}

const searchParams = new URLSearchParams( window.location.search );

const unit = searchParams.get( ‘unit’ );
const scale = searchParams.get( ‘scale’ );

if ( unit && ( ‘metric’ === unit || ‘usc’ === unit ) ) {
document.querySelector( ‘.tasty-recipes-convert-button[data-unit-type=”‘ + unit + ‘”]’ ).click();
}

if ( scale && Number(scale) > 0 ) {
document.querySelector( ‘.tasty-recipes-scale-button[data-amount=”‘ + Number(scale) + ‘”]’ ).click();
}
});
}());

(function(){
var buttonClass = ‘tasty-recipes-scale-button’,
buttonActiveClass = ‘tasty-recipes-scale-button-active’,
buttons = document.querySelectorAll(‘.tasty-recipes-scale-button’);
if ( ! buttons ) {
return;
}

buttons.forEach(function(button){
button.addEventListener(‘click’, function(event){
event.preventDefault();
var recipe = event.target.closest(‘.tasty-recipes’);
if ( ! recipe ) {
return;
}
var otherButtons = recipe.querySelectorAll(‘.’ + buttonClass);
otherButtons.forEach(function(bt){
bt.classList.remove(buttonActiveClass);
});
button.classList.add(buttonActiveClass);

var scalables = recipe.querySelectorAll(‘span[data-amount]’);
var buttonAmount = parseFloat( button.dataset.amount );
scalables.forEach(function(scalable){
if (typeof scalable.dataset.amountOriginalType === ‘undefined’
&& typeof scalable.dataset.nfOriginal === ‘undefined’) {
if (-1 !== scalable.innerText.indexOf(‘/’)) {
scalable.dataset.amountOriginalType = ‘frac’;
}
if (-1 !== scalable.innerText.indexOf(‘.’)) {
scalable.dataset.amountOriginalType = ‘number’;
}
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (-1 !== scalable.innerText.indexOf(vulgar)) {
scalable.dataset.amountOriginalType = ‘vulgar’;
}
});
if (typeof scalable.dataset.amountOriginalType !== ‘undefined’) {
scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;
}
}
var amount = parseFloat( scalable.dataset.amount ) * buttonAmount;
amount = window.tastyRecipesFormatAmount(amount, scalable);
if ( typeof scalable.dataset.unit !== ‘undefined’ ) {
if ( ! scalable.classList.contains(‘nutrifox-quantity’) ) {
if ( ! scalable.classList.contains(‘nutrifox-second-quantity’) ) {
amount += ‘ ‘ + scalable.dataset.unit;
}
}
}
scalable.innerText = amount;
});

var nonNumerics = recipe.querySelectorAll(‘[data-has-non-numeric-amount]’);
nonNumerics.forEach(function(nonNumeric){
var indicator = nonNumeric.querySelector(‘span[data-non-numeric-label]’);
if ( indicator ) {
nonNumeric.removeChild(indicator);
}
if ( 1 !== buttonAmount ) {
indicator = document.createElement(‘span’);
indicator.setAttribute(‘data-non-numeric-label’, true);
var text = document.createTextNode(‘ (x’ + buttonAmount + ‘)’);
indicator.appendChild(text);
nonNumeric.appendChild(indicator);
}
});

window.tastyRecipesUpdatePrintLink();
});
});
}());

window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}

const cookModes = document.querySelectorAll(this.cookModeSelector);

if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});

window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}

this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );

setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );

const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}

this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}

const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );

this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );

},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};

window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );

xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}

failure( xhr );
};

xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();

for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};

window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;

this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}

window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}

if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );

// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );

if ( ! data.count ) {
return;
}

const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}

const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}

if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}

const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}

const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}

const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}

const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}

const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.value ) {
return;
}

// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘[name=author]’ ).value = data.comment.name;
commentForm.querySelector( ‘[name=email]’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;

// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;

this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}

const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}

if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}

const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});

 

Story and Styling by Keith Recker
Photography by Dave Bryce

Subscribe to TABLE Magazine‘s print edition.

A Class at the Farmers’ Market with Open Kitchen

0
Santa Fe Farmers' Market Tour and Cooking Class - Hands-on Cooking Experience

On a Saturday morning in mid-August, the Santa Fe Farmers’ Market is resplendent with produce. A good monsoon season has blessed local farmers, with a relief after a bone-dry spring. It is not even 8 o’clock and already market patrons are lined up for tomatoes, corn, chiles, peppers of every color of the rainbow; cucumbers, garlic, onions, and greens, chives and squash, an array of potatoes in multiple colors and sizes. At photographer Doug Merriam’s booth inside the building, seven people gather to listen to a brief introduction delivered by Hue-Chan Karels, owner of Open Kitchen, and Merriam, whose book Farm Fresh Journey: Santa Fe Farmer’s Market Cookbook is for sale at his booth and also provides the recipes for the day’s cooking adventure with Open Kitchen: Santa Fe Farmers’ Market Tour and Cooking Class.

Hue Chan Karels, Open Kitchen cooking class based on Farm Fresh Journey, The Santa Fe Farmers Market Cookbook. Hue Chan and particpants at Santa Fe Farmers Market, cooking at Open Kitchen, and prepared food dishes..

A Class at the Farmers’ Market

The recipes in the book, and that the class participants will make today came from the farmers, Merriam says, sometimes scribbled on a scrap of paper also with no quantities or measures. “I made each recipe several times, to test and make consistent the quantities and weights,” he says. Merriam, a long-time travel and lifestyle photographer, is a self-professed foodie, finding his element at the intersection of the two in the highly photographable market.

When it’s time to shop, Merriam grabs his cameras, while Hue-Chan and Open Kitchen chefs Leslie Chavez (who has since moved on to another kitchen) and Erica Tai shepherd the group from booth to booth, shopping for ingredients for the four recipes they’ll make today. The first stop involves purchasing corn from Shwebach Farm in Moriarty, a farming community on the plains southeast of Santa Fe. The group is given a quick corn fun-facts quiz from Dean Schwebach, also adorned appropriately in a corn hat (picture a Wisconsin cheese hat, only a corn cob). Did you know that corn is 20,000 years old, and is a cultivated non-native grass that air-pollinates? Meanwhile, the chefs choose the larger, less sweet variety for the two uses in the recipe — corn stew and the filling for the poblanos.

Hue Chan Karels, Open Kitchen cooking class based on Farm Fresh Journey, The Santa Fe Farmers Market Cookbook. Hue Chan and particpants at Santa Fe Farmers Market, cooking at Open Kitchen, and prepared food dishes..

Exploring the Farms and Making Connections

Next up, a visit to Jose Gonzalez, from Lyden where he farms 10 acequia-irrigated acres on the west side of the Rio Grande. He grows squash, cucumbers, corn, potatoes, beans, sunflowers, and the signature peppers his wife Maria uses in her ristras and decorations. Gonzalez then helps the participants pick out medium-sized yellow potatoes from his bounty.

At the tent next door, students gather yellow and white peaches from Christopher and Taylor Bassett (Freshies), also in Lyden. Students purchase chives from Kristin Davenport and Avrum Katz of Yucca Bird Herb Farm in Llano in Taos County, and then cucumbers from Lisa Anderson and Malandra Farm in Abiquiu. Chef Leslie instructs the shoppers that the cucumbers don’t have to be perfect — they can use the “less pretty ones,” as they will be turning them into strips.

Hue Chan Karels, Open Kitchen cooking class based on Farm Fresh Journey, The Santa Fe Farmers Market Cookbook. Hue Chan and particpants at Santa Fe Farmers Market, cooking at Open Kitchen, and prepared food dishes..

Romero Farm poblano chiles finish out the shopping excursion: “Peppers in the house!” Matt Romero shouts like a carnival barker, as he spins the roasting cage, the scent reminding New Mexicans of the approaching autumn.

The group then heads to Open Kitchen. Hue-Chan launched Open Kitchen in 2016 in Santa Fe, offering cooking classes, curated private dinners, and culinary escapades from Vietnam to the Santa Fe Farmers Market. Open Kitchen in Santa Fe was inspired by a meal at Café Pasqual, she says. “It was 2007, and it was shared joy and the experience of community. It is always about community around food, and Santa Fe has really embraced the concept.”

Cooking Together

Hue-Chan’s boundless energy keeps everyone on track as the cooking begins. Under the guidance of the chefs, the two groups study the recipes. The chefs impart nuggets of information, such as using the back of the knife to extract the sweet corn juice after removing the kernels from the cob. Chef Erica reminds them to save the cobs for vegetable stock or as a base for a velouté. They receive guidance on removing the seeds and pulp from peppers and a demonstration of rolling thin slices of cucumber around a goat cheese filling. Plus, blanching chives so they become pliable will play a role in Chef Erica’s plating artistry. The room fills with lively conversation, topics ranging from politics to food to raising chickens. Hue-Chan then turns on some jazz, visiting with the cooks and bustling back and forth to the kitchen.

Hue Chan Karels, Open Kitchen cooking class based on Farm Fresh Journey, The Santa Fe Farmers Market Cookbook. Hue Chan and particpants at Santa Fe Farmers Market, cooking at Open Kitchen, and prepared food dishes..

When it’s time to eat, the detritus of three hours of chopping, slicing, de-seeding, and roasting, cleared away, and seven participants — five of whom have taken Open Kitchen classes before—gather to taste and compare the difference between the two groups. There is laughter and conversation over the table and the requisite group photo. They share phone numbers and make promises to reconnect again at the community table.

Story by Emily Esterson / Photography by Doug Merriam

A footer photo with a grey and white marble background, three TABLE Magazines and subscribe info and button

Subscribe to TABLE Magazine‘s print edition.

Bacon‑Wrapped Scallops with Mango‑Pineapple Salsa

0
Four bacon wrapped scallops with fruity mango pineapple salsa sits on a blue plate.
Bacon-wrapped scallops with fruity mango pineapple salsa will become a summertime favorite.

Lately, we find ourselves gravitating towards the use of fruity salsas like a Mango and Pineapple to accompany a variety of proteins such as scallops. No matter the choice of meat, a fruit salsa adds brightness and tang that is very complimentary, especially to a fattier, more decadent piece of meat.

The mango pineapple salsa in this dish really cuts through the fattiness of the bacon and gives a nice textural experience with every bite.

Serve alongside a simple salad of mixed greens or some fresh asparagus gently roasted for a light and refreshing summer meal.

Recipe and Styling by Anna Franklin
Story by Star Laliberte
Photography by Laura Petrilla

Subscribe to TABLE Magazine’s print edition.

Vegetable Sauté with Ravioli

0
Three plates of ravioli on a black background

We love this vegetable ravioli recipe by TABLE Magazine contributor Anna Franklin. She uses farm-fresh ingredients with packaged ravioli to create a quick and simple satisfying meal.

Picking the Best Ravioli 

You’ll find just about every ingredient here at your local farmers’ market. Stock up on fresh local ingredients and make your weekday schedule a little less hectic with this ravioli recipe. Cappello’s Five Cheese Ravioli is a good choice, or Via Emilia’s Organic Ricotta & Spinach Ravioli will also pair nicely with the salad ingredients. You also can’t beat Wegmans Organic Cheese Ravioli for a plain canvas to allow the vegetable flavor to shine through.

Recipe and Styling by Anna Franklin
Story by Star Laliberte
Photography by Dave Bryce 

Subscribe to TABLE Magazine here!

Stanley Tucci Inspired Pasta alla Norma

0
Stanley Tucci Inspired Pasta alla Norma sits in a bowl to the right with two glasses of red wine off to the back left.

In honor of Stanley Tucci’s television travel series Searching for Italy, we’ve created four pasta dishes for TABLE readers. This week we bring you Stanley Tucci Inspired Pasta alla Norma. This dish incorporates lightly fried eggplant, which adds a wonderful texture to the rigatoni pasta dressed in a very simple red sauce. We recommend a Cerasuolo di Vittoria, a dry Sicilian red, or a fruit-forward Etna Rosso to accompany this Stanley Tucci Inspired Pasta alla Norma recipe.

Check Out Our Other Stanley Tucci Inspired Recipes:

Spaghetti alla Nerano
Bucatini all’Amatriciana
Penne all’ Arrabbiata
Stanley Tucci’s Martini

Recipe and Story by Gabe Gomez
Prop Styling by Keith Recker
Food Styling by Veda Sankaran
Photography by Dave Bryce
Fabric by @foundandforagedfibres
Wine Pairing by Adam Knoerzer

Subscribe to TABLE Magazine‘s print edition.

Related News

Create a free account, or log in.

Gain access to read this article, plus limited free content.

Yes! I would like to receive new content and updates.