- 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, deleteion, and edit callbacks.
- Initial preview release