Skip to content

Instantly share code, notes, and snippets.

View gustavneustadt's full-sized avatar

Gustav Neustadt gustavneustadt

View GitHub Profile
@gustavneustadt
gustavneustadt / clean.php
Last active October 21, 2025 20:53
Kirby CMS Media File Cleanup Script
<?php
// Created 2024 by Gustav Neustadt
// gustavneustadt.de
// MIT License. See http://opensource.org/licenses/MIT
// A PHP script tailored for the Kirby CMS that helps
// to identify and remove unreferenced media files
// along with their associated TXT files.
//
// Given a content file and a directory, the script
@gustavneustadt
gustavneustadt / TweenHelper.svelte
Created August 18, 2022 17:08
Helps doing svelte Tweens directly in the layout; only for numbers.
<script lang="ts">
import { Tweened, tweened } from "svelte/motion"
import { cubicInOut } from "svelte/easing"
export let tween: Tweened<number> = null
export let options: Intl.NumberFormatOptions = null
export let locale: string | string[] = null
export let formatter: Intl.NumberFormat = null
export let startValue: number = null
interface TweenOptions<T> {
@gustavneustadt
gustavneustadt / SvgRect.svelte
Created July 27, 2022 11:33
Svelte SVG Rect Helper
<script lang="ts">
export let width: number = 10
export let height: number = 10
export let r: [number, number, number, number]|[number, number]|number = 0
export let sharpness: number = 0.6
export let x: number = 0
export let y: number = 0
function getPath(w: number, h: number, radius: [number, number, number, number]|[number, number]|number, sharpness: number): string {
@gustavneustadt
gustavneustadt / SvgLine.svelte
Created July 27, 2022 11:32
Svelte SVG Line Helper
<script context="module" lang="ts">
export interface LineEndFunction {
(position: Point): string
}
export enum LineEnd {
Line,
LineOneSide,
Dot,
Arrow,
None
@gustavneustadt
gustavneustadt / sumArrayOfObjects.js
Last active March 16, 2022 20:24
Sum Array of Objects
function sumArrayOfObjects(group, template = null) {
let templateCopy = { ...template}
var objectBuffer = {}
var templateBuffer = {}
if(template) {
let keys = Object.keys(template)
let values = Object.values(template)
let filteredIndexes = values.map((value, i) => {
if(value instanceof Object) {
return i