Refactor of https://gist.github.com/tadast/9932075#gistcomment-2283895
$ mkdir config/certs && touch config/certs/.keep
# .gitignore
/config/certs/*
const title = (document.querySelector("#productTitle") || document.querySelector("#ebooksProductTitle")).innerText; | |
let body = '[amazon ' + window.location.href + ']\n'; | |
const orderContainer = (document.querySelector("#instantOrderUpdate") || document.querySelector("#ebooksInstantOrderUpdate")); | |
if (orderContainer) { | |
const year = new RegExp(/\d{4}/).exec(orderContainer.innerText)[0]; | |
const year_month = new RegExp(/\d{4}\/\d{1,2}/).exec(orderContainer.innerText)[0]; | |
body = body + 'Ordered: [' + year + '], [' + year_month + ']\n'; | |
} |
Refactor of https://gist.github.com/tadast/9932075#gistcomment-2283895
$ mkdir config/certs && touch config/certs/.keep
# .gitignore
/config/certs/*
[/] | |
audible-bell=false | |
background-color='rgb(15,15,15)' | |
bold-is-bright=false | |
default-size-columns=96 | |
default-size-rows=42 | |
palette=['rgb(0,0,0)', 'rgb(205,0,0)', 'rgb(0,205,0)', 'rgb(205,205,0)', 'rgb(30,144,255)', 'rgb(205,0,205)', 'rgb(0,205,205)', 'rgb(229,229,229)', 'rgb(127,127,127)', 'rgb(255,0,0)', 'rgb(0,255,0)', 'rgb(255,255,0)', 'rgb(72,111,213)', 'rgb(255,0,255)', 'rgb(0,255,255)', 'rgb(255,255,255)'] | |
visible-name='manjaro-custom' |
sudo pacman -Syu \ | |
base-devel \ | |
dconf-editor \ | |
docker \ | |
github-cli \ | |
hub \ | |
noto-fonts \ | |
noto-fonts-cjk \ | |
noto-fonts-emoji \ | |
neovim \ |
/** @type import("eslint").Linter.Config */ | |
module.exports = { | |
env: { browser: true, node: true }, | |
parser: '@typescript-eslint/parser', | |
extends: [ | |
"eslint:recommended", | |
"plugin:@typescript-eslint/recommended", | |
"plugin:import/errors", | |
"plugin:import/warnings", | |
"plugin:react/recommended", |
#!/bin/sh | |
# Required: hub, jq | |
commit=$1 | |
pr=$(hub api graphql -F query=" | |
{ | |
repository(name: \"{repo}\", owner: \"{owner}\") { | |
commit: object(expression: \"$commit\") { | |
... on Commit { |
version: "3" | |
services: | |
db: | |
image: mysql:5.7 | |
container_name: sample-db | |
ports: | |
- 3344:3306 | |
volumes: | |
- ./db/mysql:/var/lib/mysql |
import { Route, Switch } from "wouter-preact"; | |
const pageFiles = import.meta.globEager("./pages/**/*.tsx"); | |
const pages = Object.keys(pageFiles) | |
.sort() | |
.reverse() // Ensure the order of page file names. Put `:<filename>` to the end of the array. | |
.map((filePath) => { | |
const path = filePath.slice(8, -4).replace(/\/?index$/, ""); | |
const { Page } = pageFiles[filePath]; |
document.createElement("canvas") | |
.getContext("2d") | |
.measureText("Hello こんにちは 😀") | |
.width; |
# official docs: https://graphql-ruby.org/dataloader/sources.html | |
# app/graphql/sources/association.rb | |
class Sources::Association < ::GraphQL::Dataloader::Source | |
def initialize(association_name, scope = nil) | |
@association_name = association_name | |
@scope = scope | |
end | |
def fetch(records) |