Skip to content

Instantly share code, notes, and snippets.

View julrich's full-sized avatar
🍋
squeezing!

Jonas Ulrich julrich

🍋
squeezing!
View GitHub Profile
# Set the `immutable` cache control options only for assets with a cache busting `v` argument
map $arg_v $asset_immutable {
"" "";
default "immutable";
}
##
# Connection header for WebSocket reverse proxy
##
map $http_upgrade $connection_upgrade {
@julrich
julrich / prepareProject.js
Created April 30, 2024 12:12
Storyblok Node.js script
const fs = require("node:fs");
const PromiseThrottle = require("promise-throttle");
const FormData = require("form-data");
const { traverse } = require("object-traversal");
const sizeOf = require("image-size");
const StoryblokClient = require("storyblok-js-client");
const { v4: uuidv4 } = require("uuid");
const jsonpointer = require("jsonpointer");
const designSystemPresets = require("@kickstartds/ds-agency-premium/presets.json");
const generatedComponents = require("../cms/components.123456.json");
@julrich
julrich / Providers.tsx
Last active May 9, 2024 16:15
Unpic blurhash handling with React
function isStoryblokAsset(object: unknown): object is AssetStoryblok {
return (object as AssetStoryblok)?.filename !== undefined;
}
const Picture = forwardRef<
HTMLImageElement,
PictureProps & ImgHTMLAttributes<HTMLImageElement>
>(({ src, lazy, ...props }, ref) => {
const internalRef = useRef<HTMLImageElement>(null);
@julrich
julrich / hero.schema.json
Created August 1, 2024 13:51
JSON Schema for UI / content
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://schema.redacted.de/hero.schema.json",
"title": "Hero",
"description": "Prominente Bild- oder Videodarstellung mit Option für Text und Cta",
"type": "object",
"properties": {
"textPosition": {
"type": "string",
"title": "Textposition",
@julrich
julrich / .rm-distrc.schema.json
Created February 24, 2025 11:54
Complex CLI task
{
"definitions": {},
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "https://ruhmesmeile.com/rm-dist.json",
"type": "object",
"title": "ruhmesmeile Basiswebsite / rm-dist configuration",
"required": [
"project",
"configuration",
"remote",