This commit is contained in:
widgeter
2023-08-14 12:23:39 +02:00
46 changed files with 691 additions and 170 deletions

View File

@@ -7,7 +7,9 @@ import Pagination from '~/components/blog/Pagination.astro';
import { blogListRobots, getStaticPathsBlogList } from '~/utils/blog';
export const getStaticPaths = getStaticPathsBlogList();
export async function getStaticPaths ({ paginate }) {
return await getStaticPathsBlogList({ paginate });
}
const { page } = Astro.props;
const currentPage = page.currentPage ?? 1;

View File

@@ -6,7 +6,9 @@ import BlogList from '~/components/blog/List.astro';
import Headline from '~/components/blog/Headline.astro';
import Pagination from '~/components/blog/Pagination.astro';
export const getStaticPaths = getStaticPathsBlogCategory();
export async function getStaticPaths ({ paginate }) {
return await getStaticPathsBlogCategory({ paginate });
}
const { page, category } = Astro.props;

View File

@@ -6,7 +6,9 @@ import BlogList from '~/components/blog/List.astro';
import Headline from '~/components/blog/Headline.astro';
import Pagination from '~/components/blog/Pagination.astro';
export const getStaticPaths = getStaticPathsBlogTag();
export async function getStaticPaths ({ paginate }) {
return await getStaticPathsBlogTag({ paginate });
}
const { page, tag } = Astro.props;

View File

@@ -9,7 +9,9 @@ import { getCanonical, getPermalink } from '~/utils/permalinks';
import { getStaticPathsBlogPost, blogPostRobots } from '~/utils/blog';
import { findImage } from '~/utils/images';
export const getStaticPaths = getStaticPathsBlogPost();
export async function getStaticPaths () {
return await getStaticPathsBlogPost();
}
const { post } = Astro.props;
@@ -26,7 +28,7 @@ const metadata = merge(
},
openGraph: {
type: 'article',
...(image ? { images: [{ url: image?.src, width: image?.width, height: image?.height }] } : {}),
...(image ? { images: [{ url: image, width: image?.width, height: image?.height }] } : {}),
},
},
{ ...(post?.metadata ? { ...post.metadata, canonical: post.metadata?.canonical || url } : {}) }

View File

@@ -14,7 +14,7 @@ const metadata = {
<Layout metadata={metadata}>
<!-- Hero Widget ******************* -->
<Hero image={{ src: import('~/assets/images/caos.jpg'), alt: 'Caos Image' }}>
<Hero image={{ src: 'https://images.unsplash.com/photo-1559136555-9303baea8ebd?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80', alt: 'Caos Image' }}>
<Fragment slot="title">
Elevate your online presence with our <br />
<span class="text-accent dark:text-white highlight"> Beautiful Website Templates</span>
@@ -112,7 +112,7 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/colors.jpg'),
src: '~/assets/images/colors.jpg',
alt: 'Colorful Image',
}}
/>

View File

