Update XML_Parser_wikijsCreator
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
<#
|
||||
We will need to add <xml> at the start of the document and </xml> at the end
|
||||
#>
|
||||
|
||||
Function CreateWikijsPage {
|
||||
param ( $InputPagePath , $TitleOfTheArticle)
|
||||
|
||||
$GraphQLEndpoint = "https://wikijs.tryton.geeraert.eu/graphql"
|
||||
|
||||
$AccessToken = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGkiOjIsImdycCI6MSwiaWF0IjoxNzY4OTkzNzA4LCJleHAiOjE4MDA1NTEzMDgsImF1ZCI6InVybjp3aWtpLmpzIiwiaXNzIjoidXJuOndpa2kuanMifQ.ivUT8LUM-vul3JykAUPp4dnldxat8-kUvrsjQ51tuoE6dXJLgsZm-FYzGVQBRRMpZXbWIDjy0wuPJwEaZxMywN2O2ys5UrmIO5MxCydV8zeiPooPHKOhtU6rbAPGdICHRjpneiIx5dmahzGN2FDzqhIeR4_H2pioYWLih1ohlmDmUGsTpcJgSY73O0_xDa_gnVwAdsmwDRqwZSdd04ZCCYpzBIkR9YR1kPtxtX9UHonWRAYvKJckCQYUjTiHUWU1pBKnHWsxsygMqgj56rRufs4C37i_WGKBKw-NXjRiS6Z32oTBDOL9Rv_YMhmhwHLb3Hb_eEtl2nXYPelEXxGWUw"
|
||||
|
||||
# Define the new page details
|
||||
#$NewPagePath = "/Work/Deployments/Tutorial/my_new_article"
|
||||
$NewPagePath = $InputPagePath
|
||||
$PageTitle = "My New Article"
|
||||
$PageContent = @'
|
||||
# This is a new article
|
||||
|
||||
Created via PowerShell and GraphQL.
|
||||
'@
|
||||
|
||||
$Headers = @{
|
||||
"Content-Type" = "application/json"
|
||||
"Authorization" = "Bearer $AccessToken"
|
||||
}
|
||||
|
||||
$GraphQLMutation = @'
|
||||
mutation CreatePage {
|
||||
pages {
|
||||
create(
|
||||
content: "This is the content of the new page created via PowerShell.",
|
||||
description: "",
|
||||
editor: "markdown",
|
||||
isPublished: true,
|
||||
isPrivate: false,
|
||||
locale: "en",
|
||||
path: "InputPagePath",
|
||||
tags: [],
|
||||
title: "titleofthearticle"
|
||||
) {
|
||||
responseResult {
|
||||
succeeded
|
||||
errorCode
|
||||
slug
|
||||
message
|
||||
}
|
||||
page {
|
||||
id
|
||||
path
|
||||
title
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
'@
|
||||
|
||||
|
||||
$GraphQLMutation = $GraphQLMutation.Replace("InputPagePath", $InputPagePath)
|
||||
$GraphQLMutation = $GraphQLMutation.Replace("titleofthearticle", $TitleOfTheArticle)
|
||||
|
||||
|
||||
$Body = @{
|
||||
query = $GraphQLMutation
|
||||
} | ConvertTo-Json -Depth 3
|
||||
|
||||
try {
|
||||
$response = Invoke-RestMethod -Uri $GraphQLEndpoint -Method Post -Headers $Headers -Body $Body
|
||||
$result = $response.data.pages.create
|
||||
if ($result.responseResult.succeeded) {
|
||||
Write-Host "✅ Page created successfully!"
|
||||
$result.page | Format-Table id, title, path
|
||||
} else {
|
||||
Write-Error "❌ Failed: $($result.responseResult.message)"
|
||||
}
|
||||
} catch {
|
||||
Write-Error "GraphQL request failed: $_"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[xml]$cn = Get-Content "C:\Users\pgeeraert\Downloads\export-onenote\Deployments-xml.xml"
|
||||
#$cn.xml.Section.Page.Name
|
||||
|
||||
$illegal = [string]::join(' ',"'",'+','🛠️',([System.IO.Path]::GetInvalidFileNameChars()))
|
||||
|
||||
foreach ($Section in $cn.xml.Section) {
|
||||
$section_name = $Section.name
|
||||
#write-output "Section: $section_name"
|
||||
$section_name_replaced = $section_name -replace "[$illegal]",'_'
|
||||
#write-output "Section replaced: $section_name_replaced"
|
||||
|
||||
foreach ($Page in $Section.Page) {
|
||||
$page_name = $Page.name
|
||||
#write-output "Page: $page_name"
|
||||
$page_name_replaced = $page_name -replace "[$illegal]",'_'
|
||||
#write-output "Page replaced: $page_name_replaced"
|
||||
|
||||
#/Work/Deployments/Tutorial/another-testing"
|
||||
$path = "/Deployments/$section_name_replaced/$page_name_replaced"
|
||||
write-output $path
|
||||
Write-Output $page_name
|
||||
CreateWikijsPage -InputPagePath $path -TitleOfTheArticle $page_name
|
||||
#sleep 5
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user