For each list item, you can specify script fragments that are executed when items are created or field values change (see Section
Object). In addition to accessing individual list items, you can access the type or list itself (see Section
Type). Section
Domain shows how to access proxy objects for all list types as well as general, type-independent methods and properties — amongst others. Macros allow to record and play macro scripts as well as for example also the programmatic creation of list types (Section
Macro).
For each list item, you can specify script fragments that are executed when item are created or field values change — amongst others. In the context of these script fragments, you can use the Javascript variable referenced via this
or obj
to change properties of the list item itself, like change its visibility, styling, or individual field values.
obj
| Object ProxyThe proxy object for configuring this List itemex. this.pinned = true
obj.id
| IdThe automatically assigned, unique id of this itemex. '0RBkdGp9yNGK7ChT'
obj.pinned
| PinnedPinned items are displayed first in the list viewex. obj.pinned = true
or … = false
obj.deletable
| DeletableOnly deletable items can be deleted by the user, true
by defaultex. obj.deletable = true
or … = false
obj.type
| Type ProxyAccess the type of this item: apply set operations or configure fields and views
obj.convertTo(type, show)
| Convert ToConvert this item to the give type
, if show
is true
then select and display the newly created itemex. let newObject = obj.convertTo(types.goal, true)
obj.copyTo(type, show)
| Copy ToCopy this item to the give type
, if show
is true
then select and display the newly created itemex. let newObject = obj.copyTo(types.goal, true)
obj.duplicate(show)
| DuplicateCopy this item, if show
is true
then select and display the newly created itemex. let newObject = obj.duplicate(true)
obj.delete(undoable)
| DeleteDelete this item, if undoable
is true
this action can be undone by the userex. obj.delete(true)
obj.require(script)
| RequireLoad the external script referenced by the given scriptId
ex. obj.require("libxyz")
obj.show()
| ShowShow this itemex. obj.show()
obj.icon
| IconSet an icon for this itemex. obj.icon = 'Check Square'
, … = 'Building'
, …
obj.color
| ColorSet a color for this itemex. obj.color = '#D4AF37'
, … = '#FF0000'
, …
obj.style
| StyleConvenience methods for customizing view stylesex. obj.style.background = '#ffe'
obj.toast(message)
| ToastShow a popup with the given message that disappears by itself after a couple of secondsex. obj.toast('Hello, World!')
obj.toastError(message)
| Toast ErrorShow a error popup with the given message that disappears by itself after a couple of secondsex. obj.toastError('An error has occured!')
obj.toast(message, actionLabel, action)
| Action ToastShow a popup with the given message and an action button that disappears by itself after a couple of secondsex. obj.toast('Closed Todo!', 'Undo', () => this.closed = false)
In addition to accessing individual list items, you can use the Javascript variable type
to access the type or list itself. By calling methods or changing properties of the referenced object you can — for example — create new list items, configure views or stylings or iterate over all elements in the list for e.g. bulk updates.
type
| Type ProxyA proxy object for configuring this type or accessing items of this typeex. this.listHeader = 'My Todos'
type.label
| LabelThe name used for single items of this typeex. type.label = 'Todo'
, … = 'Note'
, …
type.pluralLabel
| Plural LabelThe name used for sets of items of this typeex. type.pluralLabel = 'Todos'
, … = 'Notes'
, …
type.id
The id used for single items of this typeex. '0RBkdGp9yNGK7ChT'
type.starred
| StarredStarred types are listed first in the main navigation menuex. type.starred = true
or … = false
type.pinned
| PinnedPinned types are listed after starred types in the main navigation menuex. type.pinned = true
or … = false
type.enabled
| EnabledOnly enabled types are listed in the main navigationex. type.enabled = true
or … = false
type.visible
| VisibleTypes not visible are hiddenex. type.visible = true
or … = false
type.indent
| IndentTypes with indent
set to true
are shown indented in the main menuex. type.indent = true
or … = false
type.creatable
| CreatableTypes with this flag explicitly set to false don't allow the creation of new itemsex. type.creatable = true
or … = false
type.isHeader
| Is HeaderTypes with isHeader
set to true
are shown as a header in the main menuex. type.isHeader = true
or … = false
type.hasCustomAddButton
| Has Custom Add ButtonTypes with hasCustomAddButton
set to true
show a custom add button in the list viewex. type.hasCustomAddButton = true
or … = false
type.technicalName
| Technical NameThe technical name for this type used in scripts
type.collection
| CollectionCollection types cannot create their own items but hold references to items of other listsex. type.collection = true
or … = false
type.overview
| OverviewOverview types don't show the default list view but the summary fieldsex. type.overview = true
or … = false
type.size
| SizeGet the number of items of this type
type.inForeground
| In ForegroundIs this type currently displayed
type.schedule(dateAndTimeField, actionField)
| ScheduleWhen the date and time in the given date and time field is reached for an item, the given action is executedex. type.schedule(this.dateAndTime_, this.action_)
type.clone(decorator)
| CloneCopies the given typeex. type.clone(newType => newType.icon = 'square')
type.require(script)
| RequireLoad the external script referenced by the given scriptId
ex. type.require("libxyz")
type.create()
| CreateCreate a new item of this typeex. let newObject = type.create()
type.collect()
| CollectReturns a list where items can be accessed by using the methods size()
and get(index)
ex. let list = type.collect(); for(int i = 0; i < list.size(); i++) list.get(i).count++
type.forEach(operation)
| For EachApply the given operation to all items of this typeex. type.forEach(o => o.pinned = o.count > 0)
type.all(field, value)
| AllSet the value of the given field for all items to the given valueex. type.all(this.value_, false)
type.find(test)
| FindFind the first item that returns true for the given functionex. let match = type.find(o => o.count > 0)
type.reduce(operation, initialValue)
| ReduceReduce all items with the given function starting at the given initial valueex. let result = type.reduce((v, o) => v + o.count, 0)
type.count(test)
| CountCount all items that return true for the given functionex. let count = type.count(o => o.count > 0)
type.sum(field)
| SumSum up all values for the given fieldex. let sum = type.sum(this.count_)
type.show()
| ShowJump to the selected type and show its list viewex. type.show()
type.byId(id)
| By IdFind the first item whose id
matches the given argumentex. let match = type.byId('0RBkdGp9yNGK7ChT')
type.byTitle(title)
| By TitleFind the first item whose title
matches the given argumentex. let match = type.byTitle('My Todo')
type.byConstraint(test)
| By ConstraintFind the first item where the given function returns true
ex. let match = type.byConstraint(o => o.title === 'My Todo')
type.deleteAll()
| Delete AllDeletes all items in this listex. type.deleteAll()
type.createTestObjects(n)
| Create Test ObjectsCreates the given number of test itemsex. type.createTestObjects(100)
type.delete()
| DeleteDelete this listex. type.delete()
type.icon
| IconSet an icon for this typeex. type.icon = 'Check Square'
, … = 'Building'
, …
type.color
| ColorSet a color for this typeex. type.color = '#D4AF37'
, … = '#FF0000'
, …
type.style
| StyleConvenience methods for customizing view stylesex. type.style.background = '#ffe'
type.navigationBadge
Set a navigation badge number that is shown in the main menuex. type.navigationBadge = 1
, … = 2
, … = 3
, …
type.required
| Required TypesSet all types that will be loaded and initialized before the list view of this type is shown, can also include references to static resources like CSS or Javascript-Filesex. type.required = [ 'Todo Priority' ]
type.dateFilter
| Date FilterSet a date filter for the list view of this type, all items with a date that lies in the future for the given field will be excluded from the list viewex. type.dateFilter = this.date_
type.filterBy(field, value)
| Filter BySet a filter for the list view of this type, all items where the denoted field shows another value than the given value will be excluded from this viewex. type.filterBy(this.closed_, false)
type.filterLike(field, value)
| Filter LikeSet a filter for the list view of this type, all items where the denoted field doesnt match the given string value will be excluded from this viewex. type.filterLike(this.title_, 'My')
type.resetFilter()
| Reset FilterRemove the currently active list view filter of this typeex. type.resetFilter()
type.include
| Included TypesSet all types that will be included in the list view of this type (for example to include 'Shopping Items' and 'Reminders' in the 'Todo' list view)ex. type.include = [ 'Shopping Item', 'Reminder' ]
type.includeStarred
| Included all starred typesInclude all starred types in the list view of this typeex. type.includeStarred = true
type.includePinned
| Included all pinned typesInclude all pinned types in the list view of this typeex. type.includePinned = true
type.ratioMasterDetail
| Ratio Master-Detail-ViewSet the ratio between the width of the list view and the total width (list and form view)ex. type.ratioMasterDetail = 0.38
or … = 0.62
or … = 0.5
type.flipMasterDetail
| Flip Master-Detail-ViewFlip the master detail viewex. type.flipMasterDetail = true
type.dateFilterInclude
| Date Filter IncludeSet a date filter that is applied when this type is included in the list view of another type, all items with a date that lies in the future for the given field will be excluded from this viewex. type.dateFilterInclude = this.dateAndTime_
type.filterIncludeBy(field, value)
| Filter Include BySet the include filter, this filter is applied when a type is included in the list view of another type. All items where the denoted field shows another value than the given value will be excluded from this viewex. type.filterIncludeBy(this.closed_, false)
type.filterIncludeBy(field, value, includeType)
| Filter Include BySet the include filter, this filter is applied when a type is included in the list view of the specified includeType
. All items where the denoted field shows another value than the given value will be excluded from this viewex. type.filterIncludeBy(this.closed_, false, types.task)
type.resetFilterInclude()
| Reset Filter IncludeRemove the currently active include filterex. type.resetFilterInclude()
type.listHeader
| List HeaderSet the title header for list views of this typeex. type.listHeader = 'My Todos Today'
, … = 'Achieved Goals'
, …
type.isPseudoTypeForForm
| Is Pseudo Type For FormThis type is only used for transient formsex. type.isPseudoTypeForForm = true
or … = false
type.revertOrder
| Revert OrderRevert the list order of the different segments (pinned, not pinned)ex. type.revertOrder = true
or … = false
type.toast(message)
| ToastShow a popup with the given message that disappears by itself after a couple of secondsex. type.toast('Hello, World!')
type.toastError(message)
| Toast ErrorShow a error popup with the given message that disappears by itself after a couple of secondsex. type.toastError('An error has occured!')
type.toast(message, actionLabel, action)
| Action ToastShow a popup with the given message and an action button that disappears by itself after a couple of secondsex. type.toast('Closed Todo!', 'Undo', () => this.closed = false)
The types
Javascript objects provides — amongst others — an interface for accessing proxy objects for all list types as well as general, type-independent methods and properties, for example for configuring general settings or executing utility methods.
types
| Types ProxyContains proxies for all types and utility properties/methodsex. types.forEach(type => types.log(type.label))
types.username
| UsernameGet the username of the currently logged in userex. 'darwin01'
, 'charles'
, …
types.allowAdmin
| Allow AdminOverride the admin accessex. types.allowAdmin = true
types.topActionButtonOnBottom
| Top Action Button on BottomDisplay the top action button on the bottom in the menu barex. types.topActionButtonOnBottom = false
types.onCreate
| On Create FunctionDefine a function that decorates new listsex. types.onCreate = type=> { type.addField("Text", macro.RICH_TEXT); }
types.require(script)
| RequireLoad the external script referenced by the given scriptId
ex. types.require("libxyz")
types.asyncWorker(script)
| Async WorkerExecutes the given script in a worker threadex. types.asyncWorker("types.log('ping')")
types.asyncMain(script)
| Async MainExecutes the given script in the main threadex. types.asyncMain("types.log('ping')")
types.copyToClipboard(text)
| Copy To ClipboardCopies the given text to the clipboardex. types.copyToClipboard("types.copyToClipboard('ping')")
types.show(type)
| ShowJump to the list view of the given typeex. types.show('Task')
types.forEach(operation)
| For EachApply the given operation to all typesex. types.forEach(type => types.log(type.label))
types.deleteAll()
| Delete AllDeletes all (!) typesex. types.deleteAll()
types.toast(message)
| ToastShow a popup with the given message that disappears by itself after a couple of secondsex. types.toast('Hello, World!')
types.toastError(message)
| Toast ErrorShow a error popup with the given message that disappears by itself after a couple of secondsex. types.toastError('An error has occured!')
types.toast(message, actionLabel, action)
| Action ToastShow a popup with the given message and an action button that disappears by itself after a couple of secondsex. types.toast('Closed Todo!', 'Undo', () => this.closed = false)
types.theme
| ThemeSet the general UI Theme, look and feelex. types.theme = MD1
or … = MD2
or … = DAY
or … = HND
or … = JIR
or … = DRK
types.ratioMasterDetail
| Ratio Master-Detail-ViewSet the ratio between the width of the list view and the total width (list and form view)ex. types.ratioMasterDetail = 0.38
or … = 0.62
or … = 0.5
The macro
Javascript object allows amongst others recording and playing of macro scripts as well as the programmatic creation of list types through invocation of macro methods like macro.newList('Note', 'Notes')
.
macro
| Macro ProxyAllows recording and playing of macro scriptsex. macro.record(); macro.newList('Goal', 'Goals'); macro.play();
macro.fast
| FastSpeed up or slow down the execution of the macroex. macro.fast = true
or … = false
macro.darkMode
| Dark ModeToggle dark modeex. macro.darkMode = true
or … = false
macro.showStyleEditor
| Show Style EditorShow/hide the app style editorex. macro.showStyleEditor = true
or … = false
macro.delay
The delay factor between steps for the execution of the macroex. macro.delay = 0.1
, … = 0.5
, … = 1.5
, …
macro.copyToClipboard(text)
| Copy To ClipboardCopies the given text to the clipboardex. macro.copyToClipboard("types.copyToClipboard('ping')")
macro.record()
| RecordStarts recording a new macroex. macro.record()
macro.live()
| LiveSwitches back to the regular macro live modeex. macro.live()
macro.setup()
| SetupSwitches to the macro setup modeex. macro.setup()
macro.newList(label, pluralLabel, icon, state)
| New ListCreate a new list type with a macro, the state argument is only supported in setup modeex. macro.newList('Goal', 'Goals', 'map-marker', macro.PINNED)
macro.selectList(name)
| Select ListSelect the given list type with a macroex. macro.selectList('Goals')
macro.newListElement(title)
| New List ElementCreate a new list item with a macroex. macro.newListElement('My new todo')
macro.selectListElement(title)
| Select List ElementSelect the list item with the given title with a macroex. macro.selectListElement('My new todo')
macro.clickSetElement(title)
| Click Set ElementClick the embedded list item with the given title with a macroex. macro.clickSetElement('My new todo')
macro.showInfo(title, text)
| Show InfoTemporarily shows an info dialog during a macro executionex. macro.showInfo('Create a new list', 'This demo shows how to create a new list')
macro.showListElementInfo(title, message)
| Show List Element InfoTemporarily annotates the given list item during a macro executionex. macro.showListElementInfo('My new todo', 'This new list item has been created')
macro.showFormHeaderInfo(label)
| Show Form Header InfoTemporarily annotates the form header during a macro executionex. macro.showFormHeaderInfo('Goal')
macro.showListHeaderInfo(labelPlural)
| Show List Header InfoTemporarily annotates the list header during a macro executionex. macro.showListHeaderInfo('Goals')
macro.addField(title, type)
| Add FieldAdd a new field to the selected list type with a macroex. macro.addField('Description', macro.MULTILINE_TEXT)
macro.addSummaryField(title, type)
| Add Summary FieldAdd a new summary field to the selected list type with a macroex. macro.addSummaryField('Total Count', macro.INTEGER_NUMBER)
macro.addSelectionField(title, type)
| Add Selection FieldAdd a new selection field to the selected list type with a macroex. macro.addSelectionField('Goal', 'Goal')
macro.setTitle(text)
| Set TitleSet the value of the title field during a macro executionex. macro.setTitle('my-new-doc')
macro.setText(fieldLabel, text)
| Set TextSet the value of the given text field during a macro executionex. macro.setText('Tags', 'weekly important')
macro.setNumber(fieldLabel, value)
| Set NumberSet the value of the given number field during a macro executionex. macro.setNumber('Height (m)', 1.80)
macro.appendText(fieldLabel, text)
| Append TextAppend to the value of the given text field during a macro executionex. macro.appendText('Tags', 'weekly important')
macro.setRating(fieldLabel, rating)
| Set RatingSet the value of the given rating field during a macro executionex. macro.setRating('Rating', 7)
macro.setSelection(fieldLabel, title)
| Set SelectionSet the value of the given selection field during a macro executionex. macro.setSelection('Goal', 'Visit the world')
macro.eval(script)
| EvalSafely executes the given javascript fragment during a macro executionex. macro.eval('types.task.deleteAll()')
macro.showFieldInfo(fieldLabel, message)
| Show Field InfoTemporarily annotates the given field during a macro executionex. macro.showFieldInfo('Rating', 'Default value of Rating is set to 7')
macro.setCode(fieldLabel, code)
| Set CodeInject the given code fragment for a field during a macro executionex. macro.setCode('Important', 'this.color = val ? "#FF0000" : null;')
macro.setAttachCode(fieldLabel, code)
| Set Attach CodeInject the given code fragment for a markup field during a macro executionex. macro.setAttachCode('Info', '#info Click on *Close* to mark this task as handled')
macro.setInitChartCode(fieldLabel, code)
| Set Init Chart CodeInject the given code fragment for a chart field during a macro executionex. macro.setInitChartCode('Chart', 'this.chartType = "pie";')
macro.setActionCode(fieldLabel, code)
| Set Action CodeInject the given code fragment for an action field during a macro executionex. macro.setActionCode('Close', 'this.delete(true);')
macro.setListStyle(typeLabel, css)
| Set List StyleInject the given style fragment for a list during a macro executionex. macro.setListStyle('Goal', 'background:#FF0000')
macro.setFieldListStyle(typeLabel, fieldLabel, css)
| Set Field List StyleInject the given style fragment for a list during a macro executionex. macro.setFieldListStyle('Goal', 'Title', 'background:#FF0000')
macro.setFormStyle(typeLabel, css)
| Set Form StyleInject the given style fragment for a list during a macro executionex. macro.setFormStyle('Goal', 'background:#FF0000')
macro.setFieldFormStyle(typeLabel, fieldLabel, css)
| Set Field Form StyleInject the given style fragment for a list during a macro executionex. macro.setFieldFormStyle('Goal', 'Title', 'background:#FF0000')
macro.setCreateCode(code)
| Set Create CodeInject the given code fragment for the create method during a macro executionex. macro.setCreateCode('this.rating = 5;')
macro.setInitCode(code)
| Set Init CodeInject the given code fragment for the init method during a macro executionex. macro.setInitCode('this.required = "Todo Priority";')
macro.clickActionIcon(fieldIconDescription, fieldIcon)
| Click Action IconClick the described action icon during a macro executionex. macro.clickActionIcon('magic wand', 'magic')
macro.clickButtonIcon(fieldIconDescription)
| Click Button IconClick the described button during a macro executionex. macro.clickButtonIcon('magic wand')
macro.clickButtonEmoji(fieldIconDescription, fieldIcon)
| Click Button EmojiClick the described button during a macro executionex. macro.clickButtonEmoji('Track time', 'stop-watch')
macro.clickActionLabel(fieldLabel)
| Click Action LabelClick the described button during a macro executionex. macro.clickActionLabel('Close')
macro.clickButtonLabel(fieldLabel)
| Click Button LabelClick the described button during a macro executionex. macro.clickButtonLabel('Close')
macro.clickAnchor(fieldDescription, id)
| Click AnchorClick the described anchor tag during a macro executionex. macro.clickAnchor('button', 'button-id')
macro.clean(type)
| CleanDelete all items of the given list during a macro executionex. macro.clean(types.task)
macro.play()
| PlayExecutes the previously recorded macroex. macro.play()
macro.deleteType()
| Delete TypeDeletes the selected list type during a macro executionex. macro.deleteType()
macro.selectFieldsRegister()
| Select Fields RegisterSwitches to register Fields during a macro executionex. macro.selectFieldsRegister()
macro.selectScriptRegister()
| Select Script RegisterSwitches to register Script during a macro executionex. macro.selectScriptRegister()
macro.selectFormRegister()
| Select Form RegisterSwitches to register Form during a macro executionex. macro.selectFormRegister()
macro.selectListRegister()
| Select List RegisterSwitches to register List during a macro executionex. macro.selectListRegister()
macro.editLists()
| Edit ListsSwitches to the list management view during a macro executionex. macro.editLists()
macro.editList(name)
| Edit ListSwitches to the edit list view during a macro executionex. macro.editList('Goals')
macro.leaveEditLists()
| Leave Edit ListsLeaves the list management view during a macro executionex. macro.leaveEditLists()
macro.closeEditList()
| Close Edit ListLeaves the edit list type view during a macro executionex. macro.closeEditList()
macro.sleep(milliseconds)
| SleepWaits for given amount of milliseconds during a macro executionex. macro.sleep(1000)
macro.scaffoldWebsite()
| Scaffold WebsiteCreates website content based on standardized building blocksex. macro.scaffoldWebsite()
macro.LABEL
| LabelConstant for field type Label
macro.TEXT
| TextConstant for field type Text
macro.MULTILINE_TEXT
| Multiline TextConstant for field type Multiline Text
macro.RICH_TEXT
| Rich TextConstant for field type Rich Text
macro.HTML
| MarkupConstant for field type Markup
macro.PARAGRAPH
| ParagraphConstant for field type Paragraph
macro.MARKDOWN
| Block-Based Rich TextConstant for field type Block-Based Rich Text
macro.CHART
| ChartConstant for field type Chart
macro.DYNAMIC_FIELD
| Dynamic FieldConstant for field type Dynamic Field
macro.DATE
| DateConstant for field type Date
macro.TIME
| TimeConstant for field type Time
macro.TIME_AND_DATE
| Time And DateConstant for field type Time And Date
macro.INTEGER_NUMBER
| Integer NumberConstant for field type Integer Number
macro.DECIMAL_NUMBER
| Decimal NumberConstant for field type Decimal Number
macro.COLOR
| ColorConstant for field type Color
macro.OBJECT_COLOR
| Item ColorConstant for field type Item Color
macro.ICON
| IconConstant for field type Icon
macro.OBJECT_ICON
| Item IconConstant for field type Item Icon
macro.FLAG
| FlagConstant for field type Flag
macro.SWITCH
| SwitchConstant for field type Switch
macro.RATING
| RatingConstant for field type Rating
macro.TAGS
| TagsConstant for field type Tags
macro.HYPERLINK
| HyperlinkConstant for field type Hyperlink
macro.EMBEDDED_MEDIA
| Embedded MediaConstant for field type Embedded Media
macro.ACTION
| ActionConstant for field type Action
macro.BUTTON
| Inline ButtonConstant for field type Inline Button
macro.METHOD
| MethodConstant for field type Method
macro.FUNCTION
| FunctionConstant for field type Function
macro.SCRIPT
| ScriptConstant for field type Script
macro.STYLESHEET
| StylesheetConstant for field type Stylesheet
macro.SELECTION
| SelectionConstant for field type Selection
macro.LIST
| ListConstant for field type List
macro.OBJECT_LIST
| Item ListConstant for field type Item List
macro.MULTI_SELECTION
| Multi-SelectionConstant for field type Multi-Selection
macro.TYPE_LIST
| Type ListConstant for field type Type List
macro.SECTION
| SectionConstant for field type Section
macro.STEP
| StepConstant for field type Step
macro.PLUGIN
| PluginConstant for field type Plugin
macro.SCRIPT_PLAYER
| Script PlayerConstant for field type Script Player
macro.TYPE_EDITOR
| Type EditorConstant for field type Type Editor
macro.THEME_SELECTION
| Theme SelectionConstant for field type Theme Selection
🪄macro.AI_ASSISTANT
| AI WizardConstant for field type AI Wizard
🤖macro.EMBEDDINGS
| EmbeddingsConstant for field type Embeddings
macro.EXTERNAL_SELECTION_TOGGLE
| Link/Unlink External SelectionConstant for field type Link/Unlink External Selection
macro.overview
| OverviewConstant for building block Overview
macro.apiDocs.overview
| API DocsConstant for building block API Docs
macro.apiDocs.lists
| List ScriptsConstant for building block List Scripts
macro.apiDocs.fields
| Field ScriptsConstant for building block Field Scripts
macro.styleGuide.overview
| Style GuideConstant for building block Style Guide
macro.terms
| TermsConstant for building block Terms
macro.privacyPolicy
| Privacy PolicyConstant for building block Privacy Policy
macro.privacyPolicyLink
| Privacy PolicyConstant for building block Privacy Policy
macro.termsOfService
| Terms of ServiceConstant for building block Terms of Service
macro.termsOfServiceLink
| Terms of ServiceConstant for building block Terms of Service
macro.gettingStartedPage.introduction
| Getting startedConstant for building block Getting started
macro.gettingStartedPage.lists
| Create a new listConstant for building block Create a new list
macro.gettingStartedPage.fields
| Add fields to your listConstant for building block Add fields to your list
macro.gettingStartedPage.scripts
| Define behaviour with scriptsConstant for building block Define behaviour with scripts
macro.gettingStartedPage.style
| Add custom stylingConstant for building block Add custom styling
macro.tokenPage.introduction
| TokenConstant for building block Token
macro.tokenPage.token
| TokenConstant for building block Token
macro.tokenPage.tokenomics
| TokenomicsConstant for building block Tokenomics