page-title.js 735 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. export class PageTitle {
  2. init(indexTitle, forumName) {
  3. this._indexTitle = indexTitle
  4. this._forumName = forumName
  5. }
  6. set(title) {
  7. if (!title) {
  8. document.title = this._indexTitle || this._forumName
  9. return
  10. }
  11. if (typeof title === "string") {
  12. title = { title: title }
  13. }
  14. let finalTitle = title.title
  15. if (title.page > 1) {
  16. const pageLabel = interpolate(
  17. gettext("page: %(page)s"),
  18. {
  19. page: title.page
  20. },
  21. true
  22. )
  23. finalTitle += " (" + pageLabel + ")"
  24. }
  25. if (title.parent) {
  26. finalTitle += " | " + title.parent
  27. }
  28. document.title = finalTitle + " | " + this._forumName
  29. }
  30. }
  31. export default new PageTitle()