- Page owner permission
IPageManager
andPageManager
to handle lifecylce hooksIPermissionManager
andPermissionManager
to handle permission hooks
WikiOptions.GetDomainPermission
(replaced byIPermissionManager
)WikiOptions.OnCreated
(replaced byIPageManager
)WikiOptions.OnDeleted
(replaced byIPageManager
)WikiOptions.OnEdited
(replaced byIPageManager
)WikiOptions.OnRenamed
(replaced byIPageManager
)
- WikiLink Preview rendering
- Improve WikiLink handling
- Escape script variables
- Update to .NET 9
- Update dependencies
- Do not encode transclusions
- Anonymous transclusions
- Missing references
- Ignore correct properties for serialization
GetUserMaxUploadLimit
toGetUserMaxUploadLimitAsync
GetUserMaxUploadLimit
toWikiExtensions
UserMaxUploadLimit
fromIWikiGroupManager
- Allow null parameters
IWikiOwner
polymorphism
- Category child lists
- Redirects
- Invalid page creation
- Ignore-missing link formatting
- Wiki link parsing bug
- Update dependencies
- Wiki link rendering
- Custom function syntax replaced by Handlebars templating
- Custom wiki link syntax largely replaced by CommonMark reference links, with some deviations
- Custom search replaced by Lucene
PageTitle.ToString
overload which accepts aWikiOptions
parameter, and uses the configuredMainPageTitle
when the title is empty
- Allow build targets from
SmartComponents.LocalEmbeddings
WikiArchiveJsonSerializerOptions
: singletonJsonSerializerOptions
forArchive
- Added more types to
WikiJsonSerializerContext
Text
property toMarkdownItem
for plain text representation of the content- Semantic search capabilities
- Made
Html
,MarkdownContent
, andPreview
properties onMarkdownItem
nullable
WikiLinks
property onMarkdownItem
- Allow restoring an archive to a new domain
- Remove unused return type for
OnRenamed
OnRenamed
function inWikiOptions
- Topic serialization
- Update to .NET 8
OwnerPage
subclassArticle
GroupPage
andUserPage
subclasses ofOwnerPage
AllowedViewer/Editor(Group)Objects
,CanRename
,DisplayHtml
,DisplayTitle
,IsDiff
,OwnerObject
,Permission
,RevisionHtml
properties toPage
Files
,Pages
,Subcategories
properties toCategory
- Most query record types; the additional properties these added to the main
Page
result were added directly toPage
(see above)
TitleRequest
GetTitleAsync
toWikiExtensions
- Update dependencies
- Made
GetWikiLinks
inMarkdownItem
public
- Update to .NET 8 preview
SetContentAsync
toMarkdownItem
- Headings
- URL generation with route
- Match main title as if missing
PageTitle
parsing bug
- Preserve page histories when restoring an archive
- Only pages which can be viewed by anyone can be transcluded
- Creating archives
- Retrieval of main page when title is explicit
- URL generation for main titles
- Implement
AllowedViewDomains
for groups
- De-duplicate wikilink lists
- Minimize archive serialization
- Do not archive topics
- Made
Topic.GetTitle
public
- Archive topics
- Revisions are now based on a wiki domain, namespace, and title (rather than an article ID), and
have a
PageHistory
collection object for direct retrieval (without querying over a collection). - Messages now have a
Topic
collection object for direct retrieval (without querying over a collection).
- Update to .NET 7
- Allow archiving non-domain content only
- Archives
- Double execution of scripts
- Domain information to category query objects
- Domain URLs
- Domain delimiters changed from "{ }" to "( )" for better URL compatibility
GetWikiItemAsync
overload for ID
- Default WikiUserManager and WikiGroupManager implementations
- Configurable default permissions
- Added domains
- Sort category content in query result
- Replaced
IList<IGrouping<string, T>>
withDictionary<string, List<T>>
in query classes, for (de)serialization support
- Default to camelCase for JSON source generation
- Simplified JSON serializer contexts to a single class:
WikiJsonSerializerContext
- Added support for categories to
AddOrReviseWikiItemAsync
, made usingFileNamespace
throw an exception
AddOrReviseWikiItemAsync
to extensions
- Nullability of query responses
- Added overloads for
GetWikiItemAtTimeAsync
which accept along
timestamp
- Added overloads to query methods which accept an
IWikiUser
- What links here paging
- Modified constructors to add support for group permissions.
- Group page edit permission based solely on group membership.
- Adjusted parameter order of
GetWikiPageUrl
overload to avoid ambiguity.
GetWikiItemAtTimeAsync
- gets aWikiItemInfo
record for the most recent revision of a wiki page at a given time.
- Parent interface for
IWikiUser
andIWikiGroup
:IWikiOwner
- Default implementation of
IWikiUser
:WikiUser
- Default implementation of
IWikiGroup
:WikiGroup
- Wiki query capabilities previously implemented in the client project(s) have been given base
implementations in this library, to simplify the process of implementing a client. Most are
implemented as extension methods, including:
GetPermissionAsync
- calculates the permission a user has for a wiki itemGetWikiItemAsync
- fetches anArticle
,Category
, orWikiFile
, or fetches aWikiItemInfo
record with the underlying item, plus permission informationGetWikiItemForEditingAsync
- fetches aWikiEditInfo
record similar to aWikiItemInfo
record, but with additional information suited to editing (such as detailed owner and allowed editor/viewer info)GetWikiItemDiffWithCurrentAsync
,GetWikiItemDiffWithPreviousAsync
, andGetWikiItemDiffAsync
for retrievingWikiItemInfo
records for diffsGetCategoryAsync
- fetches aCategoryInfo
record with information about the category and its contentGetGroupPageAsync
- fetches a group page with information about the group and its membersGetUserPageAsync
- fetches a user page with information about the userGetHistoryAsync
- gets paged revision information for a wiki item, along with editor informationGetWhatLinksHereAsync
- gets a list of the pages which link to a wiki itemGetSpecialListAsync
- gets a list of wiki items which fit the criteria of a member of the newSpecialListType
enum
WikiOptions
refactored to better support ASP.NET Options binding patternIWikiUser
andIWikiGroup
now useDisplayName
instead ofUserName
andGroupName
- Replaced various synchronous APIs with async
IWikiOptions
interface removed (WikiOptions
class is now used directly)
- Update dependencies
- Make property setters in
MarkdownItem
public for serialization support outside this library.
- Simplify project structure by moving
IWikiGroup
,IWikiGroupManager
,IWikiUser
,IWikiUserManager
from theTavenem.Wiki.Web
project into this one.
- Simplify configuration process by merging
IWikiWebOptions
from theTavenem.Wiki.Web
project into the mainWikiOptions
object.
- Update dependencies
- Enable library trimming
- Add source generated serializer contexts.
- Indicate default namespace when entire title string is empty
- Update to .NET 7 preview
- Update to .NET 6 preview
- Update to C# 10 preview
- Support for non-JSON serialization
- Fix broken link update on article add/revise
- Change MarkdownItem property setter visibility to facilitate subclassing
- Changed MarkdownItem constructor, method visibility and property attributes to facilitate subclassing.
- Updated Markdig dependency.
- Fixed editor parameter signature in creation callback.
- Add editor to creation callback.
- Add missing setters to callbacks.
- Add creation, deletion, and edit callbacks.
- Initial preview release