hedgedoc/frontend/locales/en.json
Erik Michelson 1c73e99b0a enhancement(note-deletion): allow to keep uploads
This adds support for keeping the uploads attached to a note when
deleting the same note. This is done by a simple checkbox that can be
clicked in the DeletionModal.

To do this, some parts of the note deletion had to be refactored,
especially in the case of the history page. Both the note deletion and
history removal methods used the same modal, which isn't applicable now
anymore. Additionally, there was a bug that the modal checked for
ownership in the frontend before allowing the note deletion. However, in
the context of the history page, the ownership couldn't be evaluated
since the backend API didn't include that information. This is now fixed
as well.

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2024-09-18 18:37:39 +02:00

974 lines
42 KiB
JSON

{
"app": {
"slogan": "Ideas grow better together",
"icon": "HedgeDoc logo with text"
},
"notificationTest": {
"title": "Test",
"content": "It works!"
},
"navigation": {
"newNote": "New Note"
},
"renderer": {
"highlightCode": {
"copyCode": "Copy code to clipboard"
},
"plantuml": {
"notConfigured": "PlantUML plugin is enabled but not properly configured."
},
"flowchart": {
"invalidSyntax": "Invalid flowchart.js syntax!"
},
"mermaid": {
"unknownError": "Unknown rendering error. Please check your browser console."
},
"vega-lite": {
"png": "Save as PNG",
"svg": "Save as SVG",
"errorJson": "Error parsing the JSON"
},
"clickShield": {
"previewHoverText": "Click to load content from {{target}}"
},
"uploadIndicator": {
"uploadMessage": "Uploading file"
}
},
"noteLoadingBoundary": {
"createNote": {
"question": "Do you want to create a note with alias '{{aliasName}}'?",
"create": "Create note",
"creating": "Creating note...",
"error": "Note couldn't be created.",
"success": "Note has been created."
},
"error": {
"notFound": {
"title": "Note not found",
"description": "The requested note doesn't exist."
},
"forbidden": {
"title": "Access denied",
"description": "You don't have the needed permission to access this note"
}
}
},
"landing": {
"intro": {
"markdownWhileLoading": "Loading...",
"markdownLoadingError": "Error while fetching intro content"
},
"history": {
"error": {
"getHistory": {
"title": "Load History Error",
"text": "While trying to load the history form the server an error occurred"
},
"deleteHistory": {
"title": "Delete History Error",
"text": "While trying to delete the history on the server an error occurred"
},
"setHistory": {
"title": "Upload History Error",
"text": "While trying to upload the history to the server an error occurred"
},
"deleteNote": {
"title": "Delete Note Error",
"text": "While trying to delete a note on the server an error occurred"
},
"updateEntry": {
"title": "Update History Entry Error",
"text": "While trying to update a history entry on the server an error occurred"
},
"deleteEntry": {
"title": "Delete History Entry Error",
"text": "While trying to delete a history entry on the server an error occurred"
},
"notFoundEntry": {
"title": "History Entry not found",
"text": "We can't find the history entry you requested."
}
},
"noHistory": "No history",
"localHistory": "Below is history from this browser",
"toolbar": {
"cards": "Cards",
"table": "Table",
"selectTags": "Select tags…",
"searchKeywords": "Search keyword…",
"sortByTitle": "Sort by title",
"sortByLastVisited": "Sort by time",
"export": "Export history",
"import": "Import history",
"clear": "Clear history",
"refresh": "Refresh history",
"uploadAll": "Sync the complete history to the server"
},
"modal": {
"clearHistory": {
"title": "Delete history",
"question": "Do you want to clear the history?",
"disclaimer": "This won't delete any notes."
},
"importHistoryError": {
"title": "An error occurred",
"textWithFile": "While trying to import history from '{{fileName}}' an error occurred.",
"textWithoutFile": "You did not provide any files to upload the history from.",
"tooNewVersion": "The file '{{fileName}}' comes from a newer client and can't be imported."
},
"removeNote": {
"title": "Remove note from history",
"question": "Do you really want to remove this note from your history?",
"warning": "This just removes the history entry and won't delete the note itself.",
"button": "Remove note from history"
}
},
"tableHeader": {
"title": "Title",
"actions": "Actions",
"tags": "Tags",
"lastVisit": "Last Visit"
},
"menu": {
"recentNotes": "Recent notes",
"entryLocal": "Saved in your browser history",
"entryRemote": "Saved in your user history",
"removeEntry": "Remove from history",
"deleteNote": "Delete note"
}
},
"navigation": {
"intro": "Intro",
"history": "History",
"newGuestNote": "New guest note",
"newNote": "New note"
},
"footer": {
"releases": "Releases",
"poweredBy": "Powered by <0></0>"
},
"versionInfo": {
"issueTracker": "Found a bug? Fill an issue!",
"sourceCode": "Read the source code",
"versionInfo": "Running Version",
"title": "Running HedgeDoc on version"
}
},
"profile": {
"userProfile": "User profile",
"displayName": "Display name",
"displayNameInfo": "This name will be shown publicly on notes you created or edited.",
"changePassword": {
"title": "Change password",
"old": "Old password",
"new": "New password",
"newAgain": "New password again",
"info": "Your new password should contain at least 6 characters.",
"failed": "Changing your password failed. Check your old password and try again.",
"successTitle": "Password changed",
"successText": "Your password has been changed successfully."
},
"selectProfilePicture": {
"title": "Select profile picture",
"info": "Your profile picture is publicly visible. Depending on your auth provider, you might have more or less choices here."
},
"changeDisplayNameFailed": "There was an error changing your display name.",
"accountManagement": "Account management",
"deleteUser": "Delete user",
"exportUserData": "Export user data",
"accessTokens": {
"title": "Access tokens",
"info": "Access tokens are an password-less authentication method for the CLI or third-party applications.",
"infoDev": "Developers can use these to access the public API.",
"noTokens": "You don't have any tokens generated yet.",
"createToken": "Create token",
"label": "Token label",
"created": "created {{time}}",
"lastUsed": "last used {{time}}",
"neverUsed": "never used",
"loadingFailed": "Fetching your access tokens has failed. Try reloading this page.",
"creationFailed": "Creating the access token failed.",
"expiry": "Expiry date"
},
"modal": {
"deleteUser": {
"title": "Delete user",
"message": "Do you really want to delete your user account?",
"subMessage": "This will delete your account, all notes that are owned by you and remove all references to your account from other notes.",
"failed": "There was an error deleting your account. Please try it again or contact your instance's administrator.",
"notificationTitle": "Account deleted",
"notificationText": "Your account has been successfully deleted."
},
"addedAccessToken": {
"title": "Token added",
"message": "The access token '{{label}}' was created. Copy it from the field below now, as you won't be able to view it again."
},
"deleteAccessToken": {
"title": "Really delete token?",
"message": "When deleting the access token '{{label}}', the applications that used it won't have access to your account anymore. You eventually need a new token to continue using those applications.",
"notificationTitle": "Access token deleted",
"notificationText": "The access token '{{label}}' has been deleted.",
"failed": "There was an error deleting the access token. Please try it again or contact your instance's administrator."
}
}
},
"editor": {
"linter": {
"defaultAction": "Fix",
"sequence": "The use of 'sequence' as code block language is deprecated and will be removed in a future release.",
"shortcode": "The {{shortcode}} short-code is deprecated and will be removed in a future release. Use a single line URL instead.",
"frontmatter": "The yaml-metadata is invalid.",
"frontmatter-tags": "The comma-separated definition of tags in the yaml-metadata is deprecated. Use a yaml-array instead.",
"fork-awesome": "The usage of Fork Awesome is deprecated and has been removed. Please use bootstrap icons instead. See {{link}} for more information."
},
"upload": {
"uploadFile": {
"withoutDescription": "Uploading file {{fileName}}",
"withDescription": "Uploading file {{fileName}} - {{description}}"
},
"dropImage": "Drop Image to insert",
"failed": "Error while uploading {{fileName}}"
},
"untitledNote": "Untitled",
"placeholder": "← Start by entering a title here\n===\nVisit {{host}}features if you don't know what to do.\nHappy hacking :)",
"infoToc": "Structure your note with headings to see a table-of-contents here.",
"onlineStatus": {
"online": "Online",
"you": "(You)",
"guestUser": "This is a guest user",
"active": "This user is active",
"inactive": "This user has been inactive for some time"
},
"error": {
"noPermission": {
"title": "No edit permission",
"description": "You don't have permission to edit this note. Please login and try again"
},
"locked": {
"title": "This note is locked",
"description": "Sorry, only the owner can edit this note."
},
"limitReached": {
"title": "Reached the limit",
"description": "Sorry, this note reached its maximum length. Notes can be up to {{maxDocumentLength}} characters long.",
"advice": "Please shorten the note."
},
"incompatible": {
"title": "Your client's version is incompatible.",
"description": "The server requires a newer version of the editor.",
"advice": "Refresh to update."
},
"newVersion": {
"title": "New version available!",
"description": "A new version of HedgeDoc is available",
"linkText": "See releases notes here",
"advice": "Refresh to enjoy new features."
},
"userStateChanged": {
"title": "Your user state has changed.",
"description": "Refresh to load new user state."
}
},
"viewMode": {
"edit": "Edit",
"view": "View",
"both": "Both"
},
"appBar": {
"new": "New"
},
"editorToolbar": {
"bold": "Bold",
"italic": "Italic",
"underline": "Underline",
"strikethrough": "Strikethrough",
"subscript": "Subscript",
"superscript": "Superscript",
"header": "Heading",
"code": "Code",
"blockquote": "Blockquote",
"unorderedList": "Unordered List",
"orderedList": "Ordered List",
"checkList": "Checklist",
"link": "Link",
"imageLink": "Image",
"uploadImage": "Upload Image",
"highlight": "Highlight",
"table": {
"titleWithoutSize": "Table",
"titleWithSize": "{{cols}}x{{rows}} Table",
"customSize": "Custom Size",
"cols": "Cols",
"rows": "Rows",
"create": "Create Custom Table"
},
"horizontalLine": "Horizontal line",
"collapsibleBlock": "Collapsible block",
"comment": "Comment",
"preferences": "Editor settings",
"emoji": "Open emoji picker"
},
"documentBar": {
"menu": "Menu",
"import": "Import",
"export": "Export",
"extra": "Extra",
"slideMode": "Slide Mode",
"readOnlyMode": "Read-only mode",
"download": "Download",
"help": "Help",
"deleteNote": "Delete note",
"pinNoteToHistory": "Pin note to history",
"pinnedToHistory": "Pinned to history"
},
"statusBar": {
"cursor": "Line {{line}}, Character {{columns}}",
"selection": {
"characters": "Selected {{count}} characters",
"lines": "Selected {{count}} lines"
},
"lines": "{{lines}} Lines",
"length": "Length {{length}}",
"lengthTooltip": {
"maximumReached": "You've reached the maximum length of this note.",
"remaining": "You may still write {{remaining}} characters until you reach the limit for this note.",
"exceeded": "You've exceeded the maximum length of this note by {{exceeded}} characters. Consider shortening it."
}
},
"export": {
"common": {
"title": "Export to {{service}}",
"createButton": "Create {{shortName}}",
"headingAuthentication": "Authentication",
"headingSettings": "Export settings",
"fieldToken": "Access token",
"fieldDescription": "Description",
"notificationSuccessTitle": "{{shortName}} successfully created",
"notificationSuccessMessage": "The note has been exported to {{service}}.",
"notificationSuccessButton": "Open {{shortName}}",
"notificationErrorTitle": "Error while creating {{shortName}}: {{errorMessage}}"
},
"gist": {
"service": "GitHub Gist",
"shortName": "Gist",
"infoToken": "You need a personal access token with the Gists account permission. You can create one in your GitHub settings here:",
"fieldPublic": "Make Gist public?"
},
"gitlab": {
"service": "GitLab snippet",
"shortName": "Snippet",
"infoToken": "You need a personal access token with the api permission. You can create one in your GitLab user settings here:",
"infoTokenLink": "Preferences → Access tokens",
"fieldUrl": "GitLab URL",
"fieldVisibility": "Set snippet visibility",
"visibility": {
"private": "Private",
"internal": "Internal",
"public": "Public"
}
},
"rawHtml": "Raw HTML",
"markdown-file": "Markdown file"
},
"import": {
"clipboard": "Clipboard",
"file": "Markdown file"
},
"autocompletions": {
"link": "Link",
"icon": "Icon",
"emoji": "Emoji",
"image": "Image",
"imageWithDimensions": "Image with dimensions",
"toc": "Table of contents",
"successBox": "Success box",
"infoBox": "Info box",
"warningBox": "Warning box",
"errorBox": "Error box",
"tagName": "Name tag",
"tagColor": "Color tag",
"tagTime": "Time tag",
"spoiler": "Spoiler"
},
"noteInfo": {
"title": "Note info",
"created": "Note created",
"lastUpdated": "Last saved at",
"lastUpdatedBy": "Last updated by",
"contributors": "Count of contributors",
"wordCount": "Count of words"
},
"mediaBrowser": {
"title": "Media",
"deleteMedia": "Delete uploaded file",
"confirmDeletion": "Do you really want to delete this file?",
"errorDeleting": "The uploaded file could not be deleted.",
"mediaDeleted": "The uploaded file has been deleted.",
"noMediaUploads": "There are no media files uploaded to this note yet"
},
"modal": {
"snippetImport": {
"title": "Import from Snippet",
"selectProject": "Select From Available Projects",
"selectSnippet": "Select From Available Snippets"
},
"gistImport": {
"title": "Import from Gist",
"insertGistUrl": "Paste your gist url here…"
},
"snippetExport": {
"title": "Export to Snippet",
"visibilityLevel": "Select Visibility Level"
},
"revision": {
"title": "Revisions",
"revertButton": "Revert",
"error": "An error occurred while fetching the revisions of this note.",
"errorUser": "An error occurred while fetching the user information for this revision.",
"length": "Length",
"download": "Download selected revision",
"guestCount": "Anonymous authors or guests"
},
"deleteRevision": {
"title": "Delete Revisions for current note",
"question": "Do you really want to remove all the previous revisions except the current of this note?",
"warning": "All the previous revisions except the current will be deleted for this note. This process is irreversible.",
"error": "An error occurred while deleting revisions of this note.",
"button": "Delete Revisions"
},
"clipboardImport": {
"title": "Import from clipboard",
"insertMarkdown": "Paste your markdown or webpage here…"
},
"deleteNote": {
"title": "Delete note",
"question": "Do you really want to delete this note?",
"warning": "All users will lose their connection. This process is irreversible.",
"deleteButton": "Delete note and uploads",
"deleteButtonKeepMedia": "Delete note but keep uploads",
"keepMedia": "Keep uploads?"
},
"permissions": {
"title": "Permissions",
"owner": "Owner",
"sharedWithUsers": "Shared with users",
"sharedWithGroups": "Shared with groups",
"sharedWithElse": "Shared with else...",
"editUser": "Change {{name}}'s permissions to view and edit",
"viewOnlyUser": "Change {{name}}'s permissions to view only",
"removeUser": "Remove {{name}}'s permissions",
"addUser": "Add user",
"editGroup": "Change permissions of group \"{{name}}\" to view & edit",
"viewOnlyGroup": "Change permissions of group \"{{name}}\" to view only",
"removeGroup": "Remove permissions of group \"{{name}}\"",
"denyGroup": "Deny access to group \"{{name}}\"",
"addGroup": "Add group",
"allUser": "Everyone",
"allLoggedInUser": "All logged-in users",
"error": "An error occurred while updating the permissions of this note.",
"ownerChange": {
"error": "There was an error changing the owner of this note.",
"placeholder": "Enter username of new note owner",
"button": "Change the owner of this note"
},
"inconsistent": "This permission is overridden by another permission"
},
"shareLink": {
"title": "Share link",
"editorDescription": "This link points to this note in the editor as you currently see it.",
"viewOnlyDescription": "This link points to a read-only version of this note. You can use this e.g. for feedback from friends and colleagues.",
"slidesDescription": "This link points to the presentation view of the slides."
},
"aliases": {
"title": "Aliases",
"explanation": "Aliases are alternative names for this note. You may access this note under all the listed names below.",
"addAlias": "Add alias",
"makePrimary": "Mark this alias as primary",
"isPrimary": "This is the primary alias",
"primaryLabel": "Primary Alias",
"removeAlias": "Remove this alias",
"errorAddingAlias": "The chosen alias can not be added to this note",
"errorRemovingAlias": "There was an error removing the alias",
"errorMakingPrimary": "There was an error marking the alias as primary"
}
},
"embeddings": {
"clickToLoad": "Click to load",
"placeholderImage": {
"placeholderText": "Placeholder",
"upload": "Upload image"
}
},
"abcJs": {
"errorWhileRendering": "Error while rendering your score. Please check if the code is correct."
}
},
"views": {
"presentation": {},
"readOnly": {
"viewCount": "views",
"editNote": "Edit this note"
}
},
"appbar": {
"editor": {
"readOnly": "read-only"
},
"help": {
"help": {
"header": "Help",
"shortcuts": "Shortcuts",
"cheatsheet": "Cheatsheet"
},
"instance": {
"header": "About this instance",
"versionInfo": "Running version",
"motdModal": "Show instance announcement"
},
"legal": {
"header": "Legal",
"privacy": "Privacy Policy",
"termsOfUse": "Terms of use",
"imprint": "Imprint"
},
"project": {
"header": "Project",
"github": "Project on GitHub",
"reportIssue": "Report an issue",
"helpTranslating": "Help us translating"
},
"social": {
"header": "Social",
"discourse": "Join the community",
"matrix": "Chat with us on Matrix",
"mastodon": "Follow us on Mastodon"
}
}
},
"common": {
"yes": "Yes",
"no": "No",
"on": "On",
"off": "Off",
"import": "Import",
"export": "Export",
"refresh": "Refresh",
"cancel": "Cancel",
"dismiss": "Dismiss",
"ok": "OK",
"close": "Close",
"save": "Save",
"delete": "Delete",
"or": "or",
"and": "and",
"avatarOf": "Avatar of '{{name}}'",
"why": "Why?",
"loading": "Loading ...",
"continue": "Continue",
"back": "Back",
"success": "Success",
"errorWhileLoading": "An unexpected error occurred while loading '{{name}}'.\nCheck the browser console for more information.\nReport this error only if it comes up again.",
"errorOccurred": "An error occurred",
"readForMoreInfo": "Read here for more information",
"guestUser": "Guest user"
},
"copyOverlay": {
"error": "Error while copying!",
"success": "Copied!"
},
"login": {
"chooseMethod": "Choose method",
"signInVia": "Sign in via {{service}}",
"signIn": "Sign In",
"signOut": "Sign Out",
"logoutFailed": "There was an error logging you out.\nClose your browser window to ensure session data is removed.",
"guest": {
"title": "Continue as guest",
"noteCreationDisabled": "Guest note creation is disabled on this instance. Please log in to create a note."
},
"auth": {
"email": "Email",
"password": "Password",
"username": "Username",
"error": {
"usernamePassword": "Invalid username or password",
"loginDisabled": "The login is disabled",
"other": "There was an error logging you in."
}
},
"register": {
"question": "No account yet?",
"title": "Register",
"passwordAgain": "Password (again)",
"usernameInfo": "The username is your unique identifier for login.",
"passwordInfo": "Choose a unique and secure password.",
"infoTermsPrivacy": "With the registration of my user account I agree to the following terms:",
"success": {
"title": "Successfully registered",
"message": "Your account has been registered successfully. You can now log in with your username and password."
},
"error": {
"passwordTooWeak": "The password is too weak.",
"registrationDisabled": "The registration is disabled.",
"usernameExisting": "There is already an account with this username.",
"other": "There was an error while registering your account. Just try it again."
}
},
"welcome": {
"title": "Welcome, {{name}}!",
"titleFallback": "Welcome!",
"description": "It seems this is the first time you logged in to this instance. Please confirm your information to continue and login. This needs to be done only once.",
"error": "There was an error creating your user account. Please try again.",
"cancelError": "There was an error with the process. If this persists, try to clear your cookies, reload and try again."
}
},
"motd": {
"title": "Announcement"
},
"errors": {
"notFound": {
"title": "Page not found",
"description": "The requested page either does not exist or you don't have permission to access it."
},
"noteCreationFailed": {
"title": "Note could not be created",
"description": "The note could not be created. Maybe you don't have permission to create notes."
}
},
"notifications": {
"noteDeleted": {
"title": "Note '{{noteTitle}}' deleted",
"text": "You were redirected to the history page, because the note you just edited was deleted."
}
},
"realtime": {
"connecting": "Connecting to realtime collaboration server…"
},
"settings": {
"title": "Settings",
"editor": {
"label": "Editor",
"ligatures": {
"label": "Ligatures",
"help": "Renders special character sequences as one symbol."
},
"smartPaste": {
"label": "Smart Paste",
"help": "Smart paste detects common formats (like tables) when pasting content into the editor and formats them as markdown."
},
"syncScroll": {
"label": "Sync Scrolling",
"help": "Synchronizes the scroll state of editor and rendering view."
},
"lineWrapping": {
"label": "Line Wrapping",
"help": "Breaks long lines so they're visible without scrolling."
},
"spellCheck": {
"label": "Spell checking",
"help": "Enables browser spell checking."
},
"indentWithTabs": {
"label": "Indentation character",
"help": "Sets which characters should be used for indentation",
"tabs": "Tabs",
"spaces": "Spaces"
},
"indentSpaces": {
"label": "Indentation size",
"help": "Sets the amount of spaces for indentation."
}
},
"global": {
"label": "Global",
"darkMode": {
"label": "Dark mode",
"help": "Enforces the use of the dark mode for the app or lets the browser decide.",
"dark": {
"tooltip": "Switch to dark mode",
"label": "Dark"
},
"light": {
"tooltip": "Switch to light mode",
"label": "Light"
},
"browser": {
"tooltip": "Let browser decide",
"label": "Auto"
}
},
"language": {
"label": "Language",
"help": "The primary user interface language"
}
}
},
"shortcuts": {
"title": "Shortcuts",
"editor": {
"header": "Editor",
"bold": "Make selection bold",
"italic": "Make selection italic",
"underline": "Underline selection",
"strikethrough": "Strike selection through",
"mark": "Mark selection",
"link": "Add link around selection"
},
"viewMode": {
"header": "View Mode",
"view": "Show only View",
"both": "Show View and Edit",
"edit": "Show only Edit"
}
},
"cheatsheet": {
"search": "Search for Cheatsheets",
"modal": {
"popup": "Open in new tab",
"title": "Cheatsheet",
"headlines": {
"description": "Description",
"exampleInput": "Example Input",
"exampleOutput": "Example Output",
"selectTopic": "Select Topic",
"readMoreLink": "Read More"
},
"noSelection": "Select an entry on the left side to show the instructions."
},
"categories": {
"basics": "Basics",
"other": "Other",
"embedding": "Embedding",
"charts": "Charts & Diagrams"
},
"basics": {
"basicFormatting": {
"title": "Basic",
"description": "These are the basic markdown formatting rules.",
"example": "**Bold**\n__Bold__\n\n*Italic*\n_Italic_\n\n++Underline++\n~~Strikethrough~~\n\nSub~script~\n\nSuper^script^\n\n==Marked=="
},
"abbreviation": {
"title": "Abbreviation",
"description": "Abbreviation definitions create tooltips for matching words. They can be placed defined in the document.",
"example": "*[HTML]: Hyper Text Markup Language\n*[W3C]: World Wide Web Consortium\nThe HTML specification\nis maintained by the W3C."
},
"footnote": {
"title": "Footnotes",
"description": "Footnotes can be used to add extra information at the bottom of the page. They can be defined anywhere in the document.",
"example": "Here is a footnote reference,[^1] and another.[^longnote]\n\n[^1]: Here is the footnote.\n\n[^longnote]: Here's one with multiple blocks. Subsequent paragraphs are indented to show that they belong to the previous footnote."
},
"headlines": {
"title": "Headlines",
"hashtag": {
"title": "Hashtag",
"description": "Headlines can be used to structure your document into sections. Every headline creates a linkable anchor.",
"example": "# Headline 1\n\n## Headline 2\n\n### Headline 3\n\n#### Headline 4\n\n##### Headline 5\n\n###### Headline 6"
},
"equal": {
"title": "Equals sign",
"description": "An alternative form for the first and second level headline is to append a line of only equals signs or dashes after the headline text. ",
"example": "Headline 1\n==========\n\nHeadline 2\n----------"
}
},
"code": {
"title": "Code",
"inline": {
"title": "Inline",
"description": "You can define an inline code block by wrapping it in backticks.",
"example": "This is `code`."
},
"block": {
"title": "Block",
"description": "You can define a code block by putting a line of three backticks before and after the code part.\n\nIt is also possible to define a language for syntax highlighting. For more information check the entry \"Other > Code Highlighting\"",
"example": "```\nthis is a code block\n```"
}
},
"lists": {
"title": "Lists",
"unordered": {
"title": "Unordered",
"description": "You can create unordered lists by prepending lines with dashes or asterisks.",
"example": "- A\n- B\n- C\n\n* A\n* B\n* C"
},
"ordered": {
"title": "Ordered",
"description": "You can create ordered lists by prepending lines with numbers followed by a dot. Ordered lists will always start with one. Ordered lists that aren't separated by another element will continue the last list.",
"example": "1. A\n2. B\n3. C\n\n\n4. D\n5. E\n\nText\n\n100. A\n101. B\n102. C"
}
},
"images": {
"title": "Images",
"basic": {
"title": "Basic",
"description": "Images can be defined using the link syntax with an exclamation mark in front of it. The text in the brackets will be used as alt-text.",
"example": "![This is an icon](/icon.png)"
},
"size": {
"title": "Size",
"description": "The size syntax allows you to set both dimensions of an image. If you omit one of the dimensions then image will be scaled to the relative size.",
"example": "![Image](/icon.png =100x50)\n\n![Image](/icon.png =60x)\n\n![Image](/icon.png =x50)"
}
},
"links": {
"title": "Links",
"description": "You can create text links by either using the link syntax, by writing the plain URL or by writing it in angle brackets.",
"example": "[Example link](https://example.org)\n\nhttps://example.org\n\n<https://example.org>"
}
},
"abcjs": {
"title": "abcjs",
"description": "You can render music sheets with abcjs by using music standard notation in a codeblock with `abc` as language.",
"example": "```abc\nX:1\nT:Speed the Plough\nM:4/4\nC:Trad.\nK:G\n|:GABc dedB|dedB dedB|c2ec B2dB|c2A2 A2BA|\nGABc dedB|dedB dedB|c2ec B2dB|A2F2 G4:|\n|:g2gf gdBd|g2f2 e2d2|c2ec B2dB|c2A2 A2df|\ng2gf g2Bd|g2f2 e2d2|c2ec B2dB|A2F2 G4:|\n```"
},
"alert": {
"title": "Alert boxes",
"description": "Use alert boxes to bring extra attention to parts of your document.",
"example": ":::success\nThis is a success\n:::\n\n:::danger\nThis is a danger\n:::\n\n:::warning\nThis is a warning\n:::\n\n:::info\nThis is a info\n:::"
},
"blockquoteTags": {
"name": {
"title": "Name",
"description": "Use name tags to indicate who wrote a specific quote e.g. if you're commenting on the text.",
"example": "> Imagination is more important than knowledge.\n> [name=Albert Einstein]"
},
"color": {
"title": "Color",
"description": "Use color tags to tint the border of the quote.",
"example": "> This is the default color\n\n> This is red! [color=red]\n\n> This is blue! [color=#0000ff]"
},
"time": {
"title": "Time",
"description": "Use time tags to specify when a time stamp",
"example": "The password is: changeme\n\n> Please change it ASAP [time=2020-03-05]"
},
"title": "Blockquote Tags",
"description": "Use name, time or color tags to specify your blockquotes. Color tags modify the border color.",
"example": "> [name=Max] Named quote\n\n> [time=today] Time quote\n\n> [color=red] quote\n\n> [name=Max] [color=green] [time=today] Combined quote"
},
"bootstrapIcon": {
"title": "Bootstrap Icons",
"description": "You can use bootstrap icons in your document by putting the name of an icon between colons but prefixed with `bi-`. A listing of all bootstrap icons can be found on their website.",
"example": ":bi-music-note-beamed::bi-music-note-beamed::bi-music-note-beamed:\nAround the :bi-globe-americas:\nAround the :bi-globe-asia-australia:\nAround the :bi-globe-central-south-asia:\nAround the :bi-globe-europe-africa:"
},
"emoji": {
"title": "Emojis",
"description": "You can add colored emojis by either placing the unicode character or by using a shortcode. HedgeDoc supports every emoji that Twemoji supports. You can also use the emoji picker in the editor toolbar.",
"example": "I :heart: :hedgehog:"
},
"csv": {
"title": "CSV",
"table": {
"title": "Table",
"description": "You can render a CSV text as table by using a code block with `csv` as language. You must specify the delimiter.",
"example": "```csv delimiter=;\nUsername; Identifier;First name;Last name\n\"booker12; rbooker\";9012;Rachel;Booker\ngrey07;2070;Laura;Grey\njohnson81;4081;Craig;Johnson\njenkins46;9346;Mary;Jenkins\nsmith79;5079;Jamie;Smith\n```"
},
"header": {
"title": "Header",
"description": "By adding the header keyword you can define that the first line is used as table header",
"example": "```csv delimiter=; header\nUsername; Identifier;First name;Last name\n\"booker12; rbooker\";9012;Rachel;Booker\ngrey07;2070;Laura;Grey\njohnson81;4081;Craig;Johnson\njenkins46;9346;Mary;Jenkins\nsmith79;5079;Jamie;Smith\n```"
}
},
"flowchart": {
"title": "flowchart.js",
"description": "Render flowcharts diagrams using flowchart.js by using a code block with `flow` as language.",
"example": "```flow\nst=>start: Start\ne=>end: End\nop=>operation: My Operation\nop2=>operation: lalala\ncond=>condition: Yes or No?\n\nst->op->op2->cond\ncond(yes)->e\ncond(no)->op2\n```"
},
"gist": {
"title": "GitHub Gist",
"description": "Embed GitHub Gists by placing a gist URL on a single line.",
"example": "# This is my gist\nhttps://gist.github.com/schacon/1\nThis is just the link to a gist: https://gist.github.com/schacon/1\n[Using the link tag will also not trigger the embedding](https://gist.github.com/schacon/1)"
},
"graphviz": {
"title": "GraphViz",
"description": "Render GraphViz diagrams by using the DOT language in a code block with `graphviz` as language.",
"example": "```graphviz\ngraph {\n a -- b\n a -- b\n b -- a [color=blue]\n}\n```"
},
"katex": {
"title": "KaTeX",
"description": "You can render LaTeX mathematical expressions using KaTeX by encapsulating them in dollar signs.",
"example": "The *Gamma function* satisfying $\\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N$ is via the Euler integral\n\n$$\nx = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}.\n$$\n\n$$\n\\Gamma(z) = \\int_0^\\infty t^{z-1}e^{-t}dt\\,.\n$$"
},
"asciinema": {
"title": "Asciinema",
"description": "Embed an Asciinema video by placing the URL in a single line.",
"example": "https://asciinema.org/a/117928\n"
},
"mermaid": {
"title": "Mermaid",
"description": "Render diagrams and charts using mermaid.js by adding a code block with the language `mermaid`",
"example": "```mermaid\ngantt\n title A Gantt Diagram\n\n section Section\n A task: a1, 2014-01-01, 30d\n Another task: after a1, 20d\n\n section Another\n Task in sec: 2014-01-12, 12d\n Another task: 24d\n```"
},
"imagePlaceholder": {
"title": "Image Placeholder",
"description": "You can use image placeholders to indicate spots where images should be placed. To do this use an image link with `https://` as URL. You can upload the actual image directly from the renderer. Placeholders also support size definition, alt text and title.",
"example": "![This is a placeholder image](https://)"
},
"iframeCapsule": {
"title": "Iframe capsule",
"description": "To protect viewers every iframe has to be activated explicitly. Before this, no information is fetched. Adding additional privileges using the sandbox attribute is not allowed.",
"example": "<iframe src=\"https://example.org/\"></iframe>"
},
"plantuml": {
"title": "PlantUML",
"description": "Render diagrams and charts using PlantUML by adding a code block with the language `plantuml`. PlantUML diagrams are not rendered in your browser like the other charts, but by an external server.",
"example": "```plantuml\n@startuml\nparticipant Alice\nparticipant \"The **Famous** Bob\" as Bob\n\nAlice -> Bob : hello --there--\n... Some ~~long delay~~ ...\nBob -> Alice : ok\nnote left\n This is **bold**\n This is //italics//\n This is \"\"monospaced\"\"\n This is --stroked--\n This is __underlined__\n This is ~~waved~~\nend note\n\nAlice -> Bob : A //well formatted// message\nnote right of Alice\n This is <back:cadetblue><size:18>displayed</size></back>\n __left of__ Alice.\nend note\nnote left of Bob\n <u:red>This</u> is <color #118888>displayed</color>\n **<color purple>left of</color> <s:red>Alice</strike> Bob**.\nend note\nnote over Alice, Bob\n <w:#FF33FF>This is hosted</w> by <img sourceforge.jpg>\nend note\n@enduml\n```"
},
"spoiler": {
"title": "Spoiler",
"description": "Hide information by using a spoiler tag.",
"example": ":::spoiler This spoiler contains a surprise.\nSURPRISE!\n:::"
},
"toc": {
"title": "Table Of Contents",
"basic": {
"title": "Basic",
"description": "Add a table of contents that is automatically generated using your headlines by adding `[toc]` into a single line.",
"example": "[toc]\n\n# This is a first headline\n\n## This is a second headline"
},
"levelLimit": {
"title": "Level limits",
"description": "You can limit the levels of the headlines the TOC should show",
"example": "[toc:2:3]\n\n# This is a first headline\n\n## This is a second headline\n\n### This is a third headline\n\n#### This is a fourth headline"
}
},
"vegaLite": {
"title": "Vega Lite",
"description": "Render diagrams and charts using vega lite by adding a code block with the language `vega-lite`",
"example": "```vega-lite\n{\n \"$schema\": \"https://vega.github.io/schema/vega-lite/v5.json\",\n \"description\": \"Reproducing http://robslink.com/SAS/democd91/pyramid_pie.htm\",\n \"data\": {\n \"values\": [\n {\"category\": \"Sky\", \"value\": 75, \"order\": 3},\n {\"category\": \"Shady side of a pyramid\", \"value\": 10, \"order\": 1},\n {\"category\": \"Sunny side of a pyramid\", \"value\": 15, \"order\": 2}\n ]\n },\n \"mark\": {\"type\": \"arc\", \"outerRadius\": 80},\n \"encoding\": {\n \"theta\": {\n \"field\": \"value\", \"type\": \"quantitative\",\n \"scale\": {\"range\": [2.35619449, 8.639379797]},\n \"stack\": true\n },\n \"color\": {\n \"field\": \"category\", \"type\": \"nominal\",\n \"scale\": {\n \"domain\": [\"Sky\", \"Shady side of a pyramid\", \"Sunny side of a pyramid\"],\n \"range\": [\"#416D9D\", \"#674028\", \"#DEAC58\"]\n },\n \"legend\": {\n \"orient\": \"none\",\n \"title\": null,\n \"columns\": 1,\n \"legendX\": 200,\n \"legendY\": 80\n }\n },\n \"order\": {\n \"field\": \"order\"\n }\n },\n \"view\": {\"stroke\": null}\n}\n```"
},
"vimeo": {
"title": "Vimeo",
"description": "Embed a Vimeo video by placing the URL in a single line.",
"example": "https://vimeo.com/23237102"
},
"youtube": {
"title": "YouTube",
"description": "Embed a YouTube video by placing the URL in a single line.",
"example": "https://www.youtube.com/watch?v=YE7VzlLtp-4"
},
"taskList": {
"title": "Task Lists",
"description": "You can turn any listing into a task list by adding brackets. The checkboxes in the rendering change the markdown content if clicked.",
"example": "- [ ] ToDos\n - [X] Buy some salad\n - [ ] Brush teeth\n - [x] Drink some water\n - [ ] **Click my box** and see the source code, if you're allowed to edit!\n"
},
"codeHighlighting": {
"title": "Code Highlighting",
"language": {
"title": "Language",
"description": "Specify a language after the start tag of a code block to activate code highlighting.",
"example": "```js\nvar s = \"JavaScript syntax highlighting\";\nalert(s);\nfunction $initHighlight(block, cls) {\n try {\n if (cls.search(/\\bno\\-highlight\\b/) != -1)\n return process(block, true, 0x0F) +\n ' class=\"\"';\n } catch (e) {\n /* handle exception */\n }\n for (var i = 0 / 2; i < classes.length; i++) {\n if (checkCondition(classes[i]) === undefined)\n return /\\d+[\\s/]/g;\n }\n}\n```"
},
"lineWrapping": {
"title": "Line wrapping",
"description": "Set an exclamation mark to activate line wrapping",
"example": "```text\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n```\n\n```text!\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n```"
},
"lineNumbers": {
"title": "Line numbers",
"description": "Set a equals sign after the language to show line numbers. You can specify a start line number after the equal sign or a plus to continue the line numbers from the last code block.",
"example": "```markdown=12\nline1\n```\n```markdown=+\nline2\n```\n```markdown=\nline3\n```"
}
}
}
}