Page layout configuration
Described herein are approaches directed to building and/or managing page layout templates associated with pages having particular page types. Some implementations relate to approaches for hierarchical page layout templates. In some implementations, a graphical page layout template editor can be provided. In some implementations, a large language model can be used to generate page layout templates. Page layout templates can include one or more modules that can define the presence and organization of blocks within a page comprising one or more blocks. Some implementations provide for a news feed that can summarize changes to pages within a workspace, teamspace, database, or other context.
1 . A system comprising:
a processor;
a non-volatile memory;
a page layout template editor configured to enable a user to generate a page layout template for a first page type, the page layout template editor comprising:
a commit user interface element;
a page layout module pane comprising one or more modules;
a configuration pane; and
an editing canvas,
wherein the page layout template editor is configured to generate the page layout template by:
receiving a module in the editing canvas from the page layout module pane, wherein the editing canvas receives the module in response to the user performing at least one of: dragging the module from the page layout module pane to the editing canvas or selecting the module in the page layout module pane,
wherein the module defines a presentation mode of a block of a page having the first page type;
displaying the module in the editing canvas;
receiving a selection of the module in the editing canvas;
displaying the configuration pane,
wherein the configuration pane is configured to display one or more configuration options associated with the selected module;
receiving a user input defining one or more of the one or more configuration options;
updating the display of the module in the editing canvas based on the selected module in the editing canvas based on the user input;
receiving a user selection of the commit user interface element;
saving the generated page layout template as a child page layout template associated with a parent page layout template, the child page layout template configured to inherit layout information from the parent page layout template, wherein saving comprises:
creating a new page layout template including the selected module;
determining a set of modules included in the parent page layout template;
computing a page layout for the new page layout template using the selected module, the set of modules in the parent page layout template, and a presentation order defined by the child page layout template; and
saving the new page layout template; and
associating the new page layout template with a scope, such that when a user requests a page associated with the scope and having the page type, the system generates the requested page using the new page layout template,
wherein the scope is a grouping of hierarchically organized blocks of a render tree.
2 . The system of claim 1 , wherein the page layout template editor is further configured to: receive a user selection of the module on the editing canvas; display one or more controls comprising a delete button; receive a user selection of the delete button; and remove the module from the editing canvas.
3 . The system of claim 1 , wherein the page layout template editor further comprises a selector for selecting content to display in the editing canvas, wherein the page layout template editor is further configured to: receive a user selection of content to display in the editing canvas, wherein the selected content comprises one or more of: content selected from an existing page having the first page type, content generated by a generative machine learning model based on existing content in one or more pages, or placeholder content; and display the selected content in the editing canvas.
4 . The system of claim 3 , wherein the selected content comprises content generated by the generative machine learning model, wherein to generate the content, the system is configured to: retrieve one or more existing pages from the scope; for each module of the page layout template: extract content from one or more blocks having a same type as a type of the module; generate a prompt for the generative machine learning model, wherein the prompt comprises at least a portion of the extracted content and an instruction to generate content based on the at least the portion of the extracted content; receive a response from the generative machine learning model, the response comprising the generated content; and display the generated content in the module.
5 . The system of claim 1 , wherein the page layout template editor is further configured to: receive an existing page having a second page type associated therewith; and display the existing page in the editing canvas.
6 . The system of claim 5 , wherein the first page type is a same page type as the second page type.
7 . The system of claim 5 , wherein the first page type is different from the second page type.
8 . The system of claim 1 , wherein the new page layout template is a new version of an existing page layout template, wherein the system is further configured to: receive a request from a user to revert the page layout template to a previous version of the page layout template; and update a page layout template reference of the scope from the new page layout template to the previous version of the page layout template.
9 . The system of claim 1 , wherein the scope comprises at least one of: a workspace, a teamspace, a database, or a collection of pages, wherein the workspace is a root node of a render tree, wherein the teamspace is a node of the render tree hierarchically below the workspace, wherein the database is a node of the render tree hierarchically below the workspace, wherein the database comprises one or more pages, and wherein the collection of pages comprises one or more pages.
10 . The system of claim 1 , wherein the page layout template editor is further configured to: determine, based on the scope and the first page type, a number of pages affected by the page layout template; and display an indication of the number of pages on the commit user interface element.
11 . The system of claim 1 , wherein the one or more modules comprise a properties module, wherein the properties module includes at least one property selected from: an owner, a status, a tag, a verification status, a creation time, an edit time, a department, a cost estimate, or a review stage.
12 . The system of claim 1 , wherein the first page type comprises one of: a task, a meeting, a wiki, a project, or a document.
13 . A computer-implemented method for generating a page layout template using a graphical user interface, the computer-implemented method comprising:
receiving a page layout template edit request from a user;
displaying the page layout template in a page layout template editor,
wherein the page layout template editor comprises:
an editing canvas;
a page layout module pane comprising one or more modules,
wherein the one or more modules define a presentation mode of a block of a page associated with the page layout template;
a configuration pane; and
a commit user interface element;
receiving one or more changes from the user,
wherein the one or more changes comprise at least one of: adding a module to the page layout template, removing a module from the page layout template, rearranging a module in the page layout template, or modifying a configuration of a module in the page layout template;
displaying, to the user, a preview of the page layout template in the editing canvas;
receiving, via the commit user interface element, a commit command from the user;
saving the generated page layout template as a child page layout template associated with a parent page layout template, the child page layout template configured to inherit layout information from the parent page layout template, wherein saving comprises:
creating a new page layout template;
determining a set of modules included in the parent page layout template;
computing a page layout for the new page layout template using the set of modules in the parent page layout template, and a presentation order defined by the child page layout template; and
associating the new page layout template with one or more pages.
14 . The computer-implemented method of claim 13 , further comprising: receiving a user selection of a module on the editing canvas; displaying one or more controls comprising a delete button; receiving a user selection of the delete button; and removing the module from the editing canvas.
15 . The computer-implemented method of claim 13 , wherein the page layout template editor further comprises a selector for selecting content to display in the editing canvas, wherein the computer-implemented method further comprises: receiving a user selection of content to display in the editing canvas, wherein the selected content comprises one or more of: content selected from an existing page having a first page type, content generated by a generative machine learning model based on existing content in one or more pages, or placeholder content; and displaying the selected content in the editing canvas.
16 . The computer-implemented method of claim 15 , wherein the selected content comprises content generated by the generative machine learning model, wherein to generate the content, the computer-implemented method further comprises: retrieving one or more existing pages from a scope, wherein the scope is a grouping of hierarchically organized blocks of a render tree; for each module of the page layout template: extracting content from one or more blocks having a same type as a type of the module; generating a prompt for the generative machine learning model, wherein the prompt comprises at least a portion of the extracted content and an instruction to generate content based on the at least the portion of the extracted content; receiving a response from the generative machine learning model, the response comprising the generated content; and displaying the generated content in the module.
17 . The computer-implemented method of claim 13 , wherein the new page layout template is a new version of an existing page layout template, and wherein the computer-implemented method further comprises: receiving a request from a user to revert the new page layout template to a previous version of the page layout template; and updating a page layout template reference of the one or more pages from the new page layout template to the previous version of the page layout template.
18 . The computer-implemented method of claim 13 , wherein the one or more pages are included in a scope, wherein the scope is a grouping of hierarchically organized blocks of a render tree, wherein the scope is selected from at least one of: a workspace, a teamspace, a database, or a collection of pages, wherein the workspace is a root node of a render tree, wherein the teamspace is a node of the render tree hierarchically below the workspace, wherein the database is a node of the render tree hierarchically below the workspace, wherein the database comprises one or more pages, and wherein the collection of pages comprises one or more pages.
19 . The computer-implemented method of claim 13 , further comprising: determining a number of pages affected by the page layout template; and displaying an indication of the number of pages on the commit user interface element.
20 . The computer-implemented method of claim 13 , wherein the one or more modules comprise a properties module, wherein the properties module includes at least one property selected from: an owner, a status, a tag, a verification status, a creation time, an edit time, a department, a cost estimate, or a review stage.