# HackMD GitHub Integration One of the most important parts of a project is managing documentation. Readme files, how-tos, contributor workflows, user documentation, it all adds up quickly. One way to manage this is using markdown. But what about those sequence diagrams, domain class diagrams, and other software diagrams? Is there a way to write those using just your text editor and some source control? That's where HackMD comes in. HackMD is a web-based shared editing experience that that integrates with GitHub. It includes many enhancements like [Mermaid Markdown Syntax](https://mermaid-js.github.io/mermaid) rendering that make it a good complement to a project. ## Example Sequence Diagram ``` sequenceDiagram rect rgba(0, 0, 255, .1) Alice->>Bob:hello Note left of Alice: A typical interaction Bob->>Alice:Hi! Bob-->Alice:World end loop Loop text Alice->>+John: Hello John, how are you? Note over Alice,John: A typical interaction Alice->>+John: John, can you hear me? Note right of John: Text in note John-->>-Alice: Hi Alice, I can hear you! John-->>-Alice: I feel great! end Alice->>Bob: Hello Bob, how are you? alt is sick Bob->>Alice: Not so good :( else is well Bob->>Alice: Feeling fresh like a daisy end opt Extra response Bob->>Alice: Thanks for asking end ``` ```mermaid sequenceDiagram rect rgba(0, 0, 255, .1) Alice->>Bob:hello Note left of Alice: A typical interaction Bob->>Alice:Hi! Bob-->Alice:World end loop Loop text Alice->>+John: Hello John, how are you? Note over Alice,John: A typical interaction Alice->>+John: John, can you hear me? Note right of John: Text in note John-->>-Alice: Hi Alice, I can hear you! John-->>-Alice: I feel great! end Alice->>Bob: Hello Bob, how are you? alt is sick Bob->>Alice: Not so good :( else is well Bob->>Alice: Feeling fresh like a daisy end opt Extra response Bob->>Alice: Thanks for asking end ``` ## Example Class Diagram ```mermaid classDiagram Customer "1" --> "*" Ticket Student "1" --> "1..*" Course Galaxy --> "many" Star : Contains ```