Skip to content
Snippets Groups Projects
Commit 2540d2a7 authored by Dumoulin Cédric's avatar Dumoulin Cédric
Browse files

ecoredoc: First release

The code come from a previous repository (websitegen)
parents
No related branches found
No related tags found
No related merge requests found
Showing
with 646 additions and 0 deletions
.project 0 → 100644
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>cdm.ecoredoc</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>
# Ecore Doc generator
This project allows to generate mardown doc files from an Ecore metamodel.
The generated md files are suitable for docusaurus.
Two kind of documentation are available :
- user documentation
- developer documentation.
This two documentations have different targets, and propose different views.
The doc is read from the 'documentation' tags associated to metamodel elements.
Each mm documentation can have several parts (dev, user ...), allowing to have different generated docs
## M2T modules structures
### Packages
- common/
- Module commonly used by other packages
- Should have no dependencies to other packages
- ecore/
- Work related to ECore MM
- Should have no dependencies to other packages
- docgen/
- Common Work for doc gen.
- dependencies : ecore, common
- userdocgen/
- Modules dedicated to user doc generation
- dependencies : docgen, ecore, common
- devdocgen/
- Modules dedicated to developer doc generation
- dependencies : docgen, ecore, common
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>cdm.ecoredoc.generator.documentation</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>
eclipse.preferences.version=1
encoding/<project>=UTF-8
# Dependencies
/node_modules
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Website
This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
### Installation
```
$ yarn
```
### Local Development
```
$ yarn start
```
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
### Build
```
$ yarn build
```
This command generates static content into the `build` directory and can be served using any static contents hosting service.
### Deployment
Using SSH:
```
$ USE_SSH=true yarn deploy
```
Not using SSH:
```
$ GIT_USER=<Your GitHub username> yarn deploy
```
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
---
slug: first-blog-post
title: First Blog Post
authors: [slorber, yangshun]
tags: [hola, docusaurus]
---
Lorem ipsum dolor sit amet...
<!-- truncate -->
...consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
---
slug: long-blog-post
title: Long Blog Post
authors: yangshun
tags: [hello, docusaurus]
---
This is the summary of a very long blog post,
Use a `<!--` `truncate` `-->` comment to limit blog post size in the list view.
<!-- truncate -->
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
---
slug: mdx-blog-post
title: MDX Blog Post
authors: [slorber]
tags: [docusaurus]
---
Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/).
:::tip
Use the power of React to create interactive blog posts.
:::
{/* truncate */}
For example, use JSX to create an interactive button:
```js
<button onClick={() => alert('button clicked!')}>Click me!</button>
```
<button onClick={() => alert('button clicked!')}>Click me!</button>
---
slug: welcome
title: Welcome
authors: [slorber, yangshun]
tags: [facebook, hello, docusaurus]
---
[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog).
Here are a few tips you might find useful.
<!-- truncate -->
Simply add Markdown files (or folders) to the `blog` directory.
Regular blog authors can be added to `authors.yml`.
The blog post date can be extracted from filenames, such as:
- `2019-05-30-welcome.md`
- `2019-05-30-welcome/index.md`
A blog post folder can be convenient to co-locate blog post images:
![Docusaurus Plushie](./docusaurus-plushie-banner.jpeg)
The blog supports tags as well!
**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config.
yangshun:
name: Yangshun Tay
title: Front End Engineer @ Facebook
url: https://github.com/yangshun
image_url: https://github.com/yangshun.png
page: true
socials:
x: yangshunz
github: yangshun
slorber:
name: Sébastien Lorber
title: Docusaurus maintainer
url: https://sebastienlorber.com
image_url: https://github.com/slorber.png
page:
# customize the url of the author page at /blog/authors/<permalink>
permalink: '/all-sebastien-lorber-articles'
socials:
x: sebastienlorber
linkedin: sebastienlorber
github: slorber
newsletter: https://thisweekinreact.com
facebook:
label: Facebook
permalink: /facebook
description: Facebook tag description
hello:
label: Hello
permalink: /hello
description: Hello tag description
docusaurus:
label: Docusaurus
permalink: /docusaurus
description: Docusaurus tag description
hola:
label: Hola
permalink: /hola
description: Hola tag description
# Developer API
# EcoreDocGen Documentation
# Add require React component
Some additiional React components are required.
Copy the following components (copy the folders) from ?? to tour project 'src' folder :
src
├───components
│ ├───Card
│ │ Card.js
│ │ CardBody.js
│ │ CardFooter.js
│ │ CardHeader.js
│ │ CardImage.js
│ │
│ ├───Column
│ │ Column.js
│ │ Columns.js
│ │
│ ├───DocCard
│ │ DocCard.js
│ │ DocCardBody.js
│ │ DocCardHeader.js
│ │
│ │
│ └───StructuralFeatureDocCard
│ ConceptChildrenDoc.js
│ ConceptPropertyDoc.js
│ StructuralFeatureDocCard.js
└───theme
MDXComponents.js
````
\ No newline at end of file
# New Project Setup
## Requested Eclipse project structure
## Create Eclipse project
- In eclipse
- Create a new eclipse project for the doc
- Copy project filepath
## Create VS project
- In VS
- Open new VS browser
- New folder, paste the eclipse project file path
- New terminal
- Create docusaurus projetc
- https://docusaurus.io/docs/installation
- npx create-docusaurus@latest docwebsite classic
- Choose javascript
- Cd docwebsite
## Init docusaurus project
## Create User and dev taget folders
Inside the docs repository, reate two folders that will contains the generated documentaton.
````
docs
├───devAPI
│ index.md
└───userAPI
index.md
````
### Create navbar entries
First, you need to declare two new sidebars, one for the user API, another for the dev API.
In the same time, you can remove the sidebar for the tutorial.
In ````docwebsite\sidebars.js````, add the following :
```js title=docwebsite\sidebars.js
const sidebars = {
// ...
userAPISidebar: [
{
type: 'autogenerated',
dirName: 'userAPI'
}
],
devAPISidebar: [
{
type: 'autogenerated',
dirName: 'devAPI'
}
],
};
```
Second, you need to add menu entries in the navbar.
In ````docwebsite\docusaurus.config.js````, add the following :
```js title=docwebsite\docusaurus.config.js
navbar: {
title: 'My Site',
logo: {
alt: 'My Site Logo',
src: 'img/logo.svg',
},
items: [
// ...
{
type: 'docSidebar',
sidebarId: 'userAPISidebar',
position: 'left',
label: 'User API',
},
{
type: 'docSidebar',
sidebarId: 'devAPISidebar',
position: 'left',
label: 'Dev API',
},
// Other setup
],
},
```
### Remove tutorial entries
You can remove originally generated entries for the tutorial.
## Add diagram capabilities
You need to add diagram capabilities to your docusaurus project.
this is explain here [Diagrams](https://docusaurus.io/docs/markdown-features/diagrams).
First install mermaid libs :
````js
npm install --save @docusaurus/theme-mermaid
````
Then instruct docusaurus to take into account mermaid diagrams :
docusaurus.config.js
````js
export default {
markdown: {
mermaid: true,
},
themes: ['@docusaurus/theme-mermaid'],
};
````
## Check your project
try to start you project :
````npm run start````
# Classifier
No Documentation.
## Class Diagram
```mermaid
classDiagram
class Classifier {
+JavaIdentifier constraints
}
cssClass "Classifier" primaryStyle
classDef primaryStyle fill:#f96
```
### all Subclasses (0)
### All Usages (0)
## All Attributes
<DocCard>
<DocCardHeader style={{ backgroundColor: "#75ee7b" , color:"black"}}>
### constraints [*] : JavaIdentifier
</DocCardHeader>
<DocCardBody>
No Documentation
</DocCardBody>
</DocCard>
## Modifiers
- isAbstract : false
- isInterface : false
# Operation
No Documentation.
## Class Diagram
```mermaid
classDiagram
class Operation {
+EBoolean invariant
}
cssClass "Operation" primaryStyle
classDef primaryStyle fill:#f96
```
### all Subclasses (0)
### All Usages (0)
## All Attributes
<DocCard>
<DocCardHeader style={{ backgroundColor: "#75ee7b" , color:"black"}}>
### invariant [1] : EBoolean
</DocCardHeader>
<DocCardBody>
No Documentation
</DocCardBody>
</DocCard>
## Modifiers
- isAbstract : false
- isInterface : false
# Package
No Documentation.
## Class Diagram
```mermaid
classDiagram
class Package {
+WellFormedURI schemaLocation
+WellFormedURI settingDelegates
+WellFormedURI validationDelegates
+WellFormedURI invocationDelegates
+WellFormedURI conversionDelegates
+WellFormedURI queryDelegates
}
cssClass "Package" primaryStyle
classDef primaryStyle fill:#f96
```
### all Subclasses (0)
### All Usages (0)
## All Attributes
<DocCard>
<DocCardHeader style={{ backgroundColor: "#75ee7b" , color:"black"}}>
### schemaLocation [1] : WellFormedURI
</DocCardHeader>
<DocCardBody>
No Documentation
</DocCardBody>
</DocCard>
<DocCard>
<DocCardHeader style={{ backgroundColor: "#75ee7b" , color:"black"}}>
### settingDelegates [*] : WellFormedURI
</DocCardHeader>
<DocCardBody>
No Documentation
</DocCardBody>
</DocCard>
<DocCard>
<DocCardHeader style={{ backgroundColor: "#75ee7b" , color:"black"}}>
### validationDelegates [*] : WellFormedURI
</DocCardHeader>
<DocCardBody>
No Documentation
</DocCardBody>
</DocCard>
<DocCard>
<DocCardHeader style={{ backgroundColor: "#75ee7b" , color:"black"}}>
### invocationDelegates [*] : WellFormedURI
</DocCardHeader>
<DocCardBody>
No Documentation
</DocCardBody>
</DocCard>
<DocCard>
<DocCardHeader style={{ backgroundColor: "#75ee7b" , color:"black"}}>
### conversionDelegates [*] : WellFormedURI
</DocCardHeader>
<DocCardBody>
No Documentation
</DocCardBody>
</DocCard>
<DocCard>
<DocCardHeader style={{ backgroundColor: "#75ee7b" , color:"black"}}>
### queryDelegates [*] : WellFormedURI
</DocCardHeader>
<DocCardBody>
No Documentation
</DocCardBody>
</DocCard>
## Modifiers
- isAbstract : false
- isInterface : false
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment