How can we obtain a list of Confluence Cloud pages that utilize the legacy editor? Is there a tool for bulk conversion?
Hi @Kent Chiu
Take a look at this answer from a year or so ago.
Solved: Find pages still using Legacy editor
@Henning Stoll posted an answer that uses the API to find the pages using the old editor.
Hi @Kent Chiu I found this older community article that refers to using the API to tell if a page is using the legacy editor. Find-pages-still-using-Legacy-editor
I also found CONFCLOUD-77396 which might be worth watching and voting for as a good reference.
Hope that helps.
Thank you, @Shawn Doyle - ReleaseTEAM , for your reply. I am looking for a Confluence Cloud tool that lists pages using the legacy editor without requiring individual API checks. We have over 10,000 Confluence Cloud pages, some created with the new editor and others still using the legacy editor from our Confluence Server migration.
Thank you, @Dan Breyen, for your reply. I went to CONFCLOUD-77396, but for some reason, I can not vote on that issue.
Hi Kent, if you're not logged in on Atlassian's Jira Site, I don't believe you are able to vote for things.
I don't believe any exists.
You could easily script this to get the list of all content then loop it thru the check.
Something like this (untested from AI) And for some reason code block isn't working in the forums atm...
import requestsfrom requests.auth import HTTPBasicAuth
# ConfigurationCONFLUENCE_BASE_URL = "https://your-domain.atlassian.net/wiki"USERNAME = "your-email@example.com" # Atlassian account emailAPI_TOKEN = "your-api-token"AUTH = HTTPBasicAuth(USERNAME, API_TOKEN)
# Set headersHEADERS = {"Accept": "application/json"}
def get_all_content():url = f"{CONFLUENCE_BASE_URL}/rest/api/content"params = {"limit": 50, # adjust as needed"expand": "version"}
content_list = []while url:response = requests.get(url, headers=HEADERS, auth=AUTH, params=params)response.raise_for_status()data = response.json()content_list.extend(data.get("results", []))url = data["_links"].get("next")if url:url = CONFLUENCE_BASE_URL + urlparams = {} # only needed on first request
return content_list
def check_editor_type(content_id):url = f"{CONFLUENCE_BASE_URL}/rest/api/content/{content_id}"params = {"expand": "metadata.properties.editor"}response = requests.get(url, headers=HEADERS, auth=AUTH, params=params)response.raise_for_status()data = response.json()
editor = data.get("metadata", {}).get("properties", {}).get("editor", {}).get("value", "v1")return editor.lower()
def main():print("Fetching all content...")content_items = get_all_content()
v1_pages = []
for item in content_items:title = item.get("title")content_id = item.get("id")try:editor_type = check_editor_type(content_id)if editor_type == "v1":v1_pages.append((content_id, title))except Exception as e:print(f"Error checking content ID {content_id}: {e}")
print("\nPages using V1 Editor:")for cid, title in v1_pages:print(f"- {title} (ID: {cid})")
if __name__ == "__main__":main()
Thank you, @Dan Breyen. You are correct. Once I logged in, I was able to watch and vote.
Thanks, @Shawn Doyle - ReleaseTEAM, for the sample code. I am not a developer. My knowledge of API and code writing is somewhat limited.
Hi @Kent Chiu ,
We make a free addon, Keep it up to date! This addon has a macro you can insert into a page to show a table with pages using the Legacy Editor (the Keep Legacy Editor macro).
This makes it simple to look for pages which need updating due to the legacy editor deprecation.
Hope this helps!
Hello,
I have developed an app that does exactly this, but it is still a beta and I don't think I'll have time to upload it to the Marketplace, as I don't have a registered enterprise there. However, if someone is interested, I can provide a link. It looks like this:
Here's a screenshot of the output:
Good morning,
A link to the code would be great! I've been asked to do something similar and example would be very helpful.
Thank you
Hello Michael,
I'm sorry for the misunderstandings, even if I'm willing to provide the application for free (and I'm in the process of uploading it to the Marketplace, but it will take time), it is not open source and the code is not publicly available. The link that I can provide is to install the app directly at your own risk.
Regards,
Ansgar
Understood. Thanks.
It looks like you're new here. Sign in or register to get started.