Git based wiki inspired by Gollum
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.

140 lines
4.8KB

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta name="description" content="">
  7. <meta name="author" content="">
  8. <title>Realms</title>
  9. <link href="/static/css/bootstrap/spacelab.css" rel="stylesheet">
  10. <link href="/static/css/font-awesome.min.css" rel="stylesheet">
  11. <link href="/static/vendor/highlightjs/styles/github.css" rel="stylesheet">
  12. <link href="/static/css/style.css" rel="stylesheet">
  13. {% block css %}{% endblock %}
  14. <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
  15. <!--[if lt IE 9]>
  16. <script src="/static/js/html5shiv.js"></script>
  17. <script src="/static/js/respond.min.js"></script>
  18. <![endif]-->
  19. </head>
  20. <body>
  21. <!-- Fixed navbar -->
  22. <div class="navbar navbar-inverse navbar-fixed-top">
  23. <div class="container">
  24. <div class="navbar-header">
  25. <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
  26. <span class="icon-bar"></span>
  27. <span class="icon-bar"></span>
  28. <span class="icon-bar"></span>
  29. </button>
  30. <a class="navbar-brand" href="/">Realms</a>
  31. </div>
  32. <div class="navbar-collapse collapse navbar-inverse-collapse">
  33. <ul class="nav navbar-nav">
  34. </ul>
  35. <ul class="nav navbar-nav navbar-right">
  36. <li class="dropdown">
  37. <a href="#" class="dropdown-toggle" role="menu" data-toggle="dropdown">Wiki
  38. <i class="icon-caret-down"></i></a>
  39. <ul class="dropdown-menu">
  40. <li class="dropdown-header">Page Options</li>
  41. <li><a href="/create/">Create Page</a></li>
  42. {% if name %}
  43. <li><a href="/edit/{{ name }}">Edit Page</a></li>
  44. <li><a href="/history/{{ name }}">History</a></li>
  45. {% endif %}
  46. <li class="divider"></li>
  47. <li class="dropdown-header">Site Options</li>
  48. <li><a href="/_new/">Create New Wiki</a></li>
  49. </ul>
  50. </li>
  51. {% if session.get('user') %}
  52. <li class="dropdown user-avatar">
  53. <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  54. <span>
  55. <img src="{{ session['user'].get('avatar') }}" class="menu-avatar">
  56. <span>{{ session['user'].get('username') }} <i class="icon-caret-down"></i></span>
  57. </span>
  58. </a>
  59. <ul class="dropdown-menu">
  60. <li><a href="/account">Account</a></li>
  61. <li><a href="/logout">Logout</a></li>
  62. </ul>
  63. </li>
  64. {% else %}
  65. <li><a href="/login"><i class="icon-user"></i> Login</a></li>
  66. <li><a href="/register"><i class="icon-pencil"></i> Register</a></li>
  67. {% endif %}
  68. </ul>
  69. </div><!--/.nav-collapse -->
  70. </div>
  71. </div>
  72. <!-- Page Menu -->
  73. <div class="container">
  74. <div id="main-body">
  75. {% with messages = get_flashed_messages(with_categories=True) %}
  76. {% if messages %}
  77. {% for category, message in messages %}
  78. {% if category == 'message' %}
  79. {% set category = "info" %}
  80. {% endif %}
  81. <div class='alert alert-{{ category }}'>
  82. <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
  83. {{ message }}
  84. </div>
  85. {% endfor %}
  86. {% endif %}
  87. {% endwith %}
  88. {% block body %}{% endblock %}
  89. </div>
  90. </div>
  91. {% assets "js_common" %}
  92. <script type="text/javascript" src="{{ ASSET_URL }}"></script>
  93. {% endassets %}
  94. <script>
  95. hljs.initHighlightingOnLoad();
  96. // Markdown Renderer
  97. MDR = {
  98. doc: null,
  99. callback: WMD.convert,
  100. convert: function(md, sanitize){
  101. this.doc = this.callback(md);
  102. var html = this.doc.html;
  103. if (sanitize) {
  104. // Causes some problems with inline styles
  105. html = html_sanitize(html);
  106. }
  107. html = this.hook(html);
  108. return html;
  109. },
  110. hook: function(html) {
  111. if (!this.doc.metadata) {
  112. return html;
  113. }
  114. try {
  115. var template = Handlebars.compile(html);
  116. return template(this.doc.metadata);
  117. } catch(e) {
  118. return html;
  119. }
  120. }
  121. };
  122. </script>
  123. {% block js %}{% endblock %}
  124. </body>
  125. </html>