Zum Hauptinhalt springen
🚧ConfigForge befindet sich noch im Aufbau🚧
DocunotionDocusaurusNPM

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:

  • src/transform.ts

      if (page.frontmatter) {
    const notionFrontmatter = page.frontmatter;

    const notionFromtmatterProperties = notionFrontmatter.split("\\n");

    notionFromtmatterProperties.forEach(property => {
    frontmatter += `${property}\\n`;
    });
    }

  • src/NotionPage.ts

      public get frontmatter(): string | undefined {
    return this.getPlainTextProperty("Frontmatter", "");
    }

NPM

Übersicht

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"
}
}
]
}