Right now we can target Shortcode nodes in our AST, but creating new Shortcodes programmatically is very annoying. We should improve that situation. See https://github.com/quarto-dev/quarto-cli/discussions/10598#discussioncomment-11341059 for motivation.