plantuml / plantuml-stdlib

Contains official Standard Library for PlantUML
557 stars 122 forks source link

feat: add `README.md` on each stdlib folder #113

Closed The-Lum closed 1 week ago

The-Lum commented 1 week ago

Hello plantuml-stdlib team,

To follow:

Here is a PR in order to add a README.md on each stdlib folder.

I understand that is redundant with INFO, but it is easier to navigate and that is automatically display by GitHub.

Open to discussion,... Regards, Th.

arnaudroques commented 1 week ago

I understand that is redundant with INFO, but it is easier to navigate and that is automatically display by GitHub.

Actually, that’s a great idea! We could take it a step further by removing the INFO files altogether. Instead, we can update the code to read the necessary information from the README.md files, eliminating the need for INFO files.

How does that sound? I'll handle the Java code modification—it should be a straightforward change.

The-Lum commented 1 week ago

Hello @arnaudroques,

Otherwise I can suggest this new version (And I can make a new PR) which is between the INFO and the Simple Markdown, the Markdown with YAML frontmatter, as:

---
version: x.y.z
source: https://github.com/URL
link: xxx
author: authors_names
---

# Information about `stdlib/XXX`

Other info. for human... displayed by GH...

Open to discussion, That seems better that markdown table, and for java parsing that seems better... ? No? And this could also be useful for the PlantUML Theme gallery...

[FYI @Potherca, @kirchsth, @boessu, @theavege, @johthor]

kirchsth commented 1 week ago

Hi all,

What is the goal of the library specific readme.md file? For me it could be

1) a standardized format, that we can combine all lib-specific readme.md (and info.txt) to the overall readme.md in a standardized way. 2) but additional it would be nice, that the info.txt (and parts of readme.md) can be directly used in the plantuml-diagrams. %stdlib-info("C4") could create a note with markdown %stdlib-json("C4") could return the info as json %stdlib-readme("C4") could return the short description of the json

and if the functions are called ex. without an argument, all possible standard libraries are returned.

Library-specific Readme.md

The C4 library enables a simple way of describing and communicate software architectures with an intuitive language.

