Published
Edited
Oct 18, 2020
Importers
1 star
Insert cell
Insert cell
async function getWikiPage (name) {
const response = await fetch(`https://en.wikipedia.org/w/api.php?format=json&origin=*&action=parse&prop=text&page=${name}`)
if(!response.ok){
throw new Error(response.status);
}
return response.json()
}
Insert cell
function getWikiImageFromPage (page, url=false) {
if(page && page.parse && page.parse.text){
const parser = new DOMParser();
const external = parser.parseFromString( page.parse.text["*"], "text/html");
const qsi = external.querySelector("img")
if(url){
if(qsi){
return qsi.src
}
}
return qsi ? qsi.cloneNode(true) : qsi // document.adoptNode();
}
}
Insert cell
async function getWikiImage (name, url=false) {
const page = await getWikiPage(name)
if(page && !page.error){
return await getWikiImageFromPage (page, url)
}
}
Insert cell
async function getWikiSummary (name) {
const response = await fetch(`https://en.wikipedia.org/api/rest_v1/page/summary/${name}`)
if(response.ok){
return response.json()
}
}
Insert cell
async function getWikiImageFromSummary (summary) {
if(summary.thumbnail){
return html`<img src= ${summary.thumbnail.source} />`
}
}
Insert cell
async function getWikiSummaryImage (name) {
const summary = await getWikiSummary(name)
if(summary){
return await getWikiImageFromSummary (summary)
}
}
Insert cell
page = getWikiPage('Infinity')
Insert cell
getWikiImageFromPage(page)
Insert cell
getWikiImage('Infinity')
Insert cell
summary = getWikiSummary('Infinity')
Insert cell
html `${summary.extract_html}`
Insert cell
getWikiImageFromSummary (summary)
Insert cell
getWikiSummaryImage('Infinity')
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