beeware / podium

A Markdown-based native presentation tool
BSD 3-Clause "New" or "Revised" License
182 stars 28 forks source link

Store user watermark text as a user preference #50

Open freakboy3742 opened 4 years ago

freakboy3742 commented 4 years ago

Reported by @okken on Twitter

At present, the default slide deck includes a watermark that says "Made with Podium".

The text can be modified by editing the slide stylesheet; however, this is something that end users will almost always want to customize.

At the very least, editing this text should be documented; but ideally, it should be user configurable - either as a user preference, or as metadata associated with the slide deck.

paddy-exe commented 4 years ago

Hi @freakboy3742, I would really love to contribute to podium and solve this issue. Unfortunately I came across some problems:

  1. I can't understand most of the code because it's quite more complex than the toga examples so maybe you could add some explanation in form of comments/comment sections to the code if possible (this would also help future contributors to understand the code more easily and quicker)
  2. There is (as far as I looked) no python library to parse css flies in the manner of editing as well. So, my proposal would be to add a JavaScript file with a function to edit the css content, add a Preference window to the app (btw there's no documentation in toga for how to do that) and add a text field and a button. The button would call a python function that would call a JavaScript function to edit the css file.

Kind regards and a big thank you for your work

freakboy3742 commented 4 years ago

@paddy-exe Thanks for those suggestions. Can't argue that more internal documentation would be beneficial; Podium is essentially a project that has grown over time, rather than being intended as a demo project, so the code isn't necessarily a great .

As for the CSS suggestion - it's not clear to me why a CSS editor or Javascript function is needed here. Most of the customisation that is needed here can be done with templating. A preferences pane, on the other hand, definitely makes sense; adding that to Toga is a long standing feature request (beeware/toga#90).