diff --git a/LICENSES/OFL-1.1.txt b/LICENSES/OFL-1.1.txt
deleted file mode 100644
index 0da42f86b..000000000
--- a/LICENSES/OFL-1.1.txt
+++ /dev/null
@@ -1,84 +0,0 @@
-SIL OPEN FONT LICENSE
-
-Version 1.1 - 26 February 2007
-
-PREAMBLE
-
-The goals of the Open Font License (OFL) are to stimulate worldwide development
-of collaborative font projects, to support the font creation efforts of academic
-and linguistic communities, and to provide a free and open framework in which
-fonts may be shared and improved in partnership with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and redistributed
-freely as long as they are not sold by themselves. The fonts, including any
-derivative works, can be bundled, embedded, redistributed and/or sold with
-any software provided that any reserved names are not used by derivative works.
-The fonts and derivatives, however, cannot be released under any other type
-of license. The requirement for fonts to remain under this license does not
-apply to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-
-"Font Software" refers to the set of files released by the Copyright Holder(s)
-under this license and clearly marked as such. This may include source files,
-build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the copyright
-statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting, or
-substituting — in part or in whole — any of the components of the Original
-Version, by changing formats or by porting the Font Software to a new environment.
-
-"Author" refers to any designer, engineer, programmer, technical writer or
-other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of the Font Software, to use, study, copy, merge, embed, modify, redistribute,
-and sell modified and unmodified copies of the Font Software, subject to the
-following conditions:
-
-1) Neither the Font Software nor any of its individual components, in Original
-or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled, redistributed
-and/or sold with any software, provided that each copy contains the above
-copyright notice and this license. These can be included either as stand-alone
-text files, human-readable headers or in the appropriate machine-readable
-metadata fields within text or binary files as long as those fields can be
-easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font Name(s)
-unless explicit written permission is granted by the corresponding Copyright
-Holder. This restriction only applies to the primary font name as presented
-to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software
-shall not be used to promote, endorse or advertise any Modified Version, except
-to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s)
-or with their explicit written permission.
-
-5) The Font Software, modified or unmodified, in part or in whole, must be
-distributed entirely under this license, and must not be distributed under
-any other license. The requirement for fonts to remain under this license
-does not apply to any document created using the Font Software.
-
-TERMINATION
-
-This license becomes null and void if any of the above conditions are not met.
-
-DISCLAIMER
-
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
-TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE
-FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL,
-INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT
-SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/docs/content/interface/toolbar.md b/docs/content/interface/toolbar.md
index 3d6c327ac..9ae2c07fd 100644
--- a/docs/content/interface/toolbar.md
+++ b/docs/content/interface/toolbar.md
@@ -88,7 +88,7 @@ If some text is selected it will either put that as the link, if it thinks that
inserting `name=$YourName`, a time by inserting `time=$time` or a color by inserting `color=#FFFFFF` in the `[]`.
Please note that you can only specify one of those per `[]`, but you can use multiple `[]`.
5. **Emoji Picker**
- This button opens the emoji picker, where you can choose an emoji or a fork awesome icon to insert into your note.
+ This button opens the emoji picker, where you can choose an emoji to insert into your note.

