Skip to content

Instantly share code, notes, and snippets.

Avatar

Philip Poots pootsbook

  • ClubCollect
  • Alphen aan den Rijn, NL
View GitHub Profile
@pootsbook
pootsbook / generic_form_field_rendering.rb
Last active Apr 15, 2021
An attempt at rendering form fields in a generic way from a form representation as data.
View generic_form_field_rendering.rb
require "scrivener"
require "hypertext"
require "hypertext/dsl"
class RegistrationForm < Scrivener
attr_accessor :name
attr_accessor :email
attr_accessor :message
def validate
@pootsbook
pootsbook / _footer.ht.rb
Last active Apr 8, 2021
Sew with Hypertext DSL (.rb extension on templates only for syntax highlighting)
View _footer.ht.rb
View hypertext_templating.rb
require "hypertext"
require "hypertext/dsl"
class Hypertext
def append(fragment)
@dom << fragment
end
class DSL
def append(fragment)
@pootsbook
pootsbook / html_document.rb
Created Mar 18, 2021
Fusion of HTMLDocument and Hypertext
View html_document.rb
class HTMLDocument
ENTITIES = {
"'" => '&#39;',
'&' => '&amp;',
'"' => '&quot;',
'<' => '&lt;',
'>' => '&gt;',
}
def initialize(indent = " ", level = 0)
View html_document.rb
class HTMLDocument
VOID_ELEMENTS = %i[
area base br col embed hr img input
link meta param source track wbr
]
def initialize
@doc = ""
yield self if block_given?
View html_document.rb
class HTMLDocument
def initialize
@doc = ""
yield self if block_given?
end
def el(type, attrs={})
case type
when :text
View htmldoc.rb
class HTMLDoc
def initialize
@node_id = 0
@parent_id = 0
@doc = []
yield self if block_given?
end
def el(type, attributes = {})
View assets.js.app.js
// We need to import the CSS so that webpack will load it.
// The MiniCssExtractPlugin is used to separate it out into
// its own CSS file.
import "../css/app.scss"
// webpack automatically bundles all modules in your
// entry points. Those entry points can be configured
// in "webpack.config.js".
//
// Import deps with the dep name or local files with a relative path, for example:
View keybase.md

Keybase proof

I hereby claim:

  • I am pootsbook on github.
  • I am pootsbook (https://keybase.io/pootsbook) on keybase.
  • I have a public key whose fingerprint is 2E2E 008E CD35 37FE 46D2 67AB E74F 6DFC 04AE D9B7

To claim this, I am signing this object: