Files
omnivore/packages/content-handler/src/websites/wikipedia-handler.ts
2022-09-30 12:51:22 +08:00

21 lines
633 B
TypeScript

import { ContentHandler, PreHandleResult } from '../content-handler'
export class WikipediaHandler extends ContentHandler {
constructor() {
super()
this.name = 'wikipedia'
}
shouldPreHandle(url: string, dom?: Document): boolean {
return new URL(url).hostname.endsWith('wikipedia.org')
}
async preHandle(url: string, dom: Document): Promise<PreHandleResult> {
// This removes the [edit] anchors from wikipedia pages
dom.querySelectorAll('.mw-editsection').forEach((e) => e.remove())
// this removes the sidebar
dom.querySelector('.infobox')?.remove()
return Promise.resolve({ dom })
}
}