## Settings
diff --git a/docs/content/references/hfm.md b/docs/content/references/hfm.md
index 379fe0ef8..12f321375 100644
--- a/docs/content/references/hfm.md
+++ b/docs/content/references/hfm.md
@@ -1,13 +1,12 @@
# HedgeDoc Flavored Markdown
-HedgeDoc has its own markdown dialect which supports many features from [CommonMark][commonmark] and [Github Flavored Markdown][gfm]. It also adds some new extensions and is missing some.
+HedgeDoc has its own markdown dialect which supports many features from [CommonMark][commonmark]
+and [Github Flavored Markdown][gfm]. It also adds some new extensions and is missing some.
These tables tell you what exactly we support in HedgeDoc 1.x (HFM 1) and HedgeDoc 2 (HFM 2).
-
## Typography
-
| Feature | HFM 1 | HFM 2 | CommonMark | GFM |
| ------------- | :---: | :---: | :---------------: | :---------------: |
| bold | ☑️ | ☑️ | ☑️ | ☑️ |
@@ -36,7 +35,8 @@ These tables tell you what exactly we support in HedgeDoc 1.x (HFM 1) and HedgeD
| task list | ☑️ | ☑️ | | ☑️ |
| defition list | ☑️ | ☑️ | | |
| emoji | [Unicode 6.1][unicode-6] | [Unicode 13][unicode-13] | | |
-| [ForkAwesome][fa] | ☑️ with `` | ☑️ with shortcodes | | |
+| [ForkAwesome][fa] | ☑️ with `` | removed | | |
+| [Bootstrap Icons][bootstrap-icons] | | ☑️ with shortcodes | | |
| LaTeX | ☑️[^mj] | ☑️[^kt] | | |
[^highlight]: Code blocks with a given language are rendered using syntax highlighting.
@@ -59,7 +59,6 @@ These tables tell you what exactly we support in HedgeDoc 1.x (HFM 1) and HedgeD
| image with given size | ☑️ | ☑️ | (☑️ with ``) | (☑️ with `
`) |
| table of contents | ☑️ | ☑️ | | |
-
## Structural elements
| Feature | HFM 1 | HFM 2 | CommonMark | GFM |
@@ -70,7 +69,9 @@ These tables tell you what exactly we support in HedgeDoc 1.x (HFM 1) and HedgeD
| Alerts | ☑️ | ☑️ | | |
## Embeddings
-HFM 1 includes support for certain embeddings of external content by using the `{%keyword parameter %}` syntax. To increase the readability of the markdown code we decided that HFM 2 should just use plain links if possible.
+
+HFM 1 includes support for certain embeddings of external content by using the `{%keyword parameter %}` syntax. To
+increase the readability of the markdown code we decided that HFM 2 should just use plain links if possible.
| Feature | HFM 1 | HFM 2 | CommonMark | GFM |
| --------------------------------------------------- | :---: | :---------------------: | :--------: | :---: |
@@ -81,10 +82,13 @@ HFM 1 includes support for certain embeddings of external content by using the `
| [Speakerdeck][speakerdeck] (`{%speakerdeck ... %}`) | ☑️ | removed | | |
| [GitHub Gist][gist] (`{%gist ... %}`) | ☑️ | with plain link[^embed] | | |
-[^embed]: The special syntax from HFM 1 is deprecated, but will still work in HFM 2. However, a plain link to the content should be used.
+[^embed]: The special syntax from HFM 1 is deprecated, but will still work in HFM 2. However, a plain link to the
+content should be used.
## HTML
-Besides the basic HTML typography elements (`
`, ``, ``, ``, ` `, ``, ``, ``, ``) the following more special HTML elements are supported by some specification.
+
+Besides the basic HTML typography elements (`
diff --git a/frontend/src/components/login-page/auth/utils/get-one-click-provider-metadata.ts b/frontend/src/components/login-page/auth/utils/get-one-click-provider-metadata.ts
index 92f53ee61..d92bdf0a7 100644
--- a/frontend/src/components/login-page/auth/utils/get-one-click-provider-metadata.ts
+++ b/frontend/src/components/login-page/auth/utils/get-one-click-provider-metadata.ts
@@ -6,12 +6,21 @@
import type { AuthProvider } from '../../../../api/config/types'
import { AuthProviderType } from '../../../../api/config/types'
import { Logger } from '../../../../utils/logger'
-import type { IconName } from '../../../common/fork-awesome/types'
import styles from '../via-one-click.module.scss'
+import type { Icon } from 'react-bootstrap-icons'
+import { Dropbox as IconDropbox } from 'react-bootstrap-icons'
+import { Exclamation as IconExclamation } from 'react-bootstrap-icons'
+import { Facebook as IconFacebook } from 'react-bootstrap-icons'
+import { Git as IconGit } from 'react-bootstrap-icons'
+import { Github as IconGithub } from 'react-bootstrap-icons'
+import { Google as IconGoogle } from 'react-bootstrap-icons'
+import { People as IconPeople } from 'react-bootstrap-icons'
+import { PersonRolodex as IconPersonRolodex } from 'react-bootstrap-icons'
+import { Twitter as IconTwitter } from 'react-bootstrap-icons'
export interface OneClickMetadata {
name: string
- icon: IconName
+ icon: Icon
className: string
url: string
}
@@ -33,56 +42,56 @@ export const getOneClickProviderMetadata = (provider: AuthProvider): OneClickMet
case AuthProviderType.DROPBOX:
return {
name: 'Dropbox',
- icon: 'dropbox',
+ icon: IconDropbox,
className: styles['btn-social-dropbox'],
url: getBackendAuthUrl('dropbox')
}
case AuthProviderType.FACEBOOK:
return {
name: 'Facebook',
- icon: 'facebook',
+ icon: IconFacebook,
className: styles['btn-social-facebook'],
url: getBackendAuthUrl('facebook')
}
case AuthProviderType.GITHUB:
return {
name: 'GitHub',
- icon: 'github',
+ icon: IconGithub,
className: styles['btn-social-github'],
url: getBackendAuthUrl('github')
}
case AuthProviderType.GITLAB:
return {
name: provider.providerName,
- icon: 'gitlab',
+ icon: IconGit, //TODO: gitlab icon
className: styles['btn-social-gitlab'],
url: getBackendAuthUrl(provider.identifier)
}
case AuthProviderType.GOOGLE:
return {
name: 'Google',
- icon: 'google',
+ icon: IconGoogle,
className: styles['btn-social-google'],
url: getBackendAuthUrl('google')
}
case AuthProviderType.OAUTH2:
return {
name: provider.providerName,
- icon: 'address-card',
+ icon: IconPersonRolodex,
className: 'btn-primary',
url: getBackendAuthUrl(provider.identifier)
}
case AuthProviderType.SAML:
return {
name: provider.providerName,
- icon: 'users',
+ icon: IconPeople,
className: 'btn-success',
url: getBackendAuthUrl(provider.identifier)
}
case AuthProviderType.TWITTER:
return {
name: 'Twitter',
- icon: 'twitter',
+ icon: IconTwitter,
className: styles['btn-social-twitter'],
url: getBackendAuthUrl('twitter')
}
@@ -90,7 +99,7 @@ export const getOneClickProviderMetadata = (provider: AuthProvider): OneClickMet
logger.warn('Metadata for one-click-provider does not exist', provider)
return {
name: '',
- icon: 'exclamation',
+ icon: IconExclamation,
className: '',
url: '#'
}
diff --git a/frontend/src/components/markdown-renderer/extensions/bootstrap-icons/__snapshots__/bootstrap-icon-markdown-extension.test.tsx.snap b/frontend/src/components/markdown-renderer/extensions/bootstrap-icons/__snapshots__/bootstrap-icon-markdown-extension.test.tsx.snap
new file mode 100644
index 000000000..a74cc484b
--- /dev/null
+++ b/frontend/src/components/markdown-renderer/extensions/bootstrap-icons/__snapshots__/bootstrap-icon-markdown-extension.test.tsx.snap
@@ -0,0 +1,35 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`bootstrap icon markdown extension doesn't render invalid icon 1`] = `
+`) the following more special HTML
+elements are supported by some specification.
| Feature | HedgeDocMark 1 | HedgeDocMark 2 | CommonMark | GFM |
| :-----------: | :------------: | :------------: | :--------: | :---: |
@@ -99,14 +103,27 @@ Besides the basic HTML typography elements (`
diff --git a/frontend/src/components/common/links/external-link.test.tsx b/frontend/src/components/common/links/external-link.test.tsx
index 66a61195a..6b126ae5e 100644
--- a/frontend/src/components/common/links/external-link.test.tsx
+++ b/frontend/src/components/common/links/external-link.test.tsx
@@ -5,6 +5,7 @@
*/
import { ExternalLink } from './external-link'
import { render } from '@testing-library/react'
+import { Heart as IconHeart } from 'react-bootstrap-icons'
describe('ExternalLink', () => {
const href = 'https://example.com'
@@ -14,7 +15,7 @@ describe('ExternalLink', () => {
expect(view.container).toMatchSnapshot()
})
it('renders an external link with an icon', () => {
- const view = render(
+ :bi-: +
+ + ++ +
+ + +- -
- - -
diff --git a/frontend/src/components/markdown-renderer/extensions/emoji/emoji-markdown-extension.test.tsx b/frontend/src/components/markdown-renderer/extensions/emoji/emoji-markdown-extension.test.tsx
index fcedfc162..dc0d9510f 100644
--- a/frontend/src/components/markdown-renderer/extensions/emoji/emoji-markdown-extension.test.tsx
+++ b/frontend/src/components/markdown-renderer/extensions/emoji/emoji-markdown-extension.test.tsx
@@ -24,13 +24,6 @@ describe('Emoji Markdown Extension', () => {
expect(view.container).toMatchSnapshot()
})
- it('renders a fork awesome code', () => {
- const view = render(
-