   (clear-dribble-file)
   (setq vimgolf-prior-window-configuration (current-window-configuration)
         vimgolf-challenge challenge-id)
-  (let* ((vimgolf-yaml-buffer (url-retrieve-synchronously (vimgolf-challenge-url challenge-id))))
+  (let ((vimgolf-yaml-buffer (url-retrieve-synchronously (vimgolf-challenge-url challenge-id)))
+        (data-end-regexp "\\([ 	]\\{4\\}\\|[ 	]\\{0\\}\\)
+  type: [a-z]+")
+        (data-start-regexp "  data: |\\+\\{0,1\\}
+"))
     (save-current-buffer
       (set-buffer vimgolf-yaml-buffer)
       (goto-char (point-min))
-      (search-forward "data: |+\n" nil t)
+      (re-search-forward data-start-regexp nil t)
       (if (get-buffer vimgolf-start-buffer-name) (kill-buffer vimgolf-start-buffer-name))
       (if (get-buffer vimgolf-work-buffer-name) (kill-buffer vimgolf-work-buffer-name))
       (if (get-buffer vimgolf-end-buffer-name) (kill-buffer vimgolf-end-buffer-name))

(defvar vimgolf-host "http://vimgolf.com/")

;; (setq vimgolf-host "http://vimgolf.local:8888/")

(defvar vimgolf-challenge-extension ".yaml")


          (save-current-buffer
            (set-buffer vimgolf-work-buffer)
            (goto-char (point-min))
            (re-search-forward data-end-regexp nil t)
            (delete-region (match-beginning 0) (point-max))
            (decrease-left-margin (point-min) (point-max) 4)
            (goto-char (point-min))
            (vimgolf-mode t))
          (re-search-forward data-start-regexp nil t)
          (append-to-buffer vimgolf-end-buffer (point) (point-max))
          (save-current-buffer
            (set-buffer vimgolf-end-buffer)
            (goto-char (point-min))
            (re-search-forward data-end-regexp)
            (delete-region (match-beginning 0) (point-max))
            (decrease-left-margin (point-min) (point-max) 4)
            (goto-char (point-min))
