page.html 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. {{ define "page/head_start" }}
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="renderer" content="webkit">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <meta name="robots" content="noindex,nofollow">
  9. <link rel="stylesheet" href="{{ .base_path }}assets/ant-design-vue/antd.min.css">
  10. <link rel="stylesheet" href="{{ .base_path }}assets/css/custom.min.css?{{ .cur_ver }}">
  11. <style>
  12. [v-cloak] {
  13. display: none;
  14. }
  15. /* vazirmatn-regular - arabic_latin_latin-ext */
  16. @font-face {
  17. font-display: swap;
  18. font-family: 'Vazirmatn';
  19. font-style: normal;
  20. font-weight: 400;
  21. src: url('{{ .base_path }}assets/Vazirmatn-UI-NL-Regular.woff2') format('woff2');
  22. unicode-range: U+0600-06FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE80-FEFC, U+0030-0039;
  23. }
  24. body {
  25. font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Vazirmatn', 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
  26. }
  27. /* mobile touch scrolling for tabs */
  28. @media (max-width: 576px) {
  29. .ant-tabs-nav-container {
  30. overflow-x: auto !important;
  31. -webkit-overflow-scrolling: touch;
  32. scroll-behavior: smooth;
  33. overscroll-behavior-x: contain;
  34. white-space: nowrap;
  35. max-width: 100%;
  36. padding: 0 !important; /* Remove padding for arrows */
  37. }
  38. .ant-tabs-nav-wrap {
  39. overflow: visible !important;
  40. padding: 0 !important;
  41. }
  42. .ant-tabs-nav-scroll {
  43. overflow: visible !important;
  44. box-shadow: none !important;
  45. }
  46. .ant-tabs-nav {
  47. display: flex !important;
  48. transform: none !important; /* Disable JS transform */
  49. width: auto !important;
  50. margin: 0 !important;
  51. }
  52. .ant-tabs-tab-prev,
  53. .ant-tabs-tab-next {
  54. display: none !important; /* Hide arrows */
  55. }
  56. .ant-tabs-nav-container::-webkit-scrollbar {
  57. display: none;
  58. }
  59. }
  60. </style>
  61. <title>{{ .host }} – {{ i18n .title}}</title>
  62. {{ end }}
  63. {{ define "page/head_end" }}
  64. </head>
  65. {{ end }}
  66. {{ define "page/body_start" }}
  67. <body>
  68. <div id="message"></div>
  69. {{ end }}
  70. {{ define "page/body_scripts" }}
  71. <script src="{{ .base_path }}assets/vue/vue.min.js?{{ .cur_ver }}"></script>
  72. <script src="{{ .base_path }}assets/moment/moment.min.js"></script>
  73. <script src="{{ .base_path }}assets/ant-design-vue/antd.min.js"></script>
  74. <script src="{{ .base_path }}assets/axios/axios.min.js?{{ .cur_ver }}"></script>
  75. <script src="{{ .base_path }}assets/qs/qs.min.js"></script>
  76. <script src="{{ .base_path }}assets/js/axios-init.js?{{ .cur_ver }}"></script>
  77. <script src="{{ .base_path }}assets/js/util/index.js?{{ .cur_ver }}"></script>
  78. <script>
  79. const basePath = '{{ .base_path }}';
  80. axios.defaults.baseURL = basePath;
  81. </script>
  82. <script src="{{ .base_path }}assets/js/websocket.js?{{ .cur_ver }}"></script>
  83. {{ end }}
  84. {{ define "page/body_end" }}
  85. </body>
  86. </html>
  87. {{ end }}