# # == About == # # This is my way of making slide-based presentations. In short, it just groups # Markdown formatting into rectangles and adds options for layout formatting. # Inside each slide, normal element flow is respected. # Each slide is the size of a landscape-oriented A4 sheet of paper. Light/dark # mode settings are respected (of course). # Currently, this is active only in pages under the "talks" folder. # # == ftags == # # &&presentation Must appear before any other presentation ftags. # It "loads" everything necessary for a presentation, that being # the navigation bar and logic script (which also inserts the # custom stylesheet). # Can be only one per page. Also refer to -- Surroundings -- # # &&slide Everything following this tag is part of a slide. Each slide is # presented in the order it appears in. # &&/slide Ends (the last started) slide. # # &&clide Same as &&slide, but everything following is centered # vertically. Uses flexbox. # &&/slide Ends (the last started) clide. Not compatible with &&/slide! # # &&table Starts a table, where everything following it is formatted as a # table cell in a row. # &&ftable Same as &&table, but all colums have the same width. # &&tarow Ends the last started row and begins a new row. # Effectively everything following it is on a new row. # &&/table Ends (the last started) (table row and) table or ftable. # # &&linebN Adds a line break (vertical spacing) of N (text) lines. # Spacing is equivalent to N em. # Available values for N: 1, 2, 3, 4, 5, 6, 7, 8, 9 # # &&fontSIZE Changes font size to SIZE, in pixels. Default size is 30px. # Available values for SIZE: 18, 20, 22, 25, 27, 35 # &&/font Text between &&fontSIZE and &&/font is sized accordingly # # &¢ered Center horizontally (only) text. # &&/centered Text between &¢ered and &&/centered is aligned. # # &&fright Aligns following elements and text to the right. # &&/fright Text between &&fright and &&/fright is aligned to the right # # &&cont Basic container with no properties. Useful if you need to group # multiple elements into one table cell. # &&/cont Ends (the last started) &&cont # # -- Surroundings -- # # As stated, there can only be one presentation per page. # Everything that is around a presentation and it's slides is normally hidden # during presenting mode and while printing. # # -- Placement/Flow -- # # All ftags can be placed on their own line, or in a line with other ftags. # The only requirement is that such a line must start with an ftag, ftags in the # middle of text aren't recognized. # # -- Regarding flex -- # # The older versions of the script, prior to commit # 687ff3652e5695183ba1691e7d4b94470f8407b3 # used extensively flexbox for element alignment. This was done with the hope that # spacing out elements evenly and centering them would be very easy, which turned # out to be false. # # Now, the only thing that uses flexbox is &&clide, and it only allows to center # everything in the slide vertically. # Vertical centerings for portions of elements can be done with &&linebN, which, # though imperfect, does the job very well and should suffice. # Evenly spacing out elements next to each other can be done with &&table and # &&ftable. # # -- Example Usage -- # # Refer to src/talks/demo/index.md BEGIN { nopresentation=substr(ARGV[1], "talks") == 0 # FILENAME isn't available yet # names is name of ftag, meaning if `names[i] = "examp"` the ftag will be &&examp # ended specifies how the HTML tag is ended # `ended[i] = 0` means no closing ftag (so no &&/examp) # `ended[i] = 1` means &&/examp exists # `ended[i] = 2` means self-closing, so no &&/examp, but &&examp includes the closing tag # # &&examp is usually replaced by `