git: fb4e87c7f6bd - main - textproc/presenterm: Add new port

From: Nicola Vitale <nivit_at_FreeBSD.org>
Date: Mon, 10 Aug 2026 21:35:49 UTC
The branch main has been updated by nivit:

URL: https://cgit.FreeBSD.org/ports/commit/?id=fb4e87c7f6bd6f68869e52da7ac66ae07f9ad237

commit fb4e87c7f6bd6f68869e52da7ac66ae07f9ad237
Author:     Nicola Vitale <nivit@FreeBSD.org>
AuthorDate: 2026-08-10 21:34:21 +0000
Commit:     Nicola Vitale <nivit@FreeBSD.org>
CommitDate: 2026-08-10 21:34:21 +0000

    textproc/presenterm: Add new port
    
    Presenterm lets you create presentations in markdown format and run them from
    your terminal, with support for image and animated gifs, highly customizable
    themes, code highlighting, exporting presentations into PDF format, and plenty
    of other features.
    
    https://mfontanini.github.io/presenterm/
---
 textproc/Makefile                   |   1 +
 textproc/presenterm/Makefile        |  44 ++++
 textproc/presenterm/Makefile.crates | 220 ++++++++++++++++++
 textproc/presenterm/distinfo        | 443 ++++++++++++++++++++++++++++++++++++
 textproc/presenterm/pkg-descr       |   4 +
 textproc/presenterm/pkg-message     |  11 +
 textproc/presenterm/pkg-plist       |  56 +++++
 7 files changed, 779 insertions(+)

diff --git a/textproc/Makefile b/textproc/Makefile
index 9d4e635bfc9e..141168726ade 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -1333,6 +1333,7 @@
     SUBDIR += pod2mdoc
     SUBDIR += popup-stacks
     SUBDIR += ppower4
+    SUBDIR += presenterm
     SUBDIR += pugixml
     SUBDIR += pup
     SUBDIR += py-CommonMark
