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.

75 lines
1.9 KiB

  1. <template lang="pug">
  2. v-footer.justify-center(:color='bgColor', inset)
  3. .caption.grey--text(:class='$vuetify.theme.dark ? `text--lighten-1` : `text--darken-1`')
  4. template(v-if='footerOverride')
  5. span(v-html='footerOverrideRender + ` |&nbsp;`')
  6. template(v-else-if='company && company.length > 0 && contentLicense !== ``')
  7. span(v-if='contentLicense === `alr`') {{ $t('common:footer.copyright', { company: company, year: currentYear, interpolation: { escapeValue: false } }) }} |&nbsp;
  8. span(v-else) {{ $t('common:footer.license', { company: company, license: $t('common:license.' + contentLicense), interpolation: { escapeValue: false } }) }} |&nbsp;
  9. span {{ $t('common:footer.poweredBy') }} #[a(href='https://wiki.js.org', ref='nofollow') Wiki.js]
  10. </template>
  11. <script>
  12. import { get } from 'vuex-pathify'
  13. import MarkdownIt from 'markdown-it'
  14. const md = new MarkdownIt({
  15. html: false,
  16. breaks: false,
  17. linkify: true
  18. })
  19. export default {
  20. props: {
  21. color: {
  22. type: String,
  23. default: 'grey lighten-3'
  24. },
  25. darkColor: {
  26. type: String,
  27. default: 'grey darken-3'
  28. }
  29. },
  30. data() {
  31. return {
  32. currentYear: (new Date()).getFullYear()
  33. }
  34. },
  35. computed: {
  36. company: get('site/company'),
  37. contentLicense: get('site/contentLicense'),
  38. footerOverride: get('site/footerOverride'),
  39. footerOverrideRender () {
  40. if (!this.footerOverride) { return '' }
  41. return md.renderInline(this.footerOverride)
  42. },
  43. bgColor() {
  44. if (!this.$vuetify.theme.dark) {
  45. return this.color
  46. } else {
  47. return this.darkColor
  48. }
  49. }
  50. }
  51. }
  52. </script>
  53. <style lang="scss">
  54. .v-footer {
  55. a {
  56. text-decoration: none;
  57. }
  58. &.altbg {
  59. background: mc('theme', 'primary');
  60. span {
  61. color: mc('blue', '300');
  62. }
  63. a {
  64. color: mc('blue', '200');
  65. }
  66. }
  67. }
  68. </style>