Skip to content

Instantly share code, notes, and snippets.

@hedgerwang
hedgerwang / dark-mode-bookmarklet.html
Last active April 29, 2022 19:11
toggle dark mode bookmarklet
<!DOCTYPE html>
<html>
<head>
<style>
html, body {
background: #fff;
}
</style>
</head>
<body>
@hedgerwang
hedgerwang / reader-mode.js
Created April 14, 2022 20:42
Toggle Reader Mode in Google Doc / GMail
/* This is the snippet that applies CSS filter invert() to web page to improve readability */
/* at Google Doc or Gmail */
/* You might convert this snippet to bookmarklet with https://www.yourjs.com/bookmarklet/ */
(function (el) {
el.style.filter = /invert/.test(el.style.filter) ? '' : 'invert(0.9)';
})(document.documentElement);
import { useState, memo, useEffect, useCallback } from "react";
import produce from "immer";
type Project = {
id: number;
name: string;
};
type RootState = {
projects: {
@hedgerwang
hedgerwang / v1.html
Last active September 27, 2021 18:33
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
<style type="text/css">
ol{margin:0;padding:0}table td,table th{padding:0}.c12{border-right-style:solid;border-bottom-color:#231f20;border-top-width:1pt;border-right-width:1pt;border-left-color:#231f20;vertical-align:top;border-right-color:#231f20;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:162.3pt;border-top-color:#231f20;border-bottom-style:solid}.c22{border-right-style:solid;border-bottom-color:#231f20;border-top-width:1pt;border-right-width:1pt;border-left-color:#231f20;vertical-align:top;border-right-color:#231f20;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:166.8pt;border-top-color:#231f20;border-bottom-style:solid}.c10{border-right-style:solid;border-bottom-color:#231f20;border-top-width:1pt;border-right-width:1pt;border-left-color:#231f20;vertical-align:top;border-right-color:#231f20;border-left-
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
<style type="text/css">
ol{margin:0;padding:0}table td,table th{padding:0}.c13{border-right-style:solid;border-bottom-color:#231f20;border-top-width:1pt;border-right-width:1pt;border-left-color:#231f20;vertical-align:top;border-right-color:#231f20;border-left-width:1pt;border-top-style:solid;background-color:#e6e7e8;border-left-style:solid;border-bottom-width:1pt;width:157.4pt;border-top-color:#231f20;border-bottom-style:solid}.c28{border-right-style:solid;border-bottom-color:#231f20;border-top-width:1pt;border-right-width:1pt;border-left-color:#231f20;vertical-align:top;border-right-color:#231f20;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:157.4pt;border-top-color:#231f20;border-bottom-style:solid}.c1{border-right-style:solid;border-bottom-color:#231f20;border-top-width:1pt;border-right-width:1pt;border-left-color:#231f20;vertical-align:top;border-right-co
function patchJSON(key, value) {
if (
value !== null &&
typeof value === 'object' &&
value.type === 'image' &&
value.attrs &&
value.attrs.contentType === 'image/svg+xml' &&
value.attrs.crop &&
value.attrs.src &&
value.attrs.src.indexOf('/docs/image/') === 0
{
"type": "doc",
"attrs": {
"error": null,
"layout": null,
"padding": null,
"width": null
},
"content": [
{
{
"type": "doc",
"attrs": {},
"content": [
{
"type": "table",
"attrs": {},
"content": [
{
"type": "table_row",
# Determines the "branch" of the current repo and emits it.
# For use in generating the prompt.
# This is portable to both zsh and bash and works in both
# git and mercurial repos and aims to avoid invoking the
# command line utilities for speed of prompt updates
# To use from zsh:
# NOTE! the single quotes are important; if you use double quotes
# then the prompt won't change when you chdir or checkout different
# branches!
{"type":"doc","attrs":{"layout":"us_letter_portrait","padding":36,"width":null},"content":[{"type":"paragraph","attrs":{"align":"center","color":null,"id":null,"indent":0,"lineSpacing":"1.15","paddingBottom":"0pt","paddingTop":"0pt"},"content":[{"type":"text","marks":[{"type":"mark-font-size","attrs":{"pt":11}},{"type":"mark-font-type","attrs":{"name":"Arial"}},{"type":"strong"},{"type":"mark-text-color","attrs":{"color":"#000000"}},{"type":"underline"}],"text":"Check For understanding: Solving problems involving angles and triangles"}]},{"type":"paragraph","attrs":{"align":"left","color":null,"id":null,"indent":0,"lineSpacing":"1.15","paddingBottom":"0pt","paddingTop":"0pt"}},{"type":"ordered_list","attrs":{"id":1,"indent":1,"listStyleType":null,"start":1},"content":[{"type":"list_item","attrs":{"align":"left","color":null,"id":null,"style":null},"content":[{"type":"paragraph","attrs":{"align":null,"color":null,"id":null,"indent":0,"lineSpacing":"1.15","paddingBottom":"0pt","paddingTop":"0pt"},"content":[{"t