-- My HTML snippets
--   Below, the duplicate of brackets, for instance in the CSS code, is for
--   escaping delimiters.

-- Set the local variables (shortcuts)
local ls = require("luasnip")
local s = ls.snippet
local i = ls.insert_node
local fmt = require("luasnip.extras.fmt").fmt

return {
  -- A main snippet setting the outer structure, with the style tag.
  --   Should be completed with the nested article item below.
  s(
    {
      trig = "mcim",
      name = "Main article structure for MC portal",
      dscr = "Insert an HTML structure to add bibliographic description on the clinical medicine portal."
    },
    fmt(
      [[
        <article class="mc-{1}-main">
          {2}  
          <style>
            .mc-{1}-title {{
              color: #cf0063;
              font-size: xx-large;
            }}
            .mc-{1}-item > ul > li {{
              padding: 0 !important;
            }}
            .mc-{1}-item li:not([class])::before,
            .mc-{1}-item li::before {{
            content: none;
            }}
          </style>
        </article>
      ]],
      {
        i(1, "Class identifier"),
        i(0)
      },
      {
        repeat_duplicates = true
      }
    )
  ),
  -- Snippet that inserts an article with bibliographic metatada, to be nested
  -- in the upper main structure.
  s(
    {
      trig = "mcii",
      name = "Item article structure for MC portal",
      dscr = "Insert an HTML structure to add an item bibliographic description on the clinical medicine portal."
    },
    fmt(
      [[
          <article class="mc-{1}-item">
            <ul>
              <li>Dorland W. Dorland’s illustrated medical dictionary. 4th ed.</li>
              <li>Philadelphia: Elsevier, 2020.</li>
              <li>Cote : W 13 ed 4</li>
              <li>
                <a lang="fr"
                   dir="ltr"
                   type="html/text"
                   href="https://slsp-unige.primo.exlibrisgroup.com/articleermalink/41SLSP_UGE/l0hvjc/alma991008098789705502"
                   hreflang="français"
                   rel="nofollow"
                   target="_blank">
                  Le document dans le catalogue Swisscovery
                </a>.
              </li>
            </ul>
            <span placeholder="coins metadata"></span>
          </article>{2}
      ]],
      {
        i(1, "Class identifier"),
        i(0)
      },
      {
        repeat_duplicates = true
      }
    )
  ),
  -- Snippet that insert a list item with a link to an ebook online.
  s(
    {
      trig = "eli",
      name = "List item for an ebook link",
      dscr = "Insert a link for an ebook nested in a list item. Designed for the medicine portal HTML structure."
    },
    fmt(
      [[
      <li>
        <a dir="ltr"
           type="html/text"
           href="{1}"
           lang="{2}"
           hreflang="{3}"
           ref="nofollow"
           target="_blank">
          Livre électronique en ligne
        </a>.
      </li>
      ]],
      {
        i(1, "Ebook URL"),
        i(2, "Language code (2 chars)"),
        i(3, "Language name")
      }
    )
  )
}
