powered by

FTD

How To

Roadmap & RFCs

Owner: Arpita, Sourabh

  • datetime type
  • match on or-type
  • optional variable is not added to ftd_data in HTML
  • optional integer variable cannot be passed as reference to ftd.integer
  • allow $processor$ on component
  • allow $processor$ on record (CR is almost duplicate of component one)
  • position simplification
  • recursion check
  • $MOUSE-IN
    • semantics: only for the node its applied on
    • should also be externally available

Post First Release

  • ftd-markup
  • json constructor
  • data only functions
  • URL Resolver
  • p1: > based caption/header continuation
  • remaining conditional attributes
    • text
  • if on external children
  • ftd.menu (mostly not needed after position and anchor thing)
  • p1::structured header
  • issue: multiple fields with type caption allowed (should not be)
  • better error handling
  • clean external api

FTD tutorial roadmap

The idea is to create a list of tutorials to show all the possible ui/layout that can be created throught ftd.

  • How to create a responsive component in ftd?
  • How to create a sticky header in ftd?
  • How to create a fixed left sidebar in ftd?
  • How to create a static website in 30 mins in ftd?
  • Basic layouts in ftd.

others

  • container header
  • color, align etc types (to act as type hint or doc)
  • enum
  • auto variables: @child-index and @sibling-count
  • auto variables: first, last, odd, even
  • issue: padding issue
  • higher order variable: integer variable
  • loop variable
  • argument with default value: on record/or-type
  • ref x -> { x }? (no longer doing it, #x is better)
  • implement markdown, code highlighting, katex etc using $processor$?
  • test improvements
  • ftd.grid

implemented but not yet documented

  • message-host event handler
  • support basic types in from_json_row_
  • ui as a type
  • backward incompatible: unified component/variable syntax
  • viewport based length (width: vh 40 etc)
  • backwards incompatible: ftd.text vs ftd.text-block
  • $lool$: $foo as $o instead of .. $foo as o
  • google-font-url
  • everything is $foo (against ftd-0.2 branch)
  • remove ftd.comic
  • @mouse-in: special variable
  • #foo global variables (remove ref) (and import: f; #f.foo not f.#foo)
    • ftd.boolean’s value is not changing correctly when variable changes
    • ftd.boolean should accept value in caption
  • async rendering (import and $processor$)
  • line-clamp
  • enhancement: open container with children should be closed
  • action: set value/ref
  • inherit type not working
  • absolute positioning
  • ftd.scene
  • list is empty | list is not empty
  • sub-section level container management
  • evt.stopPropagation()
  • action: increment / decrement integer
  • ftd.integer/.decimal/.boolean should also accept value as caption.
  • /- comments
  • implement cursor
  • if $on-click$ is set, use pointer as default cursor
  • if on var-overwrite/list-append
  • intra page link
  • move-{up, down, left, right}
  • example: how to create nested toc with expand collapse behaviour
  • example: how to show a dialog when a button is clicked (click outside)
  • example: image carousal (show a series of images, changing when next/prev are clicked)
  • example: basic counter (increment / decrement)
  • example: tab ui

open design issues

things on which we do not have a clarity on how things should work.

  • font handling

bugs and minor enhancements

  • line-height does not work when text is in body
  • row with single line text and block element do not render correctly
  • how to pass more than one multi-line parameters when calling a component

examples/tutorials

  • show current time
  • hamburger based UI and mobile/desktop optimised ui

basic syntax

  • object header eg border: { top: 20 }
  • object merge { top: 0, left: 0 }
  • $end$ header
  • if -> $if$ (not sure)
  • $deprecate$
  • -- import: foo as _

event handling

  • action: cycle
  • action: input -> variable data binding
  • in-equality expression
  • $on-escape$

ui

  • oembed
  • off tree container management?
  • canvas or graphics (rectangle, circle, line, arrow etc primitives)
  • contrast preserving color calculator
  • line: true (on ftd.text to decide if content is one word or line, eg button text, or paragraph)
    • if line: true and body contains multi para, show error

data modelling

  • -- <list-name>: ref x to add x to <list-name> if type matches (and no other header or body passed).
  • if on list append
  • $loop$ over list
  • partial record update ($overwrite$)
  • named-list
  • caption only record field
  • create string from int
  • expressions
    • list: more than | less than
  • generic types
  • if for or-type
  • builtin-processors: json/yml

misc

  • chrome based screenshot
  • native rendering
  • TUI etc based rendering ftd to ansi terminal
  • ftd to pdf generator (ftd 2 rml?)
  • realm integration
  • editor (click to select item, jump to definition)
  • ftd-lambda

FTD

Roadmap & RFCs

Owner: Arpita, Sourabh

  • datetime type
  • match on or-type
  • optional variable is not added to ftd_data in HTML
  • optional integer variable cannot be passed as reference to ftd.integer
  • allow $processor$ on component
  • allow $processor$ on record (CR is almost duplicate of component one)
  • position simplification
  • recursion check
  • $MOUSE-IN
    • semantics: only for the node its applied on
    • should also be externally available

Post First Release

  • ftd-markup
  • json constructor
  • data only functions
  • URL Resolver
  • p1: > based caption/header continuation
  • remaining conditional attributes
    • text
  • if on external children
  • ftd.menu (mostly not needed after position and anchor thing)
  • p1::structured header
  • issue: multiple fields with type caption allowed (should not be)
  • better error handling
  • clean external api

FTD tutorial roadmap

The idea is to create a list of tutorials to show all the possible ui/layout that can be created throught ftd.

  • How to create a responsive component in ftd?
  • How to create a sticky header in ftd?
  • How to create a fixed left sidebar in ftd?
  • How to create a static website in 30 mins in ftd?
  • Basic layouts in ftd.

others

  • container header
  • color, align etc types (to act as type hint or doc)
  • enum
  • auto variables: @child-index and @sibling-count
  • auto variables: first, last, odd, even
  • issue: padding issue
  • higher order variable: integer variable
  • loop variable
  • argument with default value: on record/or-type
  • ref x -> { x }? (no longer doing it, #x is better)
  • implement markdown, code highlighting, katex etc using $processor$?
  • test improvements
  • ftd.grid

implemented but not yet documented

  • message-host event handler
  • support basic types in from_json_row_
  • ui as a type
  • backward incompatible: unified component/variable syntax
  • viewport based length (width: vh 40 etc)
  • backwards incompatible: ftd.text vs ftd.text-block
  • $lool$: $foo as $o instead of .. $foo as o
  • google-font-url
  • everything is $foo (against ftd-0.2 branch)
  • remove ftd.comic
  • @mouse-in: special variable
  • #foo global variables (remove ref) (and import: f; #f.foo not f.#foo)
    • ftd.boolean’s value is not changing correctly when variable changes
    • ftd.boolean should accept value in caption
  • async rendering (import and $processor$)
  • line-clamp
  • enhancement: open container with children should be closed
  • action: set value/ref
  • inherit type not working
  • absolute positioning
  • ftd.scene
  • list is empty | list is not empty
  • sub-section level container management
  • evt.stopPropagation()
  • action: increment / decrement integer
  • ftd.integer/.decimal/.boolean should also accept value as caption.
  • /- comments
  • implement cursor
  • if $on-click$ is set, use pointer as default cursor
  • if on var-overwrite/list-append
  • intra page link
  • move-{up, down, left, right}
  • example: how to create nested toc with expand collapse behaviour
  • example: how to show a dialog when a button is clicked (click outside)
  • example: image carousal (show a series of images, changing when next/prev are clicked)
  • example: basic counter (increment / decrement)
  • example: tab ui

open design issues

things on which we do not have a clarity on how things should work.

  • font handling

bugs and minor enhancements

  • line-height does not work when text is in body
  • row with single line text and block element do not render correctly
  • how to pass more than one multi-line parameters when calling a component

examples/tutorials

  • show current time
  • hamburger based UI and mobile/desktop optimised ui

basic syntax

  • object header eg border: { top: 20 }
  • object merge { top: 0, left: 0 }
  • $end$ header
  • if -> $if$ (not sure)
  • $deprecate$
  • -- import: foo as _

event handling

  • action: cycle
  • action: input -> variable data binding
  • in-equality expression
  • $on-escape$

ui

  • oembed
  • off tree container management?
  • canvas or graphics (rectangle, circle, line, arrow etc primitives)
  • contrast preserving color calculator
  • line: true (on ftd.text to decide if content is one word or line, eg button text, or paragraph)
    • if line: true and body contains multi para, show error

data modelling

  • -- <list-name>: ref x to add x to <list-name> if type matches (and no other header or body passed).
  • if on list append
  • $loop$ over list
  • partial record update ($overwrite$)
  • named-list
  • caption only record field
  • create string from int
  • expressions
    • list: more than | less than
  • generic types
  • if for or-type
  • builtin-processors: json/yml

misc

  • chrome based screenshot
  • native rendering
  • TUI etc based rendering ftd to ansi terminal
  • ftd to pdf generator (ftd 2 rml?)
  • realm integration
  • editor (click to select item, jump to definition)
  • ftd-lambda