Merge version_1 into main #1

Merged
bender merged 4 commits from version_1 into main 2026-03-18 09:42:05 +00:00
4 changed files with 62 additions and 26 deletions

View File

@@ -87,7 +87,7 @@ export default function ContactPage() {
description="Request your free estimate or call us for immediate assistance. We're available 24/7 for emergencies."
background={{ variant: "gradient-bars" }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg"
imageSrc="http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg?_wi=6"
imageAlt="Tree service professional at work"
mediaAnimation="slide-up"
mediaPosition="right"

View File

@@ -1,28 +1,62 @@
import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import { Libre_Baskerville } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Libre_Baskerville } from "next/font/google";
const halant = Halant({
variable: "--font-halant",
subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
export const metadata: Metadata = {
title: "Webild components 2",
description: "Generated by create next app",
};
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
const libreBaskerville = Libre_Baskerville({
variable: "--font-libre-baskerville",
subsets: ["latin"],
weight: ["400", "700"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: "Tree Service Murfreesboro TN | Emergency Service 24/7",
description: "Professional tree removal, trimming, and stump grinding in Murfreesboro & Middle Tennessee. 24/7 emergency service. 4.9★ rated. Free estimates.",
keywords: "tree service Murfreesboro, tree removal, tree trimming, stump grinding, emergency tree service, arborist near me",
metadataBase: new URL("https://middletennesseetreeservice.com"),
alternates: {
canonical: "https://middletennesseetreeservice.com"
},
openGraph: {
title: "Professional Tree Service in Murfreesboro, TN",
description: "Fast, safe, and affordable tree care. 24/7 emergency service available. Licensed & insured professionals.",
siteName: "Middle Tennessee Tree Service",
type: "website",
images: [
{
url: "http://img.b2bpic.net/free-photo/cute-little-girl-having-fun-adventure-park_23-2149033146.jpg",
alt: "Professional tree service"
}
]
},
twitter: {
card: "summary_large_image",
title: "Tree Service Murfreesboro TN | 24/7 Emergency",
description: "Professional tree removal and care services. Free estimates available.",
images: [
"http://img.b2bpic.net/free-photo/cute-little-girl-having-fun-adventure-park_23-2149033146.jpg"
]
},
robots: {
index: true,
follow: true
}
};
export default function RootLayout({
children,
@@ -32,7 +66,9 @@ export default function RootLayout({
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body className={`${libreBaskerville.variable} ${inter.variable} antialiased`}>
<body
className={`${halant.variable} ${inter.variable} ${libreBaskerville.variable} antialiased`}
>
<Tag />
{children}
<script
@@ -44,4 +80,4 @@ export default function RootLayout({
</ServiceWrapper>
</html>
);
}
}

View File

@@ -80,23 +80,23 @@ export default function HomePage() {
imageAlt: "Professional tree removal service",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg?_wi=1",
imageAlt: "Tree removal before and after",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-working-outdoor-field-plantation_123827-36997.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-working-outdoor-field-plantation_123827-36997.jpg?_wi=1",
imageAlt: "Professional tree trimming",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/weeder_23-2148006008.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/weeder_23-2148006008.jpg?_wi=1",
imageAlt: "Stump grinding service",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/smiling-elderly-man-working-with-heavy-leaf-blower-leaves-glow-pleasant-sunlight-low-angle-view_7502-10281.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-elderly-man-working-with-heavy-leaf-blower-leaves-glow-pleasant-sunlight-low-angle-view_7502-10281.jpg?_wi=1",
imageAlt: "Storm damage cleanup",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-forest-warden-looking-tree_23-2149557247.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-forest-warden-looking-tree_23-2149557247.jpg?_wi=1",
imageAlt: "24/7 emergency tree service",
},
]}
@@ -242,7 +242,7 @@ export default function HomePage() {
tagAnimation="slide-up"
background={{ variant: "gradient-bars" }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg"
imageSrc="http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg?_wi=2"
imageAlt="Winter tree service discount offer"
mediaAnimation="slide-up"
mediaPosition="right"

View File

@@ -60,7 +60,7 @@ export default function ServicesPage() {
name: "Tree Removal",
price: "Starting $500",
variant: "Full Service",
imageSrc: "http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg?_wi=3",
imageAlt: "Professional tree removal",
},
{
@@ -68,7 +68,7 @@ export default function ServicesPage() {
name: "Tree Trimming & Pruning",
price: "Starting $300",
variant: "Health & Safety",
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-working-outdoor-field-plantation_123827-36997.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-working-outdoor-field-plantation_123827-36997.jpg?_wi=2",
imageAlt: "Tree trimming and pruning",
},
{
@@ -76,7 +76,7 @@ export default function ServicesPage() {
name: "Stump Grinding",
price: "Starting $200",
variant: "Complete Removal",
imageSrc: "http://img.b2bpic.net/free-photo/weeder_23-2148006008.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/weeder_23-2148006008.jpg?_wi=2",
imageAlt: "Stump grinding service",
},
{
@@ -84,7 +84,7 @@ export default function ServicesPage() {
name: "Storm Damage Cleanup",
price: "On Request",
variant: "Emergency Response",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-elderly-man-working-with-heavy-leaf-blower-leaves-glow-pleasant-sunlight-low-angle-view_7502-10281.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-elderly-man-working-with-heavy-leaf-blower-leaves-glow-pleasant-sunlight-low-angle-view_7502-10281.jpg?_wi=2",
imageAlt: "Storm damage cleanup",
},
{
@@ -92,7 +92,7 @@ export default function ServicesPage() {
name: "Emergency Tree Service",
price: "24/7 Available",
variant: "Rapid Response",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-forest-warden-looking-tree_23-2149557247.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-forest-warden-looking-tree_23-2149557247.jpg?_wi=2",
imageAlt: "Emergency tree service",
},
{
@@ -100,7 +100,7 @@ export default function ServicesPage() {
name: "Seasonal Winter Discount",
price: "Save up to 20%",
variant: "Limited Time",
imageSrc: "http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg",
imageSrc: "http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg?_wi=4",
imageAlt: "Winter season discount promotion",
},
]}
@@ -146,7 +146,7 @@ export default function ServicesPage() {
tagAnimation="slide-up"
background={{ variant: "gradient-bars" }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg"
imageSrc="http://img.b2bpic.net/free-photo/carpenter-working-sawmill-wood-manufacture_1303-22903.jpg?_wi=5"
imageAlt: "Winter tree service discount offer"
mediaAnimation="slide-up"
mediaPosition="right"