diff --git a/.gitignore b/.gitignore index 3046e3a30..d4c3c92cf 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ activities/.DS_Store protocols/.DS_Store +__pycache__ + .idea/ node_modules diff --git a/docs/schema.md b/docs/schema.md index b66d0744e..c06ff6dcb 100644 --- a/docs/schema.md +++ b/docs/schema.md @@ -84,234 +84,4 @@ different elements of the schema. This section lists the core ReproSchema objects and their allowed properties. - - - -### Protocol -A representation of a study which comprises one or more assessments. - -**URI:** [http://schema.repronim.org/Protocol](http://schema.repronim.org/Protocol) - -| Name | Description | URI | -| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| addProperties | An array of objects to describe the various properties added to assessments and fields. | [http://schema.repronim.org/addProperties](http://schema.repronim.org/addProperties) | -| allow | An array of items indicating properties allowed on an activity or protocol | [http://schema.repronim.org/allow](http://schema.repronim.org/allow) | -| compute | An array of objects indicating computations in an activity or protocol and maps it to the corresponding Field item. scoring logic is a subset of all computations that could be performed and not all computations will be scoring. For example, one may want to do conversion from one unit to another. | [http://schema.repronim.org/compute](http://schema.repronim.org/compute) | -| landingPage | An element (by URL) to point to the protocol readme or landing page. | [http://schema.repronim.org/landingPage](http://schema.repronim.org/landingPage) | -| messages | An array of objects to define conditional messages in an activity or protocol. | [http://schema.repronim.org/messages](http://schema.repronim.org/messages) | -| order | An ordered list to describe the order in which the items of an assessment or protocol appear in the user interface. | [http://schema.repronim.org/order](http://schema.repronim.org/order) | -| overrideProperties | An array of objects to override the various properties added to assessments and fields. | [http://schema.repronim.org/overrideProperties](http://schema.repronim.org/overrideProperties) | -| preamble | The preamble for an assessment | [http://schema.repronim.org/preamble](http://schema.repronim.org/preamble) | -| shuffle | An element (bool) to determine if the list of items is shuffled or in order. | [http://schema.repronim.org/shuffle](http://schema.repronim.org/shuffle) | -| about | The subject matter of the Field. | [http://schema.org/about](http://schema.org/about) | -| audio | An embedded audio object. | [http://schema.org/audio](http://schema.org/audio) | -| description | A description of the item. | [http://schema.org/description](http://schema.org/description) | -| image | An image of the item. This can be a URL or a fully described ImageObject. | [http://schema.org/image](http://schema.org/image) | -| schemaVersion | Indicates (by URL or string) a particular version of a schema used in some CreativeWork. For example, a document could declare a schemaVersion using an URL such as http://schema.org/version/2.0/ if precise indication of schema version was required by some application. | [http://schema.org/schemaVersion](http://schema.org/schemaVersion) | -| version | The version of the CreativeWork embodied by a specified resource. | [http://schema.org/version](http://schema.org/version) | -| video | An embedded video object. | [http://schema.org/video](http://schema.org/video) | -| altLabel | The alternate label. | [http://www.w3.org/2004/02/skos/core#altLabel](http://www.w3.org/2004/02/skos/core#altLabel) | -| prefLabel | The preferred label. | [http://www.w3.org/2004/02/skos/core#prefLabel](http://www.w3.org/2004/02/skos/core#prefLabel) | - -### Activity -An assessment in a protocol. - -**URI:** [http://schema.repronim.org/Activity](http://schema.repronim.org/Activity) - -| Name | Description | URI | -| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| addProperties | An array of objects to describe the various properties added to assessments and fields. | [http://schema.repronim.org/addProperties](http://schema.repronim.org/addProperties) | -| allow | An array of items indicating properties allowed on an activity or protocol | [http://schema.repronim.org/allow](http://schema.repronim.org/allow) | -| compute | An array of objects indicating computations in an activity or protocol and maps it to the corresponding Field item. scoring logic is a subset of all computations that could be performed and not all computations will be scoring. For example, one may want to do conversion from one unit to another. | [http://schema.repronim.org/compute](http://schema.repronim.org/compute) | -| cronTable | None | [http://schema.repronim.org/cronTable](http://schema.repronim.org/cronTable) | -| messages | An array of objects to define conditional messages in an activity or protocol. | [http://schema.repronim.org/messages](http://schema.repronim.org/messages) | -| order | An ordered list to describe the order in which the items of an assessment or protocol appear in the user interface. | [http://schema.repronim.org/order](http://schema.repronim.org/order) | -| overrideProperties | An array of objects to override the various properties added to assessments and fields. | [http://schema.repronim.org/overrideProperties](http://schema.repronim.org/overrideProperties) | -| preamble | The preamble for an assessment | [http://schema.repronim.org/preamble](http://schema.repronim.org/preamble) | -| shuffle | An element (bool) to determine if the list of items is shuffled or in order. | [http://schema.repronim.org/shuffle](http://schema.repronim.org/shuffle) | -| about | The subject matter of the Field. | [http://schema.org/about](http://schema.org/about) | -| audio | An embedded audio object. | [http://schema.org/audio](http://schema.org/audio) | -| citation | A citation or reference to another creative work, such as another publication, web page, scholarly article, etc. | [http://schema.org/citation](http://schema.org/citation) | -| description | A description of the item. | [http://schema.org/description](http://schema.org/description) | -| image | An image of the item. This can be a URL or a fully described ImageObject. | [http://schema.org/image](http://schema.org/image) | -| schemaVersion | Indicates (by URL or string) a particular version of a schema used in some CreativeWork. For example, a document could declare a schemaVersion using an URL such as http://schema.org/version/2.0/ if precise indication of schema version was required by some application. | [http://schema.org/schemaVersion](http://schema.org/schemaVersion) | -| version | The version of the CreativeWork embodied by a specified resource. | [http://schema.org/version](http://schema.org/version) | -| video | An embedded video object. | [http://schema.org/video](http://schema.org/video) | -| altLabel | The alternate label. | [http://www.w3.org/2004/02/skos/core#altLabel](http://www.w3.org/2004/02/skos/core#altLabel) | -| prefLabel | The preferred label. | [http://www.w3.org/2004/02/skos/core#prefLabel](http://www.w3.org/2004/02/skos/core#prefLabel) | - -### Field -An item in an assessment. - -**URI:** [http://schema.repronim.org/Field](http://schema.repronim.org/Field) - -| Name | Description | URI | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| additionalNotesObj | A set of objects to define notes in a field. For example, most Redcap and NDA data dictionaries have notes for each item which needs to be captured in reproschema. | [http://schema.repronim.org/additionalNotesObj](http://schema.repronim.org/additionalNotesObj) | -| inputType | An element to describe the input type of a Field item. | [http://schema.repronim.org/inputType](http://schema.repronim.org/inputType) | -| preamble | The preamble for an assessment | [http://schema.repronim.org/preamble](http://schema.repronim.org/preamble) | -| responseOptions | An element (object or by URL)to describe the properties of response of the Field item. | [http://schema.repronim.org/responseOptions](http://schema.repronim.org/responseOptions) | -| about | The subject matter of the Field. | [http://schema.org/about](http://schema.org/about) | -| audio | An embedded audio object. | [http://schema.org/audio](http://schema.org/audio) | -| description | A description of the item. | [http://schema.org/description](http://schema.org/description) | -| image | An image of the item. This can be a URL or a fully described ImageObject. | [http://schema.org/image](http://schema.org/image) | -| isPartOf | Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of. | [http://schema.org/isPartOf](http://schema.org/isPartOf) | -| question | A sub property of object. A question. | [http://schema.org/question](http://schema.org/question) | -| readonlyValue | Whether or not a property is mutable. Default is false. Specifying this for a property that also has a value makes it act similar to a "hidden" input in an HTML form. | [http://schema.org/readonlyValue](http://schema.org/readonlyValue) | -| schemaVersion | Indicates (by URL or string) a particular version of a schema used in some CreativeWork. For example, a document could declare a schemaVersion using an URL such as http://schema.org/version/2.0/ if precise indication of schema version was required by some application. | [http://schema.org/schemaVersion](http://schema.org/schemaVersion) | -| version | The version of the CreativeWork embodied by a specified resource. | [http://schema.org/version](http://schema.org/version) | -| video | An embedded video object. | [http://schema.org/video](http://schema.org/video) | -| altLabel | The alternate label. | [http://www.w3.org/2004/02/skos/core#altLabel](http://www.w3.org/2004/02/skos/core#altLabel) | -| prefLabel | The preferred label. | [http://www.w3.org/2004/02/skos/core#prefLabel](http://www.w3.org/2004/02/skos/core#prefLabel) | - -### AdditionalProperty -An object to describe the various properties added to assessments and fields. - -**URI:** [http://schema.repronim.org/AdditionalProperty](http://schema.repronim.org/AdditionalProperty) - -| Name | Description | URI | -| -------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| allow | An array of items indicating properties allowed on an activity or protocol | [http://schema.repronim.org/allow](http://schema.repronim.org/allow) | -| isAbout | A pointer to the node describing the item. | [http://schema.repronim.org/isAbout](http://schema.repronim.org/isAbout) | -| isVis | An element to describe (by boolean or conditional statement) visibility conditions of items in an assessment. | [http://schema.repronim.org/isVis](http://schema.repronim.org/isVis) | -| limit | An element to limit the duration (uses ISO 8601) this activity is allowed to be completed by once activity is available. | [http://schema.repronim.org/limit](http://schema.repronim.org/limit) | -| maxRetakes | Defines number of times the item is allowed to be redone. | [http://schema.repronim.org/maxRetakes](http://schema.repronim.org/maxRetakes) | -| randomMaxDelay | Present activity/item within some random offset of activity available time up to the maximum specified by this ISO 8601 duration | [http://schema.repronim.org/randomMaxDelay](http://schema.repronim.org/randomMaxDelay) | -| schedule | An element to set make activity available/repeat info using ISO 8601 repeating interval format. | [http://schema.repronim.org/schedule](http://schema.repronim.org/schedule) | -| variableName | The name used to represent an item. | [http://schema.repronim.org/variableName](http://schema.repronim.org/variableName) | -| valueRequired | Whether the property must be filled in to complete the action. Default is false. | [http://schema.org/valueRequired](http://schema.org/valueRequired) | -| prefLabel | The preferred label. | [http://www.w3.org/2004/02/skos/core#prefLabel](http://www.w3.org/2004/02/skos/core#prefLabel) | - -### OverrideProperty -An object to override the various properties added to assessments and fields. - -**URI:** [http://schema.repronim.org/OverrideProperty](http://schema.repronim.org/OverrideProperty) - -| Name | Description | URI | -| -------------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| isAbout | A pointer to the node describing the item. | [http://schema.repronim.org/isAbout](http://schema.repronim.org/isAbout) | -| isVis | An element to describe (by boolean or conditional statement) visibility conditions of items in an assessment. | [http://schema.repronim.org/isVis](http://schema.repronim.org/isVis) | -| limit | An element to limit the duration (uses ISO 8601) this activity is allowed to be completed by once activity is available. | [http://schema.repronim.org/limit](http://schema.repronim.org/limit) | -| maxRetakes | Defines number of times the item is allowed to be redone. | [http://schema.repronim.org/maxRetakes](http://schema.repronim.org/maxRetakes) | -| randomMaxDelay | Present activity/item within some random offset of activity available time up to the maximum specified by this ISO 8601 duration | [http://schema.repronim.org/randomMaxDelay](http://schema.repronim.org/randomMaxDelay) | -| schedule | An element to set make activity available/repeat info using ISO 8601 repeating interval format. | [http://schema.repronim.org/schedule](http://schema.repronim.org/schedule) | -| variableName | The name used to represent an item. | [http://schema.repronim.org/variableName](http://schema.repronim.org/variableName) | -| valueRequired | Whether the property must be filled in to complete the action. Default is false. | [http://schema.org/valueRequired](http://schema.org/valueRequired) | -| prefLabel | The preferred label. | [http://www.w3.org/2004/02/skos/core#prefLabel](http://www.w3.org/2004/02/skos/core#prefLabel) | - -### UnitOption -An object to represent a human displayable name alongside the more formal value for units. - -**URI:** [http://schema.repronim.org/UnitOption](http://schema.repronim.org/UnitOption) - -| Name | Description | URI | -| --------- | ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| value | The value for each option in choices or in additionalNotesObj | [http://schema.repronim.org/value](http://schema.repronim.org/value) | -| prefLabel | The preferred label. | [http://www.w3.org/2004/02/skos/core#prefLabel](http://www.w3.org/2004/02/skos/core#prefLabel) | - -### ResponseOption -An element (object or by URL)to describe the properties of response of the Field item. - -**URI:** [http://schema.repronim.org/ResponseOption](http://schema.repronim.org/ResponseOption) - -| Name | Description | URI | -| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| choices | An array to list the available options for response of the Field item. | [http://schema.repronim.org/choices](http://schema.repronim.org/choices) | -| datumType | Indicates what type of datum the response is (e.g. range,count,scalar etc.) for the Field item. | [http://schema.repronim.org/datumType](http://schema.repronim.org/datumType) | -| multipleChoice | Indicates (by bool) if response for the Field item has one or more answer. | [http://schema.repronim.org/multipleChoice](http://schema.repronim.org/multipleChoice) | -| unitOptions | A list of objects to represent a human displayable name alongside the more formal value for units. | [http://schema.repronim.org/unitOptions](http://schema.repronim.org/unitOptions) | -| valueType | The type of the response of an item. For example, string, integer, etc. | [http://schema.repronim.org/valueType](http://schema.repronim.org/valueType) | -| maxValue | The upper value of some characteristic or property. | [http://schema.org/maxValue](http://schema.org/maxValue) | -| minValue | The lower value of some characteristic or property. | [http://schema.org/minValue](http://schema.org/minValue) | -| unitCode | The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon. | [http://schema.org/unitCode](http://schema.org/unitCode) | - -### Choice -An object to describe a response option. - -**URI:** [http://schema.repronim.org/Choice](http://schema.repronim.org/Choice) - -| Name | Description | URI | -| ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -| value | The value for each option in choices or in additionalNotesObj | [http://schema.repronim.org/value](http://schema.repronim.org/value) | -| image | An image of the item. This can be a URL or a fully described ImageObject. | [http://schema.org/image](http://schema.org/image) | -| name | The name of the item. | [http://schema.org/name](http://schema.org/name) | - -### ComputeSpecification -An object to define computations in an activity or protocol. - -**URI:** [http://schema.repronim.org/ComputeSpecification](http://schema.repronim.org/ComputeSpecification) - -| Name | Description | URI | -| ------------ | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| jsExpression | A JavaScript expression to compute a score from other variables. | [http://schema.repronim.org/jsExpression](http://schema.repronim.org/jsExpression) | -| variableName | The name used to represent an item. | [http://schema.repronim.org/variableName](http://schema.repronim.org/variableName) | - -### MessageSpecification -An object to define messages in an activity or protocol. - -**URI:** [http://schema.repronim.org/MessageSpecification](http://schema.repronim.org/MessageSpecification) - -| Name | Description | URI | -| ------------ | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| jsExpression | A JavaScript expression to compute a score from other variables. | [http://schema.repronim.org/jsExpression](http://schema.repronim.org/jsExpression) | -| message | The message to be conditionally displayed for an item. | [http://schema.repronim.org/message](http://schema.repronim.org/message) | - -### AdditionalNoteObj -A set of objects to define notes in a field. For example, most Redcap and NDA data dictionaries have notes for each item which needs to be captured in reproschema - -**URI:** [http://schema.repronim.org/AdditionalNoteObj](http://schema.repronim.org/AdditionalNoteObj) - -| Name | Description | URI | -| ------ | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| column | An element to define the column name where the note was taken from. | [http://schema.repronim.org/column](http://schema.repronim.org/column) | -| source | An element to define the source (eg. RedCap, NDA) where the note was taken from. | [http://schema.repronim.org/source](http://schema.repronim.org/source) | -| value | The value for each option in choices or in additionalNotesObj | [http://schema.repronim.org/value](http://schema.repronim.org/value) | - -### ResponseActivity -Captures information about some action that took place. It also links to information (entities) that were used during the activity - -**URI:** [http://schema.repronim.org/ResponseActivity](http://schema.repronim.org/ResponseActivity) - -| Name | Description | URI | -| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | -| endedAtTime | None | [http://www.w3.org/ns/prov#endedAtTime](http://www.w3.org/ns/prov#endedAtTime) | -| generated | None | [http://www.w3.org/ns/prov#generated](http://www.w3.org/ns/prov#generated) | -| startedAtTime | None | [http://www.w3.org/ns/prov#startedAtTime](http://www.w3.org/ns/prov#startedAtTime) | -| used | None | [http://www.w3.org/ns/prov#used](http://www.w3.org/ns/prov#used) | -| wasAssociatedWith | None | [http://www.w3.org/ns/prov#wasAssociatedWith](http://www.w3.org/ns/prov#wasAssociatedWith) | -| inLanguage | The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]]. | [http://schema.org/inLanguage](http://schema.org/inLanguage) | - -### Response -Describes the response of an item. - -**URI:** [http://schema.repronim.org/Response](http://schema.repronim.org/Response) - -| Name | Description | URI | -| --------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| wasAttributedTo | None | [http://www.w3.org/ns/prov#wasAttributedTo](http://www.w3.org/ns/prov#wasAttributedTo) | -| isAbout | A pointer to the node describing the item. | [http://schema.repronim.org/isAbout](http://schema.repronim.org/isAbout) | -| value | The value for each option in choices or in additionalNotesObj | [http://schema.repronim.org/value](http://schema.repronim.org/value) | - -### Participant -An Agent describing characteristics associated with a participant. - -**URI:** [http://schema.repronim.org/Participant](http://schema.repronim.org/Participant) - -| Name | Description | URI | -| ---------- | ------------------------------- | -------------------------------------------------------------------------------- | -| subject_id | The identifier of a participant | [http://purl.org/nidash/nidm#subject_id](http://purl.org/nidash/nidm#subject_id) | - -### SoftwareAgent -Captures information about some action that took place. It also links to information (entities) that were used during the activity - -**URI:** [http://schema.repronim.org/SoftwareAgent](http://schema.repronim.org/SoftwareAgent) - -| Name | Description | URI | -| ------- | ----------------------------------------------------------------- | ------------------------------------------------------ | -| url | URL of the item. | [http://schema.org/url](http://schema.org/url) | -| version | The version of the CreativeWork embodied by a specified resource. | [http://schema.org/version](http://schema.org/version) | +{{ MACROS___schema_table() }} diff --git a/macros/__init__.py b/macros/__init__.py new file mode 100644 index 000000000..54d2a4748 --- /dev/null +++ b/macros/__init__.py @@ -0,0 +1,9 @@ +from .macros import ( + schema_table, +) +from .main import define_env + +__all__ = [ + "define_env", + "schema_table", +] diff --git a/macros/macros.py b/macros/macros.py new file mode 100644 index 000000000..d578451b4 --- /dev/null +++ b/macros/macros.py @@ -0,0 +1,93 @@ +from pathlib import Path + +import ruamel.yaml +from jinja2 import Environment, FileSystemLoader, select_autoescape + +yaml = ruamel.yaml.YAML() +yaml.indent(mapping=2, sequence=4, offset=2) + +ROOT = Path(__file__).parents[1] + +TEMPLATES_DIR = ROOT / "templates" + +SCHEMA_DIR = ROOT / "linkml-schema" + + +def return_jinja_env() -> Environment: + return Environment( + loader=FileSystemLoader(TEMPLATES_DIR), + autoescape=select_autoescape(), + lstrip_blocks=True, + trim_blocks=True, + ) + + +def schema_table() -> str: + + target_classes = [ + "Protocol", + "Activity", + "Item", + "AdditionalProperty", + "OverrideProperty", + "UnitOption", + "ResponseOption", + "Choice", + "ComputeSpecification", + "MessageSpecification", + "AdditionalNoteObj", + "ResponseActivity", + "Response", + "Participant", + "SoftwareAgent", + ] + + input_file = SCHEMA_DIR / "reproschema.yaml" + + reproschema = yaml.load(input_file) + + env = return_jinja_env() + template = env.get_template("table.jinja") + + content = [] + for this_class in target_classes: + + class_dict = reproschema["classes"][this_class] + class_dict["uri"] = class_dict["class_uri"].replace( + "reproschema:", reproschema["id"] + ) + + slots = [] + for this_slot in class_dict["slots"]: + + slot_dict = reproschema["slots"][this_slot] + + slot_dict["name"] = this_slot + + if "title" not in slot_dict: + slot_dict["title"] = "**TODO**" + if "description" not in slot_dict: + slot_dict["description"] = "**TODO**" + + prefix = slot_dict["slot_uri"].split(":")[0] + value = reproschema["id"] + if prefix in reproschema["prefixes"]: + value = reproschema["prefixes"][prefix] + + slot_dict["uri"] = slot_dict["slot_uri"].replace(f"{prefix}:", value) + + slots.append(slot_dict) + + class_dict["slots"] = slots + + content.append(template.render(this_class=class_dict)) + + return "\n".join(content) + + +def main(): + print(schema_table()) + + +if __name__ == "__main__": + main() diff --git a/macros/main.py b/macros/main.py new file mode 100644 index 000000000..c8ec985bd --- /dev/null +++ b/macros/main.py @@ -0,0 +1,32 @@ +"""This package is used to build elements from data into +MarkDown format for the specification text. + +Functions decorated in "define_env()" are callable throughout the +specification and are run/rendered with the mkdocs plugin "macros". +""" + +import os +import sys + +code_path = os.path.abspath(os.path.join(os.path.dirname(__file__))) +sys.path.append(code_path) + +import macros # noqa E402 + + +def define_env(env): + """Define variables, macros and filters for the mkdocs-macros plugin. + + Parameters + ---------- + env : :obj:`macros.plugin.MacrosPlugin` + An object in which to inject macros, variables, and filters. + + Notes + ----- + "variables" are the dictionary that contains the environment variables + "macro" is a decorator function, to declare a macro. + + Macro aliases must start with "MACROS___" + """ + env.macro(macros.schema_table, "MACROS___schema_table") diff --git a/mkdocs.yml b/mkdocs.yml index 5721e4d33..c8ea7b687 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -75,12 +75,16 @@ markdown_extensions: - pymdownx.snippets: auto_append: - includes/abbreviations.md + - tables - toc: anchorlink: true watch: - includes + - linkml-schema plugins: - search - tags + - macros: + module_name: macros/main diff --git a/requirements.txt b/requirements.txt index a9afbecb6..044ec90ae 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,5 @@ -rdflib==5.0.0 +mkdocs-macros-plugin mkdocs-material pymdown-extensions +rdflib==5.0.0 +ruamel.yaml diff --git a/templates/table.jinja b/templates/table.jinja new file mode 100644 index 000000000..f1f99d690 --- /dev/null +++ b/templates/table.jinja @@ -0,0 +1,13 @@ + + +### {{ this_class.title }} + +{{ this_class.description }} + +URI: [{{ this_class.uri }}]({{ this_class.uri }}) + +| Property | Title | Description | URI | +| :------- | :---- | :---------- | :-- | +{% for slot in this_class.slots %} +| {{ slot.name }} | {{ slot.title }} | {{ slot.description }} | [{{ slot.uri }}]({{ slot.uri }}) | +{% endfor %}