magic decks, site config, library update

This commit is contained in:
2024-07-03 00:02:10 -04:00
parent 4914e72a3e
commit d22025691e
70 changed files with 1019 additions and 302 deletions

View File

@@ -1,10 +1,10 @@
<%- include('../../functions') -%>
<%
var
const
card_url = "http://gatherer.wizards.com/Pages/Search/Default.aspx?name=+[%22CARD-NAME%22]",
detail_url = "http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=",
image_url = "/images/magic/commanders/",
image_base_url = "/images/magic/commanders/",
deck = page.deck || {},
info = deck.info || {},
cards = deck.cards || [],
@@ -12,14 +12,63 @@
changes = deck.changes || [],
starting_lands = info.starting_lands || [],
commander = info.commander && info.commander_id ?
"<li><a href='" + detail_url + info.commander_id + "' target='_blank'>" + info.commander +
"</a> <em>(Commander)</em></li>" :
"",
commander_img = info.commander && info.commander_img ?
"<img src='" + image_url + info.commander_img + "' class='magic-commander-img' alt='" + info.commander + " card' />":
""
;
com_text = info.commander || '',
com_id = info.commander_id || '',
com_name = com_text.split('//')[0].trim(),
back_name = com_text && com_text.includes('//') ? com_text.split('//')[1].trim() : '',
getCardItem = (name, link_url, image_url) => {
if (!name || !image_url) return '';
return (`
<li class="pageMenu-item">
<a class="magicCard-link" target="iew_extwin" href="${link_url}">
<img class="magicCard-img" alt="${name}" src="${image_url}">
</a>
</li>
`);
},
getListItem = (name, url, description, back_name, back_url) => {
if (!name || !url) return '';
return (`
<li>
<a href="${url}" target='_blank'>${name}</a>
${back_name && back_url ? `// <a href='${back_url}' target='_blank'>${back_name}</a>` : ''}
<em>${description}</em>
</li>
`);
},
getCardImg = (name, link_url, image_url) => {
if (!name || !image_url) return '';
return [
"<a href='",
link_url,
"' target='_blank'>",
"<img src='",
image_url,
"' class='magicCard-img' alt='",
name,
" card' /></a>",
].join('');
},
com_li = getListItem(com_name, detail_url + com_id, (info.commander_proxy ? "Original " : "") + "Commander", back_name, detail_url + info.commander_back_id),
com_img = getCardItem(com_name, detail_url + com_id, image_base_url + info.commander_img),
com_back_img = getCardItem(back_name, detail_url + info.commander_back_id, image_base_url + info.commander_back_img),
proxy_li = getListItem(info.commander_proxy, info.commander_proxy_lg_url, "Proxy Commander"),
proxy_img = getCardItem(info.commander_proxy, info.commander_proxy_lg_url, image_base_url + info.commander_proxy_img),
alt_li = getListItem(info.alt_commander, detail_url + info.alt_commander_id, "Alternate Commander"),
alt_img = getCardItem(info.alt_commander, detail_url + info.alt_commander_id, image_base_url + info.alt_commander_img),
back_li = getListItem(info.background, detail_url + info.background_id, "Background"),
back_img = getCardItem(info.background, detail_url + info.background_id, image_base_url + info.background_img),
partner_li = getListItem(info.partner, detail_url + info.partner_id, "Partner"),
partner_img = getCardItem(info.partner, detail_url + info.partner_id, image_base_url + info.partner_img);
-%>
<h2>
@@ -31,69 +80,97 @@
<p>
Below is my <strong><%= info.name %></strong> deck for <a href="https://magic.wizards.com/">Magic: the Gathering</a>
(<%= info.format %> format).
It was last updated on <%= info.date_upd %>.
<% if (!!info.date_upd) { -%>
It was last updated on <%= info.date_upd %>.
<% } -%>
</p>
<p>
Each card listed below is linked to its entry on <a href="http://gatherer.wizards.com/">The Gatherer</a>
(the official <abbr title="Magic: the Gatheirng">MtG</abbr> card database) and should open in a new window or tab in
(the official <abbr title="Magic: the Gathering">MtG</abbr> card database) and should open in a new window or tab in
your browser.
</p>
<h3> Decklist </h3>
<%- commander_img %>
<ul>
<%- commander %>
<% cards.forEach(function(card) { %>
<li><a href="<%- card_url.replace('CARD-NAME', card) %>" target="_blank"><%= card %></a></li>
<% }) %>
<% lands.forEach(function(land) { %>
<li><a href="<%- card_url.replace('CARD-NAME', land.type) %>" target="_blank"><%= land.type %></a> (x<%=land.count%>)</li>
<% }) %>
</ul>
<% if (starting_lands && starting_lands.length > 0) { %>
<h4>Starting Lands</h4>
<p>
In order to speed our games along, my gaming group allows everyone to start with 3 basic lands.
The lands listed below are included in the counts above.</p>
<ul>
<% starting_lands.forEach(function(land) { %>
<% if (typeof land === 'string') { %>
<li><a href="<%- card_url.replace('CARD-NAME', land) %>" target="_blank"><%= land %></a></li>
<% } else {%>
<li>
<a href="<%- card_url.replace('CARD-NAME', land.type) %>" target="_blank"><%= land.type %></a> (x<%=land.count%>)
</li>
<% } %>
<% }) %>
</ul>
<% } %>
<% if (changes && changes.length > 0) { %>
<h4>Changes from Previous Versions</h4>
<ul>
<% changes.forEach(function(change) { %>
<li>
Implemented <%= change.date_upd %>:
<ul>
<% if (change.adds) { %>
<% change.adds.forEach(function(add) { %>
<li><a href="<%- card_url.replace('CARD-NAME', add) %>" target="_blank"><%= add %></a> (added)</li>
<% }) %>
<div class="magicDeck magicDeck--<%=page.name%>">
<div class="magicDeck-images">
<ul class="magicDeck-images-list">
<%- proxy_img %>
<%- com_img %>
<%- com_back_img %>
<%- partner_img %>
<%- back_img %>
<%- alt_img %>
</ul>
</div>
<div class="magicDeck-content">
<ul>
<%- proxy_li %>
<%- com_li %>
<%- partner_li %>
<%- back_li %>
<%- alt_li %>
<% cards.forEach(function(card) { %>
<% if (card.includes(' // ')) { %>
<% var splitCard = card.split(' // '); %>
<li><a href="<%- card_url.replace('CARD-NAME', splitCard[0]) %>" target="_blank"><%= splitCard[0] %></a> //
<a href="<%- card_url.replace('CARD-NAME', splitCard[1]) %>" target="_blank"><%= splitCard[1] %></a></li>
<% } else { %>
<li><a href="<%- card_url.replace('CARD-NAME', card) %>" target="_blank"><%= card %></a></li>
<% } %>
<% if (change.dels) { %>
<% change.dels.forEach(function(del) { %>
<li><a href="<%- card_url.replace('CARD-NAME', del) %>" target="_blank"><%= del %></a> (removed)</li>
<% }) %>
<% }) %>
<% lands.forEach(function(land) { %>
<li><a href="<%- card_url.replace('CARD-NAME', land.type) %>" target="_blank"><%= land.type %></a> (x<%=land.count%>)</li>
<% }) %>
</ul>
<% if (starting_lands && starting_lands.length > 0) { %>
<h4>Starting Lands</h4>
<p>
In order to speed our games along, my gaming group allows everyone to start with 3 basic lands.
The lands listed below are included in the counts above.</p>
<ul>
<% starting_lands.forEach(function(land) { %>
<% if (typeof land === 'string') { %>
<li><a href="<%- card_url.replace('CARD-NAME', land) %>" target="_blank"><%= land %></a></li>
<% } else {%>
<li>
<a href="<%- card_url.replace('CARD-NAME', land.type) %>" target="_blank"><%= land.type %></a> (x<%=land.count%>)
</li>
<% } %>
</ul>
</li>
<% }) %>
</ul>
<% } %>
<% }) %>
</ul>
<% } %>
<% if (changes && changes.length > 0) { %>
<h4>Changes from Previous Versions</h4>
<ul>
<% changes.forEach(function(change) { %>
<li>
Implemented <%= change.date_upd %>:
<ul>
<% if (change.adds) { %>
<% change.adds.forEach(function(add) { %>
<li><a href="<%- card_url.replace('CARD-NAME', add) %>" target="_blank"><%= add %></a> (added)</li>
<% }) %>
<% } %>
<% if (change.dels) { %>
<% change.dels.forEach(function(del) { %>
<li><a href="<%- card_url.replace('CARD-NAME', del) %>" target="_blank"><%= del %></a> (removed)</li>
<% }) %>
<% } %>
</ul>
</li>
<% }) %>
</ul>
<% } %>
</div>
</div>
<%- content %>