A clean, Markdown-based publishing platform made for writers. Write together, and build a community. https://writefreely.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

96 lines
3.8 KiB

  1. {{define "base"}}<!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. {{ template "head" . }}
  5. <link rel="stylesheet" type="text/css" href="/css/{{.Theme}}.css" />
  6. {{if .CustomCSS}}<link rel="stylesheet" type="text/css" href="/local/custom.css" />{{end}}
  7. <link rel="shortcut icon" href="/favicon.ico" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  9. <meta name="application-name" content="{{.SiteName}}">
  10. <meta name="application-url" content="{{.Host}}">
  11. <meta property="og:site_name" content="{{.SiteName}}" />
  12. </head>
  13. <body {{template "body-attrs" .}}>
  14. <div id="overlay"></div>
  15. <header>
  16. {{ if .Chorus }}<nav id="full-nav">
  17. <div class="left-side">
  18. <h2><a href="/">{{.SiteName}}</a></h2>
  19. </div>
  20. {{ else }}
  21. <h2><a href="/">{{.SiteName}}</a></h2>
  22. {{ end }}
  23. {{if not .SingleUser}}
  24. <nav id="user-nav">
  25. {{if .Username}}
  26. <nav class="dropdown-nav">
  27. <ul><li class="has-submenu"><a>{{.Username}}</a> <img class="ic-18dp" src="/img/ic_down_arrow_dark@2x.png" /><ul>
  28. {{if .IsAdmin}}<li><a href="/admin">Admin dashboard</a></li>{{end}}
  29. <li><a href="/me/settings">Account settings</a></li>
  30. <li><a href="/me/import">Import posts</a></li>
  31. <li><a href="/me/export">Export</a></li>
  32. {{if .CanInvite}}<li><a href="/me/invites">Invite people</a></li>{{end}}
  33. <li class="separator"><hr /></li>
  34. <li><a href="/me/logout">Log out</a></li>
  35. </ul></li>
  36. </ul>
  37. </nav>
  38. {{end}}
  39. <nav class="tabs">
  40. {{ if and .SimpleNav (not .SingleUser) }}
  41. {{if and (and .LocalTimeline .CanViewReader) .Chorus}}<a href="/"{{if eq .Path "/"}} class="selected"{{end}}>Home</a>{{end}}
  42. {{ end }}
  43. {{if or .Chorus (not .Username)}}<a href="/about"{{if eq .Path "/about"}} class="selected"{{end}}>About</a>{{end}}
  44. {{ if not .SingleUser }}
  45. {{ if .Username }}
  46. {{if or (not .Chorus) (gt .MaxBlogs 1)}}<a href="/me/c/"{{if eq .Path "/me/c/"}} class="selected"{{end}}>Blogs</a>{{end}}
  47. {{if and (and .Chorus (eq .MaxBlogs 1)) .Username}}<a href="/{{.Username}}/"{{if eq .Path (printf "/%s/" .Username)}} class="selected"{{end}}>My Posts</a>{{end}}
  48. {{if not .DisableDrafts}}<a href="/me/posts/"{{if eq .Path "/me/posts/"}} class="selected"{{end}}>Drafts</a>{{end}}
  49. {{ end }}
  50. {{if and (and .LocalTimeline .CanViewReader) (not .Chorus)}}<a href="/read"{{if eq .Path "/read"}} class="selected"{{end}}>Reader</a>{{end}}
  51. {{if eq .SignupPath "/signup"}}<a href="/signup"{{if eq .Path "/signup"}} class="selected"{{end}}>Sign up</a>{{end}}
  52. {{if and (not .Username) (not .Private)}}<a href="/login"{{if eq .Path "/login"}} class="selected"{{end}}>Log in</a>{{else if .SimpleNav}}<a href="/me/logout">Log out</a>{{end}}
  53. {{ end }}
  54. </nav>
  55. {{if .Chorus}}{{if .Username}}<div class="right-side" style="font-size: 0.86em;">
  56. <a class="simple-btn" href="/new">New Post</a>
  57. </div>{{end}}
  58. </nav>
  59. {{end}}
  60. </nav>
  61. {{end}}
  62. </header>
  63. <div id="official-writing">
  64. {{ template "content" . }}
  65. </div>
  66. {{ template "footer" . }}
  67. {{if not .JSDisabled}}
  68. <script type="text/javascript" src="/js/menu.js"></script>
  69. <script type="text/javascript">
  70. {{if .WebFonts}}
  71. try { // Google Fonts
  72. WebFontConfig = {
  73. custom: { families: [ 'Lora:400,700:latin', 'Open+Sans:400,700:latin' ], urls: [ '/css/fonts.css' ] }
  74. };
  75. (function() {
  76. var wf = document.createElement('script');
  77. wf.src = '/js/webfont.js';
  78. wf.type = 'text/javascript';
  79. wf.async = 'true';
  80. var s = document.getElementsByTagName('script')[0];
  81. s.parentNode.insertBefore(wf, s);
  82. })();
  83. } catch (e) { /* ¯\_(ツ)_/¯ */ }
  84. {{end}}
  85. </script>
  86. {{else}}
  87. {{if .WebFonts}}<link href="/css/fonts.css" rel="stylesheet" type="text/css" />{{end}}
  88. {{end}}
  89. </body>
  90. </html>{{end}}
  91. {{define "body-attrs"}}{{end}}