Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/qjs
// Initial hyperscript test cases, framework-independent.
// ./h.test.js|tee h.test~|diff -u h.test -&&echo ok h.test||echo fail h.test
// 0BSD / public domain. 2020 Denys Nykula <nykula@ukr.net>
// TODO h("p", h("hr")), h("p", h("hr"), "2020"), h("p", "2020", h("hr"))
// TODO h('a[href=#][title="hyper script"]')
function h(s, a, c) {
if (!c && a && ("" + a === a || 0 in a)) (c = a), (a = {});
(a = a || {}), (c = c || []);
if ("" + s !== s) return s(a, c);
#!/bin/sh
perl -i -pe 's|^\s*([^<].*)$|<p>$1</p>|g' "$1"
perl -i -pe 's/(\s|&nbsp;)+(–|—|-)\s+/&nbsp;&mdash; /g' "$1"
perl -i -pe 's|href=|href@=|g' "$1"
perl -i -pe 's|id=|id@=|g' "$1"
perl -i -pe 's|src=|src@=|g' "$1"
perl -i -pe 's|\s*\w+="[^"]*"||g' "$1"
perl -i -pe 's|@=|=|g' "$1"
perl -i -pe 's|<p><br\s*/?>|<p>|g' "$1"
perl -i -pe 's|</?span>||g' "$1"
@nykula
nykula / reactify
Created February 22, 2018 20:08
Translate Angular 1 to React JSX. You still do a lot, but helps
#!/bin/bash
perl -i -pe 's/{{ ?/{/g' "$@"
perl -i -pe 's/ ?}}/}/g' "$@"
perl -i -pe 's/\$?(ctrl|self)/this/g' "$@"
perl -i -pe 's/= function//g' "$@"
perl -i -pe 's/\$onInit\s+\(\) {/constructor(props) {\nsuper(props)\n/g' "$@"
perl -i -pe 's/\$postLink\s+\(\) {/componentDidMount() {/g' "$@"
perl -i -pe 's/\.(\$|api|dialog|env|glue|store)/.props.\1/g' "$@"
perl -i -pe 's/<br>/<br \/>/g' "$@"
@nykula
nykula / CallbackNullthrows.ts
Last active February 14, 2018 00:24
Node-style callback in TypeScript with Nullthrows
import Nullthrows from "@makepost/nullthrows";
class Post {
id = "";
}
interface ICallback<T> {
(error: Error, _?: undefined): void;
(_: undefined, post: T): void;
}
@nykula
nykula / Callback.ts
Created February 14, 2018 00:15
Node-style callback in TypeScript
class Post {
id = "";
}
interface ICallback<T> {
(error: Error, _?: any): void;
(_: any, post: T): void;
}
const callback: ICallback<Post> = (error: Error, post: Post) => {
@nykula
nykula / .gitignore
Last active March 2, 2018 20:19 — forked from chrisatomix/.gitignore
Joomla Gitignore File
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar