Home Blog Page 62

Savory Cheesecake with Roasted Grapes

0
Flat-lay image of a savory cheesecake, roasted grapes on a weathered table.

This unique appetizer combines the richness of cream cheese, the umami of blue cheese, the crispy crunch of phyllo, and the wonderful flavor of roasted grapes. The dish makes an excellent starter or a Meatless Monday entrée served alongside a simply dressed green salad.

Why Make a Savory Cheesecake? 

You might be thinking: Why make cheesecake savory? The rich flavor and texture of cheesecake means it isn’t only good as a dessert. Instead of drawing from sweetness, this recipe harnesses the umami of blue cheese and a bit of salt, the doubled-down richness phyllo dough and pie crust, and other wonderful, fresh ingredients to take what’s usually a dessert and turn it into a savory dish that will surprise and impress everyone at your table.

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
Flat-lay image of a savory cheesecake, roasted grapes on a weathered table.

Savory Cheesecake with Roasted Grapes


  • Author: Anna Franklin

Description

Truly a don’t knock it till you try it recipe.


Ingredients

Scale
  • 1 store-bought pie crust
  • 1 roll store-bought phyllo dough
  • 1 tbsp butter
  • 2 cloves garlic, minced
  • 1/2 shallot, minced
  • 16 oz cream cheese
  • 1/4 cup heavy cream
  • 3 eggs
  • 4 oz good quality blue cheese
  • 1/2 cup pistachios
  • 1/2 cup pecans
  • 1 tbsp brown sugar
  • 1 stick butter, melted
  • 1 bunch grapes, drizzled with olive oil, salt, and roasted
  • Hot honey for topping, optional


Instructions

  1. Place pie dough and phyllo dough on the counter and allow to come to room temperature while prepping everything else.
  2. In a sauté pan, add 1 tbsp of butter, minced garlic, and minced shallot. Heat over low heat until the garlic and shallot is translucent and aromatic. Try to avoid any browning. Set aside and cool.
  3. In a stand mixer, add cream cheese. heavy cream, eggs, and cooked shallots and garlic. Whip until a smooth mixture is formed. Gently crumble blue cheese and fold into the cheesecake mixture. Set aside.
  4. In a food processor, add pistachios, pecans, and brown sugar. Pulse until nuts are chopped into a fine mixture, but not quite as fine as sand. Set aside.
  5. In a pie pan, roll out pie crust and par-bake at 325 degrees until the dough is halfway cooked. Remove from the oven and fill the pie crust with the cheesecake filling. Sprinkle nut mixture on top.
  6. Brush each piece of phyllo dough with melted butter and crinkle them up lengthwise and place on top of the cheesecake. Try and bunch up the thin layers as tightly as you can on top. This will give a more layered and crispy texture. Drizzle any remaining butter on top of the dough once it is all placed on top of the cheesecake.
  7. Bake at 350 degrees until the cheese filling is completely set, around 1 hour. You can use a wooden skewer to check this; it should come out clean when inserted.
  8. Garnish with roasted grapes and drizzle with hot honey and serve cold or at room temperature.

Recipes and Styling by Anna Franklin
Photography by Dave Bryce

Subscribe to TABLE Magazine’s print edition.

Roasted Kohlrabi

0
Flat-lay image of a pan of roasted kohlrabi resting on weathered wood table.

Are you unsure what to do with kohlrabi? Mellow its radishy zing with a brown butter sauté and a little sage… then kick the flavor to the next level with hazelnuts and hot honey. With this Roasted Kohlrabi recipe, in less than 15 minutes, you’ll have a magnificent Meatless Monday entrée or a side for any day of the week.

What Parts of Kohlrabi Are Edible?

Kohlrabi is so versatile because you can use every single part of the plant. Often, you’ll see people using the bottom of kohlrabi which forms into a bulbous shape. You can eat this part raw or cooked but we recommend to remove the thick green or purple skin first since it won’t break down while cooking (and will be quite a textural surprise if you bite into the raw bulb). But, besides this bulb, you can actually use the leaves and stems as well. These greens can also be cooked or eaten raw depending on your preference. Other than the recipe below you can bring kohlrabi into your slaws, soups, salads, and just about anywhere else you would add vegetables.

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.

Green Chile Braised Oxtail

0
Flat-lay image of Green Chile Braised Oxtail in a cast-iron pan set on a weathered table. Braised Oxtail Recipe

The rich, meaty deliciousness of oxtail is hard to describe. Once you’ve tried it, however, you’ll want it again and again. The hardest step in this recipe is to find a source. We recommend trying your favorite butcher. When it’s ready to serve, you will be impressed with both the tender meat and the savory gravy. Please remember to have a crusty baguette on hand to mop up every drop.

What Does Oxtail Taste Like?

Oxtail really sets itself apart from other cuts of beef with a flavor and texture you truly won’t find elsewhere. It has an intensely rich, beefy flavor that’s also a little gamey. A lot of its taste comes from the bones and marrow, which release their flavors during the long cooking process. The meat of the oxtail is tender and after a long time cooking should almost melt in your mouth. The result is a luscious, velvety texture that coats the palate rather than fighting with it. Though just like any protein, the flavor and texture all depend on your cooking method and the ingredients used, such as red wine, herbs, and spices.

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
Flat-lay image of Green Chile Braised Oxtail in a cast-iron pan set on a weathered table. Braised Oxtail Recipe

Green Chile Braised Oxtail


  • Author: Anna Franklin

Description

The green chile adds a kick of heat to this savory dish.


Ingredients

Scale
  • 2 tbsp olive oil
  • 4 lb oxtail, 1-inch cut
  • 1 onion, chopped
  • 5 garlic cloves, chopped
  • 4 tbsp Hatch green chile, fresh or frozen
  • 8 sprigs thyme
  • 1/4 cup tomato paste
  • 1 cup red wine
  • 2 cups beef stock
  • 1 1/2 tsp cloves, whole
  • 1 1/2 tsp allspice, whole
  • Salt to taste
  • 2 tsp fresh ground pepper


Instructions

  1. Drizzle olive oil into a cast-iron skillet with lid, or a Dutch oven, and brown both sides of oxtail over medium-high heat. You may need to work in 2 or more batches. Drain excess oil leaving just enough to sauté onions, garlic and thyme.
  2. After the onions, garlic, chiles, and thyme are sautéed, add tomato paste and sauté until toasty and brown. Deglaze your pan with the red wine and then return oxtails to the skillet and add 2 cups of beef broth to cover a quarter of the oxtails. Allow the liquid to come to a simmer. Put cloves and allspice into a sachet or tie in a cheesecloth, and submerge in liquid.
  3. Season with salt and ground pepper, cover, and put into a preheated 350-degree oven for roughly 2 hours or until the oxtails are very tender. Time can vary depending on the size of the oxtail.

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.

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.

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.