How shiphan/markdown-renderer works
Markdown Renderer is a desktop Markdown editor with a live preview. A user edits text, the application parses it into a document of blocks and spans, then renders that document into a Swing text pane. The README lists headings, paragraphs, emphasis, code, quotes, lists, breaks, images, rules, and links; sampled parser code confirms several core constructs, while link and image parsing is not evidenced in the excerpts. Rendering paths for image and link spans are represented as separate syntax components, not as external services.
Main entry points: Parser.java Markdown parser · Paragraph.java Paragraph · MarkdownDocument.java Markdown document · App.java App coordinator
Components 14
Editor and preview
- Text editor
src/App.java - App coordinator
src/App.java
Markdown parsing
- Markdown parser
src/parser/Parser.java
Document rendering
- Markdown document
src/markdownDocument/MarkdownDocument.java
Markdown components
- Heading
src/markdownDocument/block/Heading.java - Paragraph
src/markdownDocument/block/Paragraph.java - Quote
src/markdownDocument/block/Quote.java - Horizontal rule
src/markdownDocument/block/HorizontalRule.java - List and items
src/markdownDocument/span/List.java - Styled and code text
src/markdownDocument/span/Text.java - Line break
src/markdownDocument/span/LineBreak.java - Link span
src/markdownDocument/span/Link.java - Image span
src/markdownDocument/span/Image.java
Other components
- User
Connections 21
- User → Text editor: edits text
- Text editor → App coordinator: notifies changes
- App coordinator → Markdown parser: parses input
- Markdown parser → Markdown document: builds document
- Markdown parser → Heading: creates headings
- Markdown parser → Paragraph: creates paragraphs
- Markdown parser → Quote: creates quotes
- Markdown parser → Horizontal rule: creates rules
- Markdown parser → List and items: creates lists
- Markdown parser → Styled and code text: creates text spans
- Markdown parser → Line break: creates breaks
- App coordinator → Markdown document: renders preview
- Markdown document → Heading: renders blocks
- Markdown document → Paragraph: renders blocks
- Markdown document → Quote: renders blocks
- Markdown document → Horizontal rule: renders blocks
- Paragraph → Styled and code text: renders spans
- Paragraph → Line break: renders spans
- Paragraph → List and items: renders spans
- Quote → Paragraph: renders contents
- List and items → Paragraph: renders item content