-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathREADME.htm
More file actions
265 lines (265 loc) · 12.6 KB
/
README.htm
File metadata and controls
265 lines (265 loc) · 12.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
<style type="text/css">
code{
font-family: "Consolas", monospace;
}
pre{
border: 1px solid #ddd;
border-left: 3px solid #f36d33;
overflow: auto;
padding: 1em 1.5em;
display: block;
}
Blockquote{
border-left: 3px solid #d0d0d0;
padding-left: 0.5em;
margin-left:1em;
}
Blockquote p{
margin: 0;
}
table{
border:1px solid;
border-collapse:collapse;
}
th{ padding:5px;
border:1px solid;
}
td{
padding:5px;
border:1px solid;
}
</style>
<h1>Markdown Help Viewer <a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg" alt="License"/></a></h1>
<p><strong>Latest Version 2.4.0 - 20 Feb 2026</strong></p>
<p><strong>An integrated help system based on files in Markdown format (and also html), for Delphi and Windows applications</strong></p>
<ul>
<li><p>A “Setup” of the pre-built <strong>“Markdown Help Viewer”</strong> ready to use.</p>
</li>
<li><p>A unit (MarkdownHelpViewer.pas) to add the interface to Delphi Help System of your Delphi Application (from XE6 version to latest)</p>
</li>
<li><p>A VCL Visual Component (TMarkdownViewer) to automatically show Markdown file formatted in HTML (from XE6 version to latest)</p>
</li>
<li><p>A simple demo to show how to integrate the Help in your application, as exaplained <a href="./Demo/Help/README.md">here…</a></p>
</li>
<li><p>For editing and prepare the Help manual of your application we suggest to use the Editor contained into
<a href="https://github.com/EtheaDev/MarkdownShellExtensions">“Markdown Shell Extensions”</a> project.</p>
</li>
</ul>
<p><img src="/Setup/SupportingDelphi.jpg" alt="Delphi Support"/></p>
<p>Related links: <a href="https://www.embarcadero.com/">embarcadero.com</a> - <a href="https://learndelphi.org/">learndelphi.org</a></p>
<h2>Documentation</h2>
<p>Follow the <a href="https://ethea.it/docs/markdowntools/">Project Site</a> to known how to use this Viewer and the Delphi component and other tools related to Markdown format like the Markdown Text Editor.</p>
<h3>Features</h3>
<ul>
<li><p>Supports Windows 10 and 11 (for 32 bits and 64 bits).</p>
</li>
<li><p>Themes (Dark and Light) according to user preferences of Windows Theme</p>
</li>
<li><p>Auto-detect Index file in the working folder</p>
</li>
<li><p>Very easy to integrate into Delphi Application, also in “embedded” mode.</p>
</li>
<li><p>Automatic check and download when a new version is available</p>
</li>
</ul>
<h3>Setup using the Installer</h3>
<p>Click to download the <a href="https://github.com/EtheaDev/MarkdownHelpViewer/releases/latest/download/MarkDownHelpViewerSetup.exe">MarkDownHelpViewerSetup.exe</a> located also in the Release area. The Installer works both for 32 and 64 bit system.</p>
<p><img src="./Images/Setup.png" alt="Markdown Setup_Program"/></p>
<h3>Markdown Help Viewer in action</h3>
<p>A useful Viewer for instant preview of Markdown formatted content help files (with auto-detection of Windows-Theme):</p>
<p><img src="./Images/ContentPageDark.png" alt="Markdown Help Viewer"/></p>
<p>The Viewer is “localized” for some languages. In this example the GUI with Italian language:</p>
<p><img src="./Images/ContentPageIta.png" alt="Markdown Help Viewer Italian"/></p>
<h3>Step to activate this Help into MarkdownHelpViewerDemo Application</h3>
<p>Use MarkdownHelpViewer.pas (located into AppInterface folder) in dpr:</p>
<pre><code class="Delphi"> MarkdownHelpViewer in '..\..\AppInterface\MarkDownHelpViewer.pas',
</code></pre>
<p>then specify the default file of the help:</p>
<pre><code class="Delphi"> Application.HelpFile := ExtractFilePath(Application.ExeName)+'..\Help\Home.md';
</code></pre>
<p>If you have installed the viewer using the provided Setup, the installation folder of the Viewer is registere into:</p>
<p><code>
HKEY_CLASSES_ROOT\Applications\MDHelpViewer.exe\Shell\Open\Command
</code>
so the interface can launch the viewer automatically.</p>
<p>If you don't want to use the provided Setup you can register the location of the Viewer built by yourself and deployed to a specific location, for example:</p>
<pre><code class="Delphi">{$IFDEF WIN32}
RegisterMDViewerLocation(ExtractFilePath(Application.ExeName)+
'..\..\Bin32\MDHelpViewer.exe');
{$ELSE}
RegisterMDViewerLocation(ExtractFilePath(Application.ExeName)+
'..\..\Bin64\MDHelpViewer.exe');
{$ENDIF}
</code></pre>
<h3>Rules to open the correct file using HelpContext or HelpTopic</h3>
<p>To test the application you can lauch the Home.md help using the menu About/Help: in the OnClick handler invoke the help:</p>
<pre><code class="Delphi">procedure TfmMain.HelpMenuItemClick(Sender: TObject);
begin
Application.HelpKeyword('home');
end;
</code></pre>
<p>In any Delphi component, you can define HelpType (htKeyword or htContext) and the specify HelpKeyword (string) or HelpContext (Integer).</p>
<p>When the user press “F1” inside the application, the HelpSystem is invoked with HelpKeyword or HelpContext.</p>
<p>Then the interface searches in the same folder of default file (specified into Application.HelpFile) the specific file using those rules:</p>
<h4>Rules of precedence:</h4>
<ul>
<li>first search a file named as the Keyword or the Context with any markdown extension (eg. 1000.md, MainForm.md)</li>
<li>Then, try the Help Name and the Keyword (eg.Home1000.md, HomeMainForm.md)</li>
<li>At least, try the Help Name and the Keyword with underscore (eg.Home_1000.md, Home_MainForm.md)</li>
</ul>
<h2>Release Notes</h2>
<p>20 Feb 2026: ver. 2.4.0</p>
<ul>
<li>Fixed position for “View” Button in multimonitor environment</li>
<li>Changed Open Dialog with modern Layout</li>
<li>Removed .txt files support</li>
</ul>
<p>06 Nov 2025: ver. 2.3.7</p>
<ul>
<li>Fixed TCustomMarkdownViewer.ExportToFileHTML</li>
<li>new <a href="https://ethea.it/docs/markdowntools/">Project Site</a> for documentation</li>
</ul>
<p>24 Aug 2025: ver. 2.3.6</p>
<ul>
<li>Added support for Delphi 13</li>
<li>Automatic search for index name Home_Index.md before Index.md</li>
<li>Enlarged Buttons to 80 pixels to fit translations</li>
<li>Added Russian translations and updated other translations</li>
<li>Translation Repository (xml) in Unicode format</li>
<li>Removed Google Chart API support</li>
<li>Fixed Restore Position in monitor with High-DPI</li>
</ul>
<p>23 Mar 2025: ver. 2.3.5</p>
<ul>
<li>Added Custom Event Handlers to TMarkdownViewer component (OnFileNameClicked, OnURLClicked)</li>
<li>Fixed Refresh also for Index page</li>
<li>Fixed loading svg files in utf8 format</li>
<li>Built with Delphi 12.3</li>
</ul>
<p>26 Jan 2025: ver. 2.3.4</p>
<ul>
<li>Added Export to HTML of every markdown files</li>
<li>Updated External libraries</li>
</ul>
<p>16 Dec 2024: ver. 2.3.3</p>
<ul>
<li>Updated Demo for FireMonkey</li>
</ul>
<p>14 Jun 2024: ver. 2.3.2</p>
<ul>
<li>Updated Packages to require correct HTMLViewer Packages</li>
</ul>
<p>10 May 2024: ver. 2.3.1</p>
<ul>
<li>Update to latest HTMLViewer</li>
<li>Fixed Preview for chinese chars</li>
</ul>
<p>06 Apr 2024: ver. 2.3.0</p>
<ul>
<li>Updated Settings for Buttons Rendering</li>
<li>Built with StyledComponents + SKIA (Delphi 12.1)</li>
</ul>
<p>20 Mar 2024: ver. 2.2.0</p>
<ul>
<li>Fixed loading content when Viewer is already open</li>
</ul>
<p>19 Mar 2024: ver. 2.1.2</p>
<ul>
<li>Added property “AutoLoadOnHotSpotClick” to TMarkdownViewer</li>
<li>Fixed resize Font changing Monitor-DPI</li>
<li>Fixed Toolbar switching Captions On/Off</li>
<li>Reset scrollbar position to top after loading new file</li>
</ul>
<p>3 Jan 2024: ver. 2.1.1</p>
<ul>
<li>Changed Toolbar to Styledtoolbar</li>
<li>Support for different GUI languages (italian, French, Deutch, Portuguese, Espagnol)</li>
<li>Fix for File names with spaces</li>
<li>Added ISMultiLanguage library engine for translations</li>
<li>Added xml files of translations</li>
<li>Removed ini files</li>
</ul>
<p>25 Oct 2023: ver. 2.0.1</p>
<ul>
<li>Added Export to HTML help files (experimental)</li>
</ul>
<p>23 Oct 2023: ver. 2.0.0</p>
<ul>
<li>Added use of Skia4Delphi</li>
<li>Added support for new image format (webp and wbmp)</li>
<li>Uses AnimatedStyledDialogs for messages</li>
<li>Updated Markdown library with best support for CommonMark transformation:</li>
</ul>
<ol>
<li>Subscript <sub>text</sub> and Superscript <sup>text</sup></li>
<li>Formulas (using [Google Chart API])</li>
<li><mark>Markers</mark></li>
<li><a href="https://www.markdownguide.org/basic-syntax/#reference-style-links">Reference-style Links</a></li>
</ol>
<p>20 Sep 2023: ver. 1.3.0</p>
<ul>
<li>Added Support for Delphi 12</li>
<li>Close Viewer with Esc button</li>
<li>Form-resize optimized</li>
</ul>
<p>30 Jun 2023: ver. 1.2.0</p>
<ul>
<li>Restored “Settings” function on Viewer</li>
<li>Fixed Component loading content from MarkdownContent property</li>
<li>Fixed Component loading images using FileName (now searches in same folder)</li>
</ul>
<p>29 Jun 2023: ver. 1.1.0</p>
<ul>
<li>Refactoring Folder/Source position (some files moved)</li>
<li>Renamed “Markdown” identifier to “Markdown”</li>
<li>Added Packages for other Delphi versions</li>
<li>Added “refresh” button to reload file content</li>
<li>Fix Resize performance</li>
<li>Added “RegisterMDViewerServerRoot” to automate loading content into the Component</li>
<li>Updated Component MarkdownViewer for autoloading content</li>
</ul>
<p>23 Jun 2023: ver. 1.0.0</p>
<ul>
<li>Viewer with lot of functions:</li>
<li>Full source code of Delphi Project (MDHelpViewer.dproj)</li>
<li>Support for Windows Light and Dark Themes</li>
<li>Settings available for easy customization of GUI</li>
<li>Unit MarkdownHelpViewer.pas for Delphi Applications</li>
</ul>
<h2>Markdown Help Viewer in depth</h2>
<p>Learn more about “MarkDown Help Viewer” within our <a href="https://github.com/EtheaDev/MarkdownHelpViewer/wiki/MarkDown-Help-Viewer-in-Depth">wiki</a>. Dive deeper into everything related to this tool, its features, and how to make the most of it.</p>
<h2>License</h2>
<p>Licensed under the <a href="https://opensource.org/licenses/Apache-2.0">Apache License, Version 2.0</a> (the “License”);</p>
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>
<h3>Other libraries from Ethea:</h3>
<p><strong>SVGIconImageList</strong> - https://github.com/EtheaDev/SVGIconImageList/</p>
<p><strong>StyledComponents</strong> - https://github.com/EtheaDev/StyledComponents</p>
<p><strong>Delphi MarkdownProcessor</strong> - https://github.com/EtheaDev/MarkdownProcessor</p>
<h3>Third parties libraries:</h3>
<p><strong>OpenSLL Library</strong>: Cryptography and SSL/TLS Toolkit</p>
<p>Copyright © 1998-2018 The OpenSSL Project. All rights reserved.</p>
<p><strong>Delphi Markdown</strong> - https://github.com/grahamegrieve/delphi-markdown</p>
<p>Copyright (c) 2011+, Health Intersections Pty Ltd All rights reserved</p>
<p><strong>Delphi Preview Handler</strong> - https://github.com/RRUZ/delphi-preview-handler</p>
<p>The Initial Developer of the Original Code is Rodrigo Ruz V.
Portions created by Rodrigo Ruz V. are Copyright © 2011-2023 Rodrigo Ruz V.</p>
<p><strong>Synopse/SynPDF</strong> - https://github.com/synopse/SynPDF</p>
<p>Copyright © Synopse: all right reserved.</p>
<p><strong>HtmlToPdf</strong> - https://github.com/MuzioValerio/HtmlToPdf</p>
<p>Copyright © Muzio Valerio.</p>
<p><strong>Image32 Library</strong> - http://www.angusj.com/delphi/image32/Docs/_Body.htm</p>
<p>Copyright ©2019-2023 Angus Johnson.</p>
<p><strong>HTMLViewer</strong> - https://github.com/BerndGabriel/HtmlViewer</p>
<p>Copyright (c) 1995 - 2008 by L. David Baldwin</p>
<p>Copyright (c) 1995 - 2023 by Anders Melander (DitherUnit.pas)</p>
<p>Copyright (c) 1995 - 2023 by Ron Collins (HtmlGif1.pas)</p>
<p>Copyright (c) 2008 - 2009 by Sebastian Zierer (Delphi 2009 Port)</p>
<p>Copyright (c) 2008 - 2010 by Arvid Winkelsdorf (Fixes)</p>
<p>Copyright (c) 2009 - 2023 by HtmlViewer Team</p>
<h1>External projects</h1>
<p><strong><em>To simpilfy compilation of projects they are added into ext folder</em></strong></p>
<p><a href="https://github.com/EtheaDev/SVGIconImageList">SVGIconImageList</a></p>
<p><a href="https://github.com/BerndGabriel/HtmlViewer">HtmlViewer</a></p>
<p><a href="https://github.com/RRUZ/vcl-styles-utils">vcl-styles-utils</a></p>
<p><a href="https://github.com/EtheaDev/MarkdownProcessor">markdownProcessor</a></p>
<p><a href="https://github.com/EtheaDev/StyledComponents">StyledComponents</a></p>