summary refs log tree commit diff homepage
path: root/src/xhtml.cr
diff options
context:
space:
mode:
Diffstat (limited to 'src/xhtml.cr')
-rw-r--r--src/xhtml.cr17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/xhtml.cr b/src/xhtml.cr
index c62b23a..35f9d62 100644
--- a/src/xhtml.cr
+++ b/src/xhtml.cr
@@ -48,8 +48,15 @@ class Page
     @db = db
   end
 
+  def heading(xml, level, text)
+    id = text.gsub ' ', '-'
+    xml.element "h#{level}", id: id do
+      xml.element "a", href: "##{id}" do xml.text text end
+    end
+  end
+
   def criteria(xml)
-    xml.element "h2" do xml.text "criteria" end
+    heading xml, 2, "criteria"
     xml.element "p" do
       xml.text "We accept pretty much any site"
       xml.text " served under an OpenNIC domain"
@@ -115,7 +122,7 @@ class Page
   end
 
   def member(xml, nick, opennic, icann)
-    xml.element "h3" do xml.text nick end
+    heading xml, 3, nick
     xml.text "OpenNIC: "
     xml.element "a", href: opennic do xml.text opennic end
     xml.element "br"
@@ -143,12 +150,12 @@ class Page
           end
           criteria xml
 
-          xml.element "h2" do xml.text "members" end
+          heading xml, 2, "members"
           @db.members.each_value do |nick, opennic, icann|
             member xml, nick, opennic, icann
           end
 
-          xml.element "h2" do xml.text "joining" end
+          heading xml, 2, "joining"
           xml.element "p" do
             xml.text "First, add "
             xml.element "a",
@@ -175,7 +182,7 @@ class Page
           end
           form xml, errors, params
 
-          xml.element "h2" do xml.text "applicants" end
+          heading xml, 2, "applicants"
           @db.applicants.each_value do |nick, opennic, icann|
             member xml, nick, opennic, icann
           end