Skip to content

Instantly share code, notes, and snippets.

View pdxmph's full-sized avatar

Mike Hall pdxmph

View GitHub Profile
@pdxmph
pdxmph / denote_tasks_spec.md
Created July 5, 2025 01:37
Denote tasks spec

Denote Task Format Specification

Version: 1.0
Date: 2025-07-04

Overview

This specification describes the file format and metadata structure for tasks and projects using the Denote naming convention with extended YAML frontmatter. This format is designed to be human-readable, sync-friendly, and easily parseable by multiple tools.

File Naming Convention

@pdxmph
pdxmph / setup.md
Created May 26, 2025 02:00
go2social setup on Synology and Cloudflare with Portainer
date title type permalink tags modified
2025-05-25 11:25:56 -0700
GotoSocial Setup on Synology with Custom Domain
note
basic-memory/goto-social-setup-on-synology-with-custom-domain
gotosocial synology selfhosted fediverse activitypub docker
2025-05-25 11:43:46 -0700
@pdxmph
pdxmph / tags.html
Created May 3, 2025 21:14
Mastodon tags shortcode for Hugo
{{ $tags_list := index .Params 0 }}
{{ $tags := split $tags_list " " }}
<i class="fa-brands fa-mastodon"></i> {{ range $tags }}<a href="https://social.lol/tags/{{ substr . 1 }}">{{ . }}</a>&nbsp;{{ end }}
{
"\u001b\u003c": "CursorStart",
"\u001b\u003e": "CursorEnd",
"\u003cCtrl-x\u003e\u003c0\u003e": "Unsplit",
"\u003cCtrl-x\u003e\u003c2\u003e": "HSplit",
"\u003cCtrl-x\u003e\u003c3\u003e": "VSplit",
"\u003cCtrl-x\u003e\u003cCtrl-c\u003e": "Quit",
"\u003cCtrl-x\u003e\u003cCtrl-f\u003e": "OpenFile",
"\u003cCtrl-x\u003e\u003cCtrl-s\u003e": "Save",
"\u003cCtrl-x\u003e\u003ch\u003e": "SelectAll",
@pdxmph
pdxmph / daily.nb-plugin
Created April 24, 2025 20:47
Daily #nb-plugin for making daily posts in nb. Modified from the original to title the initial file and make the filename more obviously a daily post.
#!/usr/bin/env bash
###############################################################################
# daily.nb-plugin
#
# Write to a daily log.
#
# Install with:
# nb plugin install https://github.com/xwmx/nb/blob/master/plugins/daily.nb-plugin
#
# A plugin for `nb`.
@pdxmph
pdxmph / lmno.org
Created April 22, 2025 03:27
lmno blogging capture tool

lmno blogging

Minor mode to capture:

(define-minor-mode lmno-blog-capture-mode
  "Mode for capturing blog entries like org-capture."
  :lighter ">> BlogCapture"
  :keymap (let ((map (make-sparse-keymap)))
@pdxmph
pdxmph / makeapp.rb
Created November 19, 2023 18:48
Wrapper to make nativifier apps and create the corresponding .desktop files
#!/usr/bin/env ruby
# - `makeapp.rb --help` for help on the options
require 'optparse'
# Where do we want to put things?
app_dir = "~/Applications"
custom_dir = "/home/mph/.local/share/applications/"
@pdxmph
pdxmph / org-contacts-crm.org
Created April 18, 2023 22:28
Functions, helpers, and agenda views to make a plaintext CRM in org-mode with org-contacts.

Org Plaintext Crm

org-contacts CRM

A bunch of functions and views to allow org-contacts to serve as the basis for a lightweight, text-based CRM.

Basic workflow:

  1. Get your contacts into org-contacts format. Traditionally this is done with org-vcard, but that didn’t work for me so I made a script.[fn:1]
  2. Add a :CONTACTED: property to the cards. It takes a date (not an org-date, just an ISO-8601 YYYY-mm-dd date). The script adds one.
  3. Tag contacts. The custom views depend on the tags :close:, :fam:, and :network:
@pdxmph
pdxmph / trains.rb
Last active April 15, 2023 06:35
ChatGPT-generated script to find the arrival time of a train at a given station in Portland, OR
#!/usr/bin/env ruby
require 'net/http'
require 'json'
require 'time'
# Replace with your TriMet API key
API_KEY = '73E10D534D59A179A687B98EDEE'
# Replace with the TriMet stop ID for the stop you're interested in
STOP_ID = '13136'