Sort posts by weight then by title

You cannot sort by multiple fields like you can with a SQL’s ORDER BY clause. You will need to group, then range through each group.

{{ range site.RegularPages.GroupBy "Weight" }}
  {{ range .Pages.ByTitle }}
    <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
  {{ end }}
{{ end }}

Assuming you don’t have any negative page weights, pages without weights will be at the top of the list.