diff --git a/macrovision.css b/macrovision.css index ccce66ad..92baebfe 100644 --- a/macrovision.css +++ b/macrovision.css @@ -489,6 +489,10 @@ a { text-align: center; } +#options-attribution-citations { + text-align: center; +} + .no-transition { transition: 0s !important; } diff --git a/macrovision.html b/macrovision.html index b6310792..b3535615 100644 --- a/macrovision.html +++ b/macrovision.html @@ -252,6 +252,11 @@
+
+ Citations +
+
+
Source
diff --git a/macrovision.js b/macrovision.js index 9dbc0d73..611563d8 100644 --- a/macrovision.js +++ b/macrovision.js @@ -1647,10 +1647,12 @@ function displayAttribution(file) { document.querySelector("#options-attribution").style.display = "inline"; const authors = authorsOfFull(file); const owners = ownersOfFull(file); + const citations = citationsOf(file); const source = sourceOf(file); const authorHolder = document.querySelector("#options-attribution-authors"); const ownerHolder = document.querySelector("#options-attribution-owners"); + const citationHolder = document.querySelector("#options-attribution-citations"); const sourceHolder = document.querySelector("#options-attribution-source"); if (authors === []) { @@ -1717,6 +1719,24 @@ function displayAttribution(file) { } + if (citations === [] || citations === undefined) { + + } else { + citationHolder.innerHTML = ""; + + const list = document.createElement("ul"); + citationHolder.appendChild(list); + citations.forEach(citation => { + const citationEntry = document.createElement("li"); + const link = document.createElement("a"); + link.style.display = "block"; + link.href = citation; + link.innerText = new URL(citation).host; + citationEntry.appendChild(link); + list.appendChild(citationEntry); + }) + } + if (source === null) { const div = document.createElement("div"); div.innerText = "No link"; diff --git a/media/attribution.js b/media/attribution.js index 5e47329f..5f4ccd3c 100644 --- a/media/attribution.js +++ b/media/attribution.js @@ -1121,7 +1121,29 @@ const attributionData = { prefix: "./media/buildings/road-markings/", files: [ { name: "compact-parking-space.svg", source: null }, + ], + authors: [ + "chemicalcrux" + ], + citations: [ + "https://www.cityofalbany.net/images/stories/planning/development_code/09-Article%209-On-Site%20Development%20and%20Environmental%20Standards.pdf" + ] + }, + { + prefix: "./media/buildings/road-markings/", + files: [ { name: "crosswalk.svg", source: null }, + ], + authors: [ + "chemicalcrux" + ], + citations: [ + "https://gis.penndot.gov/BPR_PDF_FILES/Documents/LTAP/TechSheets/TS_193.pdf" + ] + }, + { + prefix: "./media/buildings/road-markings/", + files: [ { name: "line.svg", source: null }, { name: "broken-line.svg", source: null }, { name: "dotted-line.svg", source: null }, @@ -1129,6 +1151,9 @@ const attributionData = { authors: [ "chemicalcrux" ], + citations: [ + "https://mutcd.fhwa.dot.gov/pdfs/2003/Ch3.pdf" + ] }, { prefix: "./media/buildings/skyscrapers/", @@ -21246,6 +21271,7 @@ function prepareAttribution() { attribution.prefixes[citation.prefix] = { authors: citation.authors, owners: citation.owners, + citations: citation.citations, source: citation.all } } else { @@ -21253,6 +21279,7 @@ function prepareAttribution() { attribution.files[citation.prefix + file.name] = { authors: citation.authors, owners: citation.owners, + citations: citation.citations, source: file.source, nsfw: file.nsfw } @@ -21353,6 +21380,23 @@ function ownersOfFull(file) { } } +function citationsOf(file) { + if (attribution.files[file]) + return attribution.files[file].citations; + else { + const found = attribution.prefixes[Object.keys(attribution.prefixes).find(path => { + return (file.indexOf(path) == 0); + })]; + + + if (found === undefined) { + return undefined; + } else { + return found.citations; + } + } +} + function sourceOf(file) { if (attribution.files[file]) return attribution.files[file].source;