2022-12-06 01:06:22 +03:00
|
|
|
export const create = page => new Remark(page);
|
2017-08-21 01:43:32 +03:00
|
|
|
|
|
|
|
class Remark {
|
|
|
|
|
|
|
|
constructor(page) {
|
2015-07-08 18:22:39 +03:00
|
|
|
this.page = page;
|
2017-08-21 01:43:32 +03:00
|
|
|
}
|
2015-07-01 19:07:00 +03:00
|
|
|
|
2017-08-21 01:43:32 +03:00
|
|
|
getName() {
|
|
|
|
return 'Remark JS';
|
|
|
|
}
|
|
|
|
|
|
|
|
isActive() {
|
|
|
|
return this.page.evaluate(_ =>
|
|
|
|
typeof remark === 'object' && typeof slideshow === 'object');
|
|
|
|
}
|
|
|
|
|
2017-08-28 23:05:33 +03:00
|
|
|
async configure() {
|
|
|
|
await this.page.evaluate(_ => {
|
|
|
|
for (let j = 0; j < document.styleSheets.length; j++) {
|
|
|
|
const sheet = document.styleSheets[j];
|
|
|
|
if (!sheet.rules) continue;
|
|
|
|
for (let i = sheet.rules.length - 1; i >= 0; i--) {
|
2017-09-07 21:19:01 +03:00
|
|
|
if (sheet.rules[i] instanceof window.CSSPageRule) {
|
2017-08-28 23:05:33 +03:00
|
|
|
sheet.deleteRule(i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2017-11-18 19:42:17 +03:00
|
|
|
// Add a style to adjust for PDF export
|
|
|
|
const style = document.createElement('style');
|
|
|
|
document.head.appendChild(style);
|
|
|
|
style.sheet.insertRule(`
|
|
|
|
@media screen {
|
|
|
|
.remark-slide {
|
|
|
|
/* Default 'table' diplay does not work with Chrome PDF export */
|
|
|
|
display: inline-table;
|
|
|
|
}
|
|
|
|
.remark-slide-content {
|
|
|
|
display: table-cell;
|
|
|
|
}
|
2017-11-18 20:04:16 +03:00
|
|
|
.remark-slide-scaler {
|
|
|
|
/* Remove slides box shadows */
|
|
|
|
box-shadow: none;
|
|
|
|
}
|
2017-11-18 19:42:17 +03:00
|
|
|
}`);
|
2017-08-28 23:05:33 +03:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2017-09-07 21:19:01 +03:00
|
|
|
size() {
|
|
|
|
return this.page.evaluate(_ => {
|
|
|
|
const [referenceWidth, referenceHeight] = [908, 681];
|
|
|
|
const [width, height] = slideshow.getRatio().split(':').map(d => parseInt(d, 10));
|
|
|
|
return {
|
2017-11-18 19:42:17 +03:00
|
|
|
width : Math.floor(referenceHeight * width / height),
|
|
|
|
height : referenceHeight,
|
2017-09-07 21:19:01 +03:00
|
|
|
};
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2017-08-21 01:43:32 +03:00
|
|
|
slideCount() {
|
|
|
|
return this.page.evaluate(_ => slideshow.getSlideCount());
|
|
|
|
}
|
|
|
|
|
|
|
|
hasNextSlide() {
|
|
|
|
return this.page.evaluate(_ =>
|
|
|
|
slideshow.getCurrentSlideIndex() + 1 < slideshow.getSlideCount());
|
|
|
|
}
|
|
|
|
|
|
|
|
nextSlide() {
|
|
|
|
return this.page.evaluate(_ => slideshow.gotoNextSlide());
|
|
|
|
}
|
|
|
|
|
|
|
|
currentSlideIndex() {
|
|
|
|
return this.page.evaluate(_ => slideshow.getCurrentSlideIndex() + 1);
|
|
|
|
}
|
|
|
|
}
|