{"id":20798197,"url":"https://github.com/sebthom/previewer-eclipse-plugin","last_synced_at":"2025-08-10T11:11:47.976Z","repository":{"id":245938623,"uuid":"816401956","full_name":"sebthom/previewer-eclipse-plugin","owner":"sebthom","description":"Extensible Eclipse plugin that previews GraphViz, Markdown, PlantUML, Mermaid, SVG, and HTML files.","archived":false,"fork":false,"pushed_at":"2025-08-01T15:21:54.000Z","size":31446,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-01T17:36:45.304Z","etag":null,"topics":["eclipse-plugin","gfm","graphviz","java","markdown","mermaid","plantuml","preview","svg"],"latest_commit_sha":null,"homepage":"https://buymeacoffee.com/vegardit","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sebthom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-17T17:14:15.000Z","updated_at":"2025-06-24T14:55:59.000Z","dependencies_parsed_at":"2024-07-26T19:12:46.219Z","dependency_job_id":"a646d138-318a-4564-ad7f-71b7211ca4fc","html_url":"https://github.com/sebthom/previewer-eclipse-plugin","commit_stats":null,"previous_names":["sebthom/previewer-eclipse-plugin"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/sebthom/previewer-eclipse-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebthom%2Fpreviewer-eclipse-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebthom%2Fpreviewer-eclipse-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebthom%2Fpreviewer-eclipse-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebthom%2Fpreviewer-eclipse-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebthom","download_url":"https://codeload.github.com/sebthom/previewer-eclipse-plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebthom%2Fpreviewer-eclipse-plugin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269713884,"owners_count":24463244,"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","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["eclipse-plugin","gfm","graphviz","java","markdown","mermaid","plantuml","preview","svg"],"created_at":"2024-11-17T16:37:02.448Z","updated_at":"2025-08-10T11:11:47.953Z","avatar_url":"https://github.com/sebthom.png","language":"Java","readme":"# previewer-eclipse-plugin\n\n[![Build Status](https://github.com/sebthom/previewer-eclipse-plugin/actions/workflows/build.yml/badge.svg)](https://github.com/sebthom/previewer-eclipse-plugin/actions/workflows/build.yml)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.1%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)\n[![License](https://img.shields.io/github/license/sebthom/previewer-eclipse-plugin.svg?color=blue)](LICENSE.txt)\n[![Eclipse Marketplace](https://img.shields.io/eclipse-marketplace/dt/previewer-plugin?logo=eclipse\u0026label=Downloads)](https://marketplace.eclipse.org/content/previewer-plugin)\n\n\n**Feedback and high-quality pull requests are  highly welcome!**\n\n1. [What is it?](#what-is-it)\n1. [Installation](#installation)\n1. [Adding support for other formats](#extending)\n1. [Building from Sources](#building)\n1. [Acknowledgement](#acknowledgement)\n1. [License](#license)\n\n\n## \u003ca name=\"what-is-it\"\u003e\u003c/a\u003eWhat is it?\n\nThis **extensible** [EclipseⓇ](https://eclipse.org) plugin contributes a new **Preview** view that displays rendered versions of files\nopened in text editors.\n\nThe following formats are supported out of the box:\n- [Draw.io](https://www.drawio.com/) diagrams\n- [GitHub flavored Markdown (GFM)](https://github.github.com/gfm/)\n- GraphViz [DOT](https://graphviz.org/doc/info/lang.html) diagrams\n- HTML\n- [Mermaid](https://mermaid.js.org/) diagrams\n- [PlantUML](https://plantuml.com/) diagrams\n- [Scalable Vector Graphics (SVG)](https://en.wikipedia.org/wiki/SVG)\n- Terrastruct [D2](https://d2lang.com/) diagrams (requires `d2` executable from https://github.com/terrastruct/d2/releases installed locally)\n\nThis plugin is best used together with the [TM4E incl. Language Pack](https://github.com/eclipse/tm4e)\nand [Extra Syntax Highlighting Plugin](https://github.com/sebthom/extra-syntax-highlighting-eclipse-plugin)\nwhich provide syntax highlighting for the supported source files.\n\n- Markdown example:\n\n  ![](src/site/img/screen_markdown.png)\n\n- GraphViz example:\n\n  ![](src/site/img/screen_graphviz.png)\n\n\n## \u003ca name=\"installation\"\u003e\u003c/a\u003eInstallation\n\nTo install the plugin into an existing Eclipse installation do:\n1. Within Eclipse go to: Help -\u003e Install New Software...\n1. Enter the following update site URL: https://raw.githubusercontent.com/sebthom/previewer-eclipse-plugin/updatesite\n1. Select the `Previewer` feature to install.\n1. Ensure that the option `Contact all update sites during install to find required software` is enabled.\n1. Click `Next` twice.\n1. Read/accept the license terms and click `Finish`.\n1. Eclipse will now download the necessary files in the background.\n1. When the download has finished, Eclipse will ask about installing unsigned content. You need to accept if you want to\n1. After installation you will be prompted for a restart of Eclipse, which is recommended.\n\n\n## \u003ca id=\"extending\"\u003e\u003c/a\u003eAdding support for other formats\n\nThe plugin provides extension points that allow registration of additional renderers to support more file formats.\nIf you are new to Eclipse plugin development please consult https://github.com/eclipse-platform/eclipse.platform/blob/master/docs/FAQ/FAQ_What_are_extensions_and_extension_points.md\nfor more details about extension points.\n\n1. The `htmlPreviewerRenderer` extension point allows to register classes implementing [de.sebthom.eclipse.previewer.api.HtmlPreviewRenderer](plugin/src/main/java/de/sebthom/eclipse/previewer/api/HtmlPreviewRenderer.java):\n   HtmlPreviewRenderer are used to render source files to a HTML representation. The renderer plugin display the generated HTML inside managed browser component.\n   ```xml\n   \u003cextension point=\"de.sebthom.eclipse.previewer.renderers\"\u003e\n      \u003chtmlPreviewRenderer class=\"com.example.ConfigHtmlPreviewRenderer\" file-extensions=\"cfg,ini\" file-pattern=\"**/.cfg/_config_rc\" file-names=\"CONFIG_RC\" /\u003e\n   \u003c/extension\u003e\n   ```\n\n1. The `previewerRenderer` extension point allows to register classes implementing [de.sebthom.eclipse.previewer.api.PreviewRenderer](plugin/src/main/java/de/sebthom/eclipse/previewer/api/PreviewRenderer.java):\n   If rendering to HTML is not desirable or possible PreviewRenderers can be used to render source files onto an SWT Composite managed by the renderer itself.\n   ```xml\n   \u003cextension point=\"de.sebthom.eclipse.previewer.renderers\"\u003e\n      \u003cpreviewRenderer class=\"com.example.ConfigPreviewRenderer\" file-extensions=\"cfg,ini\" file-pattern=\"**/.cfg/_config_rc\" file-names=\"CONFIG_RC\" /\u003e\n   \u003c/extension\u003e\n   ```\n\n## \u003ca id=\"building\"\u003e\u003c/a\u003eBuilding from Sources\n\nTo ensure reproducible builds this Maven project inherits from the [vegardit-maven-parent](https://github.com/vegardit/vegardit-maven-parent)\nproject which declares fixed versions and sensible default settings for all official Maven plug-ins.\n\nThe project also uses the [maven-toolchains-plugin](http://maven.apache.org/plugins/maven-toolchains-plugin/) which decouples the JDK that is\nused to execute Maven and it's plug-ins from the target JDK that is used for compilation and/or unit testing. This ensures full binary\ncompatibility of the compiled artifacts with the runtime library of the required target JDK.\n\nTo build the project follow these steps:\n\n1. Download and install a Java 17 SDK, e.g. from:\n   - https://adoptium.net/releases.html?variant=openjdk17\n   - https://www.azul.com/downloads/?version=java-17-lts\u0026architecture=x86-64-bit\u0026package=jdk\n\n1. Download and install the latest [Maven distribution](https://maven.apache.org/download.cgi).\n\n1. In your user home directory create the file `.m2/toolchains.xml` with the following content:\n\n   ```xml\n   \u003c?xml version=\"1.0\" encoding=\"UTF8\"?\u003e\n   \u003ctoolchains\u003e\n      \u003ctoolchain\u003e\n         \u003ctype\u003ejdk\u003c/type\u003e\n         \u003cprovides\u003e\n            \u003cversion\u003e17\u003c/version\u003e\n            \u003cvendor\u003edefault\u003c/vendor\u003e\n         \u003c/provides\u003e\n         \u003cconfiguration\u003e\n            \u003cjdkHome\u003e[PATH_TO_YOUR_JDK_17]\u003c/jdkHome\u003e\n         \u003c/configuration\u003e\n      \u003c/toolchain\u003e\n   \u003c/toolchains\u003e\n   ```\n\n   Set the `[PATH_TO_YOUR_JDK_17]` parameter accordingly.\n\n1. Checkout the code using one of the following methods:\n\n    - `git clone https://github.com/sebthom/previewer-eclipse-plugin`\n    - `svn co https://github.com/sebthom/previewer-eclipse-plugin previewer-eclipse-plugin`\n\n1. Run `mvn clean verify` in the project root directory. This will execute compilation, unit-testing, integration-testing and\n   packaging of all artifacts.\n\n\n## \u003ca name=\"acknowledgement\"\u003e\u003c/a\u003eAcknowledgement\n\n**Draw.io** diagrams are rendered using https://www.draw.io/js/viewer.min.js, which is licensed under [Apache License 2.0 ](https://github.com/jgraph/drawio/blob/dev/LICENSE).\n\nBy default, **GraphViz DOT** files are rendered using a bundled version of [Viz.js](https://github.com/mdaines/viz-js), which is licensed under [MIT](https://github.com/mdaines/viz-js/blob/v3/LICENSE).\n\nBy default, **Markdown** files are rendered using a bundled version of [CommonMark Java](https://github.com/commonmark/commonmark-java), which is licensed under [BSD-2-Clause](https://github.com/commonmark/commonmark-java/blob/main/LICENSE.txt).\n\nRendered **Markdown** files are styled using [GitHub MarkDown CSS](https://github.com/sindresorhus/github-markdown-css/), which is licensed under [MIT](https://github.com/sindresorhus/github-markdown-css/blob/main/license).\n\n**Mermaid** files are rendered using a bundled version of [Mermaid JS](https://github.com/mermaid-js/mermaid), which is licensed under [MIT](https://github.com/mermaid-js/mermaid/blob/develop/LICENSE).\n\n**PlantUML** files are rendered using a bundled version of [PlantUML](https://github.com/plantuml/plantuml/), which is licensed under [MIT](https://github.com/plantuml/plantuml/blob/master/plantuml-mit/mit-license.txt)\n\n\n## \u003ca name=\"license\"\u003e\u003c/a\u003eLicense\n\nIf not otherwise specified (see below), files in this repository fall under the [Eclipse Public License 2.0](LICENSE.txt).\n\nIndividual files contain the following tag instead of the full license text:\n```\nSPDX-License-Identifier: EPL-2.0\n```\n\nThis enables machine processing of license information based on the SPDX License Identifiers that are available here: https://spdx.org/licenses/.\n\nAn exception is made for:\n1. files in readable text which contain their own license information, or\n2. files in a directory containing a separate `LICENSE.txt` file, or\n3. files where an accompanying file exists in the same directory with a `.LICENSE.txt` suffix added to the base-name of the original file.\n   For example `foobar.js` is may be accompanied by a `foobar.LICENSE.txt` license file.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebthom%2Fpreviewer-eclipse-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebthom%2Fpreviewer-eclipse-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebthom%2Fpreviewer-eclipse-plugin/lists"}