Skip to content

Instantly share code, notes, and snippets.

View rgchris's full-sized avatar

Christopher Ross-Gill rgchris

View GitHub Profile
@rgchris
rgchris / builder.js
Last active November 19, 2021 03:12
DOM Builder
const Bd = function (name, attrs, ...kids) {
const spaces = {
xhtml: 'http://www.w3.org/1999/xhtml',
svg: 'http://www.w3.org/2000/svg'
}
const fullname = name.split(':')
name = fullname.pop()
@rgchris
rgchris / svg.red
Last active October 10, 2021 17:05
Red SVG loader/converter
Red [
Title: "SVG Tools"
Date: 27-Jan-2020
Author: "Christopher Ross-Gill"
Rights: http://opensource.org/licenses/Apache-2.0
Version: 0.3.2
History: [
0.3.2 27-Jan-2020 "Better handling of text whitespace; bold/italic"
0.3.1 24-Jan-2020 "PATH model rewrite; VIEW wrapper to view an SVG"
0.3.0 23-Jan-2020 "Reorganise PATH handling; render whole/partial object; further refactoring"
@rgchris
rgchris / istype.js
Last active April 2, 2021 04:54
A type-checking function in JavaScript
window.istype = function(value, explicit = false) {
let type = Object.prototype.toString.apply(value).match(
/\[object ([A-Za-z_0-9]+)\]/
)[1]
switch (type) {
case "Boolean":
case "String":
case "BigInt":
case "Undefined":
@rgchris
rgchris / data-uri.reb
Last active February 13, 2021 19:46
Scheme for Encoding/Decoding Data URIs
Rebol [
Title: "Data URI Scheme"
Date: 13-Feb-2021
Author: "Christopher Ross-Gill"
]
use [chars type] [
chars: complement charset "^-^/^M ,/;"
sys/make-scheme [
@rgchris
rgchris / clean-script.reb
Last active February 10, 2021 23:25
Clean Script for R3C
Rebol [
Title: "Rebol Script Cleaner (Pretty Printer)"
Date: 10-Feb-2021
File: %clean-script.reb
Version: 1.2.3
Type: module
Name: rgchris.clean-script
Exports: [clean-script]
Author: "Christopher Ross-Gill"
Purpose: {
@rgchris
rgchris / textmate.reb
Last active February 8, 2021 22:38
TextMate Bundle Support File (R3C)
Rebol [
Title: "TextMate Support"
Author: "Christopher Ross-Gill"
Date: 8-Feb-2021
Type: module
Name: rgchris.textmate
Exports: [tm textmate neaten envelop form-error]
]
tm: make object! [
@rgchris
rgchris / presentation.r
Last active February 2, 2021 13:29
Presentation Style for Rebol/View 2
Rebol [
Title: "Presentation Style"
Author: "Christopher Ross-Gill"
Date: 20-Sep-2004
History: {
Based on "Presentation Dialect" by Jeff Kreis
15-Jan-2001
https://www.cs.unm.edu/~whip/make-presentation.r
https://www.cs.unm.edu/~whip/test-prez.r
@rgchris
rgchris / lzw.reb
Created February 1, 2021 04:09
LZW (De)Compression for R3C
Rebol [
Title: "LZW (De)Compression Routine"
File: %lzw.reb
Author: "Christopher Ross-Gill"
Date: 31-Jan-2021
Version: 0.1.0
Type: module
Name: rgchris.lzw
Exports: [lzw]
Needs: [%bitwise.reb] ; https://gist.github.com/rgchris/aeaf8b7467906844d4275e8b9af09397
@rgchris
rgchris / bitwise.reb
Created January 28, 2021 19:34
Bitwise Helpers for R3C
Rebol [
Title: "Bitwise Helpers"
Date: 28-Jan-2021
Author: "Christopher Ross-Gill"
Type: module
Name: rgchris.bitwise
Exports: [shift-binary signed32]
Notes: {
* General Purpose BINARY SHIFT function (not optimized)
* Signed-32 helpers
@rgchris
rgchris / parser.reb
Last active January 26, 2021 14:54
Parse Machine for R3C
Rebol [
Title: "Parse Machine"
Author: "Christopher Ross-Gill"
Date: 24-Jan-2021
Home: https://github.com/rgchris/Scripts
File: %parser.reb
Version: 0.2.2
Purpose: {
Provides a versatile wrapper around PARSE for handling diverse
data formats.