Types/MarkX/set_Page.ps1
|
<# .SYNOPSIS Sets Page data .DESCRIPTION Sets Markdown Page data. Merges data with existing data and sets properties on the object. .NOTES This data is somewhat independent of the front matter. It will not be saved, and may be interpreted differently by different engines. When it is initialized, various front matter may be replicated into page data. When set, settable properties on this object will be changed, and may propagate into page data. #> param([Collections.IDictionary]$Page) $oldPage = $this.Page foreach ($key in $page.Keys) { # If this was something we could set if ($key -and $this.psobject.Properties[$key].IsSettable) { # set it. $this.$key = $page[$key] # This should propagate any data, but, if it did not if (-not $oldPage[$key]) { # set it in the page. $oldPage[$key] = $page[$key] } } else { # Otherwise, simply set the property on our page. $oldPage[$key] = $page[$key] } } |