Skip to content
Back to top
View this page

# WikiPage

class praw.models.reddit.wikipage.WikiPage(reddit: praw.Reddit, subreddit: praw.models.Subreddit, name: str, revision: str | None = None, _data: Dict[str, Any] | None = None)

  An individual `WikiPage` object.

  Typical Attributes

  Note

  This table describes attributes that typically belong to objects of this class. PRAW dynamically provides the attributes that Reddit returns via the API. Since those attributes are subject to change on Reddit’s end, PRAW makes no effort to document any new/removed/changed attributes, other than to instruct you on how to discover what is available. As a result, this table of attributes may not be complete. See Determine Available Attributes of an Object for detailed information.

  If you would like to add an attribute to this table, feel free to open a pull request.

  Attribute | Description
  --- | ---
  `content_html` | The contents of the wiki page, as HTML.
  `content_md` | The contents of the wiki page, as Markdown.
  `may_revise` | A `bool` representing whether or not the authenticated user may edit the wiki page.
  `name` | The name of the wiki page.
  `revision_by` | The `Redditor` who authored this revision of the wiki page.
  `revision_date` | The time of this revision, in Unix Time.
  `subreddit` | The `Subreddit` this wiki page belongs to.

  __init__(reddit: praw.Reddit, subreddit: praw.models.Subreddit, name: str, revision: str | None = None, _data: Dict[str, Any] | None = None)

    Initialize a `WikiPage` instance.

    Parameters:

      revision – A specific revision ID to fetch. By default, fetches the most recent revision.

  discussions(**generator_kwargs: Any) → Iterator[praw.models.Submission]

    Return a `ListingGenerator` for discussions of a wiki page.

    Discussions are site-wide links to a wiki page.

    Additional keyword arguments are passed in the initialization of `ListingGenerator`.

    To view the titles of discussions of the page `"praw_test"` in r/test, try:

        for submission in reddit.subreddit("test").wiki["praw_test"].discussions():
            print(submission.title)

  edit(*, content: str, reason: str | None = None, **other_settings: Any)

    Edit this wiki page’s contents.

    Parameters:

      - content – The updated Markdown content of the page.

      - reason – The reason for the revision.

      - other_settings – Additional keyword arguments to pass.

    For example, to replace the first wiki page of r/test with the phrase `"test wiki page"`:

        page = next(iter(reddit.subreddit("test").wiki))
        page.edit(content="test wiki page")

  mod() → WikiPageModeration

    Provide an instance of `WikiPageModeration`.

    For example, to add u/spez as an editor on the wikipage `"praw_test"` try:

        reddit.subreddit("test").wiki["praw_test"].mod.add("spez")

  classmethod parse(data: Dict[str, Any], reddit: praw.Reddit) → Any

    Return an instance of `cls` from `data`.

    Parameters:

      - data – The structured data.

      - reddit – An instance of `Reddit`.

  revision(revision: str)

    Return a specific version of this page by revision ID.

    To view revision `"1234abc"` of `"praw_test"` in r/test:

        page = reddit.subreddit("test").wiki["praw_test"].revision("1234abc")

  revisions(**generator_kwargs: str | int | Dict[str, str]) → Generator[WikiPage, None, None]

    Return a `ListingGenerator` for page revisions.

    Additional keyword arguments are passed in the initialization of `ListingGenerator`.

    To view the wiki revisions for `"praw_test"` in r/test try:

        for item in reddit.subreddit("test").wiki["praw_test"].revisions():
            print(item)

    To get `WikiPage` objects for each revision:

        for item in reddit.subreddit("test").wiki["praw_test"].revisions():
            print(item["page"])