Hi everybody,

I have the following org-snippet:

---------------------------------------------------------------
This is an example

#+BEGIN_SRC sml -r -l "(*(ref:%s)*)" -n
val x = 1 
fun f y = x + y (*(ref:f)*)
val x = 2
val y = 3
val z = f(x+y) (*(ref:callf)*)
#+END_SRC

- Line [[(f)]] defines a function that, when called, evaluates body *x+y*
  in environment where *x* maps to *1* and *y* maps to the argument
------------------------------------------------------------------
The HTML that it generates creates invalid HTML (one parser used by my university refuses to accept  it :)

I have inspected the code and this is where it fails: Note how there is no space between " and class in the <a> element:


<li>Line <a href="#coderef-f"class="coderef" onmouseover="CodeHighlightOn(this, 'coderef-f');" onmouseout="CodeHighlightOff(this, 'coderef-f');">2</a> defines a function that, when called, evaluates body <b>x+y</b>
in environment where <b>x</b> maps to <b>1</b> and <b>y</b> maps to the argument</li>


​I am running version 9.0.3 of org.

I believe this patch will solve the issue. It simply adds a space before the class attribute.

diff --git a/lisp/ox-html.el b/lisp/ox-html.el
index a741142..9b40cc9 100644
--- a/lisp/ox-html.el
+++ b/lisp/ox-html.el
@@ -3058,7 +3058,7 @@ INFO is a plist holding contextual information.  See
       (let ((fragment (concat "coderef-" (org-html-encode-plain-text path))))
        (format "<a href=\"#%s\"%s%s>%s</a>"
                fragment
-               (format "class=\"coderef\" onmouseover=\"CodeHighlightOn(this, \
+               (format " class=\"coderef\" onmouseover=\"CodeHighlightOn(this, \
 '%s');\" onmouseout=\"CodeHighlightOff(this, '%s');\""
                        fragment fragment)
                attributes

--
--dmg

---
Daniel M. German
http://turingmachine.org