Write, share, and publish documents with HedgeDoc
Special Formatting
In addition to regular text, HedgeDoc lets you format source code, emojis, and images using Markdown syntax. To format software code, you use three backticks (```) at the beginning and end of a code block. The code will be highlighted according to the language used. For emojis, you type : at the beginning of the line. An ! at the beginning of a line tells HedgeDoc to insert the code to embed an image in that position.
When embedding an image, its source location affects how HedgeDoc embeds the image. If the image is already online (on the same or another server), you just insert the image's URL in the Markdown code that HedgeDoc auto-inserts after the exclamation mark. If the image is on your computer, click on the Upload Image button in the toolbar and upload the image to the HedgeDoc server (or to an alternative location as described in the "Self-Hosting" section). Alternatively, you may drag and drop an image from your file manager directly to where you want it to appear in the note.
At time of writing, HedgeDoc 1.8.2 still lets you embed YouTube videos, as follows:
{%youtube ID_NUMBER_OF_YOUTUBE_VIDEO %}
However, this specific markup is officially deprecated. It should soon be replaced by embedding "plain links" (the meaning of which is currently unclear).
Metadata
Similar to most Markdown-capable applications, HedgeDoc supports adding metadata to files to set browser behavior. For the metadata to be recognized, it must be placed in a special section, called "frontmatter," at the beginning of each file.
You use YAML to format the frontmatter. The syntax to mark the start of the frontmatter is three dashes, and three dashes mark the end of the frontmatter. The YAML metadata goes inside, with one key/value pair on each line, separated by a colon, as follows:
--- title: real title tags: tutorial, open source, writing description: Another useful tutorial robots: nofollow ---
HedgeDoc will use the title
value as the HTML note's title, overriding the first level 1 heading (which would be used if there were no metadata). These tags can be used by any system (including search engines) that catalogs the notes by topic. The values of the description
and robots
keys will be added in the HTML note's header, to make search engines properly index the note and the links it contains. However, you can set robots
to noindex
if you don't want the page indexed. Set robots
to nofollow
if you do not want the pages linked from the current page to be indexed. In addition to these metadata tags, HedgeDoc recognizes many other tags. For more information, consult the documentation on HedgeDoc's website [2].
Diagrams and Mathematical Expressions
In addition to text, source code, and images, HedgeDoc can also format diagrams and charts, as well as complicated mathematical expressions. In my PlantUML tutorial [4], for example, I showed how to create a sequence diagram out of a text file as shown in Listing 1.
Listing 1
PlantUML Sequence Diagram Format
01 @startuml 02 Alice -> Bob : Hello, is the store open? 03 Bob -> Alice: Yes, it is. What do you want to buy? 04 Alice -> Bob : I want to buy some jeans. 05 Alice <- Bob : Please tell me the color. 06 Alice -> Bob : Black 07 Alice <- Bob : Now please tell me the size. 08 Alice -> Bob : 42 09 @enduml
With HedgeDoc, you can obtain the same results by inserting sequence diagram text, but you use ```sequence
at the beginning instead of @startuml
and ```
at the end instead of @enduml
, as shown in Listing 2.
Listing 2
HedgeDoc Sequence Diagram Format
```sequence Alice->Bob: Hello, is the store open? Bob->Alice: Yes, it is. What do you want to buy? Alice->Bob: I want to buy some jeans. Bob->Alice: Please tell me the color. Alice->Bob: Black Bob->Alice: Now please tell me the size. Alice->Bob: 42 ```
The sequence
keyword following the backticks at the beginning of Listing 2 is what actually creates the diagram shown in Figure 7. If you left sequence
out, HedgeDoc would treat the diagram text as source code. To learn about all the diagram types that HedgeDoc supports, see the many examples available online [5].
HedgeDoc also supports mathematical expressions by using the MathJax library [6]. MathJax reads plain text descriptions in MathML, LaTeX, or AsciiMath formats and renders them as complex mathematical expressions. Depending on the situation, the expression is rendered using a combination of HTML code with special CSS stylesheets, web fonts, MathML code, or scalable vector graphics (SVG).
Because MathJax support is built into HedgeDoc, you can easily enter a mathematical expression in any of the source formats and immediately see how it looks. Figure 8 demonstrates the rendered expression from the LaTeX expressions shown in Listing 3.
Listing 3
LaTeX Expressions
$$\sum_{i=1}^n i^2 = \frac{n(n+1)(2n+1)}{6}$$ $$\int_{a}^b\int_{c}^d f(x,y)dxdy$$
The value HedgeDoc offers in rendering mathematical expressions can't be overestimated. Math students and teachers worldwide have been using LaTeX formulas for years, with thousands of expressions scattered inside countless LaTeX files. HedgeDoc offers an easy way to write and publish any paper based on these formulas.
« Previous 1 2 3 4 Next »
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Canonical Bumps LTS Support to 12 years
If you're worried that your Ubuntu LTS release won't be supported long enough to last, Canonical has a surprise for you in the form of 12 years of security coverage.
-
Fedora 40 Beta Released Soon
With the official release of Fedora 40 coming in April, it's almost time to download the beta and see what's new.
-
New Pentesting Distribution to Compete with Kali Linux
SnoopGod is now available for your testing needs
-
Juno Computers Launches Another Linux Laptop
If you're looking for a powerhouse laptop that runs Ubuntu, the Juno Computers Neptune 17 v6 should be on your radar.
-
ZorinOS 17.1 Released, Includes Improved Windows App Support
If you need or desire to run Windows applications on Linux, there's one distribution intent on making that easier for you and its new release further improves that feature.
-
Linux Market Share Surpasses 4% for the First Time
Look out Windows and macOS, Linux is on the rise and has even topped ChromeOS to become the fourth most widely used OS around the globe.
-
KDE’s Plasma 6 Officially Available
KDE’s Plasma 6.0 "Megarelease" has happened, and it's brimming with new features, polish, and performance.
-
Latest Version of Tails Unleashed
Tails 6.0 is based on Debian 12 and includes GNOME 43.
-
KDE Announces New Slimbook V with Plenty of Power and KDE’s Plasma 6
If you're a fan of KDE Plasma, you'll be thrilled to hear they've announced a new Slimbook with an AMD CPU and the latest version of KDE Plasma desktop.
-
Monthly Sponsorship Includes Early Access to elementary OS 8
If you want to get a glimpse of what's in the pipeline for elementary OS 8, just set up a monthly sponsorship to help fund its continued existence.