diff --git a/textproc/presenterm/Makefile b/textproc/presenterm/Makefile
new file mode 100644
index 000000000000..4a884617dbf8
--- /dev/null
+++ b/textproc/presenterm/Makefile
@@ -0,0 +1,44 @@
+PORTNAME=	presenterm
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.16.1
+CATEGORIES=	textproc
+
+MAINTAINER=	nivit@FreeBSD.org
+COMMENT=	Markdown terminal slideshow tool
+WWW=		https://mfontanini.github.io/presenterm/
+
+LICENSE=	APACHE20 BSD0CLAUSE BSD2CLAUSE BSD3CLAUSE MIT MPL20 ZLIB
+LICENSE_COMB=	multi
+
+LIB_DEPENDS=	libonig.so:devel/oniguruma
+
+USES=		cargo python:env
+USE_GITHUB=	yes
+GH_ACCOUNT=	mfontanini
+
+OPTIONS_DEFINE=		D2 DOCS EXAMPLES LATEX WEASYPRINT
+OPTIONS_DEFAULT=	LATEX WEASYPRINT
+
+D2_DESC=		D2 diagrams support
+WEASYPRINT_DESC=	Export PDF via weasyprint
+
+D2_RUN_DEPENDS=		d2:graphics/d2
+LATEX_RUN_DEPENDS=	pandoc:textproc/hs-pandoc \
+			typst:textproc/typst
+WEASYPRINT_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}weasyprint>=61.2:print/py-weasyprint@${PY_FLAVOR}
+
+post-install:
+	${MKDIR} ${STAGEDIR}${ETCDIR}
+	${INSTALL_DATA} ${WRKSRC}/config.sample.yaml ${STAGEDIR}${ETCDIR}/config.yaml.sample
+
+post-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	(cd ${WRKSRC}/docs/src && \
+	${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
+
+post-install-EXAMPLES-on:
+	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+	(cd ${WRKSRC}/docs/src && \
+	${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
+
+.include <bsd.port.mk>
diff --git a/textproc/presenterm/Makefile.crates b/textproc/presenterm/Makefile.crates
new file mode 100644
index 000000000000..88012a659e88
--- /dev/null
+++ b/textproc/presenterm/Makefile.crates
@@ -0,0 +1,220 @@
+CARGO_CRATES=	adler2-2.0.1 \
+		aho-corasick-1.1.4 \
+		anstream-0.6.21 \
+		anstyle-1.0.13 \
+		anstyle-parse-0.2.7 \
+		anstyle-query-1.1.4 \
+		anstyle-wincon-3.0.10 \
+		anyhow-1.0.100 \
+		arrayvec-0.7.6 \
+		autocfg-1.5.0 \
+		base64-0.22.1 \
+		bincode-1.3.3 \
+		bitflags-1.3.2 \
+		bitflags-2.10.0 \
+		bitvec-1.0.1 \
+		by_address-1.2.1 \
+		bytemuck-1.24.0 \
+		bytemuck_derive-1.10.2 \
+		byteorder-lite-0.1.0 \
+		caseless-0.2.2 \
+		cc-1.2.43 \
+		cfg-if-1.0.4 \
+		cfg_aliases-0.1.1 \
+		clap-4.5.51 \
+		clap_builder-4.5.51 \
+		clap_derive-4.5.49 \
+		clap_lex-0.7.6 \
+		color_quant-1.1.0 \
+		colorchoice-1.0.4 \
+		comrak-0.48.0 \
+		crc32fast-1.5.0 \
+		crossbeam-deque-0.8.6 \
+		crossbeam-epoch-0.9.18 \
+		crossbeam-utils-0.8.21 \
+		crossterm-0.28.1 \
+		crossterm-0.29.0 \
+		crossterm_winapi-0.9.1 \
+		deranged-0.5.5 \
+		directories-6.0.0 \
+		dirs-sys-0.5.0 \
+		document-features-0.2.12 \
+		downcast-0.11.0 \
+		downcast-rs-1.2.1 \
+		dyn-clone-1.0.20 \
+		either-1.15.0 \
+		entities-1.0.1 \
+		equivalent-1.0.2 \
+		errno-0.3.14 \
+		fast-srgb8-1.0.0 \
+		fastrand-2.3.0 \
+		fdeflate-0.3.7 \
+		filedescriptor-0.8.3 \
+		find-msvc-tools-0.1.4 \
+		flate2-1.1.5 \
+		fnv-1.0.7 \
+		fragile-2.0.1 \
+		funty-2.0.0 \
+		getrandom-0.2.16 \
+		gif-0.13.3 \
+		glob-0.3.3 \
+		hashbrown-0.16.0 \
+		heck-0.5.0 \
+		hex-0.4.3 \
+		icy_sixel-0.5.0 \
+		image-0.25.8 \
+		indexmap-2.12.0 \
+		is_terminal_polyfill-1.70.2 \
+		itertools-0.14.0 \
+		itoa-1.0.15 \
+		jetscii-0.5.3 \
+		lazy_static-1.5.0 \
+		libc-0.2.177 \
+		libm-0.2.15 \
+		libredox-0.1.10 \
+		linux-raw-sys-0.4.15 \
+		linux-raw-sys-0.11.0 \
+		litrs-1.0.0 \
+		lock_api-0.4.14 \
+		log-0.4.28 \
+		memchr-2.7.6 \
+		merge-struct-0.1.0 \
+		miniz_oxide-0.8.9 \
+		mio-1.1.0 \
+		mockall-0.13.1 \
+		mockall_derive-0.13.1 \
+		moxcms-0.7.9 \
+		nix-0.28.0 \
+		num-conv-0.1.0 \
+		num-traits-0.2.19 \
+		num_threads-0.1.7 \
+		once_cell-1.21.3 \
+		once_cell_polyfill-1.70.2 \
+		onig-6.5.1 \
+		onig_sys-69.9.1 \
+		option-ext-0.2.0 \
+		ordered-float-5.1.0 \
+		os_pipe-1.2.3 \
+		palette-0.7.6 \
+		palette_derive-0.7.6 \
+		parking_lot-0.12.5 \
+		parking_lot_core-0.9.12 \
+		pkg-config-0.3.32 \
+		plist-1.8.0 \
+		png-0.18.0 \
+		portable-pty-0.9.0 \
+		powerfmt-0.2.0 \
+		predicates-3.1.3 \
+		predicates-core-1.0.9 \
+		predicates-tree-1.0.12 \
+		proc-macro2-1.0.103 \
+		pxfm-0.1.25 \
+		quantette-0.5.1 \
+		quick-xml-0.38.3 \
+		quote-1.0.41 \
+		radium-0.7.0 \
+		rand-0.9.2 \
+		rand_core-0.9.3 \
+		rand_xoshiro-0.7.0 \
+		rayon-1.11.0 \
+		rayon-core-1.13.0 \
+		redox_syscall-0.5.18 \
+		redox_users-0.5.2 \
+		ref-cast-1.0.25 \
+		ref-cast-impl-1.0.25 \
+		regex-1.12.2 \
+		regex-automata-0.4.13 \
+		regex-syntax-0.8.8 \
+		relative-path-1.9.3 \
+		rstest-0.26.1 \
+		rstest_macros-0.26.1 \
+		rustc_version-0.4.1 \
+		rustix-0.38.44 \
+		rustix-1.1.2 \
+		ryu-1.0.20 \
+		safe_arch-0.9.3 \
+		same-file-1.0.6 \
+		schemars-0.8.22 \
+		schemars_derive-0.8.22 \
+		scopeguard-1.2.0 \
+		semver-1.0.27 \
+		serde-1.0.228 \
+		serde_core-1.0.228 \
+		serde_derive-1.0.228 \
+		serde_derive_internals-0.29.1 \
+		serde_json-1.0.145 \
+		serde_yaml-0.9.34+deprecated \
+		serial2-0.2.33 \
+		shared_library-0.1.9 \
+		shell-words-1.1.0 \
+		shlex-1.3.0 \
+		signal-hook-0.3.18 \
+		signal-hook-mio-0.2.5 \
+		signal-hook-registry-1.4.6 \
+		simd-adler32-0.3.7 \
+		simplelog-0.12.2 \
+		smallvec-1.15.1 \
+		socket2-0.6.1 \
+		strsim-0.11.1 \
+		strum-0.27.2 \
+		strum_macros-0.27.2 \
+		syn-2.0.108 \
+		syntect-5.3.0 \
+		tap-1.0.1 \
+		tempfile-3.23.0 \
+		termbg-0.6.2 \
+		termcolor-1.4.1 \
+		termtree-0.5.1 \
+		thiserror-1.0.69 \
+		thiserror-2.0.17 \
+		thiserror-impl-1.0.69 \
+		thiserror-impl-2.0.17 \
+		time-0.3.44 \
+		time-core-0.1.6 \
+		time-macros-0.2.24 \
+		tinyvec-1.10.0 \
+		tinyvec_macros-0.1.1 \
+		tl-0.7.8 \
+		typed-arena-2.0.2 \
+		unicode-ident-1.0.22 \
+		unicode-normalization-0.1.25 \
+		unicode-width-0.2.2 \
+		unicode_categories-0.1.1 \
+		unsafe-libyaml-0.2.11 \
+		utf8parse-0.2.2 \
+		vt100-0.16.2 \
+		vte-0.15.0 \
+		walkdir-2.5.0 \
+		wasi-0.11.1+wasi-snapshot-preview1 \
+		weezl-0.1.10 \
+		wide-0.8.3 \
+		winapi-0.3.9 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-util-0.1.11 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		windows-link-0.2.1 \
+		windows-sys-0.59.0 \
+		windows-sys-0.60.2 \
+		windows-sys-0.61.2 \
+		windows-targets-0.52.6 \
+		windows-targets-0.53.5 \
+		windows_aarch64_gnullvm-0.52.6 \
+		windows_aarch64_gnullvm-0.53.1 \
+		windows_aarch64_msvc-0.52.6 \
+		windows_aarch64_msvc-0.53.1 \
+		windows_i686_gnu-0.52.6 \
+		windows_i686_gnu-0.53.1 \
+		windows_i686_gnullvm-0.52.6 \
+		windows_i686_gnullvm-0.53.1 \
+		windows_i686_msvc-0.52.6 \
+		windows_i686_msvc-0.53.1 \
+		windows_x86_64_gnu-0.52.6 \
+		windows_x86_64_gnu-0.53.1 \
+		windows_x86_64_gnullvm-0.52.6 \
+		windows_x86_64_gnullvm-0.53.1 \
+		windows_x86_64_msvc-0.52.6 \
+		windows_x86_64_msvc-0.53.1 \
+		winreg-0.10.1 \
+		wyz-0.5.1 \
+		zune-core-0.4.12 \
+		zune-jpeg-0.4.21
diff --git a/textproc/presenterm/distinfo b/textproc/presenterm/distinfo
new file mode 100644
index 000000000000..9cf0dc6ff49f
--- /dev/null
+++ b/textproc/presenterm/distinfo
@@ -0,0 +1,443 @@
+TIMESTAMP = 1786088570
+SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
+SIZE (rust/crates/adler2-2.0.1.crate) = 13366
+SHA256 (rust/crates/aho-corasick-1.1.4.crate) = ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301
+SIZE (rust/crates/aho-corasick-1.1.4.crate) = 184015
+SHA256 (rust/crates/anstream-0.6.21.crate) = 43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a
+SIZE (rust/crates/anstream-0.6.21.crate) = 29516
+SHA256 (rust/crates/anstyle-1.0.13.crate) = 5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78
+SIZE (rust/crates/anstyle-1.0.13.crate) = 17651
+SHA256 (rust/crates/anstyle-parse-0.2.7.crate) = 4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2
+SIZE (rust/crates/anstyle-parse-0.2.7.crate) = 21707
+SHA256 (rust/crates/anstyle-query-1.1.4.crate) = 9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2
+SIZE (rust/crates/anstyle-query-1.1.4.crate) = 10192
+SHA256 (rust/crates/anstyle-wincon-3.0.10.crate) = 3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a
+SIZE (rust/crates/anstyle-wincon-3.0.10.crate) = 12558
+SHA256 (rust/crates/anyhow-1.0.100.crate) = a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61
+SIZE (rust/crates/anyhow-1.0.100.crate) = 54059
+SHA256 (rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50
+SIZE (rust/crates/arrayvec-0.7.6.crate) = 31237
+SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
+SIZE (rust/crates/autocfg-1.5.0.crate) = 18729
+SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
+SIZE (rust/crates/base64-0.22.1.crate) = 81597
+SHA256 (rust/crates/bincode-1.3.3.crate) = b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad
+SIZE (rust/crates/bincode-1.3.3.crate) = 28958
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bitflags-2.10.0.crate) = 812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3
+SIZE (rust/crates/bitflags-2.10.0.crate) = 48427
+SHA256 (rust/crates/bitvec-1.0.1.crate) = 1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c
+SIZE (rust/crates/bitvec-1.0.1.crate) = 224375
+SHA256 (rust/crates/by_address-1.2.1.crate) = 64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06
+SIZE (rust/crates/by_address-1.2.1.crate) = 8437
+SHA256 (rust/crates/bytemuck-1.24.0.crate) = 1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4
+SIZE (rust/crates/bytemuck-1.24.0.crate) = 53243
+SHA256 (rust/crates/bytemuck_derive-1.10.2.crate) = f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff
+SIZE (rust/crates/bytemuck_derive-1.10.2.crate) = 25678
+SHA256 (rust/crates/byteorder-lite-0.1.0.crate) = 8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495
+SIZE (rust/crates/byteorder-lite-0.1.0.crate) = 15909
+SHA256 (rust/crates/caseless-0.2.2.crate) = 8b6fd507454086c8edfd769ca6ada439193cdb209c7681712ef6275cccbfe5d8
+SIZE (rust/crates/caseless-0.2.2.crate) = 29309
+SHA256 (rust/crates/cc-1.2.43.crate) = 739eb0f94557554b3ca9a86d2d37bebd49c5e6d0c1d2bda35ba5bdac830befc2
+SIZE (rust/crates/cc-1.2.43.crate) = 91384
+SHA256 (rust/crates/cfg-if-1.0.4.crate) = 9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801
+SIZE (rust/crates/cfg-if-1.0.4.crate) = 9360
+SHA256 (rust/crates/cfg_aliases-0.1.1.crate) = fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e
+SIZE (rust/crates/cfg_aliases-0.1.1.crate) = 6009
+SHA256 (rust/crates/clap-4.5.51.crate) = 4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5
+SIZE (rust/crates/clap-4.5.51.crate) = 62030
+SHA256 (rust/crates/clap_builder-4.5.51.crate) = 75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a
+SIZE (rust/crates/clap_builder-4.5.51.crate) = 171077
+SHA256 (rust/crates/clap_derive-4.5.49.crate) = 2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671
+SIZE (rust/crates/clap_derive-4.5.49.crate) = 33559
+SHA256 (rust/crates/clap_lex-0.7.6.crate) = a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d
+SIZE (rust/crates/clap_lex-0.7.6.crate) = 13466
+SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b
+SIZE (rust/crates/color_quant-1.1.0.crate) = 6649
+SHA256 (rust/crates/colorchoice-1.0.4.crate) = b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75
+SIZE (rust/crates/colorchoice-1.0.4.crate) = 8196
+SHA256 (rust/crates/comrak-0.48.0.crate) = 48bf2260aceee247c6c5639f5751dc635211895066d782d2a28fb87f2e0d5613
+SIZE (rust/crates/comrak-0.48.0.crate) = 227493
+SHA256 (rust/crates/crc32fast-1.5.0.crate) = 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511
+SIZE (rust/crates/crc32fast-1.5.0.crate) = 40723
+SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51
+SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471
+SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
+SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
+SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28
+SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
+SHA256 (rust/crates/crossterm-0.28.1.crate) = 829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6
+SIZE (rust/crates/crossterm-0.28.1.crate) = 132275
+SHA256 (rust/crates/crossterm-0.29.0.crate) = d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b
+SIZE (rust/crates/crossterm-0.29.0.crate) = 136635
+SHA256 (rust/crates/crossterm_winapi-0.9.1.crate) = acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b
+SIZE (rust/crates/crossterm_winapi-0.9.1.crate) = 16027
+SHA256 (rust/crates/deranged-0.5.5.crate) = ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587
+SIZE (rust/crates/deranged-0.5.5.crate) = 24438
+SHA256 (rust/crates/directories-6.0.0.crate) = 16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d
+SIZE (rust/crates/directories-6.0.0.crate) = 17842
+SHA256 (rust/crates/dirs-sys-0.5.0.crate) = e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab
+SIZE (rust/crates/dirs-sys-0.5.0.crate) = 10157
+SHA256 (rust/crates/document-features-0.2.12.crate) = d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61
+SIZE (rust/crates/document-features-0.2.12.crate) = 14739
+SHA256 (rust/crates/downcast-0.11.0.crate) = 1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1
+SIZE (rust/crates/downcast-0.11.0.crate) = 5976
+SHA256 (rust/crates/downcast-rs-1.2.1.crate) = 75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2
+SIZE (rust/crates/downcast-rs-1.2.1.crate) = 11821
+SHA256 (rust/crates/dyn-clone-1.0.20.crate) = d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555
+SIZE (rust/crates/dyn-clone-1.0.20.crate) = 13134
+SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719
+SIZE (rust/crates/either-1.15.0.crate) = 20114
+SHA256 (rust/crates/entities-1.0.1.crate) = b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca
+SIZE (rust/crates/entities-1.0.1.crate) = 24795
+SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f
+SIZE (rust/crates/equivalent-1.0.2.crate) = 7419
+SHA256 (rust/crates/errno-0.3.14.crate) = 39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb
+SIZE (rust/crates/errno-0.3.14.crate) = 12002
+SHA256 (rust/crates/fast-srgb8-1.0.0.crate) = dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1
+SIZE (rust/crates/fast-srgb8-1.0.0.crate) = 17214
+SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be
+SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
+SHA256 (rust/crates/fdeflate-0.3.7.crate) = 1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c
+SIZE (rust/crates/fdeflate-0.3.7.crate) = 27188
+SHA256 (rust/crates/filedescriptor-0.8.3.crate) = e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d
+SIZE (rust/crates/filedescriptor-0.8.3.crate) = 12635
+SHA256 (rust/crates/find-msvc-tools-0.1.4.crate) = 52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127
+SIZE (rust/crates/find-msvc-tools-0.1.4.crate) = 30817
+SHA256 (rust/crates/flate2-1.1.5.crate) = bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb
+SIZE (rust/crates/flate2-1.1.5.crate) = 77015
+SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
+SIZE (rust/crates/fnv-1.0.7.crate) = 11266
+SHA256 (rust/crates/fragile-2.0.1.crate) = 28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619
+SIZE (rust/crates/fragile-2.0.1.crate) = 14648
+SHA256 (rust/crates/funty-2.0.0.crate) = e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c
+SIZE (rust/crates/funty-2.0.0.crate) = 13160
+SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592
+SIZE (rust/crates/getrandom-0.2.16.crate) = 40163
+SHA256 (rust/crates/gif-0.13.3.crate) = 4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b
+SIZE (rust/crates/gif-0.13.3.crate) = 36010
+SHA256 (rust/crates/glob-0.3.3.crate) = 0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280
+SIZE (rust/crates/glob-0.3.3.crate) = 22861
+SHA256 (rust/crates/hashbrown-0.16.0.crate) = 5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d
+SIZE (rust/crates/hashbrown-0.16.0.crate) = 141708
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
+SIZE (rust/crates/hex-0.4.3.crate) = 13299
+SHA256 (rust/crates/icy_sixel-0.5.0.crate) = 85518b9086bf01117761b90e7691c0ef3236fa8adfb1fb44dd248fe5f87215d5
+SIZE (rust/crates/icy_sixel-0.5.0.crate) = 3942871
+SHA256 (rust/crates/image-0.25.8.crate) = 529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7
+SIZE (rust/crates/image-0.25.8.crate) = 292229
+SHA256 (rust/crates/indexmap-2.12.0.crate) = 6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f
+SIZE (rust/crates/indexmap-2.12.0.crate) = 100446
+SHA256 (rust/crates/is_terminal_polyfill-1.70.2.crate) = a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695
+SIZE (rust/crates/is_terminal_polyfill-1.70.2.crate) = 7548
+SHA256 (rust/crates/itertools-0.14.0.crate) = 2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285
+SIZE (rust/crates/itertools-0.14.0.crate) = 152715
+SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c
+SIZE (rust/crates/itoa-1.0.15.crate) = 11231
+SHA256 (rust/crates/jetscii-0.5.3.crate) = 47f142fe24a9c9944451e8349de0a56af5f3e7226dc46f3ed4d4ecc0b85af75e
+SIZE (rust/crates/jetscii-0.5.3.crate) = 18811
+SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
+SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
+SHA256 (rust/crates/libc-0.2.177.crate) = 2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976
+SIZE (rust/crates/libc-0.2.177.crate) = 792045
+SHA256 (rust/crates/libm-0.2.15.crate) = f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de
+SIZE (rust/crates/libm-0.2.15.crate) = 156108
+SHA256 (rust/crates/libredox-0.1.10.crate) = 416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb
+SIZE (rust/crates/libredox-0.1.10.crate) = 7332
+SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab
+SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898
+SHA256 (rust/crates/linux-raw-sys-0.11.0.crate) = df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039
+SIZE (rust/crates/linux-raw-sys-0.11.0.crate) = 2659624
+SHA256 (rust/crates/litrs-1.0.0.crate) = 11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092
+SIZE (rust/crates/litrs-1.0.0.crate) = 46610
+SHA256 (rust/crates/lock_api-0.4.14.crate) = 224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965
+SIZE (rust/crates/lock_api-0.4.14.crate) = 29249
+SHA256 (rust/crates/log-0.4.28.crate) = 34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432
+SIZE (rust/crates/log-0.4.28.crate) = 51131
+SHA256 (rust/crates/memchr-2.7.6.crate) = f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273
+SIZE (rust/crates/memchr-2.7.6.crate) = 97616
+SHA256 (rust/crates/merge-struct-0.1.0.crate) = 1d82012d21e24135b839b6b9bebd622b7ff0cb40071498bc2d066d3a6d04dd4a
+SIZE (rust/crates/merge-struct-0.1.0.crate) = 2894
+SHA256 (rust/crates/miniz_oxide-0.8.9.crate) = 1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316
+SIZE (rust/crates/miniz_oxide-0.8.9.crate) = 67132
+SHA256 (rust/crates/mio-1.1.0.crate) = 69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873
+SIZE (rust/crates/mio-1.1.0.crate) = 105232
+SHA256 (rust/crates/mockall-0.13.1.crate) = 39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2
+SIZE (rust/crates/mockall-0.13.1.crate) = 22825
+SHA256 (rust/crates/mockall_derive-0.13.1.crate) = 25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898
+SIZE (rust/crates/mockall_derive-0.13.1.crate) = 47822
+SHA256 (rust/crates/moxcms-0.7.9.crate) = 0fbdd3d7436f8b5e892b8b7ea114271ff0fa00bc5acae845d53b07d498616ef6
+SIZE (rust/crates/moxcms-0.7.9.crate) = 176419
+SHA256 (rust/crates/nix-0.28.0.crate) = ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4
+SIZE (rust/crates/nix-0.28.0.crate) = 311086
+SHA256 (rust/crates/num-conv-0.1.0.crate) = 51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9
+SIZE (rust/crates/num-conv-0.1.0.crate) = 7444
+SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
+SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
+SHA256 (rust/crates/num_threads-0.1.7.crate) = 5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9
+SIZE (rust/crates/num_threads-0.1.7.crate) = 7455
+SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d
+SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
+SHA256 (rust/crates/once_cell_polyfill-1.70.2.crate) = 384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe
+SIZE (rust/crates/once_cell_polyfill-1.70.2.crate) = 7448
+SHA256 (rust/crates/onig-6.5.1.crate) = 336b9c63443aceef14bea841b899035ae3abe89b7c486aaf4c5bd8aafedac3f0
+SIZE (rust/crates/onig-6.5.1.crate) = 32394
+SHA256 (rust/crates/onig_sys-69.9.1.crate) = c7f86c6eef3d6df15f23bcfb6af487cbd2fed4e5581d58d5bf1f5f8b7f6727dc
+SIZE (rust/crates/onig_sys-69.9.1.crate) = 656378
+SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d
+SIZE (rust/crates/option-ext-0.2.0.crate) = 7345
+SHA256 (rust/crates/ordered-float-5.1.0.crate) = 7f4779c6901a562440c3786d08192c6fbda7c1c2060edd10006b05ee35d10f2d
+SIZE (rust/crates/ordered-float-5.1.0.crate) = 30230
+SHA256 (rust/crates/os_pipe-1.2.3.crate) = 7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967
+SIZE (rust/crates/os_pipe-1.2.3.crate) = 10467
+SHA256 (rust/crates/palette-0.7.6.crate) = 4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6
+SIZE (rust/crates/palette-0.7.6.crate) = 230913
+SHA256 (rust/crates/palette_derive-0.7.6.crate) = f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30
+SIZE (rust/crates/palette_derive-0.7.6.crate) = 17073
+SHA256 (rust/crates/parking_lot-0.12.5.crate) = 93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a
+SIZE (rust/crates/parking_lot-0.12.5.crate) = 46735
+SHA256 (rust/crates/parking_lot_core-0.9.12.crate) = 2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1
+SIZE (rust/crates/parking_lot_core-0.9.12.crate) = 34110
+SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c
+SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370
+SHA256 (rust/crates/plist-1.8.0.crate) = 740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07
+SIZE (rust/crates/plist-1.8.0.crate) = 54623
+SHA256 (rust/crates/png-0.18.0.crate) = 97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0
+SIZE (rust/crates/png-0.18.0.crate) = 118041
+SHA256 (rust/crates/portable-pty-0.9.0.crate) = b4a596a2b3d2752d94f51fac2d4a96737b8705dddd311a32b9af47211f08671e
+SIZE (rust/crates/portable-pty-0.9.0.crate) = 29466
+SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391
+SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165
+SHA256 (rust/crates/predicates-3.1.3.crate) = a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573
+SIZE (rust/crates/predicates-3.1.3.crate) = 24063
+SHA256 (rust/crates/predicates-core-1.0.9.crate) = 727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa
+SIZE (rust/crates/predicates-core-1.0.9.crate) = 8618
+SHA256 (rust/crates/predicates-tree-1.0.12.crate) = 72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c
+SIZE (rust/crates/predicates-tree-1.0.12.crate) = 8392
+SHA256 (rust/crates/proc-macro2-1.0.103.crate) = 5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8
+SIZE (rust/crates/proc-macro2-1.0.103.crate) = 60024
+SHA256 (rust/crates/pxfm-0.1.25.crate) = a3cbdf373972bf78df4d3b518d07003938e2c7d1fb5891e55f9cb6df57009d84
+SIZE (rust/crates/pxfm-0.1.25.crate) = 866791
+SHA256 (rust/crates/quantette-0.5.1.crate) = c98fecda8b16396ff9adac67644a523dd1778c42b58606a29df5c31ca925d174
+SIZE (rust/crates/quantette-0.5.1.crate) = 81566
+SHA256 (rust/crates/quick-xml-0.38.3.crate) = 42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89
+SIZE (rust/crates/quick-xml-0.38.3.crate) = 204498
+SHA256 (rust/crates/quote-1.0.41.crate) = ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1
+SIZE (rust/crates/quote-1.0.41.crate) = 31408
+SHA256 (rust/crates/radium-0.7.0.crate) = dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09
+SIZE (rust/crates/radium-0.7.0.crate) = 10906
+SHA256 (rust/crates/rand-0.9.2.crate) = 6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1
+SIZE (rust/crates/rand-0.9.2.crate) = 99930
+SHA256 (rust/crates/rand_core-0.9.3.crate) = 99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38
+SIZE (rust/crates/rand_core-0.9.3.crate) = 24543
+SHA256 (rust/crates/rand_xoshiro-0.7.0.crate) = f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41
+SIZE (rust/crates/rand_xoshiro-0.7.0.crate) = 18189
+SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f
+SIZE (rust/crates/rayon-1.11.0.crate) = 182470
+SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91
+SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151
+SHA256 (rust/crates/redox_syscall-0.5.18.crate) = ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d
+SIZE (rust/crates/redox_syscall-0.5.18.crate) = 30747
+SHA256 (rust/crates/redox_users-0.5.2.crate) = a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac
+SIZE (rust/crates/redox_users-0.5.2.crate) = 17280
+SHA256 (rust/crates/ref-cast-1.0.25.crate) = f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d
+SIZE (rust/crates/ref-cast-1.0.25.crate) = 15192
+SHA256 (rust/crates/ref-cast-impl-1.0.25.crate) = b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da
+SIZE (rust/crates/ref-cast-impl-1.0.25.crate) = 10167
+SHA256 (rust/crates/regex-1.12.2.crate) = 843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4
+SIZE (rust/crates/regex-1.12.2.crate) = 163843
+SHA256 (rust/crates/regex-automata-0.4.13.crate) = 5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c
+SIZE (rust/crates/regex-automata-0.4.13.crate) = 625250
+SHA256 (rust/crates/regex-syntax-0.8.8.crate) = 7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58
+SIZE (rust/crates/regex-syntax-0.8.8.crate) = 359141
+SHA256 (rust/crates/relative-path-1.9.3.crate) = ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2
+SIZE (rust/crates/relative-path-1.9.3.crate) = 22400
+SHA256 (rust/crates/rstest-0.26.1.crate) = f5a3193c063baaa2a95a33f03035c8a72b83d97a54916055ba22d35ed3839d49
+SIZE (rust/crates/rstest-0.26.1.crate) = 56940
+SHA256 (rust/crates/rstest_macros-0.26.1.crate) = 9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0
+SIZE (rust/crates/rstest_macros-0.26.1.crate) = 68256
+SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92
+SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245
+SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154
+SIZE (rust/crates/rustix-0.38.44.crate) = 379347
+SHA256 (rust/crates/rustix-1.1.2.crate) = cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e
+SIZE (rust/crates/rustix-1.1.2.crate) = 422717
+SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f
+SIZE (rust/crates/ryu-1.0.20.crate) = 48738
+SHA256 (rust/crates/safe_arch-0.9.3.crate) = 629516c85c29fe757770fa03f2074cf1eac43d44c02a3de9fc2ef7b0e207dfdd
+SIZE (rust/crates/safe_arch-0.9.3.crate) = 89545
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/schemars-0.8.22.crate) = 3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615
+SIZE (rust/crates/schemars-0.8.22.crate) = 59214
+SHA256 (rust/crates/schemars_derive-0.8.22.crate) = 32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d
+SIZE (rust/crates/schemars_derive-0.8.22.crate) = 19542
+SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
+SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
+SHA256 (rust/crates/semver-1.0.27.crate) = d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2
+SIZE (rust/crates/semver-1.0.27.crate) = 30081
+SHA256 (rust/crates/serde-1.0.228.crate) = 9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e
+SIZE (rust/crates/serde-1.0.228.crate) = 83652
+SHA256 (rust/crates/serde_core-1.0.228.crate) = 41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad
+SIZE (rust/crates/serde_core-1.0.228.crate) = 63111
+SHA256 (rust/crates/serde_derive-1.0.228.crate) = d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79
+SIZE (rust/crates/serde_derive-1.0.228.crate) = 59605
+SHA256 (rust/crates/serde_derive_internals-0.29.1.crate) = 18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711
+SIZE (rust/crates/serde_derive_internals-0.29.1.crate) = 26189
+SHA256 (rust/crates/serde_json-1.0.145.crate) = 402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c
+SIZE (rust/crates/serde_json-1.0.145.crate) = 155748
+SHA256 (rust/crates/serde_yaml-0.9.34+deprecated.crate) = 6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47
+SIZE (rust/crates/serde_yaml-0.9.34+deprecated.crate) = 65290
+SHA256 (rust/crates/serial2-0.2.33.crate) = 8cc76fa68e25e771492ca1e3c53d447ef0be3093e05cd3b47f4b712ba10c6f3c
+SIZE (rust/crates/serial2-0.2.33.crate) = 34092
+SHA256 (rust/crates/shared_library-0.1.9.crate) = 5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11
+SIZE (rust/crates/shared_library-0.1.9.crate) = 10566
+SHA256 (rust/crates/shell-words-1.1.0.crate) = 24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde
+SIZE (rust/crates/shell-words-1.1.0.crate) = 9871
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/signal-hook-0.3.18.crate) = d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2
+SIZE (rust/crates/signal-hook-0.3.18.crate) = 50862
+SHA256 (rust/crates/signal-hook-mio-0.2.5.crate) = b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc
+SIZE (rust/crates/signal-hook-mio-0.2.5.crate) = 14373
+SHA256 (rust/crates/signal-hook-registry-1.4.6.crate) = b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b
+SIZE (rust/crates/signal-hook-registry-1.4.6.crate) = 19277
+SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe
+SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086
+SHA256 (rust/crates/simplelog-0.12.2.crate) = 16257adbfaef1ee58b1363bdc0664c9b8e1e30aed86049635fb5f147d065a9c0
+SIZE (rust/crates/simplelog-0.12.2.crate) = 21548
+SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03
+SIZE (rust/crates/smallvec-1.15.1.crate) = 38116
+SHA256 (rust/crates/socket2-0.6.1.crate) = 17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881
+SIZE (rust/crates/socket2-0.6.1.crate) = 58486
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/strum-0.27.2.crate) = af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf
+SIZE (rust/crates/strum-0.27.2.crate) = 8489
+SHA256 (rust/crates/strum_macros-0.27.2.crate) = 7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7
+SIZE (rust/crates/strum_macros-0.27.2.crate) = 30522
+SHA256 (rust/crates/syn-2.0.108.crate) = da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917
+SIZE (rust/crates/syn-2.0.108.crate) = 301754
+SHA256 (rust/crates/syntect-5.3.0.crate) = 656b45c05d95a5704399aeef6bd0ddec7b2b3531b7c9e900abbf7c4d2190c925
+SIZE (rust/crates/syntect-5.3.0.crate) = 833348
+SHA256 (rust/crates/tap-1.0.1.crate) = 55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369
+SIZE (rust/crates/tap-1.0.1.crate) = 11316
+SHA256 (rust/crates/tempfile-3.23.0.crate) = 2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16
+SIZE (rust/crates/tempfile-3.23.0.crate) = 43063
+SHA256 (rust/crates/termbg-0.6.2.crate) = 8bf44577a1adf3dfd7fec3b8763074467e27b2ad35ff9157bc3f0a51bb0a3dd4
+SIZE (rust/crates/termbg-0.6.2.crate) = 20694
+SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755
+SIZE (rust/crates/termcolor-1.4.1.crate) = 18773
+SHA256 (rust/crates/termtree-0.5.1.crate) = 8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683
+SIZE (rust/crates/termtree-0.5.1.crate) = 8498
+SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
+SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
+SHA256 (rust/crates/thiserror-2.0.17.crate) = f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8
+SIZE (rust/crates/thiserror-2.0.17.crate) = 28857
+SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
+SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
+SHA256 (rust/crates/thiserror-impl-2.0.17.crate) = 3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913
+SIZE (rust/crates/thiserror-impl-2.0.17.crate) = 21344
+SHA256 (rust/crates/time-0.3.44.crate) = 91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d
+SIZE (rust/crates/time-0.3.44.crate) = 143200
+SHA256 (rust/crates/time-core-0.1.6.crate) = 40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b
+SIZE (rust/crates/time-core-0.1.6.crate) = 9105
+SHA256 (rust/crates/time-macros-0.2.24.crate) = 30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3
+SIZE (rust/crates/time-macros-0.2.24.crate) = 24715
+SHA256 (rust/crates/tinyvec-1.10.0.crate) = bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa
+SIZE (rust/crates/tinyvec-1.10.0.crate) = 51996
+SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
+SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
+SHA256 (rust/crates/tl-0.7.8.crate) = b130bd8a58c163224b44e217b4239ca7b927d82bf6cc2fea1fc561d15056e3f7
+SIZE (rust/crates/tl-0.7.8.crate) = 35639
+SHA256 (rust/crates/typed-arena-2.0.2.crate) = 6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a
+SIZE (rust/crates/typed-arena-2.0.2.crate) = 11848
+SHA256 (rust/crates/unicode-ident-1.0.22.crate) = 9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5
+SIZE (rust/crates/unicode-ident-1.0.22.crate) = 47919
+SHA256 (rust/crates/unicode-normalization-0.1.25.crate) = 5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8
+SIZE (rust/crates/unicode-normalization-0.1.25.crate) = 128462
+SHA256 (rust/crates/unicode-width-0.2.2.crate) = b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254
+SIZE (rust/crates/unicode-width-0.2.2.crate) = 282768
+SHA256 (rust/crates/unicode_categories-0.1.1.crate) = 39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e
+SIZE (rust/crates/unicode_categories-0.1.1.crate) = 87298
+SHA256 (rust/crates/unsafe-libyaml-0.2.11.crate) = 673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861
+SIZE (rust/crates/unsafe-libyaml-0.2.11.crate) = 62101
+SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
+SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
+SHA256 (rust/crates/vt100-0.16.2.crate) = 054ff75fb8fa83e609e685106df4faeffdf3a735d3c74ebce97ec557d5d36fd9
+SIZE (rust/crates/vt100-0.16.2.crate) = 32355
+SHA256 (rust/crates/vte-0.15.0.crate) = a5924018406ce0063cd67f8e008104968b74b563ee1b85dde3ed1f7cb87d3dbd
+SIZE (rust/crates/vte-0.15.0.crate) = 57487
+SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b
+SIZE (rust/crates/walkdir-2.5.0.crate) = 23951
+SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b
+SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477
+SHA256 (rust/crates/weezl-0.1.10.crate) = a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3
+SIZE (rust/crates/weezl-0.1.10.crate) = 46418
+SHA256 (rust/crates/wide-0.8.3.crate) = 13ca908d26e4786149c48efcf6c0ea09ab0e06d1fe3c17dc1b4b0f1ca4a7e788
+SIZE (rust/crates/wide-0.8.3.crate) = 142795
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-util-0.1.11.crate) = c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22
+SIZE (rust/crates/winapi-util-0.1.11.crate) = 13368
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5
+SIZE (rust/crates/windows-link-0.2.1.crate) = 6133
+SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
+SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
+SHA256 (rust/crates/windows-sys-0.60.2.crate) = f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb
+SIZE (rust/crates/windows-sys-0.60.2.crate) = 2518479
+SHA256 (rust/crates/windows-sys-0.61.2.crate) = ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc
+SIZE (rust/crates/windows-sys-0.61.2.crate) = 2517186
+SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
+SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows-targets-0.53.5.crate) = 4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3
+SIZE (rust/crates/windows-targets-0.53.5.crate) = 7126
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.53.1.crate) = a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53
+SIZE (rust/crates/windows_aarch64_gnullvm-0.53.1.crate) = 787748
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
+SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_aarch64_msvc-0.53.1.crate) = b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006
+SIZE (rust/crates/windows_aarch64_msvc-0.53.1.crate) = 838009
+SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
+SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnu-0.53.1.crate) = 960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3
+SIZE (rust/crates/windows_i686_gnu-0.53.1.crate) = 939775
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
+SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_gnullvm-0.53.1.crate) = fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c
+SIZE (rust/crates/windows_i686_gnullvm-0.53.1.crate) = 857396
+SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
+SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_i686_msvc-0.53.1.crate) = 1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2
+SIZE (rust/crates/windows_i686_msvc-0.53.1.crate) = 907688
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
+SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnu-0.53.1.crate) = 9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499
+SIZE (rust/crates/windows_x86_64_gnu-0.53.1.crate) = 903712
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.53.1.crate) = 0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1
+SIZE (rust/crates/windows_x86_64_gnullvm-0.53.1.crate) = 787739
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
+SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
+SHA256 (rust/crates/windows_x86_64_msvc-0.53.1.crate) = d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650
+SIZE (rust/crates/windows_x86_64_msvc-0.53.1.crate) = 837950
+SHA256 (rust/crates/winreg-0.10.1.crate) = 80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d
+SIZE (rust/crates/winreg-0.10.1.crate) = 25725
+SHA256 (rust/crates/wyz-0.5.1.crate) = 05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed
+SIZE (rust/crates/wyz-0.5.1.crate) = 18790
+SHA256 (rust/crates/zune-core-0.4.12.crate) = 3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a
+SIZE (rust/crates/zune-core-0.4.12.crate) = 17355
+SHA256 (rust/crates/zune-jpeg-0.4.21.crate) = 29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713
+SIZE (rust/crates/zune-jpeg-0.4.21.crate) = 68268
+SHA256 (mfontanini-presenterm-v0.16.1_GH0.tar.gz) = 221258deae7204c65a55d3666aaea5fa157312b4196a59abc60ba4d363787c10
+SIZE (mfontanini-presenterm-v0.16.1_GH0.tar.gz) = 2400638
diff --git a/textproc/presenterm/pkg-descr b/textproc/presenterm/pkg-descr
new file mode 100644
index 000000000000..eee16109dbe3
--- /dev/null
+++ b/textproc/presenterm/pkg-descr
@@ -0,0 +1,4 @@
+Presenterm lets you create presentations in markdown format and run them from
+your terminal, with support for image and animated gifs, highly customizable
+themes, code highlighting, exporting presentations into PDF format, and plenty
+of other features.
diff --git a/textproc/presenterm/pkg-message b/textproc/presenterm/pkg-message
new file mode 100644
index 000000000000..f7599a809159
--- /dev/null
+++ b/textproc/presenterm/pkg-message
@@ -0,0 +1,11 @@
+[
+{ type: install
+  message: <<EOM
+In order to view Mermaid graphics you need to install
+mermaid-cli. Follow the instructions at
+
+https://people.freebsd.org/~nivit/presenterm/install-mermaid-cli-on-freebsd.txt
+
+EOM
+}
+]
diff --git a/textproc/presenterm/pkg-plist b/textproc/presenterm/pkg-plist
new file mode 100644
index 000000000000..46f66e55228f
--- /dev/null
+++ b/textproc/presenterm/pkg-plist
@@ -0,0 +1,56 @@
+bin/presenterm
+@sample %%ETCDIR%%/config.yaml.sample
+%%PORTDOCS%%%%DOCSDIR%%/SUMMARY.md
+%%PORTDOCS%%%%DOCSDIR%%/acknowledgements.md
+%%PORTDOCS%%%%DOCSDIR%%/assets/demo.gif
+%%PORTDOCS%%%%DOCSDIR%%/assets/example-footer.png
+%%PORTDOCS%%%%DOCSDIR%%/assets/formula.png
+%%PORTDOCS%%%%DOCSDIR%%/assets/layouts.png
+%%PORTDOCS%%%%DOCSDIR%%/assets/parse-flow.png
+%%PORTDOCS%%%%DOCSDIR%%/configuration/introduction.md
+%%PORTDOCS%%%%DOCSDIR%%/configuration/options.md
+%%PORTDOCS%%%%DOCSDIR%%/configuration/settings.md
+%%PORTDOCS%%%%DOCSDIR%%/features/code/d2.md
+%%PORTDOCS%%%%DOCSDIR%%/features/code/execution.md
+%%PORTDOCS%%%%DOCSDIR%%/features/code/highlighting.md
+%%PORTDOCS%%%%DOCSDIR%%/features/code/latex.md
+%%PORTDOCS%%%%DOCSDIR%%/features/code/mermaid.md
+%%PORTDOCS%%%%DOCSDIR%%/features/commands.md
+%%PORTDOCS%%%%DOCSDIR%%/features/exports.md
+%%PORTDOCS%%%%DOCSDIR%%/features/images.md
+%%PORTDOCS%%%%DOCSDIR%%/features/introduction.md
+%%PORTDOCS%%%%DOCSDIR%%/features/layout.md
+%%PORTDOCS%%%%DOCSDIR%%/features/slide-transitions.md
+%%PORTDOCS%%%%DOCSDIR%%/features/speaker-notes.md
+%%PORTDOCS%%%%DOCSDIR%%/features/themes/definition.md
+%%PORTDOCS%%%%DOCSDIR%%/features/themes/introduction.md
+%%PORTDOCS%%%%DOCSDIR%%/install.md
+%%PORTDOCS%%%%DOCSDIR%%/internals/parse.md
+%%PORTDOCS%%%%DOCSDIR%%/introduction.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/SUMMARY.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/acknowledgements.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/assets/demo.gif
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/assets/example-footer.png
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/assets/formula.png
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/assets/layouts.png
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/assets/parse-flow.png
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/configuration/introduction.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/configuration/options.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/configuration/settings.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/code/d2.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/code/execution.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/code/highlighting.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/code/latex.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/code/mermaid.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/commands.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/exports.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/images.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/introduction.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/layout.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/slide-transitions.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/speaker-notes.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/themes/definition.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/features/themes/introduction.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/install.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/internals/parse.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/introduction.md