From c0ecfb8bbe6f0d0871ec0d8fbc7abc9e21c1e1a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gra=C3=9Fl?= Date: Thu, 5 Nov 2026 23:34:46 +0100 Subject: [PATCH 1/2] The title a deck is read back with is the deck's own --- content/presentation/index.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/content/presentation/index.md b/content/presentation/index.md index 458bdca..71f50cc 100644 --- a/content/presentation/index.md +++ b/content/presentation/index.md @@ -230,7 +230,7 @@ echo (new PowerPointToMarkdown('deck.pptx', new Options(mediaDirectory: null)))- ```text --- -title: "Untitled Presentation" +title: "One" author: "markdown-office" --- @@ -240,8 +240,10 @@ Text. ``` The frontmatter carries what the deck said about itself — its title, its theme, its author and -its description — because a deck's own properties are the only thing about it that is not on a -slide. `save()` writes it to a file instead, and `read()` gives the slides back as a list. +its description. The title is the deck's own where it has one, and the first slide's where it +has not: PHPPresentation gives every deck the title `Untitled Presentation`, and that is its +own default rather than a title somebody wrote. `save()` writes it to a file instead, and +`read()` gives the slides back as a list. **The theme's name comes back; the theme does not.** The name travels into the `.pptx` and comes back out of it, so a deck read back into Markdown is drawn again in the theme it was drawn in. From 784d73059a5d5cac34d16f2b09859e68f8cd00ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gra=C3=9Fl?= Date: Sun, 8 Nov 2026 10:39:12 +0100 Subject: [PATCH 2/2] The page of a theme is the deck's master The theme command reads the page of a deck from its master, and its report says so where it used to say that the page came from the slides. The theme page said neither: it showed the old wording in its transcript and said nothing about the master. The transcript now shows the wording the command prints, and the page says where the page comes from and what happens where the master names no colour of its own. The old wording is among the phrases the site may not say again. --- content/command-line/theme.md | 5 ++++- tools/check-command-line.php | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/content/command-line/theme.md b/content/command-line/theme.md index 05afd02..bf55e8d 100644 --- a/content/command-line/theme.md +++ b/content/command-line/theme.md @@ -83,6 +83,9 @@ read is a failure here rather than a theme nobody can use. from the deck's slides where it is not. A deck made in a tool that does not do themes carries Office's palette without ever drawing in it, and that palette describes nothing on the page. +**The page** is the deck's master — the page behind every slide that does not paint itself — and +where the master names no colour of its own, the slides answer for it. + **The type scale** is read off the deck's text, because a deck records a size for every paragraph rather than a scale. The title is the size most slides are headed in, the cover the largest type on the first slide, the body the size the prose is written at, and the heading @@ -113,7 +116,7 @@ mdoffice theme: wrote the theme for "probe.pptx" into "/tmp/probe-theme". template.pptx the deck's 3 layouts, without its 2 slides colours - dk1 #0D1B2A the background of the slides + dk1 #0D1B2A the deck's master lt1 #F8FAFC the type accent1 #00B4D8 the colour the deck draws with hlink #00B4D8 the accent, as a link is drawn diff --git a/tools/check-command-line.php b/tools/check-command-line.php index 9b80867..c144b49 100644 --- a/tools/check-command-line.php +++ b/tools/check-command-line.php @@ -86,6 +86,7 @@ 'the themes page counted the colour aliases wrongly in capitals' => 'Four read-friendly aliases are accepted', 'the themes page counted the style keys wrongly' => 'the thirteen style keys', 'the themes page found a theme under the working directory' => '`/themes/`', + 'the theme page said the page of a deck came from its slides' => '#0D1B2A the background of the slides', 'the presentation page listed the layout roles twice' => 'The eight layout roles:', 'the frontmatter table named a number of roles' => 'one of eight roles', 'the presentation page said one exception sat beside InvalidInput' => 'One sits beside those two rather than under `InvalidInput`',