docu-notion
Docs / Blog-Arbeitsablauf
GitHub Actions:
"pulldocs": "cross-var docu-notion -n %DOCU_NOTION_INTEGRATION_TOKEN% -r %DOCU_NOTION_DOCS_PAGE% -t \\"*\\" -m \\"./docs\\"",
"pullblog": "cross-var docu-notion -n %DOCU_NOTION_INTEGRATION_TOKEN% -r %DOCU_NOTION_BLOG_PAGE% -t \\"*\\" -m \\"./blog\\""
- Eine einzelne Notion-Verbindung wird für den gesamten Workspace verwendet
- Der Workspace enthält eine Datenbank und zwei Root-Seiten für Dokumente und Blog
-
Um nur die Dokumenten- oder Blog-Struktur abzurufen, verwenden wir die Seiten-ID von KB und Blog in der GitHub Action
-
Wir überprüfen nicht den Datenbankstatus einer Seite
-
Wir nutzen die Statusinformationen, um die Seiten zwischen Blog und Dokumenten zu unterscheiden
Änderungen
Wir haben die Notion-Mehrzeileneigenschaft Frontmatter eingeführt.
Die Zeichenkette wird zu den notionFrontmatterProperties hinzugefügt.
Auf diese Weise können wir jedes Frontmatter in docu-notion verwenden
Im Folgenden sind die Änderungen aufgeführt, die wir implementiert haben:
-
if (page.frontmatter) {
const notionFrontmatter = page.frontmatter;
const notionFromtmatterProperties = notionFrontmatter.split("\\n");
notionFromtmatterProperties.forEach(property => {
frontmatter += `${property}\\n`;
});
} -
public get frontmatter(): string | undefined {
return this.getPlainTextProperty("Frontmatter", "");
}
NPM
Übersicht
- Das Paket ist auf npmjs.com verfügbar https://www.npmjs.com/package/@justinnio/docu-notion
Aktualisierungsprozess
# Installieren Sie die Abhängigkeiten
npm i
# Aktualisieren Sie die Versionsnummer in docu-notion
# Datei: <https://github.com/JustInnIO/docu-notion/blob/main/package.json>
# Führen Sie den Build aus
npm run build
# Melden Sie sich bei NPMjs.com an
npm adduser
# Veröffentlichen Sie die neue Version auf NPM
npm publish
# Aktualisieren Sie die Versionsnummer für die Website
# Datei: <https://github.com/JustInnIO/website/blob/master/package.json>
Notion API Info
docu-notion nutzt docu-notion/src/pull.ts at main · sillsdev/docu-notion (github.com) um Seiten von Notion abzurufen. Die Logik kann angepasst werden.
Mit der folgenden Funktion finden wir Seiten in Notion:
await notionClient.pages.retrieve({ page_id: options.rootPage
});
Die GET-Funktion wird hier detailliert beschrieben:
https://developers.notion.com/reference/retrieve-a-page
Es ist möglich, eine Filtereigenschaft hinzuzufügen:
Der Filter wird im Body definiert.
Beispiel
{
"and": [
{
"property": "Approved",
"checkbox": {
"equals": true
}
},
{
"property": "Episodes",
"select": {
"equals": "React"
}
}
]
}