Skip to content

Instantly share code, notes, and snippets.

@mckhames
mckhames / NextJS-JSON-LD-Post-Schema-Org-And-OpenGraph-Metadata.js
Last active March 31, 2022 13:15
How To Generate Schema-Org JSON-LD + OpenGraph Metadata with NextJS and Wordpress
//This assumes NextJS with wordpress backend that has wpGraphql plugin installed.
//We're filling in all required metadata with standard wordpress fields. Recommend using ACF or equivalent to finetune the different
//fields, as ours will contain a few duplicates (i.e. category, subject, etc)
import Head from "next/head";
import { format } from "date-fns";
export default function MetadataComponent({ post }) {
//create function to strip html from content so that article body can be added to schema
var mediaJSON = { "categories" : [ { "name" : "Movies",
"videos" : [
{ "description" : "Big Buck Bunny tells the story of a giant rabbit with a heart bigger than himself. When one sunny day three rodents rudely harass him, something snaps... and the rabbit ain't no bunny anymore! In the typical cartoon tradition he prepares the nasty rodents a comical revenge.\n\nLicensed under the Creative Commons Attribution license\nhttp://www.bigbuckbunny.org",
"sources" : [ "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" ],
"subtitle" : "By Blender Foundation",
"thumb" : "images/BigBuckBunny.jpg",
"title" : "Big Buck Bunny"
},
{ "description" : "The first Blender Open Movie from 2006",
"sources" : [ "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ElephantsDream.mp4" ],
@mckhames
mckhames / Image.ts
Created June 11, 2021 14:54 — forked from TheThirdRace/Image.tsx
Merge of Chakra-ui and NextJs Image component to remove most of pain points
import { StyleConfig } from '../../type/Chakra'
import { articleInnerSpacing } from './Article'
export const Image: StyleConfig = {
parts: ['layPicture', 'layImage', 'preImage'],
baseStyle: {
layPicture: {},
layImage: {
// layout
display: 'inline-block'
@mckhames
mckhames / Image.tsx
Created June 11, 2021 14:37
Integrate NextJs `next/image` with Chakra-UI styling
import { chakra, ThemingProps, useStyleConfig } from '@chakra-ui/react'
import NextImage, { ImageProps as NextImageProps } from 'next/image'
import { ReactElement } from 'react'
import { Sizes } from '../../theme/variables/image'
// TODO review props when NextJs is updated so we don't have to defined it here
/**
* ? Because NextJs typing is preventing auto-suggest for layout, width and height,
* ? we declare the styles differently in this component and will manage the switch
* ? to NextJs typings when calling NextJs `next/image` component