Files
zmVault/timestamped/2026-02-02_06-50-00.md
T

1.5 KiB

id, aliases, title, tags, dg-publish, daily
id aliases title tags dg-publish daily
2026-02-02 06:50:00
authorship/original
destiny/permanent
status/draft
type/timestamped
topic/meta
true 2026-02-02

2026-02-02 06:50:00

I'm considering including management scripts in this vault, but I'd generally prefer to keep it content only. Ideally I could do anything I'd use a script for with a plugin, but they have their limitations. Eventually I should learn-to-write-obsidian-plugins, but for now here's a useful cmdlet I wrote a while ago but misplaced.

function Import-Markdown {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [string]$Path
    )
    try {
      $command = Get-Command ConvertFrom-Yaml -ErrorAction "Stop"
    }
    catch {
      throw "no YAML conversion module installed. Try ``Install-Module powershell-yaml``."
    }
 
    $content = Get-Content -Path $Path -Raw
    $pattern = [Regex]'(?ms)^---\s*(.*?)\s*---\s*(.*)$'
    $match = $pattern.Match($content)
    if ($match.Success) {
        $frontmatter = $match.Groups[1].Value
        $body = $match.Groups[2].Value
    }
    else {
        $frontmatter = ''
        $body = $content
    }
 
    return [pscustomobject]@{
        frontmatter = $frontmatter | ConvertFrom-Yaml
        body        = $body
    }
}

That match expression is bizarre, and the whole thing needs better error handling, but it works.

A Where-Markdown for filtering by tags and a {Verb}-Markdown for modifying tags would be idiomatic.