- # Make snippet for exchanging data with a HedgeDoc pad
- #
- # Copyright 2024, Jonas Smedegaard <dr@jones.dk>
- # SPDX-License-Identifier: GPL-3+
- #
- # Setup:
- # * set variable PAD_LIST
- # * set variable PAD_REPLACE if supported and wanted
- # * include this make snippet
- #
- # whitespace-delimited list of file-URI pairs,
- # each consisting of a relative path to a local file
- # and a relative URI to a HedgeDoc pad,
- # separated by a colon.
- #PAD_LIST = \
- # README.md:Xg5jgtkWQNqRzobI0qwrtw \
- # our_project/subdir/foo.data:XxgHj9yCQ_e6bsETro5DMA
- #
- # when set to a non-empty value (and HedgeDoc service supports it),
- # importing from local file will attempt to replace existing pad,
- # instead of creating a new pad
- #PAD_REPLACE = yes
- #
- # Dependencies:
- # * hedgedoc <https://github.com/hedgedoc/cli>
- # * perl v5.36 or newer
- # resolve files and URIs from PAD_LIST
- _PADFILES = $(foreach i,$(PAD_LIST),$(firstword $(subst :,$() ,$i)))
- _padfile2uri = $(patsubst $1:%,%,$(filter $1:%,$(PAD_LIST)))
- # register with HedgeDoc service
- pad-login:
- hedgedoc login --email
- # list available pads at HedgeDoc service
- pad-list:
- hedgedoc history
- pad-export-all: $(_PADFILES:%=pad-export-to-%)
- # export from pad to local file, and ensure it ends with a newline
- $(_PADFILES:%=pad-export-to-%): pad-export-to-%:
- $(if $(wildcard $(dir $*)),,mkdir --parents $(dir $*))
- hedgedoc export --md $(call _padfile2uri,$*) $*
- perl -gpi -e 's/\s*\z/\n/' $*
- $(_PADFILES:%=pad-import-from-%): pad-import-from-%: %
- hedgedoc import $< $(if $(PAD_WANTED),$(call _padfile2uri,$*))
- .PHONY: pad-login pad-list pad-export-all $(_PADFILES:%=pad-export-to-%) $(_PADFILES:%=pad-import-from-%)
|