{"id":14980899,"url":"https://github.com/incquerylabs/ecoredocgen","last_synced_at":"2025-10-29T03:31:16.817Z","repository":{"id":7041787,"uuid":"8319258","full_name":"IncQueryLabs/ecoreDocGen","owner":"IncQueryLabs","description":"Small utility for generating LaTeX documentation from Eclipse Modeling Framework metamodels (Ecore files).","archived":false,"fork":false,"pushed_at":"2020-09-17T15:51:35.000Z","size":2197,"stargazers_count":8,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-11T21:41:33.027Z","etag":null,"topics":["code-generation","documentation","ecore","emf","latex-document"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IncQueryLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-20T18:26:10.000Z","updated_at":"2023-11-21T12:59:59.000Z","dependencies_parsed_at":"2022-08-31T09:00:30.371Z","dependency_job_id":null,"html_url":"https://github.com/IncQueryLabs/ecoreDocGen","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IncQueryLabs%2FecoreDocGen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IncQueryLabs%2FecoreDocGen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IncQueryLabs%2FecoreDocGen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IncQueryLabs%2FecoreDocGen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IncQueryLabs","download_url":"https://codeload.github.com/IncQueryLabs/ecoreDocGen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219858508,"owners_count":16556043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-generation","documentation","ecore","emf","latex-document"],"created_at":"2024-09-24T14:02:33.981Z","updated_at":"2025-10-29T03:31:16.363Z","avatar_url":"https://github.com/IncQueryLabs.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Ecore to HTML/LaTeX documentation generator\n======================================\n\nThis is a small utility for generating HTML or LaTeX documentation from Eclipse Modeling Framework metamodels (Ecore files).\n\nThe generator uses the structure of the metamodel and the values of the GenModelDoc annotation for creating content. \n\nThe generated text will include a section for the main package in the metamodel and subsections for the classifiers, datatypes and enumerations. \n\n## Installation\n\n\u003ca href=\"http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=1152230\" class=\"drag\" title=\"Drag to your running Eclipse workspace.\"\u003e\u003cimg class=\"img-responsive\" src=\"https://marketplace.eclipse.org/sites/all/themes/solstice/public/images/marketplace/btn-install.png\" alt=\"Drag to your running Eclipse workspace.\" /\u003e\u003c/a\u003e\n\nAvailable from the [Eclipse Marketplace](https://marketplace.eclipse.org/content/ecore-documentation-generator) or [P2 update site](https://github.com/IncQueryLabs/ecoreDocGen/wiki#downloads)\n\n## Usage\n\nOnce you installed the two plugins into your Eclipse (or started a runtime Eclipse with them included),\n just right-click on any .ecore file in your workspace and select \"Generate Latex Documentation\" or \"Generate HTML Documentation\" from the menu. As a result a .tex or .html file will be created in the same folder.\n\nTo add documentation to your metamodel, you can either use the Ecore Diagram Editor and input the textual descriptions into the \"GenModel Doc\"\n field that can be found on the Properties view, or simply add an EAnnotation to any element with the *source* attribute set\n to *http://www.eclipse.org/emf/2002/GenModel* and add a *details* entry with the *key* set to *documentation* and the value \n containing your description.\n \nAlternatively, you can activate the \"Ecore Documentation\" view, and enter content directly through that (to use it, first select an Ecore element in the editor, and then click into the view).\n\nWe also provide validators based on EMF-IncQuery (http://eclipse.org/incquery) that provide auto-refresh validator for missing/zero-length documentation fields, gradually guiding you to complete documentation nirvana :) See the annotated screenshot below for details.\n\n![EcoreDocGen screenshot](ecoredocgen_school.png?raw=true)\n\nFor the xtext runtime editor additions bind the following classes in your UIModule:\n* MyEObjectDocumentationProvider.class -\u003e documentation from EMF model/xtext comments\n* MyEObjectHover.class -\u003e hovers for keywords\n* MyProposalProvider.class -\u003e content assist for keywords\n\n### Xtext extensions\n\nThis tool can be used on Xtext langues too (.xtext files). A documentation of the xtext language with links and tooltips is generated before the metamodel documentation.\n\nIn the runtime editor documentations from the metamodel appear in keyword hovers and content assists. Javadoc-like comments are parsed as documentation and are shown for reference hovers and content assists.\n\n## Additional syntax\n\n### For the HTML Case\n\nThe generator supports documentation formatted in Markdown syntax. You can use any Markdown element you like.\n\n### For the LaTex Case\n\nThe generator supports a subset of Markdown syntax:\n* building lists\n* emphasis of text elements (bold/italic/underline)\n* hyperlinks to remote URLs\n\n## Output\n\n### HTML\nThe output format is customizable via CSS. The style-sheet is assumed to be in the same directory as the generated HTML file, and is assumed to be called style.css. An example CSS file can be found in the resources folder of the repository.\n\n### LaTex\nAt least the following packages need to be imported in your LaTex document for the documentation to be valid:\n\n\t\\usepackage{color}\n\t\\usepackage{hyperref}\n\t\\usepackage{tabularx}\n\t\\usepackage{float}\n\n\n\nStructure\n---------\n\nThe following is a short description of the structure used in documenting the metamodels. \n\n### EPackage\nThe documentation section of each metamodel begins with a short introduction explaining the rationale\n behind the given metamodel and lists the main concepts that are identified and represented by the elements in the metamodel.\n This introduction is stored in the main EPackage that contains the elements of the metamodel.\n Finally, the namespace prefix and URI used when persisting instance models of the metamodel are listed.\n\n### Elements\nAfter the metamodel introduction, each element in the Package has a subsection which starts with the description of the element,\n followed by various element properties and tables depending on the type of the element.\n\n#### EClass\nThere are two properties and three tables that can appear for an EClass element.\n The __Abstract__ property specifies that instance models cannot contain EObjects that are instances of this EClass,\n instead subtypes should be used. The __Interface__ property specifies that no implementation is generated for the EClass.\n Finally, the list of __Supertypes__ is given.\n\nThe tables list the (i) __attributes__, (ii) __references__ and (iii) __operations__ of the EClass,\n if there are any. Each table has three columns, the first contains the name of the element (colored __blue__ if derived),\n the second a list of properties and the third any documentation that is given. Apart from clarifications and rationale,\n this documentation part can also include validation rules that should be satisfied by instance models (with violations\n appearing as either errors or warnings).\n\nSome properties are common to the tables, these are the __Type (T)__ and the __Cardinality__ of the element\n and whether the values are __Unordered__ or __Not unique__ (the default values __Ordered__ and __Unique__ are not shown).\n In the case of operations, the type and cardinality refers to the return value. \n\nThe properties specific to features (attributes and references) are __Non-change\\-able__ (cannot be modified directly),\n __Volatile__ (value not stored in a field), __Transient__ (value not persisted), __Unsettable__ (has *Unset* value)\n and __Derived__ (value is computed), again, only non-default values are listed.\n\nThe property specific to attributes is __Identifier__, which is true if the value of the attribute identifies the EObject.\n\nThe reference-specific properties are __Opposite (Op)__ (the name of the reference in the target that will refer back to the source),\n __Containment__ (true, if target EObject of this reference is persisted inside source) and __Container__ \n (Containment is true for opposite of reference). Finally, the property specific to operations is __Parameters__\n (any number of parameters with type and cardinality).\n\n#### EEnum\nThere is only one table that appears additionally to the element description.\n The table lists the __literals__ of the EEnum and contains three columns, the name, value and documentation of the literal. \n \nCopyright\n---------\nAll code in this repository is available under the Eclipse Public License v1.0: http://www.eclipse.org/legal/epl-v10.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincquerylabs%2Fecoredocgen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fincquerylabs%2Fecoredocgen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincquerylabs%2Fecoredocgen/lists"}