我想創建一個Visual Studio代碼擴展,將YoastSEO分析應用於我在Visual Studio代碼中編寫的文檔(例如txt文件,markdown文件,asciidoc文件等)。在VSCode擴展中使用JavaScript DOMD
我已經創建了一個擴展的基本外殼,而我已經使用NPM添加YoastSEO:npm install https://github.com/Yoast/YoastSEO.js#develop
我創建了一個YoastProvider類,像這樣:
const timerPeriod = 1000; // Time between preview updates
export default class YoastProvider implements TextDocumentContentProvider {
// ...
}
現在,在這個類,有一個preview
方法,我想用於1)獲取文檔的內容,2)用Yoast處理,3)將結果輸出到預覽窗格。
事情是,Yoast API想直接使用DOM。 Here's an example from their github:
var snippetPreview = new SnippetPreview({
targetElement: document.getElementById("snippet")
});
var app = new App({
snippetPreview: snippetPreview,
targets: {
output: "output"
},
callbacks: {
getData: function() {
return {
keyword: focusKeywordField.value,
text: contentField.value
};
}
}
});
app.refresh();
我可以「僞造」出與nodom的元素,我可以通過字符串直接關鍵字和文字,但它並不重要,因爲Yoast似乎在加工過程中使用DOM。所以我得到一個錯誤,document
是從Yoast的app.js中未定義的。
有沒有辦法以這種方式使用YoastSEO?有沒有其他的方法,我錯過了?好像我可能會讓它比應該更難。
我喜歡這個想法,但我不確定如何使用TypeScript來實現它。 'global.document'讓我錯誤'「Property'文件'不存在...」。也許我只需要找出TypeScript中的等價物? –