All files / app/mods blog.ts

100% Statements 3/3
100% Branches 0/0
100% Functions 0/0
100% Lines 3/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80117x       117x                                                                                                                                           117x          
import { DateTime } from 'luxon';
import { Mod } from '../model/tag';
import { Template } from '../model/template';
 
export const blogTemplate: Template = {
  tag: 'blog',
  name: $localize`📰️ Blog`,
  config: {
    version: 1,
    type: 'lens',
    default: true,
    generated: $localize`Generated by jasper-ui ${DateTime.now().toISO()}`,
    submit: $localize`📰️ blog/`,
    view: $localize`📰️`,
    description: $localize`Activates built-in Blog mode for viewing Refs.`,
    icons: [{ thumbnail: $localize`📰️`, order: 1 }],
    filters: [
      { query: 'blog', label: $localize`📰️ blog`, title: $localize`Blog posts`, group: $localize`Templates 🎨️` },
    ],
    // language=CSS
    css: `
      .blog {
        .blog-entry {
          .blog-title {
            max-width: 40em;
            word-wrap: break-word;
          }
          .blog-body {
            .expand {
              border: none;
            }
          }
          display: block;
          max-width: calc(100vw - 8px);
          overflow: hidden;
          border: 1px solid transparent;
          margin: 2px;
          padding: 2px;
 
          .row {
            margin-left: 10px;
          }
 
          .link-below {
            display: flex;
          }
        }
      }
    `,
    form: [{
      key: 'filterTags',
      type: 'boolean',
      props: {
        label: $localize`Only show selected tags:`
      }
    }, {
      key: 'tags',
      type: 'qtags',
      expressions: {
        hide: '!field.parent.model.filterTags'
      },
    }]
  },
  defaults: {
    noFloatingSidebar: true,
  },
  schema: {
    optionalProperties: {
      filterTags: { type: 'boolean' },
      tags: { elements: { type: 'string' } },
    },
  },
};
 
export const blogMod: Mod = {
  template: [
    blogTemplate,
  ]
};