diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/content/blog/example-content.md | 1 | ||||
| -rw-r--r-- | src/content/config.ts | 1 | ||||
| -rw-r--r-- | src/pages/[...page].astro | 5 | ||||
| -rw-r--r-- | src/pages/blog/[...slug].astro | 32 | ||||
| -rw-r--r-- | src/pages/feed.xml.js | 4 | ||||
| -rw-r--r-- | src/scss/_framework.scss | 3 | 
6 files changed, 26 insertions, 20 deletions
| diff --git a/src/content/blog/example-content.md b/src/content/blog/example-content.md index 68b09e5..64b214e 100644 --- a/src/content/blog/example-content.md +++ b/src/content/blog/example-content.md @@ -3,6 +3,7 @@ title: "Example Content"  author: "Example User"  pubDate: "2018-01-01"  description: "Howdy! This is an example blog post that shows several types of HTML content supported in this theme." +draft: true  ---  Cum sociis natoque penatibus et magnis <a href="#">dis parturient montes</a>, nascetur ridiculus mus. _Aenean eu leo quam._ Pellentesque ornare sem lacinia quam venenatis vestibulum. Sed posuere consectetur est at lobortis. Cras mattis consectetur purus sit amet fermentum. diff --git a/src/content/config.ts b/src/content/config.ts index 00f60c9..245f20e 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -5,6 +5,7 @@ const blog = defineCollection({  	schema: z.object({  		author: z.string(),  		description: z.string(), +		draft: z.optional(z.boolean()),  		pubDate: z.coerce.date(),  		title: z.string(),  	}), diff --git a/src/pages/[...page].astro b/src/pages/[...page].astro index cd64d66..6d513b2 100644 --- a/src/pages/[...page].astro +++ b/src/pages/[...page].astro @@ -8,7 +8,10 @@ import PostSummary from "../components/PostSummary.astro";  type Props = InferGetStaticPropsType<typeof getStaticPaths>;  export const getStaticPaths = (async ({ paginate }) => { -	const posts = await getCollection("blog"); +	const posts = await getCollection("blog", ({ data }) => { +		return data.draft !== true; +	}); +  	posts.sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime());  	return paginate(posts, { diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro index bcd5eed..63d2c98 100644 --- a/src/pages/blog/[...slug].astro +++ b/src/pages/blog/[...slug].astro @@ -2,11 +2,14 @@  import { type CollectionEntry, getCollection } from "astro:content";  import Comments from "../../components/Comments.astro";  import Layout from "../../layouts/BaseLayout.astro"; +import dayjs from "dayjs";  type Props = CollectionEntry<"blog">;  export async function getStaticPaths() { -	const posts = await getCollection("blog"); +	const posts = await getCollection("blog", ({ data }) => { +		return data.draft !== true; +	});  	return posts.map((post) => ({  		params: { slug: post.slug }, @@ -15,34 +18,31 @@ export async function getStaticPaths() {  }  const post = Astro.props; -const { Content, remarkPluginFrontmatter } = await post.render(); +const { Content } = await post.render(); +const formattedDate = dayjs(post.data.pubDate.toString()).format("MMMM DD, YYYY");  --- -<style> -	.header { -		text-align: center; -	} -</style> -  <Layout description={post.data.description} title={post.data.title}>  	<article> -		<section class="header"> +		<section>  			<h1>{post.data.title}</h1> +		</section> + +		<section> +			<Content /> +		</section> + +		<section>  			<p>  				<small>  					Posted -					<time datetime={post.data.pubDate.toISOString()}>{post.data.pubDate.toDateString()}</time> -					 by {post.data.author} ‐ -					<strong>{remarkPluginFrontmatter.minutesRead}</strong> +					<time datetime={post.data.pubDate.toISOString()}>{formattedDate}</time> +					by {post.data.author}  				</small>  			</p>  		</section>  		<section> -			<Content /> -		</section> - -		<section>  			<Comments />  		</section>  	</article> diff --git a/src/pages/feed.xml.js b/src/pages/feed.xml.js index c837202..d71a020 100644 --- a/src/pages/feed.xml.js +++ b/src/pages/feed.xml.js @@ -2,7 +2,9 @@ import { getCollection } from "astro:content";  import rss from "@astrojs/rss";  export async function GET(context) { -	const posts = await getCollection("blog"); +	const posts = await getCollection("blog", ({ data }) => { +		return data.draft !== true; +	});  	return rss({  		customData: `<language>ru-ru</language>`, diff --git a/src/scss/_framework.scss b/src/scss/_framework.scss index 549f9df..c95a71c 100644 --- a/src/scss/_framework.scss +++ b/src/scss/_framework.scss @@ -55,8 +55,7 @@ h5,  h6 {  	font-weight: 700;  	line-height: 1.1; -	margin-bottom: 1.5rem; -	margin-top: 3rem; +	margin: 3rem 0;  	overflow-wrap: break-word;  	word-break: break-word;  	word-wrap: break-word; | 