It is the PlantUML integrated version of [C4-PlantUML](https://github.com/plantuml-stdlib/C4-PlantUML) and has the big advantage that it can be used without additional external includes.
(E.g. container diagrams can be drawn with `!include <C4/C4_Container>` and no `!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml` is required.)

Example of usage:

```plantuml
@startuml
!include <C4/C4_Container>
LAYOUT_LEFT_RIGHT()

Person(admin, "Administrator")
System_Boundary(c1, "Sample System") {
    Container(web_app, "Web Application", "C#, ASP.NET Core 2.1 MVC", "Allows users to compare multiple Twitter timelines")
}
System(twitter, "Twitter")

Rel(admin, web_app, "Uses", "HTTPS")
Rel(web_app, twitter, "Gets tweets from", "HTTPS")

SHOW_LEGEND()
@enduml
```plantuml

This example renders the following image:

[![Example](https://www.plantuml.com/plantuml/png/JL1TQy9047o_Nx5DNn8GYyN7KanJgmMhOivAdyAPRE7WFiBT1f7I_zvDjTfxMUvcPcTk9f5KeCuQSQDTRRe6uQ4OtnNZgl2Eb7OO7iKY_rXjPRMOliXgypgRopGJOeqXUfUgncetW2JlfuuK5FcGPA8yHa9RFVdEDIeSqth4f5BPrY2Si2I3Bm5yBaxf0VULQbjcxd0FUTiQNIlItYNyLDmE82_Nm-LKiYGWt0z7yFPUz5XkZ3z4w2A62EIXzhPLJB6T8TrRoeCcmW2aBHhsYXpn-nmofHF8Uyuq1iK6pT_dhh6saPKyvrAkooJx9LtGwvePKkGhzkCpUFjV8ihvQiTTpgRBP-vnWgxX-dy0)](https://www.plantuml.com/plantuml/uml/JL1TQy9047o_Nx5DNn8GYyN7KanJgmMhOivAdyAPRE7WFiBT1f7I_zvDjTfxMUvcPcTk9f5KeCuQSQDTRRe6uQ4OtnNZgl2Eb7OO7iKY_rXjPRMOliXgypgRopGJOeqXUfUgncetW2JlfuuK5FcGPA8yHa9RFVdEDIeSqth4f5BPrY2Si2I3Bm5yBaxf0VULQbjcxd0FUTiQNIlItYNyLDmE82_Nm-LKiYGWt0z7yFPUz5XkZ3z4w2A62EIXzhPLJB6T8TrRoeCcmW2aBHhsYXpn-nmofHF8Uyuq1iK6pT_dhh6saPKyvrAkooJx9LtGwvePKkGhzkCpUFjV8ihvQiTTpgRBP-vnWgxX-dy0)

Library-specific Info.json

{
   "Name": "C4 library (C4-PlantUML)",
   "Version" : "2.11.0",
   "Optional Link to concrete Version/Release": "https://github.com/plantuml-stdlib/C4-PlantUML/tree/release/v2.11.0",

   "Source": "https://github.com/plantuml-stdlib/C4-PlantUML",
   "ShortDescription(as simple markdown)": ""
   "Authors":"",
   "License":"" 
   ...
}

Generated part of overall README.md


=={Name from info.json} [{folder name}]     ....  C4 library (C4-PlantUML) [C4]

{Values from Info.json (as table, badges or mixed?)}

{Library-specific Readme.md}

output of %stdlib-info("C4")

format is not correct, links not working,... but the idea should be clear

@startuml
rectangle StdLibInfoC4 <<stdlibinfo>> [
| Folder(?)  | C4 |
| Name    | **C4 library (C4-PlantUML)** |
| Version | [**2.11.0**](https://github.com/plantuml-stdlib/C4-PlantUML/tree/release/v2.11.0) |
| Source  | [https://github.com/plantuml-stdlib/C4-PlantUML](https://github.com/plantuml-stdlib/C4-PlantUML)|
| Authors | Ricardo Niepel, ... |
| License | MIT |

**Short description** 

The C4 library enables a simple way of describing and communicate software architectures with an intuitive language.
It is the PlantUML integrated version of [C4-PlantUML](https://github.com/plantuml-stdlib/C4-PlantUML) and has the big advantage that it can be used without additional external includes.
(E.g. container diagrams can be drawn with `!include <C4/C4_Container>` and no `!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml` is required.)
]
@enduml

output of %stdlib-json("C4")

{info.json as json, that it can be directly used in plantuml}

output of %stdlib-readme("C4")

{"ShortDescription(as simple markdown)" value of info.json, that it can be directly used in plantuml}
The-Lum commented 1 week ago

Hi all,

With:

Here is a proposal README.md file format in order to replace INFO file:

---
name: <stdlib_name>
display_name: <display_name>
author: <author>
version: x.y.z
source: <URL>
origin: 
---

Information about the `XXX` Standard Library.

Regards, Th.

kirchsth commented 1 week ago

it could be that the output of %stdlib-info("C4") returns too much information. C4-PlantUML support following calls:

Potherca commented 1 week ago

As a consumer of the INFO files (for instance in plantuml-stdlib/update-stdlib.sh), I definitely prefer YAML frontmatter over MD tables.

On the topic what should be in the file, I am still unsure. The README.md already in the projects themselves would not translate well into plantuml/plantuml-stdlib.

So what information should be present in the README and where should it come from?

https://github.com/plantuml/plantuml-stdlib/discussions/102#discussioncomment-11255064

The-Lum commented 1 week ago

Hi all,

With:

Here is a new proposal README.md file format in order to replace INFO file:

---
name: <stdlib_name>
display_name: <display_name>
description: <desc>
author: <author>
release: <release URL>
license: <lic>
version: x.y.z
source: <URL>
origin: 
---

Information about the `XXX` Standard Library.

Regards, Th.