Public
Edited
Oct 29, 2022
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
getAuthors = (p) => p.s2data?.authors.map((a) => a.name).join(", ") ?? "Unknown"
Insert cell
topKSim.get(selectPaper.title).children
Insert cell
Insert cell
c = {
let res = md`

<a href="${getLink(selectPaper)}" target="_blank" class='paper-link'>Link</a>

<strong>Authors:</strong> ${getAuthors(selectPaper)}

<div class='selected-abstract' style='max-height:200px;overflow-y:auto'>
${getAbstract(selectPaper)}
</div>

**Semantically similar papers**

${topKSim
.get(selectPaper.title)
.children.map(({ name }) => {
const p = paperDataWithFigures.find((p) => p.title === name);
return `* <a class='paper-link' target="_blank" href="${
p.s2data?.url ?? `https://doi.org/${encodeURI(p.doi)}`
}">${getYear(p)}</span> <a class='item' href='#'>${name}</a>`;
})
.join("\n")}
`;

function set(input, value) {
input.value = value;
input.dispatchEvent(new Event("input", { bubbles: true }));
}

const items = res.querySelectorAll(".item");
for (const span of items) {
span.addEventListener("click", (e) => {
const title = span.innerText;
const paper = paperDataWithFigures.find((p) => p.title === title);
set(viewof selectPaper, paper);
e.preventDefault();
});
}

return res;
}
Insert cell
preview = pdfView(selectPaper.pdfUrl, { scale: 0.7 }).catch(
(e) => md`PDF is unavailable`
)
Insert cell
figureList = {
const num_rows = Math.ceil(selectPaper.figures.length / 3);

return html`
<div class='figure-list'>
${
selectPaper.figures.length
? ""
: md`Unable to extract figures from _${selectPaper.title}_`
}
${selectPaper.figures.map((f) => figure(f))}
</div>`;
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
<div class='all-container'>
<div class='chart-container'>${c}</div>
<div class='figure-list-container'>${figureList}</div>
<div class='preview-container'>${preview}</div>
</div>
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more