@@ -24,7 +24,7 @@ const metadata = {
<Hero
callToAction={{ text: 'Get template', href: 'https://github.com/onwidget/astrowind', icon: 'tabler:download' }}
callToAction2={{ text: 'Learn more', href: '#features' }}
image={{ src: import('~/assets/images/hero.png'), alt: 'AstroWind Hero Image' }}
image={{ src: '~/assets/images/hero.png', alt: 'AstroWind Hero Image' }}
>
<Fragment slot="title">
Free template for <span class="hidden xl:inline">creating websites with</span>
@@ -96,8 +96,9 @@ const metadata = {
<!-- Content Widget **************** -->
<Content
isReversed
tagline="Inside template"
title="And what's inside? ..."
title="AstroWind's Blueprint: Fun Meets Functionality!"
items={[
{
title: 'Per ei quaeque sensibus',
@@ -116,7 +117,7 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/caos.jpg'),
src: 'https://images.unsplash.com/photo-1519389950473-47ba0277781c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Colorful Image',
}}
>
@@ -133,6 +134,43 @@ const metadata = {
<!-- Content Widget **************** -->
<Content
isAfterContent
items={[
{
title: 'Per ei quaeque sensibus',
description:
'Ex usu illum iudico molestie. Pro ne agam facete mediocritatem, ridens labore facete mea ei. Pro id apeirian dignissim.',
},
{
title: 'Cu imperdiet posidonium sed',
description:
'Amet utinam aliquando ut mea, malis admodum ocurreret nec et, elit tibique cu nec. Nec ex maluisset inciderint, ex quis.',
},
{
title: 'Nulla omittam sadipscing mel ne',
description:
'At sed possim oporteat probatus, justo graece ne nec, minim commodo legimus ut vix. Ut eos iudico quando soleat, nam modus.',
},
]}
image={{
src: 'https://images.unsplash.com/photo-1600132806370-bf17e65e942f?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2194&q=80',
alt: 'Blueprint Image',
}}
>
<Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">Ad vix debet docendi</h3>
Ne dicta praesent ocurreret has, diam theophrastus at pro. Eos etiam regione ut, persius eripuit quo id. Sit te
euismod tacimates.
</Fragment>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
</Fragment>
</Content>
<!-- Content Widget **************** -->
<Content
isReversed
isAfterContent
@@ -157,8 +195,8 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/vintage.jpg'),
alt: 'Vintage Image',
src: 'https://images.unsplash.com/photo-1611462985358-60d3498e0364?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Astronauts Image',
}}
>
<Fragment slot="bg">
@@ -174,19 +212,19 @@ const metadata = {
{
title: 'Step 1: <span class="font-medium">Download</span>',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sagittis, quam nec venenatis lobortis, mirisus tempus nulla, sed porttitor est nibh at nulla. Praesent placerat enim ut ex tincidunt vehicula.',
'Kickstart with GitHub! Either fork the AstroWind template or simply click \'Use this template\'. Your canvas awaits, ready for your digital masterpiece. In just a few clicks, you\'ve already set the foundation.',
icon: 'tabler:package',
},
{
title: 'Step 2: <span class="font-medium">Add content</em>',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sagittis, quam nec venenatis lobortis, mirisus tempus nulla, sed porttitor est nibh at nulla.',
'Pour your vision into it. Add images, text, and all that jazz to breathe life into your digital space. Remember, it\'s the content that tells your story, so make it captivating.',
icon: 'tabler:letter-case',
},
{
title: 'Step 3: <span class="font-medium">Customize styles</span>',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sagittis, quam nec venenatis lobortis, mirisus tempus nulla, sed porttitor est nibh at nulla. Praesent placerat enim ut ex tincidunt vehicula. Fusce sit amet dui tellus.',
'Give it your personal touch. Tailor colors, fonts, and layouts until it feels just right. Your unique flair, amplified by AstroWind! Precision in design ensures a seamless user experience.',
icon: 'tabler:paint',
},
{
@@ -195,7 +233,7 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/creativity.jpg'),
src: 'https://images.unsplash.com/photo-1616198814651-e71f960c3180?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=987&q=80',
alt: 'Steps image',
}}
/>
@@ -210,55 +248,55 @@ const metadata = {
{
title: 'Headers',
description:
'In general, Headers contain information that makes it easier for visitors to interact with the website.',
'Ever tried driving without GPS? Boom! That\'s why websites need headers for direction.',
icon: 'flat-color-icons:template',
},
{
title: 'Heros',
description:
'If you want your website to get more than its fair share of visitors, the Hero section needs to be stellar.',
'Picture a superhero landing epic, right? That\'s the job of a Hero section, making grand entrances!',
icon: 'flat-color-icons:gallery',
},
{
title: 'Features',
description:
'Display your product in action and how the Features actually create a solution for your target customer.',
'Where websites strut their stuff and show off superpowers. No holding back on the bragging rights here!',
icon: 'flat-color-icons:approval',
},
{
title: 'Content',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.',
'Dive into the meat and potatoes of a site; without it, you\'d just be window shopping. Content is king.',
icon: 'flat-color-icons:document',
},
{
title: 'Call-to-Action',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.',
'That enthusiastic friend who\'s always urging, "Do it! Do it!"? Yeah, that\'s this button nudging you towards adventure.',
icon: 'flat-color-icons:advertising',
},
{
title: 'Pricing',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.',
'Behold the dessert menu of the website world. Tempting choices await, can you resist?',
icon: 'flat-color-icons:currency-exchange',
},
{
title: 'Testimonial',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.',
'Step into the gossip corner! Here, other visitors spill the beans and share the juicy details.',
icon: 'flat-color-icons:voice-presentation',
},
{
title: 'Contact',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.',
'Like a digital mailbox, but faster! Drop a line, ask a question, or send a virtual high-five. Ding! Message in.',
icon: 'flat-color-icons:business-contact',
},
{
title: 'Footers',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.',
'The footer\'s like the credits of a movie but sprinkled with easter eggs. Time to hunt!',
icon: 'flat-color-icons:database',
},
]}
@@ -285,6 +323,11 @@ const metadata = {
subtitle="Duis turpis dui, fringilla mattis sem nec, fringilla euismod neque. Morbi tincidunt lacus nec tortor scelerisque pulvinar."
tagline="FAQs"
items={[
{
title: "Why AstroWind?",
description:
"Michael Knight a young loner on a crusade to champion the cause of the innocent. The helpless. The powerless in a world of criminals who operate above the law. Here he comes Here comes Speed Racer. He's a demon on wheels.",
},
{
title: 'What do I need to start?',
description:
@@ -300,11 +343,6 @@ const metadata = {
description:
"A flower in my garden, a mystery in my panties. Heart attack never stopped old Big Bear. I didn't even know we were calling him Big Bear.",
},
{
title: "What's an example of when you changed your mind?",
description:
"Michael Knight a young loner on a crusade to champion the cause of the innocent. The helpless. The powerless in a world of criminals who operate above the law. Here he comes Here comes Speed Racer. He's a demon on wheels.",
},
{
title: 'What is something that you would like to try again?',
description:

View File

@@ -40,7 +40,7 @@ const metadata = {
<Hero2
callToAction={{ text: 'Download App', href: 'https://github.com/onwidget/astrowind', icon: 'tabler:download' }}
callToAction2={{ text: 'Learn more', href: '#features' }}
image={{ src: import('~/assets/images/hero.png'), alt: 'AstroWind Hero Image' }}
image={{ src: 'https://images.unsplash.com/photo-1535303311164-664fc9ec6532?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=987&q=80', alt: 'AstroWind Hero Image' }}
>
<Fragment slot="title">
Free template for <span class="hidden lg:inline">create your website <br />with</span>
@@ -91,7 +91,7 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/colors.jpg'),
src: 'https://images.unsplash.com/photo-1521517407911-565264e7d82d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2069&q=80',
alt: 'Colorful Image',
}}
/>
@@ -99,6 +99,7 @@ const metadata = {
<!-- Content Widget **************** -->
<Content
isReversed
items={[
{
title: 'High-Quality Designs',
@@ -128,7 +129,7 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/caos.jpg'),
src: 'https://images.unsplash.com/photo-1576153192621-7a3be10b356e?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1674&q=80',
alt: 'Colorful Image',
}}
>
@@ -140,7 +141,6 @@ const metadata = {
<!-- Content Widget **************** -->
<Content
isReversed
isAfterContent
items={[
{
@@ -171,7 +171,7 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/vintage.jpg'),
src: 'https://images.unsplash.com/photo-1453738773917-9c3eff1db985?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Vintage Image',
}}
>
@@ -202,7 +202,7 @@ const metadata = {
name: 'Cary Kennedy',
job: 'Film director',
image: {
src: import('~/assets/images/colors.jpg'),
src: 'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Cary Kennedy Image',
},
},
@@ -212,7 +212,7 @@ const metadata = {
name: 'Josh Wilkinson',
job: 'Product Manager',
image: {
src: import('~/assets/images/vintage.jpg'),
src: 'https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Josh Wilkinson Image',
},
},
@@ -222,7 +222,7 @@ const metadata = {
name: 'Sidney Hansen',
job: 'Decorator',
image: {
src: import('~/assets/images/caos.jpg'),
src: 'https://images.unsplash.com/photo-1512361436605-a484bdb34b5f?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Sidney Hansen Image',
},
},

View File

@@ -3,6 +3,7 @@ import Layout from '~/layouts/PageLayout.astro';
import Header from '~/components/widgets/Header.astro';
import Hero2 from '~/components/widgets/Hero2.astro';
import Features from '~/components/widgets/Features.astro';
import Steps2 from '~/components/widgets/Steps2.astro';
import Content from '~/components/widgets/Content.astro';
import CallToAction from '~/components/widgets/CallToAction.astro';
@@ -39,7 +40,7 @@ const metadata = {
<Hero2
callToAction={{ text: 'Get template', href: 'https://github.com/onwidget/astrowind', icon: 'tabler:download' }}
callToAction2={{ text: 'Learn more', href: '#features' }}
image={{ src: import('~/assets/images/hero.png'), alt: 'AstroWind Hero Image' }}
image={{ src: 'https://images.unsplash.com/photo-1580481072645-022f9a6dbf27?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80', alt: 'AstroWind Hero Image' }}
>
<Fragment slot="title">
Free template for <br />
@@ -56,6 +57,51 @@ const metadata = {
</Fragment>
</Hero2>
<!-- Features Widget *************** -->
<Features
id="features"
tagline="Features"
title="Main features of our templates"
subtitle="Possess several key characteristics to effectively cater to the needs of startups and entrepreneurs."
columns={3}
items={[
{
title: 'Modern and Professional Design',
description:
'Have a contemporary design that reflects current design trends and gives a professional impression.',
icon: 'tabler:artboard',
},
{
title: 'Responsive and Mobile-Friendly',
description: 'Adapt seamlessly to different screen sizes and devices to ensure a consistent experience.',
icon: 'tabler:picture-in-picture',
},
{
title: 'Customizability',
description:
'Easily customizable, allowing users to adapt the design, colors, typography, and content to match their brand identity.',
icon: 'tabler:adjustments-horizontal',
},
{
title: 'Fast Loading Times',
description: 'Optimized for speed to ensure a smooth user experience and favorable search engine rankings.',
icon: 'tabler:rocket',
},
{
title: 'Search Engine Optimization (SEO)',
description:
'Incorporate SEO best practices in template structure and code to improve visibility in search engine results.',
icon: 'tabler:arrows-right-left',
},
{
title: 'Compatibility',
description: 'The templates work seamlessly across various content management systems and website builders.',
icon: 'tabler:plug-connected',
},
]}
/>
<!-- Content Widget **************** -->
<Content
@@ -78,7 +124,7 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/caos.jpg'),
src: 'https://images.unsplash.com/photo-1620558138198-cfb9b4f3c294?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1671&q=80',
alt: 'Colorful Image',
}}
>
@@ -115,7 +161,7 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/caos.jpg'),
src: 'https://images.unsplash.com/photo-1531973486364-5fa64260d75b?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1658&q=80',
alt: 'Colorful Image',
}}
>
@@ -153,7 +199,7 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/caos.jpg'),
src: 'https://images.unsplash.com/photo-1635070041078-e363dbe005cb?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Colorful Image',
}}
>

View File

@@ -43,14 +43,18 @@ const metadata = {
</Fragment>
<Fragment slot="image">
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/dsTXcSeAZq8"
title="YouTube video player"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowfullscreen
style="width:100%"></iframe>
<div class="relative h-0 pb-[56.25%]">
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/dsTXcSeAZq8"
title="YouTube video player"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture;"
allowfullscreen
class="absolute top-0 left-0 w-full h-full"
>
</iframe>
</div>
</Fragment>
</Hero>

View File

@@ -178,7 +178,7 @@ const metadata = {
},
]}
image={{
src: import('~/assets/images/creativity.jpg'),
src: 'https://images.unsplash.com/photo-1536816579748-4ecb3f03d72a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=987&q=80',
alt: 'Steps image',
}}
/>

View File

@@ -16,7 +16,7 @@ export const get = async () => {
return rss({
title: `${SITE_CONFIG.name}s Blog`,
description: METADATA_CONFIG?.description,
description: METADATA_CONFIG?.description || "",
site: import.meta.env.SITE,
items: posts.map((post) => ({

View File

@@ -27,7 +27,7 @@ const metadata = {
<div
slot="bg"
class="absolute inset-0 bg-dark overflow-hidden brightness-[0.25] bg-cover bg-[url('~/assets/images/hero.png')]"
class="absolute inset-0 bg-dark overflow-hidden brightness-[0.25] bg-cover bg-[url('https://images.unsplash.com/photo-1611462985358-60d3498e0364?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80')]"
>
</div>
</Hero>
@@ -104,7 +104,7 @@ const metadata = {
name: 'Emily Kennedy',
job: 'Front-end developer',
image: {
src: import('~/assets/images/colors.jpg'),
src: 'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Emily Kennedy Image',
},
},
@@ -113,7 +113,7 @@ const metadata = {
name: 'Sarah Hansen',
job: 'Photographer',
image: {
src: import('~/assets/images/caos.jpg'),
src: 'https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Sarah Hansen Image',
},
},
@@ -122,7 +122,7 @@ const metadata = {
name: 'Mark Wilkinson',
job: 'Small business owner',
image: {
src: import('~/assets/images/vintage.jpg'),
src: 'https://images.unsplash.com/photo-1512361436605-a484bdb34b5f?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Mark Wilkinson Image',
},
},