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) |