Skip to content

villepreux/dom

Repository files navigation

DOM.PHP

Web Document PHP Markup & components framework

Status

Proof Of Concept

Intentions

Goals

  • Writing web documents/pages quickly.
  • Using HTML known markup syntax.
  • Mainly semanticaly
  • Without having to worry about latest, state of the art, boilerplate code
  • Automaticaly generating derived content (jsonfeed, RSS, sitemap, favicons, service worker...)
  • Independently of chooosen component/styling/whatever framework (normalize vs sanitize vs reset, material vs bootstrap vs spectre vs..., react vs 11ty vs..., AMP or not,...)
  • Having access to comonly used predefined components (videos, social-media cards, maps, ...)
  • Being able to create and/or compose new components with ease
  • Compiling into fast code
  • Compiling into valid markup (HTML, CSS, JSON~~, AMP~~...)
  • Compiling into good SEO
  • Rendering well without CSS nor JS
  • Not needed JS at all if wanted or when disabled
  • Using a single language for everything (templating, css-preprocessing, ...)
  • While still allowing to inject HTML/CSS/JS anywhere at will

How-to

  • Use PHP (Deployed everywhere. Easy to learn. Known by many. Capable of generating anything. Modern language in its latest incarnations)
  • Declarative programming
  • State of the art defaults
  • Assumes evergreen browsers

Getting started

Why not start with examples? The standard Hello World one first, then more complete examples.

Known issues

  • Codebase: It's a proof of concept at this stage. So need to be rewritten. Currently has very long line lengths & extrem single-line functions use: Hard to read.
  • Codebase: Naming conventions: Missing lot of lib prefixes => Now having its namespace
  • Features: Social networks content scrapping: Broken in many cases => TODO : kill feature or go the API way
  • Too much default CSS => Needs cleanup while keeping out of the box nice and complete "hello world" or mardown based websites

TODO List

  • Codebase: Refactoring: WIP: Prefix everything + provide unprefixed facade for components markup
  • Add options for CSS automatic classes naming conventions
  • Reduce boilerplate CSS size
  • Add option for CSS classes prefixing
  • Optimize server-side performances
  • Where possible, use sub-components aggregation instead of multiple parameters
  • Convert default parameters to "auto" parameters where appropriate
  • Where possible, use named, unordered & optional parameters => Upgrade to php 8 to use native named parameters?
  • Use heredoc syntax where possible
  • Remove jquery internal usage DONE
  • Document the code
  • Remove framework bindings for framework that are no more on top of the frameworks leaderboards
  • Design a new framework binding mechanism (would markup + classes bindings & transformations be enough?)
  • Make 11ty sample
  • Make Material Design v3 sample

Build justforfunnoreally.dev badge

© Antoine Villepreux 2020-20XX

About

Web Document PHP Markup framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages