Waline.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <template>
  2. <div id="comment" class="waline-wrapper vp-comment" vp-comment style="display: block; margin-top: 2em;" />
  3. </template>
  4. <script setup lang="ts">
  5. import { onMounted, } from 'vue'
  6. import { init, WalineInstance } from '@waline/client'
  7. import '@waline/client/style'
  8. let instance: WalineInstance | undefined = undefined
  9. onMounted(() => {
  10. instance = init({
  11. el: '#comment',
  12. serverURL: window.location.origin + import.meta.env.BASE_URL + 'waline', // 本地 Waline 服务地址
  13. path: window.location.pathname.replace(/\/?(\.html)?$/, ''),
  14. login: "disable"
  15. })
  16. })
  17. const update = () => {
  18. instance.update({
  19. path: window.location.pathname.replace(/\/?(\.html)?$/, '')
  20. })
  21. }
  22. // 将方法暴露给父组件
  23. defineExpose({
  24. update,
  25. })
  26. </script>
  27. <style lang="css">
  28. :root {
  29. /* 字体大小 */
  30. --waline-font-size: 16px;
  31. /* 常规颜色 */
  32. --waline-white: #fff;
  33. --waline-light-grey: #999;
  34. --waline-dark-grey: #666;
  35. /* 主题色 */
  36. --waline-theme-color: #27ae60;
  37. --waline-active-color: #2ecc71;
  38. /* 布局颜色 */
  39. --waline-color: #444;
  40. --waline-bg-color: #fff;
  41. --waline-bg-color-light: #f8f8f8;
  42. --waline-bg-color-hover: #f0f0f0;
  43. --waline-border-color: #ddd;
  44. --waline-disable-bg-color: #f8f8f8;
  45. --waline-disable-color: #bbb;
  46. --waline-code-bg-color: #282c34;
  47. /* 特殊颜色 */
  48. --waline-bq-color: #f0f0f0;
  49. /* 头像 */
  50. --waline-avatar-size: 3.25rem;
  51. --waline-m-avatar-size: calc(var(--waline-avatar-size) * 9 / 13);
  52. /* 徽章 */
  53. --waline-badge-color: #3498db;
  54. --waline-badge-font-size: 0.775em;
  55. /* 信息 */
  56. --waline-info-bg-color: #f8f8f8;
  57. --waline-info-color: #999;
  58. --waline-info-font-size: 0.625em;
  59. /* 渲染选择 */
  60. --waline-border: 1px solid var(--waline-border-color);
  61. --waline-avatar-radius: 50%;
  62. --waline-box-shadow: none;
  63. }
  64. /* 根据用户设置 ↓ */
  65. darkmode-selector {
  66. /* 常规颜色 */
  67. --waline-white: #000;
  68. --waline-light-grey: #666;
  69. --waline-dark-grey: #999;
  70. /* 布局颜色 */
  71. --waline-color: #888;
  72. --waline-bg-color: #1e1e1e;
  73. --waline-bg-color-light: #272727;
  74. --waline-border-color: #333;
  75. --waline-disable-bg-color: #444;
  76. --waline-disable-color: #272727;
  77. /* 特殊颜色 */
  78. --waline-bq-color: #272727;
  79. /* 其他颜色 */
  80. --waline-info-bg-color: #272727;
  81. --waline-info-color: #666;
  82. }
  83. </style>