curl -LsSf https://astral.sh/uv/install.sh | sh<%* /*
/**
* Obsidian Templater script to build a book from markdown files.
*
* This script automates the process of generating a publish-ready book from a set of Obsidian markdown files.
* It is designed to work on both Windows and Mac, and can be run from within Obsidian using the Templater plugin.
*
* The script performs the following steps:
* 1. Expands all Obsidian embeds and links, recursively flattening the book structure into two markdown files:| #!/bin/bash | |
| # CHANGE THIS | |
| ACTUAL_EZA=/usr/local/bin/_eza | |
| display_time="modified" | |
| sort_time="" | |
| args=() | |
| while [ "$#" -gt 0 ]; do |
If you don't care about why or how this works, you can skip right down to Setup Steps
These are the considerations I tried to satisfy while researching this solution:
- I prefer not to generate new SSH keys for every machine/VM/environment where I use git or SSH. I end up with tons of keys per GitHub account or remote server, and I don't remember which is which.
- I want to keep private keys secured somewhere that is not directly accessible on the filesystem. Also try to avoid copying private keys around at all costs.
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>My Angular from Scratch</title> | |
| <style> | |
| .my-component { | |
| font-family: Arial, sans-serif; |
| import { Controller } from '@hotwired/stimulus' | |
| const BANNED_NODES = ['com-1password-button', 'com-1password-menu'] | |
| export default class extends Controller { | |
| connect () { | |
| this.observer = new window.MutationObserver(mutations => { | |
| mutations.forEach(mutation => { | |
| mutation.addedNodes.forEach(node => { | |
| if (BANNED_NODES.includes(node.nodeName.toLowerCase())) { | |
| node.remove() |
by the time you're reading this, this probably no longer works since the policy has been removed. I reccomend you to check out https://github.com/r58Playz/uBlock-mv3 instead
- google's manifest v3 has no analouge to the
webRequestBlockingAPI, which is neccesary for (effective) adblockers to work - starting in chrome version 127, the transition to mv3 will start cutting off the use of mv2 extensions alltogether
- this will inevitably piss of enterprises when their extensions don't work, so the
ExtensionManifestV2Availabilitykey was added and will presumably stay forever after enterprises complain enough
You can use this as a regular user, which will let you keep your mv2 extensions even after they're supposed to stop working
These are modern “Emulated Devices” (a.k.a. responsive dimensions) for Chrome DevTools’ Mobile Device Viewport Mode.
They are specifically Apple devices, subtracting for recent Safari UI (as in window.innerWidth/Height), and cleverly sorted with some dark-arts unicode shenanigans. (This glitchy, unloved portion of the tools sorts lexicographically, because of course it would.) Ergonomics!
Note
Updated June 2025 with some notes from folks below! TL;DR: use Vibranium!